Eli Zaretskii
-Copyright (C) 2001, 2006, 2009-2013, 2015-2017 Free Software Foundation, Inc.
+Copyright (C) 2001, 2006, 2009-2013, 2015-2018 Free Software Foundation, Inc.
This file is part of GNU diffutils.
+2018-12-31 Jim Meyering <meyering@fb.com>
+
+ version 3.7
+ * NEWS: Record release date.
+
+ maint: distribute new file, init.cfg
+ Otherwise, strip-trailing-cr would fail on a system without valgrind.
+ * tests/Makefile.am (EXTRA_DIST): Include init.cfg.
+
+2018-12-30 Dennis Lambe Jr <malsyned@malsyned.net>
+
+ diff: adjust ANSI escapes for compatibility with less -R
+ GNU less can display ANSI-colored text with the -R flag, but this
+ support has some limitations. One of them is that if an escape
+ sequence starts on one line and ends on a different line, only the
+ first line will be colored in less.
+
+ As a result, when diff creates colored output with multi-line deletes
+ or adds, less will only color the first line.
+
+ This change resets ANSI color to the default at the end of
+ each line and restarts it at the beginning of the next. It patches
+ normal and context mode. Side-by-side already worked in my testing.
+ * src/context.c (print_context_label, pr_context_hunk): As above.
+ (pr_unidiff_hunk, print_context_header): Likewise.
+ * src/normal.c (print_normal_hunk): Likewise.
+ * tests/colors: Adjust existing tests to accommodate this.
+ * NEWS (Improvements): Mention it.
+ Proposed in http://bugs.gnu.org/31105
+
+2018-12-29 Jim Meyering <meyering@fb.com>
+
+ tests: fix colors test on systems lacking fractional timestamp support
+ * tests/colors: The .NNNNNNNNN suffix is not printed on some systems.
+ Adapt the test to accommodate those systems.
+
+ tests: strip-trailing-cr: avoid failure with ASAN
+ Valgrind cannot operate on an ASAN-compiled binary.
+ * tests/strip-trailing-cr (valgrind): Define as no-op when diff
+ was compiled with sanitizer support.
+
+2018-12-28 Jim Meyering <meyering@fb.com>
+
+ tests: add test for --strip-trailing-cr UMR bug
+ * tests/strip-trailing-cr: New file. Test for today's bug fix.
+ * tests/Makefile.am (TESTS): Add it.
+
+ tests: import test infrastructure from coreutils
+ * tests/init.cfg: New file, for require_valgrind_ definition (from coreutils).
+ * tests/Makefile.am (PATH): Don't set stderr_fileno_ here, since it is
+ now initialized in init.cfg.
+
+2018-12-28 Paul Eggert <eggert@cs.ucla.edu>
+ Jim Meyering <jim@meyering.net>
+
+ diff: fix UMR with --strip-trailing-cr
+ Problem reported by Hongxu Chen (Bug#31935).
+ * src/io.c (prepare_text): Strip trailing CR before
+ doing the rest of the analysis.
+ * NEWS: Mention the fix.
+
+2018-12-28 Bruno Haible <bruno@clisp.org>
+
+ tests: colors: avoid test failure on AIX 7
+ * tests/colors: Splice the argument into the printf format string.
+
+2018-12-27 Bruno Haible <address@hidden>
+
+ maint: don't use an undocumented Autoconf macro
+ * configure.ac: Use AC_CONFIG_HEADERS instead of AC_CONFIG_HEADER.
+
+2018-12-23 Jim Meyering <meyering@fb.com>
+
+ build: avoid build failure with --enable-gcc-warnings and latest gcc
+ * src/diff.c (usage): Assert that each line length is no longer than
+ the minimum required size of 4095. This lets newer gcc (currently
+ 9.0.0 20181219) infer that it need not issue this warning:
+ diff.c:1012:19: error: '%.*s' directive output between 0 and 2147483647
+ bytes may exceed minimum required size of 4095
+ [-Werror=format-overflow=]
+ 1012 | printf (" %.*s", msglen, msg);
+
+ build: update gnulib to latest; and bootstrap and init.sh
+
+ build: make the autoconf-2.63 requirement explicit
+ * configure.ac: AC_PREREQ: Require 2.63, not 2.59. And quote properly.
+ Autoconf-2.63 has been required for some time via gnulib.
+ This merely makes it explicit.
+
+2018-12-20 Jim Meyering <meyering@fb.com>
+
+ maint: use https: in gnu mirror URL prefix, not http
+ This appears in the generated release announcement message.
+ * cfg.mk (url_dir_list): Use https: prefix, not http:.
+
+2018-07-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ cmp: fix bug in -b diagnostic
+ Problem reported by mancha (Bug#32249).
+ * src/cmp.c (count_newlines): Restore old value of sentinel.
+ * tests/cmp: Test for the bug.
+
+ build: update gnulib submodule to latest
+
+2018-05-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ doc: prepend "GNU" to NAME in man pages
+ Requested by RMS.
+ * src/cmp.c, src/diff.c, src/diff3.c, src/sdiff.c:
+ Prepend "GNU" to first comment, so that the man page says "GNU".
+
+2018-04-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ sdiff: port to mingw
+ Problem reported by Ross Burton (Bug#31218).
+ * src/sdiff.c (checksigs): Use ‘raise’, not ‘kill’.
+
+2018-03-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ build: update gnulib submodule to latest
+
+2018-01-14 Jim Meyering <meyering@fb.com>
+
+ tests: fix quoting error in previous change
+ * tests/colors: Double-quote $PATH.
+
+2018-01-06 Jim Meyering <meyering@fb.com>
+
+ tests: port tests/colors to some env-munging shell
+ * tests/colors: Also set PATH="$PATH" in env invocation.
+
+ maint: update gnulib and copyright dates for 2018
+ * gnulib: Update to latest.
+ * all files: Run "make update-copyright".
+ * bootstrap: Update from gnulib.
+
+ maint: suppress gcc's new -Wcast-function-type in gnulib
+ * configure.ac (WERROR_CFLAGS): Suppress gcc's new -Wcast-function-type
+ warning in gnulib, because it would trigger on this:
+ sig-handler.h:47:12: error: cast between incompatible function types\
+ from 'void (* const)(int, siginfo_t *, void *)' \
+ {aka 'void (* const)(int, struct <anonymous> *, void *)'} \
+ to 'void (*)(int)' [-Werror=cast-function-type]
+ return (sa_handler_t) a->sa_sigaction;
+
+2017-10-22 Jim Meyering <meyering@fb.com>
+
+ tests: add expected-failing test for minor subopimality
+ In some unusual cases, diff -u prints suboptimal output.
+ * tests/large-subopt: New test script.
+ * tests/Makefile.am (TESTS): Add it.
+ (XFAIL_TESTS): Add it here, too, to record that this test is
+ currently expected to fail.
+ * tests/large-subopt.in1, tests/large-subopt.in2: Inputs derived from
+ those in http://bugs.gnu.org/28796
+
+2017-09-23 Jim Meyering <meyering@fb.com>
+
+ gnulib: update to latest
+
2017-05-21 Jim Meyering <meyering@fb.com>
+ maint: make the announcement template Cc the devel- list
+ * cfg.mk (announcement_Cc_): Define.
+
+ maint: post-release administrivia
+ * NEWS: Add header line for next release.
+ * .prev-version: Record previous version.
+ * cfg.mk (old_NEWS_hash): Auto-update.
+
version 3.6
* NEWS: Record release date.
-----
- Copyright (C) 1988-1994, 1997-2002, 2004, 2006, 2009-2013, 2015-2017
+ Copyright (C) 1988-1994, 1997-2002, 2004, 2006, 2009-2013, 2015-2018
Free Software Foundation, Inc.
Copying and distribution of this file, with or without
# It is necessary if you want to build targets usually of interest
# only to the maintainer.
-# Copyright (C) 2001, 2003, 2006-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2006-2018 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
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# If the user runs GNU make but has not yet run ./configure,
# give them a diagnostic.
# Main Automakefile for GNU diffutils.
-# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2017 Free Software
+# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2018 Free Software
# Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
-# Makefile.in generated by automake 1.99a from Makefile.am.
+# Makefile.in generated by automake 1.16a from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2015 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Main Automakefile for GNU diffutils.
-# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2017 Free Software
+# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2018 Free Software
# Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
+ $(top_srcdir)/m4/__inline.m4 \
$(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
$(top_srcdir)/m4/arpa_inet_h.m4 $(top_srcdir)/m4/btowc.m4 \
$(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-stack.m4 \
$(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/close.m4 \
$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
- $(top_srcdir)/m4/configmake.m4 $(top_srcdir)/m4/ctype.m4 \
- $(top_srcdir)/m4/dirname.m4 \
+ $(top_srcdir)/m4/ctype.m4 $(top_srcdir)/m4/dirname.m4 \
$(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \
$(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \
$(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \
$(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \
$(top_srcdir)/m4/fdopen.m4 $(top_srcdir)/m4/filenamecat.m4 \
$(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
- $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpieee.m4 \
- $(top_srcdir)/m4/freopen.m4 $(top_srcdir)/m4/fstat.m4 \
- $(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/getcwd.m4 \
- $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getopt.m4 \
- $(top_srcdir)/m4/getpagesize.m4 \
+ $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fnmatch_h.m4 \
+ $(top_srcdir)/m4/fpieee.m4 $(top_srcdir)/m4/freopen.m4 \
+ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/ftruncate.m4 \
+ $(top_srcdir)/m4/getcwd.m4 $(top_srcdir)/m4/getdtablesize.m4 \
+ $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/getpagesize.m4 \
$(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnu-make.m4 \
$(top_srcdir)/m4/gnulib-common.m4 \
$(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \
+ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \
$(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inet_pton.m4 \
$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/intlmacosx.m4 \
$(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbslen.m4 \
$(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \
$(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
- $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mkstemp.m4 \
- $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \
- $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \
+ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mkdir.m4 \
+ $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \
+ $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \
+ $(top_srcdir)/m4/msvc-inval.m4 \
$(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
$(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/netinet_in_h.m4 \
$(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \
+ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/nstrftime.m4 \
+ $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open-cloexec.m4 \
$(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/pathmax.m4 \
$(top_srcdir)/m4/perror.m4 $(top_srcdir)/m4/pipe.m4 \
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
$(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
$(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
$(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/regex.m4 \
- $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/select.m4 \
- $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale.m4 \
- $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \
+ $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/setenv.m4 \
+ $(top_srcdir)/m4/setlocale.m4 $(top_srcdir)/m4/sigaction.m4 \
+ $(top_srcdir)/m4/signal_h.m4 \
$(top_srcdir)/m4/signalblocking.m4 \
$(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
$(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
$(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
$(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
- $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/strftime.m4 \
- $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strings_h.m4 \
- $(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
- $(top_srcdir)/m4/strptime.m4 $(top_srcdir)/m4/strtoull.m4 \
- $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
- $(top_srcdir)/m4/sys_ioctl_h.m4 \
+ $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \
+ $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strndup.m4 \
+ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strptime.m4 \
+ $(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \
+ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_ioctl_h.m4 \
$(top_srcdir)/m4/sys_select_h.m4 \
$(top_srcdir)/m4/sys_socket_h.m4 \
$(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- cscope distdir dist dist-all distcheck
+ cscope distdir distdir-am dist dist-all distcheck
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
distcleancheck_listfiles = find . -type f -print
-pkglibexecdir = @pkglibexecdir@
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
ALLOCA_H = @ALLOCA_H@
GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
GNULIB_ENVIRON = @GNULIB_ENVIRON@
GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
+GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@
GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
GNULIB_FCHDIR = @GNULIB_FCHDIR@
GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
GNULIB_FFSLL = @GNULIB_FFSLL@
GNULIB_FGETC = @GNULIB_FGETC@
GNULIB_FGETS = @GNULIB_FGETS@
+GNULIB_FNMATCH = @GNULIB_FNMATCH@
GNULIB_FOPEN = @GNULIB_FOPEN@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETPASS = @GNULIB_GETPASS@
GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@
GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@
GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@
GNULIB_LINKAT = @GNULIB_LINKAT@
GNULIB_LISTEN = @GNULIB_LISTEN@
GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
+GNULIB_LOCALENAME = @GNULIB_LOCALENAME@
GNULIB_LOCALTIME = @GNULIB_LOCALTIME@
GNULIB_LSEEK = @GNULIB_LSEEK@
GNULIB_LSTAT = @GNULIB_LSTAT@
GNULIB_READ = @GNULIB_READ@
GNULIB_READLINK = @GNULIB_READLINK@
GNULIB_READLINKAT = @GNULIB_READLINKAT@
+GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@
GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
GNULIB_REALPATH = @GNULIB_REALPATH@
GNULIB_RECV = @GNULIB_RECV@
HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@
+HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@
HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
+HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@
HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@
HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
HAVE_DUP3 = @HAVE_DUP3@
HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@
HAVE_FACCESSAT = @HAVE_FACCESSAT@
HAVE_FCHDIR = @HAVE_FCHDIR@
HAVE_FCHMODAT = @HAVE_FCHMODAT@
HAVE_FFS = @HAVE_FFS@
HAVE_FFSL = @HAVE_FFSL@
HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FNMATCH = @HAVE_FNMATCH@
+HAVE_FNMATCH_H = @HAVE_FNMATCH_H@
+HAVE_FREELOCALE = @HAVE_FREELOCALE@
HAVE_FSEEKO = @HAVE_FSEEKO@
HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
HAVE_GETLOGIN = @HAVE_GETLOGIN@
HAVE_GETOPT_H = @HAVE_GETOPT_H@
HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETPASS = @HAVE_GETPASS@
HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
HAVE_GRANTPT = @HAVE_GRANTPT@
HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
HAVE_ISBLANK = @HAVE_ISBLANK@
HAVE_ISWBLANK = @HAVE_ISWBLANK@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@
HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
+HAVE_NEWLOCALE = @HAVE_NEWLOCALE@
HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
HAVE_OPENAT = @HAVE_OPENAT@
HAVE_OS_H = @HAVE_OS_H@
HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
HAVE_READLINK = @HAVE_READLINK@
HAVE_READLINKAT = @HAVE_READLINKAT@
+HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@
HAVE_REALPATH = @HAVE_REALPATH@
HAVE_RENAMEAT = @HAVE_RENAMEAT@
HAVE_RPMATCH = @HAVE_RPMATCH@
HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
HAVE_TIMEGM = @HAVE_TIMEGM@
HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@
-HAVE_TRUNCATE = @HAVE_TRUNCATE@
HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
HAVE_TZSET = @HAVE_TZSET@
HAVE_UNISTD_H = @HAVE_UNISTD_H@
NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
+NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H@
NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@
NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
NEXT_ERRNO_H = @NEXT_ERRNO_H@
NEXT_FCNTL_H = @NEXT_FCNTL_H@
NEXT_FLOAT_H = @NEXT_FLOAT_H@
+NEXT_FNMATCH_H = @NEXT_FNMATCH_H@
NEXT_GETOPT_H = @NEXT_GETOPT_H@
NEXT_ICONV_H = @NEXT_ICONV_H@
NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
REPLACE_DUP = @REPLACE_DUP@
REPLACE_DUP2 = @REPLACE_DUP2@
REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_FACCESSAT = @REPLACE_FACCESSAT@
REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
REPLACE_FCLOSE = @REPLACE_FCLOSE@
REPLACE_FCNTL = @REPLACE_FCNTL@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FNMATCH = @REPLACE_FNMATCH@
REPLACE_FOPEN = @REPLACE_FOPEN@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_FPURGE = @REPLACE_FPURGE@
+REPLACE_FREELOCALE = @REPLACE_FREELOCALE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
REPLACE_FSEEK = @REPLACE_FSEEK@
REPLACE_FSEEKO = @REPLACE_FSEEKO@
REPLACE_GETLINE = @REPLACE_GETLINE@
REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_GETPASS = @REPLACE_GETPASS@
REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
REPLACE_GMTIME = @REPLACE_GMTIME@
REPLACE_ICONV = @REPLACE_ICONV@
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
REPLACE_MKTIME = @REPLACE_MKTIME@
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
+REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@
REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
REPLACE_NULL = @REPLACE_NULL@
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
am__include = @am__include@
+am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
-lispdir = @lispdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
$(am__remove_distdir)
test -d "$(distdir)" || mkdir "$(distdir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__post_remove_distdir)
+dist-tarZ: distdir
+ @echo WARNING: "Support for distribution archives compressed with" \
+ "legacy program 'compress' is deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__post_remove_distdir)
+
+dist-shar: distdir
+ @echo WARNING: "Support for shar distribution archives is" \
+ "deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
+ $(am__post_remove_distdir)
+
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
am--refresh check check-am clean clean-cscope clean-generic \
cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
- dist-gzip dist-hook dist-lzip dist-xz dist-zip distcheck \
- distclean distclean-generic distclean-tags distcleancheck \
- distdir distuninstallcheck dvi dvi-am html html-am info \
- info-am install install-am install-data install-data-am \
- install-dvi install-dvi-am install-exec install-exec-am \
- install-html install-html-am install-info install-info-am \
- install-man install-pdf install-pdf-am install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs installdirs-am maintainer-clean \
+ dist-gzip dist-hook dist-lzip dist-shar dist-tarZ dist-xz \
+ dist-zip distcheck distclean distclean-generic distclean-tags \
+ distcleancheck distdir distuninstallcheck dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
pdf-am ps ps-am tags tags-am uninstall uninstall-am
GNU diffutils NEWS -*- outline -*-
+* Noteworthy changes in release 3.7 (2018-12-31) [stable]
+
+** Bug fixes
+
+ diff --strip-trailing-cr with a single CR byte in one input file
+ would provoke an uninitialized memory read, e.g.,
+ diff -a --strip-trailing-cr <(printf '\r') <(echo a)
+ [bug introduced in 2.8 with addition of the --strip-trailing-cr option]
+
+** Improvements
+
+ diff --color now produces output compatible with less -R.
+
+
* Noteworthy changes in release 3.6 (2017-05-21) [stable]
** New features
\f
-Copyright (C) 1993-1994, 1998, 2001-2002, 2004, 2006, 2009-2013, 2015-2017 Free
+Copyright (C) 1993-1994, 1998, 2001-2002, 2004, 2006, 2009-2013, 2015-2018 Free
Software Foundation, Inc.
This file is part of GNU Diffutils.
-----
-Copyright (C) 1992, 1998, 2001-2002, 2004, 2009-2013, 2015-2017 Free Software
+Copyright (C) 1992, 1998, 2001-2002, 2004, 2009-2013, 2015-2018 Free Software
Foundation, Inc.
This file is part of GNU Diffutils.
-# generated automatically by aclocal 1.99a -*- Autoconf -*-
+# generated automatically by aclocal 1.16a -*- Autoconf -*-
-# Copyright (C) 1996-2015 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69.185-b502e],,
-[m4_warning([this file was generated for autoconf 2.69.185-b502e.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69.197-b8fd7],,
+[m4_warning([this file was generated for autoconf 2.69.197-b8fd7.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-# Copyright (C) 2002-2015 Free Software Foundation, Inc.
+# Copyright (C) 2002-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.99a'
+[am__api_version='1.16'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.99a], [],
+m4_if([$1], [1.16a], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.99a])dnl
+[AM_AUTOMAKE_VERSION([1.16a])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001-2015 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997-2015 Free Software Foundation, Inc.
+# Copyright (C) 1997-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 1999-2015 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# -------------
# Choose a directory name for dependency files.
# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
-AC_DEFUN([AM_SET_DEPDIR], [AC_SUBST([DEPDIR], [.deps])])
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
# AM_DEP_TRACK
# Generate code to set up dependency tracking. -*- Autoconf -*-
-# Copyright (C) 1999-2015 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Do all the work for Automake. -*- Autoconf -*-
-# Copyright (C) 1996-2015 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# release and drop the old call support.
AC_DEFUN([AM_INIT_AUTOMAKE],
[AC_PREREQ([2.65])dnl
-dnl Without this, packages using Gettext 0.18.2 might break horribly.
-AC_SUBST([mkdir_p], ['$(MKDIR_P)'])dnl
dnl Autoconf wants to disallow AM_ names. We explicitly allow
dnl the ones we care about.
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
# We need awk for the "check" target (and possibly the TAP driver). The
# system "awk" is bad on some platforms.
AC_REQUIRE([AC_PROG_AWK])dnl
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
[_AM_PROG_TAR([v7])])])
Aborting the configuration process, to ensure you take notice of the issue.
You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
If you want to complete the configuration process using your problematic
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001-2015 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
fi
AC_SUBST([install_sh])])
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
# Check to see how 'make' treats includes. -*- Autoconf -*-
-# Copyright (C) 2001-2015 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-# Copyright (C) 1997-2015 Free Software Foundation, Inc.
+# Copyright (C) 1997-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001-2015 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-# Copyright (C) 1999-2015 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-# Copyright (C) 2001-2015 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# Copyright (C) 1996-2015 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
rm -f conftest.file
])
-# Copyright (C) 2009-2015 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
-# Copyright (C) 2001-2015 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006-2015 Free Software Foundation, Inc.
+# Copyright (C) 2006-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004-2015 Free Software Foundation, Inc.
+# Copyright (C) 2004-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
]) # _AM_PROG_TAR
m4_include([m4/00gnulib.m4])
+m4_include([m4/__inline.m4])
m4_include([m4/absolute-header.m4])
m4_include([m4/alloca.m4])
m4_include([m4/arpa_inet_h.m4])
m4_include([m4/close.m4])
m4_include([m4/codeset.m4])
m4_include([m4/config-h.m4])
-m4_include([m4/configmake.m4])
m4_include([m4/ctype.m4])
m4_include([m4/dirname.m4])
m4_include([m4/double-slash-root.m4])
m4_include([m4/flexmember.m4])
m4_include([m4/float_h.m4])
m4_include([m4/fnmatch.m4])
+m4_include([m4/fnmatch_h.m4])
m4_include([m4/fpieee.m4])
m4_include([m4/freopen.m4])
m4_include([m4/fstat.m4])
m4_include([m4/gnu-make.m4])
m4_include([m4/gnulib-common.m4])
m4_include([m4/gnulib-comp.m4])
-m4_include([m4/hard-locale.m4])
+m4_include([m4/host-cpu-c-abi.m4])
m4_include([m4/iconv.m4])
m4_include([m4/iconv_h.m4])
m4_include([m4/iconv_open.m4])
m4_include([m4/mbtowc.m4])
m4_include([m4/memchr.m4])
m4_include([m4/minmax.m4])
+m4_include([m4/mkdir.m4])
m4_include([m4/mkstemp.m4])
m4_include([m4/mktime.m4])
m4_include([m4/mmap-anon.m4])
m4_include([m4/nl_langinfo.m4])
m4_include([m4/nls.m4])
m4_include([m4/nocrash.m4])
+m4_include([m4/nstrftime.m4])
m4_include([m4/off_t.m4])
+m4_include([m4/open-cloexec.m4])
m4_include([m4/open.m4])
m4_include([m4/pathmax.m4])
m4_include([m4/perror.m4])
m4_include([m4/rawmemchr.m4])
m4_include([m4/readlink.m4])
m4_include([m4/regex.m4])
-m4_include([m4/secure_getenv.m4])
m4_include([m4/select.m4])
m4_include([m4/setenv.m4])
m4_include([m4/setlocale.m4])
m4_include([m4/strcase.m4])
m4_include([m4/strerror.m4])
m4_include([m4/strerror_r.m4])
-m4_include([m4/strftime.m4])
m4_include([m4/string_h.m4])
m4_include([m4/strings_h.m4])
m4_include([m4/strndup.m4])
#! /bin/sh
# Print a version string.
-scriptversion=2017-01-09.19; # UTC
+scriptversion=2018-10-13.05; # UTC
# Bootstrap this package from checked-out sources.
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 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
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# Originally written by Paul Eggert. The canonical version of this
# script is maintained as build-aux/bootstrap in gnulib, however, to
me=$0
+default_gnulib_url=git://git.sv.gnu.org/gnulib
+
usage() {
cat <<EOF
Usage: $me [OPTION]...
For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR
are honored.
+Gnulib sources can be fetched in various ways:
+
+ * If this package is in a git repository with a 'gnulib' submodule
+ configured, then that submodule is initialized and updated and sources
+ are fetched from there. If \$GNULIB_SRCDIR is set (directly or via
+ --gnulib-srcdir) and is a git repository, then it is used as a reference.
+
+ * Otherwise, if \$GNULIB_SRCDIR is set (directly or via --gnulib-srcdir),
+ then sources are fetched from that local directory. If it is a git
+ repository and \$GNULIB_REVISION is set, then that revision is checked
+ out.
+
+ * Otherwise, if this package is in a git repository with a 'gnulib'
+ submodule configured, then that submodule is initialized and updated and
+ sources are fetched from there.
+
+ * Otherwise, if the 'gnulib' directory does not exist, Gnulib sources are
+ cloned into that directory using git from \$GNULIB_URL, defaulting to
+ $default_gnulib_url.
+ If \$GNULIB_REVISION is set, then that revision is checked out.
+
+ * Otherwise, the existing Gnulib sources in the 'gnulib' directory are
+ used. If it is a git repository and \$GNULIB_REVISION is set, then that
+ revision is checked out.
+
+If you maintain a package and want to pin a particular revision of the
+Gnulib sources that has been tested with your package, then there are two
+possible approaches: either configure a 'gnulib' submodule with the
+appropriate revision, or set \$GNULIB_REVISION (and if necessary
+\$GNULIB_URL) in $me.conf.
+
Running without arguments will suffice in most cases.
EOF
}
# Override it via your own definition in bootstrap.conf.
bootstrap_epilogue() { :; }
-# The command to download all .po files for a specified domain into
-# a specified directory. Fill in the first %s is the domain name, and
-# the second with the destination directory. Use rsync's -L and -r
-# options because the latest/%s directory and the .po files within are
-# all symlinks.
+# The command to download all .po files for a specified domain into a
+# specified directory. Fill in the first %s with the destination
+# directory and the second with the domain name.
po_download_command_format=\
-"rsync --delete --exclude '*.s1' -Lrtvz \
- 'translationproject.org::tp/latest/%s/' '%s'"
-
-# Fallback for downloading .po files (if rsync fails).
-po_download_command_format2=\
-"wget --mirror -nd -q -np -A.po -P '%s' \
- http://translationproject.org/latest/%s/"
+"wget --mirror --level=1 -nd -q -A.po -P '%s' \
+ https://translationproject.org/latest/%s/"
# Prefer a non-empty tarname (4th argument of AC_INIT if given), else
# fall back to the package name (1st argument with munging)
m4_base=m4
doc_base=doc
tests_base=tests
-gnulib_extra_files=''
+gnulib_extra_files="
+ build-aux/install-sh
+ build-aux/mdate-sh
+ build-aux/texinfo.tex
+ build-aux/depcomp
+ build-aux/config.guess
+ build-aux/config.sub
+ doc/INSTALL
+"
# Additional gnulib-tool options to use. Use "\newline" to break lines.
gnulib_tool_option_extras=
*) test -r "$0.conf" && . ./"$0.conf" ;;
esac
-# Extra files from gnulib, which override files from other sources.
-test -z "${gnulib_extra_files}" && \
- gnulib_extra_files="
- build-aux/install-sh
- build-aux/mdate-sh
- build-aux/texinfo.tex
- build-aux/depcomp
- build-aux/config.guess
- build-aux/config.sub
- doc/INSTALL
-"
-
if test "$vc_ignore" = auto; then
vc_ignore=
test -d .git && vc_ignore=.gitignore
test -d CVS && vc_ignore="$vc_ignore .cvsignore"
fi
+if test x"$gnulib_modules$gnulib_files$gnulib_extra_files" = x; then
+ use_gnulib=false
+else
+ use_gnulib=true
+fi
+
# Translate configuration into internal form.
# Parse options.
test -f .gitmodules && git config --file .gitmodules "$@"
}
-if $use_git; then
- gnulib_path=$(git_modules_config submodule.gnulib.path)
- test -z "$gnulib_path" && gnulib_path=gnulib
-fi
+if $use_gnulib; then
+ if $use_git; then
+ gnulib_path=$(git_modules_config submodule.gnulib.path)
+ test -z "$gnulib_path" && gnulib_path=gnulib
+ fi
-# Get gnulib files. Populate $GNULIB_SRCDIR, possibly updating a
-# submodule, for use in the rest of the script.
+ # Get gnulib files. Populate $GNULIB_SRCDIR, possibly updating a
+ # submodule, for use in the rest of the script.
-case ${GNULIB_SRCDIR--} in
--)
- # Note that $use_git is necessarily true in this case.
- if git_modules_config submodule.gnulib.url >/dev/null; then
- echo "$0: getting gnulib files..."
- git submodule init -- "$gnulib_path" || exit $?
- git submodule update -- "$gnulib_path" || exit $?
+ case ${GNULIB_SRCDIR--} in
+ -)
+ # Note that $use_git is necessarily true in this case.
+ if git_modules_config submodule.gnulib.url >/dev/null; then
+ echo "$0: getting gnulib files..."
+ git submodule init -- "$gnulib_path" || exit $?
+ git submodule update -- "$gnulib_path" || exit $?
- elif [ ! -d "$gnulib_path" ]; then
- echo "$0: getting gnulib files..."
+ elif [ ! -d "$gnulib_path" ]; then
+ echo "$0: getting gnulib files..."
- trap cleanup_gnulib 1 2 13 15
+ trap cleanup_gnulib 1 2 13 15
- shallow=
- git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2'
- git clone $shallow git://git.sv.gnu.org/gnulib "$gnulib_path" ||
- cleanup_gnulib
+ shallow=
+ if test -z "$GNULIB_REVISION"; then
+ git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2'
+ fi
+ git clone $shallow ${GNULIB_URL:-$default_gnulib_url} "$gnulib_path" \
+ || cleanup_gnulib
- trap - 1 2 13 15
- fi
- GNULIB_SRCDIR=$gnulib_path
- ;;
-*)
- # Use GNULIB_SRCDIR directly or as a reference.
- if $use_git && test -d "$GNULIB_SRCDIR"/.git && \
- git_modules_config submodule.gnulib.url >/dev/null; then
- echo "$0: getting gnulib files..."
- if git submodule -h|grep -- --reference > /dev/null; then
- # Prefer the one-liner available in git 1.6.4 or newer.
- git submodule update --init --reference "$GNULIB_SRCDIR" \
- "$gnulib_path" || exit $?
- else
- # This fallback allows at least git 1.5.5.
- if test -f "$gnulib_path"/gnulib-tool; then
- # Since file already exists, assume submodule init already complete.
- git submodule update -- "$gnulib_path" || exit $?
+ trap - 1 2 13 15
+ fi
+ GNULIB_SRCDIR=$gnulib_path
+ ;;
+ *)
+ # Use GNULIB_SRCDIR directly or as a reference.
+ if $use_git && test -d "$GNULIB_SRCDIR"/.git && \
+ git_modules_config submodule.gnulib.url >/dev/null; then
+ echo "$0: getting gnulib files..."
+ if git submodule -h|grep -- --reference > /dev/null; then
+ # Prefer the one-liner available in git 1.6.4 or newer.
+ git submodule update --init --reference "$GNULIB_SRCDIR" \
+ "$gnulib_path" || exit $?
else
- # Older git can't clone into an empty directory.
- rmdir "$gnulib_path" 2>/dev/null
- git clone --reference "$GNULIB_SRCDIR" \
- "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \
- && git submodule init -- "$gnulib_path" \
- && git submodule update -- "$gnulib_path" \
- || exit $?
+ # This fallback allows at least git 1.5.5.
+ if test -f "$gnulib_path"/gnulib-tool; then
+ # Since file already exists, assume submodule init already complete.
+ git submodule update -- "$gnulib_path" || exit $?
+ else
+ # Older git can't clone into an empty directory.
+ rmdir "$gnulib_path" 2>/dev/null
+ git clone --reference "$GNULIB_SRCDIR" \
+ "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \
+ && git submodule init -- "$gnulib_path" \
+ && git submodule update -- "$gnulib_path" \
+ || exit $?
+ fi
fi
+ GNULIB_SRCDIR=$gnulib_path
fi
- GNULIB_SRCDIR=$gnulib_path
+ ;;
+ esac
+
+ if test -d "$GNULIB_SRCDIR"/.git && test -n "$GNULIB_REVISION" \
+ && ! git_modules_config submodule.gnulib.url >/dev/null; then
+ (cd "$GNULIB_SRCDIR" && git checkout "$GNULIB_REVISION") || cleanup_gnulib
fi
- ;;
-esac
-# $GNULIB_SRCDIR now points to the version of gnulib to use, and
-# we no longer need to use git or $gnulib_path below here.
+ # $GNULIB_SRCDIR now points to the version of gnulib to use, and
+ # we no longer need to use git or $gnulib_path below here.
+
+ if $bootstrap_sync; then
+ cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || {
+ echo "$0: updating bootstrap and restarting..."
+ case $(sh -c 'echo "$1"' -- a) in
+ a) ignored=--;;
+ *) ignored=ignored;;
+ esac
+ exec sh -c \
+ 'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \
+ $ignored "$GNULIB_SRCDIR/build-aux/bootstrap" \
+ "$0" "$@" --no-bootstrap-sync
+ }
+ fi
-if $bootstrap_sync; then
- cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || {
- echo "$0: updating bootstrap and restarting..."
- case $(sh -c 'echo "$1"' -- a) in
- a) ignored=--;;
- *) ignored=ignored;;
- esac
- exec sh -c \
- 'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \
- $ignored "$GNULIB_SRCDIR/build-aux/bootstrap" \
- "$0" "$@" --no-bootstrap-sync
- }
+ gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
+ <$gnulib_tool || exit $?
fi
-gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
-<$gnulib_tool || exit $?
-
# Get translations.
download_po_files() {
subdir=$1
domain=$2
echo "$me: getting translations into $subdir for $domain..."
- cmd=$(printf "$po_download_command_format" "$domain" "$subdir")
- eval "$cmd" && return
- # Fallback to HTTP.
- cmd=$(printf "$po_download_command_format2" "$subdir" "$domain")
+ cmd=$(printf "$po_download_command_format" "$subdir" "$domain")
eval "$cmd"
}
# aren't confused into doing unnecessary builds. Conversely, if the
# existing symlink's timestamp is older than the source, make it afresh,
# so that broken tools aren't confused into skipping needed builds. See
- # <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00326.html>.
+ # <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00326.html>.
test -h "$dst" &&
src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 &&
dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 &&
# Import from gnulib.
-gnulib_tool_options="\
- --import\
- --no-changelog\
- --aux-dir $build_aux\
- --doc-base $doc_base\
- --lib $gnulib_name\
- --m4-base $m4_base/\
- --source-base $source_base/\
- --tests-base $tests_base\
- --local-dir $local_gl_dir\
- $gnulib_tool_option_extras\
-"
-if test $use_libtool = 1; then
- case "$gnulib_tool_options " in
- *' --libtool '*) ;;
- *) gnulib_tool_options="$gnulib_tool_options --libtool" ;;
- esac
-fi
-echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
-$gnulib_tool $gnulib_tool_options --import $gnulib_modules \
- || die "gnulib-tool failed"
+if $use_gnulib; then
+ gnulib_tool_options="\
+ --no-changelog\
+ --aux-dir=$build_aux\
+ --doc-base=$doc_base\
+ --lib=$gnulib_name\
+ --m4-base=$m4_base/\
+ --source-base=$source_base/\
+ --tests-base=$tests_base\
+ --local-dir=$local_gl_dir\
+ $gnulib_tool_option_extras\
+ "
+ if test $use_libtool = 1; then
+ case "$gnulib_tool_options " in
+ *' --libtool '*) ;;
+ *) gnulib_tool_options="$gnulib_tool_options --libtool" ;;
+ esac
+ fi
+ echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
+ $gnulib_tool $gnulib_tool_options --import $gnulib_modules \
+ || die "gnulib-tool failed"
-for file in $gnulib_files; do
- symlink_to_dir "$GNULIB_SRCDIR" $file \
- || die "failed to symlink $file"
-done
+ for file in $gnulib_files; do
+ symlink_to_dir "$GNULIB_SRCDIR" $file \
+ || die "failed to symlink $file"
+ done
+fi
bootstrap_post_import_hook \
|| die "bootstrap_post_import_hook failed"
echo "$0: done. Now you can run './configure'."
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
if 0;
# Generate a release announcement message.
-my $VERSION = '2016-01-12 23:09'; # UTC
+my $VERSION = '2018-03-07 03:46'; # UTC
# The definition above must lie within the first 8 lines in order
# for the Emacs time-stamp write hook (at end) to update it.
# If you change this file with Emacs, please let the write hook
# do its job. Otherwise, update this string manually.
-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
+# Copyright (C) 2002-2018 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
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# Written by Jim Meyering
if ($url_dir_list[0] =~ "gnu\.org")
{
print "Use a mirror for higher download bandwidth:\n";
- if (@tarballs == 1 && $url_dir_list[0] =~ m!http://ftp\.gnu\.org/gnu/!)
+ if (@tarballs == 1 && $url_dir_list[0] =~ m!https://ftp\.gnu\.org/gnu/!)
{
(my $m = "$url_dir_list[0]/$tarballs[0]")
- =~ s!http://ftp\.gnu\.org/gnu/!http://ftpmirror\.gnu\.org/!;
+ =~ s!https://ftp\.gnu\.org/gnu/!https://ftpmirror\.gnu\.org/!;
print " $m\n"
. " $m.sig\n\n";
}
else
{
- print " http://www.gnu.org/order/ftp.html\n\n";
+ print " https://www.gnu.org/order/ftp.html\n\n";
}
}
## perl-label-offset: -2
## perl-extra-newline-before-brace: t
## perl-merge-trailing-else: nil
-## eval: (add-hook 'write-file-hooks 'time-stamp)
+## eval: (add-hook 'before-save-hook 'time-stamp)
## time-stamp-start: "my $VERSION = '"
## time-stamp-format: "%:y-%02m-%02d %02H:%02M"
## time-stamp-time-zone: "UTC0"
#! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1999-2015 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# Local Variables:
# mode: shell-script
# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
-timestamp='2017-05-11'
+timestamp='2018-12-07'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
#
# Please send patches to <config-patches@gnu.org>.
Output the configuration name of the system \`$me' is run on.
-Operation modes:
+Options:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2017 Free Software Foundation, Inc.
+Copyright 1992-2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
exit 1
fi
-trap 'exit 1' 1 2 15
-
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
# Portable tmp directory creation inspired by the Autoconf team.
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int x;" > $dummy.c ;
- for c in cc gcc c89 c99 ; do
- if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$c"; break ;
- fi ;
- done ;
- if test x"$CC_FOR_BUILD" = x ; then
- CC_FOR_BUILD=no_compiler_found ;
- fi
- ;;
- ,,*) CC_FOR_BUILD=$CC ;;
- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
+tmp=
+# shellcheck disable=SC2172
+trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
+
+set_cc_for_build() {
+ : "${TMPDIR=/tmp}"
+ # shellcheck disable=SC2039
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
+ dummy=$tmp/dummy
+ case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
+ ,,) echo "int x;" > "$dummy.c"
+ for driver in cc gcc c89 c99 ; do
+ if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$driver"
+ break
+ fi
+ done
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+ esac
+}
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+if test -f /.attbin/uname ; then
PATH=$PATH:/.attbin ; export PATH
fi
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-case "${UNAME_SYSTEM}" in
+case "$UNAME_SYSTEM" in
Linux|GNU|GNU/*)
# If the system lacks a compiler, then just pick glibc.
# We could probably try harder.
LIBC=gnu
- eval $set_cc_for_build
- cat <<-EOF > $dummy.c
+ set_cc_for_build
+ cat <<-EOF > "$dummy.c"
#include <features.h>
#if defined(__UCLIBC__)
LIBC=uclibc
LIBC=gnu
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+ eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
+
+ # If ldd exists, use it to detect musl libc.
+ if command -v ldd >/dev/null && \
+ ldd --version 2>&1 | grep -q ^musl
+ then
+ LIBC=musl
+ fi
;;
esac
# Note: order is significant - the case branches are not exclusive.
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
- /sbin/$sysctl 2>/dev/null || \
- /usr/sbin/$sysctl 2>/dev/null || \
+ "/sbin/$sysctl" 2>/dev/null || \
+ "/usr/sbin/$sysctl" 2>/dev/null || \
echo unknown)`
- case "${UNAME_MACHINE_ARCH}" in
+ case "$UNAME_MACHINE_ARCH" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
earmv*)
- arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
- endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
- machine=${arch}${endian}-unknown
+ arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+ endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
+ machine="${arch}${endian}"-unknown
;;
- *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently (or will in the future) and ABI.
- case "${UNAME_MACHINE_ARCH}" in
+ case "$UNAME_MACHINE_ARCH" in
earm*)
os=netbsdelf
;;
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- eval $set_cc_for_build
+ set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
then
;;
esac
# Determine ABI tags.
- case "${UNAME_MACHINE_ARCH}" in
+ case "$UNAME_MACHINE_ARCH" in
earm*)
expr='s/^earmv[0-9]/-eabi/;s/eb$//'
- abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
+ abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
;;
esac
# The OS release
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
- case "${UNAME_VERSION}" in
+ case "$UNAME_VERSION" in
Debian*)
release='-gnu'
;;
*)
- release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
+ release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}${abi}"
+ echo "$machine-${os}${release}${abi-}"
exit ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+ echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
exit ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
exit ;;
*:LibertyBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
+ exit ;;
+ *:MidnightBSD:*:*)
+ echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
exit ;;
*:ekkoBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
exit ;;
*:SolidBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
exit ;;
macppc:MirBSD:*:*)
- echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+ echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
exit ;;
*:MirBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
exit ;;
*:Sortix:*:*)
- echo ${UNAME_MACHINE}-unknown-sortix
+ echo "$UNAME_MACHINE"-unknown-sortix
exit ;;
+ *:Redox:*:*)
+ echo "$UNAME_MACHINE"-unknown-redox
+ exit ;;
+ mips:OSF1:*.*)
+ echo mips-dec-osf1
+ exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+ echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
exitcode=$?
trap '' 0
exit $exitcode ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-unknown-sysv4
exit ;;
*:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
+ echo "$UNAME_MACHINE"-unknown-amigaos
exit ;;
*:[Mm]orph[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-morphos
+ echo "$UNAME_MACHINE"-unknown-morphos
exit ;;
*:OS/390:*:*)
echo i370-ibm-openedition
echo powerpc-ibm-os400
exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
+ echo arm-acorn-riscix"$UNAME_RELEASE"
exit ;;
arm*:riscos:*:*|arm*:RISCOS:*:*)
echo arm-unknown-riscos
sparc) echo sparc-icl-nx7; exit ;;
esac ;;
s390x:SunOS:*:*)
- echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
exit ;;
sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
exit ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
- echo i386-pc-auroraux${UNAME_RELEASE}
+ echo i386-pc-auroraux"$UNAME_RELEASE"
exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- eval $set_cc_for_build
+ set_cc_for_build
SUN_ARCH=i386
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
SUN_ARCH=x86_64
fi
fi
- echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
exit ;;
sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
+ echo m68k-sun-sunos"$UNAME_RELEASE"
exit ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
+ test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
case "`/bin/arch`" in
sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
+ echo m68k-sun-sunos"$UNAME_RELEASE"
;;
sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
+ echo sparc-sun-sunos"$UNAME_RELEASE"
;;
esac
exit ;;
aushp:SunOS:*:*)
- echo sparc-auspex-sunos${UNAME_RELEASE}
+ echo sparc-auspex-sunos"$UNAME_RELEASE"
exit ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint"$UNAME_RELEASE"
exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint"$UNAME_RELEASE"
exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint"$UNAME_RELEASE"
exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
+ echo m68k-milan-mint"$UNAME_RELEASE"
exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
+ echo m68k-hades-mint"$UNAME_RELEASE"
exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
+ echo m68k-unknown-mint"$UNAME_RELEASE"
exit ;;
m68k:machten:*:*)
- echo m68k-apple-machten${UNAME_RELEASE}
+ echo m68k-apple-machten"$UNAME_RELEASE"
exit ;;
powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
+ echo powerpc-apple-machten"$UNAME_RELEASE"
exit ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
exit ;;
RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
+ echo mips-dec-ultrix"$UNAME_RELEASE"
exit ;;
VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
+ echo vax-dec-ultrix"$UNAME_RELEASE"
exit ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
+ echo clipper-intergraph-clix"$UNAME_RELEASE"
exit ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#ifdef __cplusplus
#include <stdio.h> /* for printf() prototype */
int main (int argc, char *argv[]) {
#endif
#if defined (host_mips) && defined (MIPSEB)
#if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
#endif
#endif
exit (-1);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c &&
- dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
- SYSTEM_NAME=`$dummy $dummyarg` &&
+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
+ dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
{ echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos${UNAME_RELEASE}
+ echo mips-mips-riscos"$UNAME_RELEASE"
exit ;;
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
+ if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
+ [ "$TARGET_BINARY_INTERFACE"x = x ]
then
- echo m88k-dg-dgux${UNAME_RELEASE}
+ echo m88k-dg-dgux"$UNAME_RELEASE"
else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ echo m88k-dg-dguxbcs"$UNAME_RELEASE"
fi
else
- echo i586-dg-dgux${UNAME_RELEASE}
+ echo i586-dg-dgux"$UNAME_RELEASE"
fi
exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m68k-tektronix-bsd
exit ;;
*:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
exit ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
fi
- echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
exit ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#include <sys/systemcfg.h>
main()
exit(0);
}
EOF
- if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
then
echo "$SYSTEM_NAME"
else
exit ;;
*:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
- if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
exit ;;
*:AIX:*:*)
echo rs6000-ibm-aix
exit ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
echo romp-ibm-bsd4.4
exit ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to
exit ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
echo m68k-hp-bsd4.4
exit ;;
9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
+ HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+ case "$UNAME_MACHINE" in
+ 9000/31?) HP_ARCH=m68000 ;;
+ 9000/[34]??) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
+ case "$sc_cpu_version" in
523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
+ case "$sc_kernel_bits" in
32) HP_ARCH=hppa2.0n ;;
64) HP_ARCH=hppa2.0w ;;
'') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
esac ;;
esac
fi
- if [ "${HP_ARCH}" = "" ]; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ if [ "$HP_ARCH" = "" ]; then
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#define _HPUX_SOURCE
#include <stdlib.h>
exit (0);
}
EOF
- (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
- if [ ${HP_ARCH} = hppa2.0w ]
+ if [ "$HP_ARCH" = hppa2.0w ]
then
- eval $set_cc_for_build
+ set_cc_for_build
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
HP_ARCH=hppa64
fi
fi
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
exit ;;
ia64:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux${HPUX_REV}
+ HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux"$HPUX_REV"
exit ;;
3050*:HI-UX:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#include <unistd.h>
int
main ()
exit (0);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
{ echo "$SYSTEM_NAME"; exit; }
echo unknown-hitachi-hiuxwe2
exit ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
echo hppa1.1-hp-bsd
exit ;;
9000/8??:4.3bsd:*:*)
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
echo hppa1.0-hp-mpeix
exit ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
echo hppa1.1-hp-osf
exit ;;
hp8??:OSF1:*:*)
exit ;;
i*86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
+ echo "$UNAME_MACHINE"-unknown-osf1mk
else
- echo ${UNAME_MACHINE}-unknown-osf1
+ echo "$UNAME_MACHINE"-unknown-osf1
fi
exit ;;
parisc*:Lites*:*:*)
echo c4-convex-bsd
exit ;;
CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*[A-Z]90:*:*:*)
- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
exit ;;
CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
*:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
+ FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
exit ;;
sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
+ echo sparc-unknown-bsdi"$UNAME_RELEASE"
exit ;;
*:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
+ exit ;;
+ arm:FreeBSD:*:*)
+ UNAME_PROCESSOR=`uname -p`
+ set_cc_for_build
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
+ else
+ echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
+ fi
exit ;;
*:FreeBSD:*:*)
UNAME_PROCESSOR=`/usr/bin/uname -p`
- case ${UNAME_PROCESSOR} in
+ case "$UNAME_PROCESSOR" in
amd64)
UNAME_PROCESSOR=x86_64 ;;
i386)
UNAME_PROCESSOR=i586 ;;
esac
- echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
exit ;;
i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
+ echo "$UNAME_MACHINE"-pc-cygwin
exit ;;
*:MINGW64*:*)
- echo ${UNAME_MACHINE}-pc-mingw64
+ echo "$UNAME_MACHINE"-pc-mingw64
exit ;;
*:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
+ echo "$UNAME_MACHINE"-pc-mingw32
exit ;;
*:MSYS*:*)
- echo ${UNAME_MACHINE}-pc-msys
- exit ;;
- i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
+ echo "$UNAME_MACHINE"-pc-msys
exit ;;
i*:PW*:*)
- echo ${UNAME_MACHINE}-pc-pw32
+ echo "$UNAME_MACHINE"-pc-pw32
exit ;;
*:Interix*:*)
- case ${UNAME_MACHINE} in
+ case "$UNAME_MACHINE" in
x86)
- echo i586-pc-interix${UNAME_RELEASE}
+ echo i586-pc-interix"$UNAME_RELEASE"
exit ;;
authenticamd | genuineintel | EM64T)
- echo x86_64-unknown-interix${UNAME_RELEASE}
+ echo x86_64-unknown-interix"$UNAME_RELEASE"
exit ;;
IA64)
- echo ia64-unknown-interix${UNAME_RELEASE}
+ echo ia64-unknown-interix"$UNAME_RELEASE"
exit ;;
esac ;;
- [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
- echo i${UNAME_MACHINE}-pc-mks
- exit ;;
- 8664:Windows_NT:*)
- echo x86_64-pc-mks
- exit ;;
- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i586-pc-interix
- exit ;;
i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
+ echo "$UNAME_MACHINE"-pc-uwin
exit ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
- echo x86_64-unknown-cygwin
- exit ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
+ echo x86_64-pc-cygwin
exit ;;
prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
*:GNU:*:*)
# the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+ echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
exit ;;
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
+ *:Minix:*:*)
+ echo "$UNAME_MACHINE"-unknown-minix
exit ;;
aarch64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
arc:Linux:*:* | arceb:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
arm*:Linux:*:*)
- eval $set_cc_for_build
+ set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
else
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
fi
fi
exit ;;
avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
cris:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
exit ;;
crisv32:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
exit ;;
e2k:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
frv:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
hexagon:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
i*86:Linux:*:*)
- echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+ echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
exit ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
k1om:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
mips:Linux:*:* | mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#undef CPU
#undef ${UNAME_MACHINE}
#undef ${UNAME_MACHINE}el
#endif
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+ eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
+ test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
;;
mips64el:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
openrisc*:Linux:*:*)
- echo or1k-unknown-linux-${LIBC}
+ echo or1k-unknown-linux-"$LIBC"
exit ;;
or32:Linux:*:* | or1k*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
padre:Linux:*:*)
- echo sparc-unknown-linux-${LIBC}
+ echo sparc-unknown-linux-"$LIBC"
exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-${LIBC}
+ echo hppa64-unknown-linux-"$LIBC"
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
- PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
- *) echo hppa-unknown-linux-${LIBC} ;;
+ PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
+ PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
+ *) echo hppa-unknown-linux-"$LIBC" ;;
esac
exit ;;
ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-${LIBC}
+ echo powerpc64-unknown-linux-"$LIBC"
exit ;;
ppc:Linux:*:*)
- echo powerpc-unknown-linux-${LIBC}
+ echo powerpc-unknown-linux-"$LIBC"
exit ;;
ppc64le:Linux:*:*)
- echo powerpc64le-unknown-linux-${LIBC}
+ echo powerpc64le-unknown-linux-"$LIBC"
exit ;;
ppcle:Linux:*:*)
- echo powerpcle-unknown-linux-${LIBC}
+ echo powerpcle-unknown-linux-"$LIBC"
exit ;;
riscv32:Linux:*:* | riscv64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+ echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
exit ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
tile*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+ echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
exit ;;
x86_64:Linux:*:*)
- echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+ echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
exit ;;
xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
- echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
exit ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
- echo ${UNAME_MACHINE}-pc-os2-emx
+ echo "$UNAME_MACHINE"-pc-os2-emx
exit ;;
i*86:XTS-300:*:STOP)
- echo ${UNAME_MACHINE}-unknown-stop
+ echo "$UNAME_MACHINE"-unknown-stop
exit ;;
i*86:atheos:*:*)
- echo ${UNAME_MACHINE}-unknown-atheos
+ echo "$UNAME_MACHINE"-unknown-atheos
exit ;;
i*86:syllable:*:*)
- echo ${UNAME_MACHINE}-pc-syllable
+ echo "$UNAME_MACHINE"-pc-syllable
exit ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
+ echo i386-unknown-lynxos"$UNAME_RELEASE"
exit ;;
i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ echo "$UNAME_MACHINE"-pc-msdosdjgpp
exit ;;
- i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
- UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ i*86:*:4.*:*)
+ UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
fi
exit ;;
i*86:*:5:[678]*)
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
exit ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
else
- echo ${UNAME_MACHINE}-pc-sysv32
+ echo "$UNAME_MACHINE"-pc-sysv32
fi
exit ;;
pc:*:*:*)
exit ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4
fi
exit ;;
mini*:CTIX:SYS*5:*)
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
+ echo m68k-unknown-lynxos"$UNAME_RELEASE"
exit ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
exit ;;
TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
+ echo sparc-unknown-lynxos"$UNAME_RELEASE"
exit ;;
rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ echo rs6000-unknown-lynxos"$UNAME_RELEASE"
exit ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ echo powerpc-unknown-lynxos"$UNAME_RELEASE"
exit ;;
SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
+ echo mips-dde-sysv"$UNAME_RELEASE"
exit ;;
RM*:ReliantUNIX-*:*:*)
echo mips-sni-sysv4
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
+ echo "$UNAME_MACHINE"-sni-sysv4
else
echo ns32k-sni-sysv
fi
exit ;;
i*86:VOS:*:*)
# From Paul.Green@stratus.com.
- echo ${UNAME_MACHINE}-stratus-vos
+ echo "$UNAME_MACHINE"-stratus-vos
exit ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
echo hppa1.1-stratus-vos
exit ;;
mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
+ echo m68k-apple-aux"$UNAME_RELEASE"
exit ;;
news*:NEWS-OS:6*:*)
echo mips-sony-newsos6
exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
+ echo mips-nec-sysv"$UNAME_RELEASE"
else
- echo mips-unknown-sysv${UNAME_RELEASE}
+ echo mips-unknown-sysv"$UNAME_RELEASE"
fi
exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo x86_64-unknown-haiku
exit ;;
SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
+ echo sx4-nec-superux"$UNAME_RELEASE"
exit ;;
SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
+ echo sx5-nec-superux"$UNAME_RELEASE"
exit ;;
SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux${UNAME_RELEASE}
+ echo sx6-nec-superux"$UNAME_RELEASE"
exit ;;
SX-7:SUPER-UX:*:*)
- echo sx7-nec-superux${UNAME_RELEASE}
+ echo sx7-nec-superux"$UNAME_RELEASE"
exit ;;
SX-8:SUPER-UX:*:*)
- echo sx8-nec-superux${UNAME_RELEASE}
+ echo sx8-nec-superux"$UNAME_RELEASE"
exit ;;
SX-8R:SUPER-UX:*:*)
- echo sx8r-nec-superux${UNAME_RELEASE}
+ echo sx8r-nec-superux"$UNAME_RELEASE"
exit ;;
SX-ACE:SUPER-UX:*:*)
- echo sxace-nec-superux${UNAME_RELEASE}
+ echo sxace-nec-superux"$UNAME_RELEASE"
exit ;;
Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ echo powerpc-apple-rhapsody"$UNAME_RELEASE"
exit ;;
*:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- eval $set_cc_for_build
+ set_cc_for_build
if test "$UNAME_PROCESSOR" = unknown ; then
UNAME_PROCESSOR=powerpc
fi
- if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+ if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
then
case $UNAME_PROCESSOR in
i386) UNAME_PROCESSOR=x86_64 ;;
powerpc) UNAME_PROCESSOR=powerpc64 ;;
esac
fi
+ # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+ if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_PPC >/dev/null
+ then
+ UNAME_PROCESSOR=powerpc
+ fi
fi
elif test "$UNAME_PROCESSOR" = i386 ; then
# Avoid executing cc on OS X 10.9, as it ships with a stub
# that Apple uses in portable devices.
UNAME_PROCESSOR=x86_64
fi
- echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
exit ;;
*:QNX:*:4*)
echo i386-pc-qnx
exit ;;
NEO-*:NONSTOP_KERNEL:*:*)
- echo neo-tandem-nsk${UNAME_RELEASE}
+ echo neo-tandem-nsk"$UNAME_RELEASE"
exit ;;
NSE-*:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk${UNAME_RELEASE}
+ echo nse-tandem-nsk"$UNAME_RELEASE"
exit ;;
NSR-*:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk${UNAME_RELEASE}
+ echo nsr-tandem-nsk"$UNAME_RELEASE"
+ exit ;;
+ NSV-*:NONSTOP_KERNEL:*:*)
+ echo nsv-tandem-nsk"$UNAME_RELEASE"
exit ;;
NSX-*:NONSTOP_KERNEL:*:*)
- echo nsx-tandem-nsk${UNAME_RELEASE}
+ echo nsx-tandem-nsk"$UNAME_RELEASE"
exit ;;
*:NonStop-UX:*:*)
echo mips-compaq-nonstopux
echo bs2000-siemens-sysv
exit ;;
DS/*:UNIX_System_V:*:*)
- echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
exit ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
+ # shellcheck disable=SC2154
if test "$cputype" = 386; then
UNAME_MACHINE=i386
else
UNAME_MACHINE="$cputype"
fi
- echo ${UNAME_MACHINE}-unknown-plan9
+ echo "$UNAME_MACHINE"-unknown-plan9
exit ;;
*:TOPS-10:*:*)
echo pdp10-unknown-tops10
echo pdp10-unknown-its
exit ;;
SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
+ echo mips-sei-seiux"$UNAME_RELEASE"
exit ;;
*:DragonFly:*:*)
- echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
exit ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "${UNAME_MACHINE}" in
+ case "$UNAME_MACHINE" in
A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-dec-vms ; exit ;;
V*) echo vax-dec-vms ; exit ;;
echo i386-pc-xenix
exit ;;
i*86:skyos:*:*)
- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
+ echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
exit ;;
i*86:rdos:*:*)
- echo ${UNAME_MACHINE}-pc-rdos
+ echo "$UNAME_MACHINE"-pc-rdos
exit ;;
i*86:AROS:*:*)
- echo ${UNAME_MACHINE}-pc-aros
+ echo "$UNAME_MACHINE"-pc-aros
exit ;;
x86_64:VMkernel:*:*)
- echo ${UNAME_MACHINE}-unknown-esx
+ echo "$UNAME_MACHINE"-unknown-esx
exit ;;
amd64:Isilon\ OneFS:*:*)
echo x86_64-unknown-onefs
exit ;;
+ *:Unleashed:*:*)
+ echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE"
+ exit ;;
+esac
+
+echo "$0: unable to guess system type" >&2
+
+case "$UNAME_MACHINE:$UNAME_SYSTEM" in
+ mips:Linux | mips64:Linux)
+ # If we got here on MIPS GNU/Linux, output extra information.
+ cat >&2 <<EOF
+
+NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
+the system type. Please install a C compiler and try again.
+EOF
+ ;;
esac
cat >&2 <<EOF
-$0: unable to guess system type
This script (version $timestamp), has failed to recognize the
-operating system you are using. If your script is old, overwrite
-config.guess and config.sub with the latest versions from:
+operating system you are using. If your script is old, overwrite *all*
+copies of config.guess and config.sub with the latest versions from:
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+ https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
and
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+ https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
If $0 has already been updated, send the following data and any
information you think might be pertinent to config-patches@gnu.org to
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
+UNAME_MACHINE = "$UNAME_MACHINE"
+UNAME_RELEASE = "$UNAME_RELEASE"
+UNAME_SYSTEM = "$UNAME_SYSTEM"
+UNAME_VERSION = "$UNAME_VERSION"
EOF
exit 1
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
# Output a system dependent set of variables, describing how to set the
# run time search path of shared libraries in an executable.
#
-# Copyright 1996-2017 Free Software Foundation, Inc.
+# Copyright 1996-2018 Free Software Foundation, Inc.
# Taken from GNU libtool, 2001
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
-timestamp='2017-04-02'
+timestamp='2018-12-16'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# Otherwise, we print the canonical config type on stdout and succeed.
# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
Canonicalize a configuration name.
-Operation modes:
+Options:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2017 Free Software Foundation, Inc.
+Copyright 1992-2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
- ) # Use stdin as input.
break ;;
-* )
- echo "$me: invalid option $1$help"
+ echo "$me: invalid option $1$help" >&2
exit 1 ;;
*local*)
# First pass through any local machine types.
- echo $1
+ echo "$1"
exit ;;
* )
exit 1;;
esac
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
- linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
- knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
- kopensolaris*-gnu* | cloudabi*-eabi* | \
- storm-chaos* | os2-emx* | rtmk-nova*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- android-linux)
- os=-linux-android
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
-esac
+# Split fields of configuration type
+IFS="-" read field1 field2 field3 field4 <<EOF
+$1
+EOF
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray | -microblaze*)
- os=
- basic_machine=$1
- ;;
- -bluegene*)
- os=-cnk
- ;;
- -sim | -cisco | -oki | -wec | -winbond)
- os=
- basic_machine=$1
- ;;
- -scout)
- ;;
- -wrs)
- os=-vxworks
- basic_machine=$1
- ;;
- -chorusos*)
- os=-chorusos
- basic_machine=$1
- ;;
- -chorusrdb)
- os=-chorusrdb
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco6)
- os=-sco5v6
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco5)
- os=-sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco5v6*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -udk*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -lynx*178)
- os=-lynxos178
- ;;
- -lynx*5)
- os=-lynxos5
- ;;
- -lynx*)
- os=-lynxos
+# Separate into logical components for further validation
+case $1 in
+ *-*-*-*-*)
+ echo Invalid configuration \`"$1"\': more than four components >&2
+ exit 1
;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ *-*-*-*)
+ basic_machine=$field1-$field2
+ os=$field3-$field4
;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ *-*-*)
+ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
+ # parts
+ maybe_os=$field2-$field3
+ case $maybe_os in
+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
+ | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
+ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
+ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
+ | storm-chaos* | os2-emx* | rtmk-nova*)
+ basic_machine=$field1
+ os=$maybe_os
+ ;;
+ android-linux)
+ basic_machine=$field1-unknown
+ os=linux-android
+ ;;
+ *)
+ basic_machine=$field1-$field2
+ os=$field3
+ ;;
+ esac
;;
- -psos*)
- os=-psos
+ *-*)
+ # A lone config we happen to match not fitting any pattern
+ case $field1-$field2 in
+ decstation-3100)
+ basic_machine=mips-dec
+ os=
+ ;;
+ *-*)
+ # Second component is usually, but not always the OS
+ case $field2 in
+ # Prevent following clause from handling this valid os
+ sun*os*)
+ basic_machine=$field1
+ os=$field2
+ ;;
+ # Manufacturers
+ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
+ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
+ | unicom* | ibm* | next | hp | isi* | apollo | altos* \
+ | convergent* | ncr* | news | 32* | 3600* | 3100* \
+ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
+ | ultra | tti* | harris | dolphin | highlevel | gould \
+ | cbm | ns | masscomp | apple | axis | knuth | cray \
+ | microblaze* | sim | cisco \
+ | oki | wec | wrs | winbond)
+ basic_machine=$field1-$field2
+ os=
+ ;;
+ *)
+ basic_machine=$field1
+ os=$field2
+ ;;
+ esac
+ ;;
+ esac
;;
- -mint | -mint[0-9]*)
- basic_machine=m68k-atari
- os=-mint
+ *)
+ # Convert single-component short-hands not valid as part of
+ # multi-component configurations.
+ case $field1 in
+ 386bsd)
+ basic_machine=i386-pc
+ os=bsd
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=udi
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=scout
+ ;;
+ alliant)
+ basic_machine=fx80-alliant
+ os=
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ os=
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=bsd
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=sysv
+ ;;
+ amiga)
+ basic_machine=m68k-unknown
+ os=
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ os=amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ os=sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=bsd
+ ;;
+ aros)
+ basic_machine=i386-pc
+ os=aros
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+ os=linux
+ ;;
+ cegcc)
+ basic_machine=arm-unknown
+ os=cegcc
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ os=bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ os=bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ os=bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ os=bsd
+ ;;
+ cray)
+ basic_machine=j90-cray
+ os=unicos
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ os=
+ ;;
+ da30)
+ basic_machine=m68k-da30
+ os=
+ ;;
+ decstation | pmax | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ os=
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ os=sysv3
+ ;;
+ dicos)
+ basic_machine=i686-pc
+ os=dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=msdosdjgpp
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=ebmon
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=ose
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ os=go32
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=sysv3
+ ;;
+ hp300)
+ basic_machine=m68k-hp
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=hpux
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=proelf
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=mach
+ ;;
+ vsta)
+ basic_machine=i386-pc
+ os=vsta
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=sysv
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ os=linux
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=sysv
+ ;;
+ mingw64)
+ basic_machine=x86_64-pc
+ os=mingw64
+ ;;
+ mingw32)
+ basic_machine=i686-pc
+ os=mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ os=mingw32ce
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=morphos
+ ;;
+ moxiebox)
+ basic_machine=moxie-unknown
+ os=moxiebox
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=msdos
+ ;;
+ msys)
+ basic_machine=i686-pc
+ os=msys
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=mvs
+ ;;
+ nacl)
+ basic_machine=le32-unknown
+ os=nacl
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-pc
+ os=netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=sysv
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ os=nonstopux
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ os=os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=os68k
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+ os=linux
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ os=pw32
+ ;;
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ os=rdos
+ ;;
+ rdos32)
+ basic_machine=i386-pc
+ os=rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=coff
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ os=udi
+ ;;
+ sei)
+ basic_machine=mips-sei
+ os=seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ os=
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=sysv2
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ os=
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ os=sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ os=
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ os=sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ os=sunos4
+ ;;
+ sun3)
+ basic_machine=m68k-sun
+ os=
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ os=sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ os=sunos4
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ os=
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ os=sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ os=sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=solaris2
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ os=
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ os=unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ os=unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ os=unicos
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ os=tops20
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ os=tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=vms
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ os=vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=vxworks
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ os=mingw32
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=unicos
+ ;;
+ *)
+ basic_machine=$1
+ os=
+ ;;
+ esac
;;
esac
-# Decode aliases for certain CPU-COMPANY combinations.
+# Decode 1-component or ad-hoc basic machines
case $basic_machine in
- # Recognize the basic CPU types without company name.
- # Some are omitted here because they have special meanings below.
- 1750a | 580 \
- | a29k \
- | aarch64 | aarch64_be \
- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
- | am33_2.0 \
- | arc | arceb \
- | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
- | avr | avr32 \
- | ba \
- | be32 | be64 \
- | bfin \
- | c4x | c8051 | clipper \
- | d10v | d30v | dlx | dsp16xx \
- | e2k | epiphany \
- | fido | fr30 | frv | ft32 \
- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- | hexagon \
- | i370 | i860 | i960 | ia16 | ia64 \
- | ip2k | iq2000 \
- | k1om \
- | le32 | le64 \
- | lm32 \
- | m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | mips16 \
- | mips64 | mips64el \
- | mips64octeon | mips64octeonel \
- | mips64orion | mips64orionel \
- | mips64r5900 | mips64r5900el \
- | mips64vr | mips64vrel \
- | mips64vr4100 | mips64vr4100el \
- | mips64vr4300 | mips64vr4300el \
- | mips64vr5000 | mips64vr5000el \
- | mips64vr5900 | mips64vr5900el \
- | mipsisa32 | mipsisa32el \
- | mipsisa32r2 | mipsisa32r2el \
- | mipsisa32r6 | mipsisa32r6el \
- | mipsisa64 | mipsisa64el \
- | mipsisa64r2 | mipsisa64r2el \
- | mipsisa64r6 | mipsisa64r6el \
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
- | mipsr5900 | mipsr5900el \
- | mipstx39 | mipstx39el \
- | mn10200 | mn10300 \
- | moxie \
- | mt \
- | msp430 \
- | nds32 | nds32le | nds32be \
- | nios | nios2 | nios2eb | nios2el \
- | ns16k | ns32k \
- | open8 | or1k | or1knd | or32 \
- | pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle \
- | pru \
- | pyramid \
- | riscv32 | riscv64 \
- | rl78 | rx \
- | score \
- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
- | sh64 | sh64le \
- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
- | spu \
- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
- | ubicom32 \
- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
- | visium \
- | wasm32 \
- | we32k \
- | x86 | xc16x | xstormy16 | xtensa \
- | z8k | z80)
- basic_machine=$basic_machine-unknown
- ;;
- c54x)
- basic_machine=tic54x-unknown
- ;;
- c55x)
- basic_machine=tic55x-unknown
- ;;
- c6x)
- basic_machine=tic6x-unknown
- ;;
- leon|leon[3-9])
- basic_machine=sparc-$basic_machine
- ;;
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
- basic_machine=$basic_machine-unknown
- os=-none
+ # Here we handle the default manufacturer of certain CPU types. It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ cpu=hppa1.1
+ vendor=winbond
;;
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ op50n)
+ cpu=hppa1.1
+ vendor=oki
;;
- ms1)
- basic_machine=mt-unknown
+ op60c)
+ cpu=hppa1.1
+ vendor=oki
;;
-
- strongarm | thumb | xscale)
- basic_machine=arm-unknown
+ ibm*)
+ cpu=i370
+ vendor=ibm
;;
- xgate)
- basic_machine=$basic_machine-unknown
- os=-none
+ orion105)
+ cpu=clipper
+ vendor=highlevel
;;
- xscaleeb)
- basic_machine=armeb-unknown
+ mac | mpw | mac-mpw)
+ cpu=m68k
+ vendor=apple
;;
-
- xscaleel)
- basic_machine=armel-unknown
+ pmac | pmac-mpw)
+ cpu=powerpc
+ vendor=apple
;;
- # We use `pc' rather than `unknown'
- # because (1) that's what they normally are, and
- # (2) the word "unknown" tends to confuse beginning users.
- i*86 | x86_64)
- basic_machine=$basic_machine-pc
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- 580-* \
- | a29k-* \
- | aarch64-* | aarch64_be-* \
- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
- | avr-* | avr32-* \
- | ba-* \
- | be32-* | be64-* \
- | bfin-* | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c4x-* \
- | c8051-* | clipper-* | craynv-* | cydra-* \
- | d10v-* | d30v-* | dlx-* \
- | e2k-* | elxsi-* \
- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
- | h8300-* | h8500-* \
- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
- | hexagon-* \
- | i*86-* | i860-* | i960-* | ia16-* | ia64-* \
- | ip2k-* | iq2000-* \
- | k1om-* \
- | le32-* | le64-* \
- | lm32-* \
- | m32c-* | m32r-* | m32rle-* \
- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
- | microblaze-* | microblazeel-* \
- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
- | mips16-* \
- | mips64-* | mips64el-* \
- | mips64octeon-* | mips64octeonel-* \
- | mips64orion-* | mips64orionel-* \
- | mips64r5900-* | mips64r5900el-* \
- | mips64vr-* | mips64vrel-* \
- | mips64vr4100-* | mips64vr4100el-* \
- | mips64vr4300-* | mips64vr4300el-* \
- | mips64vr5000-* | mips64vr5000el-* \
- | mips64vr5900-* | mips64vr5900el-* \
- | mipsisa32-* | mipsisa32el-* \
- | mipsisa32r2-* | mipsisa32r2el-* \
- | mipsisa32r6-* | mipsisa32r6el-* \
- | mipsisa64-* | mipsisa64el-* \
- | mipsisa64r2-* | mipsisa64r2el-* \
- | mipsisa64r6-* | mipsisa64r6el-* \
- | mipsisa64sb1-* | mipsisa64sb1el-* \
- | mipsisa64sr71k-* | mipsisa64sr71kel-* \
- | mipsr5900-* | mipsr5900el-* \
- | mipstx39-* | mipstx39el-* \
- | mmix-* \
- | mt-* \
- | msp430-* \
- | nds32-* | nds32le-* | nds32be-* \
- | nios-* | nios2-* | nios2eb-* | nios2el-* \
- | none-* | np1-* | ns16k-* | ns32k-* \
- | open8-* \
- | or1k*-* \
- | orion-* \
- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
- | pru-* \
- | pyramid-* \
- | riscv32-* | riscv64-* \
- | rl78-* | romp-* | rs6000-* | rx-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
- | sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
- | tahoe-* \
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
- | tile*-* \
- | tron-* \
- | ubicom32-* \
- | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
- | vax-* \
- | visium-* \
- | wasm32-* \
- | we32k-* \
- | x86-* | x86_64-* | xc16x-* | xps100-* \
- | xstormy16-* | xtensa*-* \
- | ymp-* \
- | z8k-* | z80-*)
- ;;
- # Recognize the basic CPU types without company name, with glob match.
- xtensa*)
- basic_machine=$basic_machine-unknown
- ;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
- 386bsd)
- basic_machine=i386-unknown
- os=-bsd
- ;;
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
+ cpu=m68000
+ vendor=att
;;
3b*)
- basic_machine=we32k-att
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
- abacus)
- basic_machine=abacus-unknown
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amd64)
- basic_machine=x86_64-pc
- ;;
- amd64-*)
- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-unknown
- ;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aros)
- basic_machine=i386-pc
- os=-aros
- ;;
- asmjs)
- basic_machine=asmjs-unknown
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- blackfin)
- basic_machine=bfin-unknown
- os=-linux
- ;;
- blackfin-*)
- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
+ cpu=we32k
+ vendor=att
;;
bluegene*)
- basic_machine=powerpc-ibm
- os=-cnk
- ;;
- c54x-*)
- basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c55x-*)
- basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c6x-*)
- basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c90)
- basic_machine=c90-cray
- os=-unicos
- ;;
- cegcc)
- basic_machine=arm-unknown
- os=-cegcc
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | j90)
- basic_machine=j90-cray
- os=-unicos
- ;;
- craynv)
- basic_machine=craynv-cray
- os=-unicosmp
- ;;
- cr16 | cr16-*)
- basic_machine=cr16-unknown
- os=-elf
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- crisv32 | crisv32-* | etraxfs*)
- basic_machine=crisv32-axis
- ;;
- cris | cris-* | etrax*)
- basic_machine=cris-axis
- ;;
- crx)
- basic_machine=crx-unknown
- os=-elf
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
+ cpu=powerpc
+ vendor=ibm
+ os=cnk
;;
decsystem10* | dec10*)
- basic_machine=pdp10-dec
- os=-tops10
+ cpu=pdp10
+ vendor=dec
+ os=tops10
;;
decsystem20* | dec20*)
- basic_machine=pdp10-dec
- os=-tops20
+ cpu=pdp10
+ vendor=dec
+ os=tops20
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
- basic_machine=m68k-motorola
+ cpu=m68k
+ vendor=motorola
;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dicos)
- basic_machine=i686-pc
- os=-dicos
- ;;
- djgpp)
- basic_machine=i586-pc
- os=-msdosdjgpp
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
- ;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- e500v[12])
- basic_machine=powerpc-unknown
- os=$os"spe"
- ;;
- e500v[12]-*)
- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=$os"spe"
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
+ dpx2*)
+ cpu=m68k
+ vendor=bull
+ os=sysv3
;;
encore | umax | mmax)
- basic_machine=ns32k-encore
+ cpu=ns32k
+ vendor=encore
;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
+ elxsi)
+ cpu=elxsi
+ vendor=elxsi
+ os=${os:-bsd}
;;
fx2800)
- basic_machine=i860-alliant
+ cpu=i860
+ vendor=alliant
;;
genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- go32)
- basic_machine=i386-pc
- os=-go32
+ cpu=ns32k
+ vendor=ns
;;
h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
+ cpu=hppa1.1
+ vendor=hitachi
+ os=hiuxwe2
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
- basic_machine=hppa1.0-hp
+ cpu=hppa1.0
+ vendor=hp
;;
hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
+ cpu=m68000
+ vendor=hp
;;
hp9k3[2-9][0-9])
- basic_machine=m68k-hp
+ cpu=m68k
+ vendor=hp
;;
hp9k6[0-9][0-9] | hp6[0-9][0-9])
- basic_machine=hppa1.0-hp
+ cpu=hppa1.0
+ vendor=hp
;;
hp9k7[0-79][0-9] | hp7[0-79][0-9])
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k78[0-9] | hp78[0-9])
# FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
# FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k8[0-9][13679] | hp8[0-9][13679])
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppa-next)
- os=-nextstep3
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
+ cpu=hppa1.0
+ vendor=hp
;;
i*86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ os=sysv32
;;
i*86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ os=sysv4
;;
i*86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ os=sysv
;;
i*86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
- ;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ os=solaris2
;;
- i386-vsta | vsta)
- basic_machine=i386-unknown
- os=-vsta
+ j90 | j90-cray)
+ cpu=j90
+ vendor=cray
+ os=${os:-unicos}
;;
iris | iris4d)
- basic_machine=mips-sgi
+ cpu=mips
+ vendor=sgi
case $os in
- -irix*)
+ irix*)
;;
*)
- os=-irix4
+ os=irix4
;;
esac
;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- leon-*|leon[3-9]-*)
- basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
- ;;
- m68knommu)
- basic_machine=m68k-unknown
- os=-linux
- ;;
- m68knommu-*)
- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
- ;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- microblaze*)
- basic_machine=microblaze-xilinx
- ;;
- mingw64)
- basic_machine=x86_64-pc
- os=-mingw64
- ;;
- mingw32)
- basic_machine=i686-pc
- os=-mingw32
- ;;
- mingw32ce)
- basic_machine=arm-unknown
- os=-mingw32ce
- ;;
miniframe)
- basic_machine=m68000-convergent
- ;;
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
- mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
- ;;
- mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- morphos)
- basic_machine=powerpc-unknown
- os=-morphos
- ;;
- moxiebox)
- basic_machine=moxie-unknown
- os=-moxiebox
- ;;
- msdos)
- basic_machine=i386-pc
- os=-msdos
- ;;
- ms1-*)
- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
- ;;
- msys)
- basic_machine=i686-pc
- os=-msys
- ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
- ;;
- nacl)
- basic_machine=le32-unknown
- os=-nacl
+ cpu=m68000
+ vendor=convergent
;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- netbsd386)
- basic_machine=i386-unknown
- os=-netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=-linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
+ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ cpu=m68k
+ vendor=atari
+ os=mint
;;
news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
+ cpu=mips
+ vendor=sony
+ os=newsos
;;
- necv70)
- basic_machine=v70-nec
- os=-sysv
- ;;
- next | m*-next )
- basic_machine=m68k-next
+ next | m*-next)
+ cpu=m68k
+ vendor=next
case $os in
- -nextstep* )
+ nextstep* )
;;
- -ns2*)
- os=-nextstep2
+ ns2*)
+ os=nextstep2
;;
*)
- os=-nextstep3
+ os=nextstep3
;;
esac
;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=-mon960
- ;;
- nonstopux)
- basic_machine=mips-compaq
- os=-nonstopux
- ;;
np1)
- basic_machine=np1-gould
- ;;
- neo-tandem)
- basic_machine=neo-tandem
- ;;
- nse-tandem)
- basic_machine=nse-tandem
- ;;
- nsr-tandem)
- basic_machine=nsr-tandem
- ;;
- nsx-tandem)
- basic_machine=nsx-tandem
+ cpu=np1
+ vendor=gould
;;
op50n-* | op60c-*)
- basic_machine=hppa1.1-oki
- os=-proelf
- ;;
- openrisc | openrisc-*)
- basic_machine=or32-unknown
- ;;
- os400)
- basic_machine=powerpc-ibm
- os=-os400
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
+ cpu=hppa1.1
+ vendor=oki
+ os=proelf
;;
pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- parisc)
- basic_machine=hppa-unknown
- os=-linux
- ;;
- parisc-*)
- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
+ cpu=hppa1.1
+ vendor=hitachi
+ os=hiuxwe2
;;
pbd)
- basic_machine=sparc-tti
+ cpu=sparc
+ vendor=tti
;;
pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
+ cpu=m68k
+ vendor=tti
;;
- pc98)
- basic_machine=i386-pc
- ;;
- pc98-*)
- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentium | p5 | k5 | k6 | nexgen | viac3)
- basic_machine=i586-pc
- ;;
- pentiumpro | p6 | 6x86 | athlon | athlon_*)
- basic_machine=i686-pc
- ;;
- pentiumii | pentium2 | pentiumiii | pentium3)
- basic_machine=i686-pc
- ;;
- pentium4)
- basic_machine=i786-pc
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumpro-* | p6-* | 6x86-* | athlon-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentium4-*)
- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ pc532)
+ cpu=ns32k
+ vendor=pc532
;;
pn)
- basic_machine=pn-gould
+ cpu=pn
+ vendor=gould
;;
- power) basic_machine=power-ibm
- ;;
- ppc | ppcbe) basic_machine=powerpc-unknown
- ;;
- ppc-* | ppcbe-*)
- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppcle | powerpclittle)
- basic_machine=powerpcle-unknown
- ;;
- ppcle-* | powerpclittle-*)
- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64) basic_machine=powerpc64-unknown
- ;;
- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64le | powerpc64little)
- basic_machine=powerpc64le-unknown
- ;;
- ppc64le-* | powerpc64little-*)
- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ power)
+ cpu=power
+ vendor=ibm
;;
ps2)
- basic_machine=i386-ibm
- ;;
- pw32)
- basic_machine=i586-unknown
- os=-pw32
- ;;
- rdos | rdos64)
- basic_machine=x86_64-pc
- os=-rdos
- ;;
- rdos32)
- basic_machine=i386-pc
- os=-rdos
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=-coff
+ cpu=i386
+ vendor=ibm
;;
rm[46]00)
- basic_machine=mips-siemens
+ cpu=mips
+ vendor=siemens
;;
rtpc | rtpc-*)
- basic_machine=romp-ibm
- ;;
- s390 | s390-*)
- basic_machine=s390-ibm
- ;;
- s390x | s390x-*)
- basic_machine=s390x-ibm
- ;;
- sa29200)
- basic_machine=a29k-amd
- os=-udi
- ;;
- sb1)
- basic_machine=mipsisa64sb1-unknown
- ;;
- sb1el)
- basic_machine=mipsisa64sb1el-unknown
+ cpu=romp
+ vendor=ibm
;;
sde)
- basic_machine=mipsisa32-sde
- os=-elf
+ cpu=mipsisa32
+ vendor=sde
+ os=${os:-elf}
;;
- sei)
- basic_machine=mips-sei
- os=-seiux
+ simso-wrs)
+ cpu=sparclite
+ vendor=wrs
+ os=vxworks
;;
- sequent)
- basic_machine=i386-sequent
+ tower | tower-32)
+ cpu=m68k
+ vendor=ncr
;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
+ vpp*|vx|vx-*)
+ cpu=f301
+ vendor=fujitsu
;;
- sh5el)
- basic_machine=sh5le-unknown
+ w65)
+ cpu=w65
+ vendor=wdc
;;
- sh64)
- basic_machine=sh64-unknown
+ w89k-*)
+ cpu=hppa1.1
+ vendor=winbond
+ os=proelf
;;
- sparclite-wrs | simso-wrs)
- basic_machine=sparclite-wrs
- os=-vxworks
+ none)
+ cpu=none
+ vendor=none
;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
+ leon|leon[3-9])
+ cpu=sparc
+ vendor=$basic_machine
;;
- spur)
- basic_machine=spur-unknown
+ leon-*|leon[3-9]-*)
+ cpu=sparc
+ vendor=`echo "$basic_machine" | sed 's/-.*//'`
;;
- st2000)
- basic_machine=m68k-tandem
+
+ *-*)
+ IFS="-" read cpu vendor <<EOF
+$basic_machine
+EOF
;;
- stratus)
- basic_machine=i860-stratus
- os=-sysv4
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ cpu=$basic_machine
+ vendor=pc
;;
- strongarm-* | thumb-*)
- basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+ # These rules are duplicated from below for sake of the special case above;
+ # i.e. things that normalized to x86 arches should also default to "pc"
+ pc98)
+ cpu=i386
+ vendor=pc
;;
- sun2)
- basic_machine=m68000-sun
+ x64 | amd64)
+ cpu=x86_64
+ vendor=pc
;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
+ # Recognize the basic CPU types without company name.
+ *)
+ cpu=$basic_machine
+ vendor=unknown
;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
+esac
+
+unset -v basic_machine
+
+# Decode basic machines in the full and proper CPU-Company form.
+case $cpu-$vendor in
+ # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+ craynv-unknown)
+ vendor=cray
+ os=${os:-unicosmp}
;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
+ c90-unknown | c90-cray)
+ vendor=cray
+ os=${os:-unicos}
;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
+ fx80-unknown)
+ vendor=alliant
;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
+ romp-unknown)
+ vendor=ibm
;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
+ mmix-unknown)
+ vendor=knuth
;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
+ microblaze-unknown | microblazeel-unknown)
+ vendor=xilinx
;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
+ rs6000-unknown)
+ vendor=ibm
;;
- sun4)
- basic_machine=sparc-sun
+ vax-unknown)
+ vendor=dec
;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
+ pdp11-unknown)
+ vendor=dec
;;
- sv1)
- basic_machine=sv1-cray
- os=-unicos
+ we32k-unknown)
+ vendor=att
;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
+ cydra-unknown)
+ vendor=cydrome
;;
- t3e)
- basic_machine=alphaev5-cray
- os=-unicos
+ i370-ibm*)
+ vendor=ibm
;;
- t90)
- basic_machine=t90-cray
- os=-unicos
+ orion-unknown)
+ vendor=highlevel
;;
- tile*)
- basic_machine=$basic_machine-unknown
- os=-linux-gnu
+ xps-unknown | xps100-unknown)
+ cpu=xps100
+ vendor=honeywell
;;
- tx39)
- basic_machine=mipstx39-unknown
+
+ # Here we normalize CPU types with a missing or matching vendor
+ dpx20-unknown | dpx20-bull)
+ cpu=rs6000
+ vendor=bull
+ os=${os:-bosx}
;;
- tx39el)
- basic_machine=mipstx39el-unknown
+
+ # Here we normalize CPU types irrespective of the vendor
+ amd64-*)
+ cpu=x86_64
;;
- toad1)
- basic_machine=pdp10-xkl
- os=-tops20
+ blackfin-*)
+ cpu=bfin
+ os=linux
;;
- tower | tower-32)
- basic_machine=m68k-ncr
+ c54x-*)
+ cpu=tic54x
;;
- tpf)
- basic_machine=s390x-ibm
- os=-tpf
+ c55x-*)
+ cpu=tic55x
;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
+ c6x-*)
+ cpu=tic6x
;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
+ e500v[12]-*)
+ cpu=powerpc
+ os=$os"spe"
;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
+ mips3*-*)
+ cpu=mips64
;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
+ ms1-*)
+ cpu=mt
;;
- vms)
- basic_machine=vax-dec
- os=-vms
+ m68knommu-*)
+ cpu=m68k
+ os=linux
;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
+ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
+ cpu=s12z
;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
+ openrisc-*)
+ cpu=or32
;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
+ parisc-*)
+ cpu=hppa
+ os=linux
;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ cpu=i586
;;
- wasm32)
- basic_machine=wasm32-unknown
+ pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
+ cpu=i686
;;
- w65*)
- basic_machine=w65-wdc
- os=-none
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ cpu=i686
;;
- w89k-*)
- basic_machine=hppa1.1-winbond
- os=-proelf
+ pentium4-*)
+ cpu=i786
;;
- xbox)
- basic_machine=i686-pc
- os=-mingw32
+ pc98-*)
+ cpu=i386
;;
- xps | xps100)
- basic_machine=xps100-honeywell
+ ppc-* | ppcbe-*)
+ cpu=powerpc
;;
- xscale-* | xscalee[bl]-*)
- basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+ ppcle-* | powerpclittle-*)
+ cpu=powerpcle
;;
- ymp)
- basic_machine=ymp-cray
- os=-unicos
+ ppc64-*)
+ cpu=powerpc64
;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
+ ppc64le-* | powerpc64little-*)
+ cpu=powerpc64le
;;
- z80-*-coff)
- basic_machine=z80-unknown
- os=-sim
+ sb1-*)
+ cpu=mipsisa64sb1
;;
- none)
- basic_machine=none-none
- os=-none
+ sb1el-*)
+ cpu=mipsisa64sb1el
;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- w89k)
- basic_machine=hppa1.1-winbond
+ sh5e[lb]-*)
+ cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
;;
- op50n)
- basic_machine=hppa1.1-oki
+ spur-*)
+ cpu=spur
;;
- op60c)
- basic_machine=hppa1.1-oki
+ strongarm-* | thumb-*)
+ cpu=arm
;;
- romp)
- basic_machine=romp-ibm
+ tx39-*)
+ cpu=mipstx39
;;
- mmix)
- basic_machine=mmix-knuth
+ tx39el-*)
+ cpu=mipstx39el
;;
- rs6000)
- basic_machine=rs6000-ibm
+ x64-*)
+ cpu=x86_64
;;
- vax)
- basic_machine=vax-dec
+ xscale-* | xscalee[bl]-*)
+ cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
;;
- pdp10)
- # there are many clones, so DEC is not a safe bet
- basic_machine=pdp10-unknown
+
+ # Recognize the canonical CPU Types that limit and/or modify the
+ # company names they are paired with.
+ cr16-*)
+ os=${os:-elf}
;;
- pdp11)
- basic_machine=pdp11-dec
+ crisv32-* | etraxfs*-*)
+ cpu=crisv32
+ vendor=axis
;;
- we32k)
- basic_machine=we32k-att
+ cris-* | etrax*-*)
+ cpu=cris
+ vendor=axis
;;
- sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
- basic_machine=sh-unknown
+ crx-*)
+ os=${os:-elf}
;;
- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
- basic_machine=sparc-sun
+ neo-tandem)
+ cpu=neo
+ vendor=tandem
;;
- cydra)
- basic_machine=cydra-cydrome
+ nse-tandem)
+ cpu=nse
+ vendor=tandem
;;
- orion)
- basic_machine=orion-highlevel
+ nsr-tandem)
+ cpu=nsr
+ vendor=tandem
;;
- orion105)
- basic_machine=clipper-highlevel
+ nsv-tandem)
+ cpu=nsv
+ vendor=tandem
;;
- mac | mpw | mac-mpw)
- basic_machine=m68k-apple
+ nsx-tandem)
+ cpu=nsx
+ vendor=tandem
;;
- pmac | pmac-mpw)
- basic_machine=powerpc-apple
+ s390-*)
+ cpu=s390
+ vendor=ibm
+ ;;
+ s390x-*)
+ cpu=s390x
+ vendor=ibm
;;
- *-unknown)
- # Make sure to match an already-canonicalized machine name.
+ tile*-*)
+ os=${os:-linux-gnu}
;;
+
*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
+ # Recognize the canonical CPU types that are allowed with any
+ # company name.
+ case $cpu in
+ 1750a | 580 \
+ | a29k \
+ | aarch64 | aarch64_be \
+ | abacus \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
+ | alphapca5[67] | alpha64pca5[67] \
+ | am33_2.0 \
+ | amdgcn \
+ | arc | arceb \
+ | arm | arm[lb]e | arme[lb] | armv* \
+ | avr | avr32 \
+ | asmjs \
+ | ba \
+ | be32 | be64 \
+ | bfin | bs2000 \
+ | c[123]* | c30 | [cjt]90 | c4x \
+ | c8051 | clipper | craynv | csky | cydra \
+ | d10v | d30v | dlx | dsp16xx \
+ | e2k | elxsi | epiphany \
+ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
+ | h8300 | h8500 \
+ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
+ | i370 | i*86 | i860 | i960 | ia16 | ia64 \
+ | ip2k | iq2000 \
+ | k1om \
+ | le32 | le64 \
+ | lm32 \
+ | m32c | m32r | m32rle \
+ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \
+ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \
+ | m88110 | m88k | maxq | mb | mcore | mep | metag \
+ | microblaze | microblazeel \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+ | mips64octeon | mips64octeonel \
+ | mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+ | mips64vr | mips64vrel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa32r6 | mipsisa32r6el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64r6 | mipsisa64r6el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
+ | mipstx39 | mipstx39el \
+ | mmix \
+ | mn10200 | mn10300 \
+ | moxie \
+ | mt \
+ | msp430 \
+ | nds32 | nds32le | nds32be \
+ | nfp \
+ | nios | nios2 | nios2eb | nios2el \
+ | none | np1 | ns16k | ns32k \
+ | open8 \
+ | or1k* \
+ | or32 \
+ | orion \
+ | pdp10 | pdp11 | pj | pjl | pn | power \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
+ | pru \
+ | pyramid \
+ | riscv | riscv32 | riscv64 \
+ | rl78 | romp | rs6000 | rx \
+ | score \
+ | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
+ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
+ | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
+ | spu \
+ | tahoe \
+ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
+ | tron \
+ | ubicom32 \
+ | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+ | vax \
+ | visium \
+ | wasm32 \
+ | we32k \
+ | x86 | x86_64 | xc16x | xgate | xps100 \
+ | xstormy16 | xtensa* \
+ | ymp \
+ | z8k | z80)
+ ;;
+
+ *)
+ echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
+ exit 1
+ ;;
+ esac
;;
esac
# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+case $vendor in
+ digital*)
+ vendor=dec
;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ commodore*)
+ vendor=cbm
;;
*)
;;
# Decode manufacturer-specific aliases for certain operating systems.
-if [ x"$os" != x"" ]
+if [ x$os != x ]
then
case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -auroraux)
- os=-auroraux
+ # First match some system type aliases that might get confused
+ # with valid system types.
+ # solaris* is a basic system type, with this one exception.
+ auroraux)
+ os=auroraux
;;
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ bluegene*)
+ os=cnk
;;
- -solaris)
- os=-solaris2
+ solaris1 | solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
;;
- -svr4*)
- os=-sysv4
+ solaris)
+ os=solaris2
;;
- -unixware*)
- os=-sysv4.2uw
+ unixware*)
+ os=sysv4.2uw
;;
- -gnu/linux*)
+ gnu/linux*)
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
;;
- # First accept the basic system types.
+ # es1800 is here to avoid being matched by es* (a different OS)
+ es1800*)
+ os=ose
+ ;;
+ # Some version numbers need modification
+ chorusos*)
+ os=chorusos
+ ;;
+ isc)
+ os=isc2.2
+ ;;
+ sco6)
+ os=sco5v6
+ ;;
+ sco5)
+ os=sco3.2v5
+ ;;
+ sco4)
+ os=sco3.2v4
+ ;;
+ sco3.2.[4-9]*)
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ ;;
+ sco3.2v[4-9]* | sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ ;;
+ scout)
+ # Don't match below
+ ;;
+ sco*)
+ os=sco3.2v2
+ ;;
+ psos*)
+ os=psos
+ ;;
+ # Now accept the basic system types.
# The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
- | -sym* | -kopensolaris* | -plan9* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* | -aros* | -cloudabi* | -sortix* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
- | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
- | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
- | -linux-newlib* | -linux-musl* | -linux-uclibc* \
- | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
- | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
+ # Each alternative MUST end in a * to match a version number.
+ # sysv* is not here because it comes later, after sysvr4.
+ gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
+ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+ | sym* | kopensolaris* | plan9* \
+ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+ | aos* | aros* | cloudabi* | sortix* \
+ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+ | knetbsd* | mirbsd* | netbsd* \
+ | bitrig* | openbsd* | solidbsd* | libertybsd* \
+ | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
+ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+ | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
+ | chorusrdb* | cegcc* | glidix* \
+ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+ | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
+ | linux-newlib* | linux-musl* | linux-uclibc* \
+ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+ | interix* | uwin* | mks* | rhapsody* | darwin* \
+ | openstep* | oskit* | conix* | pw32* | nonstopux* \
+ | storm-chaos* | tops10* | tenex* | tops20* | its* \
+ | os2* | vos* | palmos* | uclinux* | nucleus* \
+ | morphos* | superux* | rtmk* | windiss* \
+ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+ | midnightbsd* | amdhsa* | unleashed*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
- -qnx*)
- case $basic_machine in
- x86-* | i*86-*)
+ qnx*)
+ case $cpu in
+ x86 | i*86)
;;
*)
- os=-nto$os
+ os=nto-$os
;;
esac
;;
- -nto-qnx*)
+ hiux*)
+ os=hiuxwe2
;;
- -nto*)
- os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ nto-qnx*)
;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ nto*)
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
;;
- -mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
+ sim | xray | os68k* | v88r* \
+ | windows* | osx | abug | netware* | os9* \
+ | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
;;
- -linux-dietlibc)
- os=-linux-dietlibc
+ linux-dietlibc)
+ os=linux-dietlibc
;;
- -linux*)
+ linux*)
os=`echo $os | sed -e 's|linux|linux-gnu|'`
;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ lynx*178)
+ os=lynxos178
;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ lynx*5)
+ os=lynxos5
;;
- -opened*)
- os=-openedition
+ lynx*)
+ os=lynxos
;;
- -os400*)
- os=-os400
+ mac*)
+ os=`echo "$os" | sed -e 's|mac|macos|'`
;;
- -wince*)
- os=-wince
+ opened*)
+ os=openedition
;;
- -osfrose*)
- os=-osfrose
+ os400*)
+ os=os400
;;
- -osf*)
- os=-osf
+ sunos5*)
+ os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
;;
- -utek*)
- os=-bsd
+ sunos6*)
+ os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
;;
- -dynix*)
- os=-bsd
+ wince*)
+ os=wince
;;
- -acis*)
- os=-aos
+ utek*)
+ os=bsd
;;
- -atheos*)
- os=-atheos
+ dynix*)
+ os=bsd
;;
- -syllable*)
- os=-syllable
+ acis*)
+ os=aos
;;
- -386bsd)
- os=-bsd
+ atheos*)
+ os=atheos
;;
- -ctix* | -uts*)
- os=-sysv
+ syllable*)
+ os=syllable
+ ;;
+ 386bsd)
+ os=bsd
;;
- -nova*)
- os=-rtmk-nova
+ ctix* | uts*)
+ os=sysv
;;
- -ns2 )
- os=-nextstep2
+ nova*)
+ os=rtmk-nova
;;
- -nsk*)
- os=-nsk
+ ns2)
+ os=nextstep2
+ ;;
+ nsk*)
+ os=nsk
;;
# Preserve the version number of sinix5.
- -sinix5.*)
+ sinix5.*)
os=`echo $os | sed -e 's|sinix|sysv|'`
;;
- -sinix*)
- os=-sysv4
- ;;
- -tpf*)
- os=-tpf
+ sinix*)
+ os=sysv4
;;
- -triton*)
- os=-sysv3
+ tpf*)
+ os=tpf
;;
- -oss*)
- os=-sysv3
+ triton*)
+ os=sysv3
;;
- -svr4)
- os=-sysv4
+ oss*)
+ os=sysv3
;;
- -svr3)
- os=-sysv3
+ svr4*)
+ os=sysv4
;;
- -sysvr4)
- os=-sysv4
+ svr3)
+ os=sysv3
;;
- # This must come after -sysvr4.
- -sysv*)
+ sysvr4)
+ os=sysv4
;;
- -ose*)
- os=-ose
+ # This must come after sysvr4.
+ sysv*)
;;
- -es1800*)
- os=-ose
+ ose*)
+ os=ose
;;
- -xenix)
- os=-xenix
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+ os=mint
;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
+ zvmoe)
+ os=zvmoe
;;
- -aros*)
- os=-aros
+ dicos*)
+ os=dicos
;;
- -zvmoe)
- os=-zvmoe
+ pikeos*)
+ # Until real need of OS specific support for
+ # particular features comes up, bare metal
+ # configurations are quite functional.
+ case $cpu in
+ arm*)
+ os=eabi
+ ;;
+ *)
+ os=elf
+ ;;
+ esac
;;
- -dicos*)
- os=-dicos
+ nacl*)
;;
- -nacl*)
+ ios)
;;
- -ios)
+ none)
;;
- -none)
+ *-eabi)
;;
*)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+ echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
exit 1
;;
esac
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
-case $basic_machine in
+case $cpu-$vendor in
score-*)
- os=-elf
+ os=elf
;;
spu-*)
- os=-elf
+ os=elf
;;
*-acorn)
- os=-riscix1.2
+ os=riscix1.2
;;
arm*-rebel)
- os=-linux
+ os=linux
;;
arm*-semi)
- os=-aout
+ os=aout
;;
c4x-* | tic4x-*)
- os=-coff
+ os=coff
;;
c8051-*)
- os=-elf
+ os=elf
+ ;;
+ clipper-intergraph)
+ os=clix
;;
hexagon-*)
- os=-elf
+ os=elf
;;
tic54x-*)
- os=-coff
+ os=coff
;;
tic55x-*)
- os=-coff
+ os=coff
;;
tic6x-*)
- os=-coff
+ os=coff
;;
# This must come before the *-dec entry.
pdp10-*)
- os=-tops20
+ os=tops20
;;
pdp11-*)
- os=-none
+ os=none
;;
*-dec | vax-*)
- os=-ultrix4.2
+ os=ultrix4.2
;;
m68*-apollo)
- os=-domain
+ os=domain
;;
i386-sun)
- os=-sunos4.0.2
+ os=sunos4.0.2
;;
m68000-sun)
- os=-sunos3
+ os=sunos3
;;
m68*-cisco)
- os=-aout
+ os=aout
;;
mep-*)
- os=-elf
+ os=elf
;;
mips*-cisco)
- os=-elf
+ os=elf
;;
mips*-*)
- os=-elf
+ os=elf
;;
or32-*)
- os=-coff
+ os=coff
;;
*-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
+ os=sysv3
;;
sparc-* | *-sun)
- os=-sunos4.1.1
+ os=sunos4.1.1
;;
pru-*)
- os=-elf
+ os=elf
;;
*-be)
- os=-beos
- ;;
- *-haiku)
- os=-haiku
+ os=beos
;;
*-ibm)
- os=-aix
+ os=aix
;;
*-knuth)
- os=-mmixware
+ os=mmixware
;;
*-wec)
- os=-proelf
+ os=proelf
;;
*-winbond)
- os=-proelf
+ os=proelf
;;
*-oki)
- os=-proelf
+ os=proelf
;;
*-hp)
- os=-hpux
+ os=hpux
;;
*-hitachi)
- os=-hiux
+ os=hiux
;;
i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
+ os=sysv
;;
*-cbm)
- os=-amigaos
+ os=amigaos
;;
*-dg)
- os=-dgux
+ os=dgux
;;
*-dolphin)
- os=-sysv3
+ os=sysv3
;;
m68k-ccur)
- os=-rtu
+ os=rtu
;;
m88k-omron*)
- os=-luna
+ os=luna
;;
- *-next )
- os=-nextstep
+ *-next)
+ os=nextstep
;;
*-sequent)
- os=-ptx
+ os=ptx
;;
*-crds)
- os=-unos
+ os=unos
;;
*-ns)
- os=-genix
+ os=genix
;;
i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
+ os=mvs
;;
*-gould)
- os=-sysv
+ os=sysv
;;
*-highlevel)
- os=-bsd
+ os=bsd
;;
*-encore)
- os=-bsd
+ os=bsd
;;
*-sgi)
- os=-irix
+ os=irix
;;
*-siemens)
- os=-sysv4
+ os=sysv4
;;
*-masscomp)
- os=-rtu
+ os=rtu
;;
f30[01]-fujitsu | f700-fujitsu)
- os=-uxpv
+ os=uxpv
;;
*-rom68k)
- os=-coff
+ os=coff
;;
*-*bug)
- os=-coff
+ os=coff
;;
*-apple)
- os=-macos
+ os=macos
;;
*-atari*)
- os=-mint
+ os=mint
+ ;;
+ *-wrs)
+ os=vxworks
;;
*)
- os=-none
+ os=none
;;
esac
fi
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
+case $vendor in
+ unknown)
case $os in
- -riscix*)
+ riscix*)
vendor=acorn
;;
- -sunos*)
+ sunos*)
vendor=sun
;;
- -cnk*|-aix*)
+ cnk*|-aix*)
vendor=ibm
;;
- -beos*)
+ beos*)
vendor=be
;;
- -hpux*)
+ hpux*)
vendor=hp
;;
- -mpeix*)
+ mpeix*)
vendor=hp
;;
- -hiux*)
+ hiux*)
vendor=hitachi
;;
- -unos*)
+ unos*)
vendor=crds
;;
- -dgux*)
+ dgux*)
vendor=dg
;;
- -luna*)
+ luna*)
vendor=omron
;;
- -genix*)
+ genix*)
vendor=ns
;;
- -mvs* | -opened*)
+ clix*)
+ vendor=intergraph
+ ;;
+ mvs* | opened*)
vendor=ibm
;;
- -os400*)
+ os400*)
vendor=ibm
;;
- -ptx*)
+ ptx*)
vendor=sequent
;;
- -tpf*)
+ tpf*)
vendor=ibm
;;
- -vxsim* | -vxworks* | -windiss*)
+ vxsim* | vxworks* | windiss*)
vendor=wrs
;;
- -aux*)
+ aux*)
vendor=apple
;;
- -hms*)
+ hms*)
vendor=hitachi
;;
- -mpw* | -macos*)
+ mpw* | macos*)
vendor=apple
;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
vendor=atari
;;
- -vos*)
+ vos*)
vendor=stratus
;;
esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
;;
esac
-echo $basic_machine$os
+echo "$cpu-$vendor-$os"
exit
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 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
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
exit 1
;;
+sgi)
+ if test "$libtool" = yes; then
+ "$@" "-Wp,-MDupdate,$tmpdepfile"
+ else
+ "$@" -MDupdate "$tmpdepfile"
+ fi
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+
+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
+ echo "$object : \\" > "$depfile"
+ # Clip off the initial element (the dependent). Don't try to be
+ # clever and replace this with sed code, as IRIX sed won't handle
+ # lines with more than a fixed number of characters (4096 in
+ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
+ # the IRIX cc adds comments like '#:fec' to the end of the
+ # dependency line.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
+ | tr "$nl" ' ' >> "$depfile"
+ echo >> "$depfile"
+ # The second pass generates a dummy entry for each header file.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+ >> "$depfile"
+ else
+ make_dummy_depfile
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
xlc)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# Local Variables:
# mode: shell-script
# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# controlled .prev-version file, automate the procedure by which we record
# the date, release-type and version string in the NEWS file. That commit
# will serve to identify the release, so apply a signed tag to it as well.
-VERSION=2016-12-31.14 # UTC
+VERSION=2018-03-07.03 # UTC
# Note: this is a bash script (could be zsh or dash)
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 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
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# Written by Jim Meyering
cat <<EOF
$ME $VERSION
Copyright (C) $year Free Software Foundation, Inc,
-License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
EOF
# Local variables:
# indent-tabs-mode: nil
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "VERSION="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# gendocs.sh -- generate a GNU manual in many formats. This script is
# mentioned in maintain.texi. See the help message below for usage details.
-scriptversion=2016-12-31.18
+scriptversion=2018-03-06.19
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 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
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# Original author: Mohit Agarwal.
# Send bug reports and any other correspondence to bug-gnulib@gnu.org.
# The latest version of this script, and the companion template, is
# available from the Gnulib repository:
#
-# http://git.savannah.gnu.org/cgit/gnulib.git/tree/build-aux/gendocs.sh
-# http://git.savannah.gnu.org/cgit/gnulib.git/tree/doc/gendocs_template
+# https://git.savannah.gnu.org/cgit/gnulib.git/tree/build-aux/gendocs.sh
+# https://git.savannah.gnu.org/cgit/gnulib.git/tree/doc/gendocs_template
# TODO:
# - image importing was only implemented for HTML generated by
prog=`basename "$0"`
srcdir=`pwd`
-scripturl="http://git.savannah.gnu.org/cgit/gnulib.git/plain/build-aux/gendocs.sh"
-templateurl="http://git.savannah.gnu.org/cgit/gnulib.git/plain/doc/gendocs_template"
+scripturl="https://git.savannah.gnu.org/cgit/gnulib.git/plain/build-aux/gendocs.sh"
+templateurl="https://git.savannah.gnu.org/cgit/gnulib.git/plain/doc/gendocs_template"
: ${SETLANG="env LANG= LC_MESSAGES= LC_ALL= LANGUAGE="}
: ${MAKEINFO="makeinfo"}
dirargs= # passed to all tools (-I dir).
dirs= # -I directories.
htmlarg="--css-ref=/software/gnulib/manual.css -c TOP_NODE_UP_URL=/manual"
+default_htmlarg=true
infoarg=--no-split
generate_ascii=true
generate_html=true
version="gendocs.sh $scriptversion
-Copyright 2017 Free Software Foundation, Inc.
+Copyright 2018 Free Software Foundation, Inc.
There is NO warranty. You may redistribute this software
under the terms of the GNU General Public License.
For more information about these matters, see the files named COPYING."
Generate output in various formats from PACKAGE.texinfo (or .texi or
.txi) source. See the GNU Maintainers document for a more extensive
discussion:
- http://www.gnu.org/prep/maintain_toc.html
+ https://www.gnu.org/prep/maintain_toc.html
Options:
--email ADR use ADR as contact in generated web pages; always give this.
--common) shift; commonarg=$1;;
--docbook) docbook=yes;;
--email) shift; EMAIL=$1;;
- --html) shift; htmlarg=$1;;
+ --html) shift; default_htmlarg=false; htmlarg=$1;;
--info) shift; infoarg=$1;;
--no-ascii) generate_ascii=false;;
--no-html) generate_ascii=false;;
# For most of the following, the base name is just $PACKAGE
base=$PACKAGE
+if $default_htmlarg && test -n "$use_texi2html"; then
+ # The legacy texi2html doesn't support TOP_NODE_UP_URL
+ htmlarg="--css-ref=/software/gnulib/manual.css"
+fi
+
if test -n "$srcfile"; then
# but here, we use the basename of $srcfile
base=`basename "$srcfile"`
echo "Done, see $outdir/ subdirectory for new files."
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
#!/bin/sh
# Print a version string.
-scriptversion=2017-01-09.19; # UTC
+scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# Copyright (C) 2007-2018 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
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
-# This script is derived from GIT-VERSION-GEN from GIT: http://git.or.cz/.
+# This script is derived from GIT-VERSION-GEN from GIT: https://git-scm.com/.
# It may be run two ways:
# - from a git repository in which the "git describe" command below
# produces useful output (thus requiring at least one signed tag)
# tag or the previous older version that did not?
# Newer: v6.10-77-g0f8faeb
# Older: v6.10-g0f8faeb
- case $v in
- *-*-*) : git describe is okay three part flavor ;;
- *-*)
+ vprefix=`expr "X$v" : 'X\(.*\)-g[^-]*$'` || vprefix=$v
+ case $vprefix in
+ *-*) : git describe is probably okay three part flavor ;;
+ *)
: git describe is older two part flavor
# Recreate the number of commits and rewrite such that the
# result is the same as if we were using the newer version
;;
esac
- # Change the first '-' to a '.', so version-comparing tools work properly.
- # Remove the "g" in git describe's output string, to save a byte.
- v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`;
+ # Change the penultimate "-" to ".", for version-comparing tools.
+ # Remove the "g" to save a byte.
+ v=`echo "$v" | sed 's/-\([^-]*\)-g\([^-]*\)$/.\1-\2/'`;
v_from_git=1
elif test "x$fallback" = x || git --version >/dev/null 2>&1; then
v=UNKNOWN
printf %s "$v"
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
if 0;
# Convert git log output to ChangeLog format.
-my $VERSION = '2016-03-22 21:49'; # UTC
+my $VERSION = '2018-03-07 03:47'; # UTC
# The definition above must lie within the first 8 lines in order
# for the Emacs time-stamp write hook (at end) to update it.
# If you change this file with Emacs, please let the write hook
# do its job. Otherwise, update this string manually.
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 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
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# Written by Jim Meyering
(my $ME = $0) =~ s|.*/||;
-# use File::Coda; # http://meyering.net/code/Coda/
+# use File::Coda; # https://meyering.net/code/Coda/
END {
defined fileno STDOUT or return;
close STDOUT and return;
# Local Variables:
# mode: perl
# indent-tabs-mode: nil
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "my $VERSION = '"
# time-stamp-format: "%:y-%02m-%02d %02H:%02M"
# time-stamp-time-zone: "UTC0"
#!/bin/sh
# Run this after each non-alpha release, to update the web documentation at
-# http://www.gnu.org/software/$pkg/manual/
+# https://www.gnu.org/software/$pkg/manual/
-VERSION=2016-01-12.23; # UTC
+VERSION=2018-03-07.03; # UTC
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 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
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
ME=$(basename "$0")
warn() { printf '%s: %s\n' "$ME" "$*" >&2; }
Run this script from top_srcdir (no arguments) after each non-alpha
release, to update the web documentation at
-http://www.gnu.org/software/\$pkg/manual/
+https://www.gnu.org/software/\$pkg/manual/
This script assumes you're using git for revision control, and
requires a .prev-version file as well as a Makefile, from which it
cat <<EOF
$ME $VERSION
Copyright (C) $year Free Software Foundation, Inc,
-License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
EOF
)
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "VERSION="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
#!/bin/sh
# Sign files and upload them.
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-05-19.18; # UTC
-# Copyright (C) 2004-2017 Free Software Foundation, Inc.
+# Copyright (C) 2004-2018 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
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# Originally written by Alexandre Duret-Lutz <adl@gnu.org>.
# The master copy of this file is maintained in the gnulib Git repository.
set -e
-GPG='gpg --batch --no-tty'
+GPG=gpg
+# Choose the proper version of gpg, so as to avoid a
+# "gpg-agent is not available in this session" error
+# when gpg-agent is version 3 but gpg is still version 1.
+# FIXME-2020: remove, once all major distros ship gpg version 3 as /usr/bin/gpg
+gpg_agent_version=`(gpg-agent --version) 2>/dev/null | sed -e '2,$d' -e 's/^[^0-9]*//'`
+case "$gpg_agent_version" in
+ 2.*)
+ gpg_version=`(gpg --version) 2>/dev/null | sed -e '2,$d' -e 's/^[^0-9]*//'`
+ case "$gpg_version" in
+ 1.*)
+ if (type gpg2) >/dev/null 2>/dev/null; then
+ # gpg2 is present.
+ GPG=gpg2
+ else
+ # gpg2 is missing. Ubuntu users should install the package 'gnupg2'.
+ echo "WARNING: Using 'gpg', which is too old. You should install 'gpg2'." 1>&2
+ fi
+ ;;
+ esac
+ ;;
+esac
+
+GPG="${GPG} --batch --no-tty"
conffile=.gnuploadrc
to=
dry_run=false
--user NAME sign with key NAME
--replace allow replacements of existing files
--symlink-regex[=EXPR] use sed script EXPR to compute symbolic link names
- --dry-run do nothing, show what would have been done
+ -n, --dry-run do nothing, show what would have been done
(including the constructed directive file)
--version output version information and exit
- --help print this help text and exit
+ -h, --help print this help text and exit
If --symlink-regex is given without EXPR, then the link target name
is created by replacing the version information with '-latest', e.g.:
actual command line options. Use this to keep your defaults. Comments
(#) and empty lines in $conffile are allowed.
-<http://www.gnu.org/prep/maintain/html_node/Automated-FTP-Uploads.html>
+<https://www.gnu.org/prep/maintain/html_node/Automated-FTP-Uploads.html>
gives some further background.
Examples:
gnupload executes a program ncftpput to do the transfers; if you don't
happen to have an ncftp package installed, the ncftpput-ftp script in
the build-aux/ directory of the gnulib package
-(http://savannah.gnu.org/projects/gnulib) may serve as a replacement.
+(https://savannah.gnu.org/projects/gnulib) may serve as a replacement.
Send patches and bug reports to <bug-gnulib@gnu.org>."
-*)
collect_var=
case $1 in
- --help)
+ -h | --help)
echo "$usage"
exit $?
;;
--symlink)
collect_var=symlink_files
;;
- --dry-run|-n)
+ -n | --dry-run)
dry_run=:
;;
--version)
exit 0
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-11.20; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
fi
dst=$dst_arg
- # If destination is a directory, append the input filename; won't work
- # if double slashes aren't ignored.
+ # If destination is a directory, append the input filename.
if test -d "$dst"; then
if test "$is_target_a_directory" = never; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
dstdir=$dst
- dst=$dstdir/`basename "$src"`
+ dstbase=`basename "$src"`
+ case $dst in
+ */) dst=$dst$dstbase;;
+ *) dst=$dst/$dstbase;;
+ esac
dstdir_status=0
else
dstdir=`dirname "$dst"`
fi
fi
+ case $dstdir in
+ */) dstdirslash=$dstdir;;
+ *) dstdirslash=$dstdir/;;
+ esac
+
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
+ # Note that $RANDOM variable is not portable (e.g. dash); Use it
+ # here however when possible just to lower collision chance.
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+ trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+ # Because "mkdir -p" follows existing symlinks and we likely work
+ # directly in world-writeable /tmp, make sure that the '$tmpdir'
+ # directory is successfully created first before we actually test
+ # 'mkdir -p' feature.
if (umask $mkdir_umask &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ $mkdirprog $mkdir_mode "$tmpdir" &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
then
if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ test_tmpdir="$tmpdir/a"
+ ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;;
*) false;;
esac &&
- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
- rmdir "$tmpdir/d" "$tmpdir"
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
fi
trap '' 0;;
esac;;
else
# Make a couple of temp file names in the proper directory.
- dsttmp=$dstdir/_inst.$$_
- rmtmp=$dstdir/_rm.$$_
+ dsttmp=${dstdirslash}_inst.$$_
+ rmtmp=${dstdirslash}_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
done
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
#!/bin/sh
# Get modification time of a file or directory and pretty-print it.
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1995-2017 Free Software Foundation, Inc.
+# Copyright (C) 1995-2018 Free Software Foundation, Inc.
# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
#
# This program is free software; you can redistribute it and/or modify
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
LC_TIME=C
export LC_TIME
+# Use UTC to get reproducible result.
+TZ=UTC0
+export TZ
+
# GNU ls changes its time format in response to the TIME_STYLE
# variable. Since we cannot assume 'unset' works, revert this
# variable to its documented default.
# Local Variables:
# mode: shell-script
# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
#! /bin/sh
# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1996-2015 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
exit $st
fi
-perl_URL=http://www.perl.org/
-flex_URL=http://flex.sourceforge.net/
-gnu_software_URL=http://www.gnu.org/software
+perl_URL=https://www.perl.org/
+flex_URL=https://github.com/westes/flex
+gnu_software_URL=https://www.gnu.org/software
program_details ()
{
exit $st
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
#! /bin/sh
# test-driver - basic testsuite driver script.
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 2011-2015 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 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
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# Local Variables:
# mode: shell-script
# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2017-05-14.14}
+\def\texinfoversion{2018-09-21.20}
%
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017
+% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018
% Free Software Foundation, Inc.
%
% This texinfo.tex file is free software: you can redistribute it and/or
% General Public License for more details.
%
% You should have received a copy of the GNU General Public License
-% along with this program. If not, see <http://www.gnu.org/licenses/>.
+% along with this program. If not, see <https://www.gnu.org/licenses/>.
%
% As a special exception, when this file is read by TeX when processing
% a Texinfo source document, you may use the result without
%
% Please try the latest version of texinfo.tex before submitting bug
% reports; you can get the latest version from:
-% http://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or
-% http://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or
-% http://www.gnu.org/software/texinfo/ (the Texinfo home page)
+% https://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or
+% https://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or
+% https://www.gnu.org/software/texinfo/ (the Texinfo home page)
% The texinfo.tex in any given distribution could well be out
% of date, so if that's what you're using, please check.
%
% extent. You can get the existing language-specific files from the
% full Texinfo distribution.
%
-% The GNU Texinfo home page is http://www.gnu.org/software/texinfo.
+% The GNU Texinfo home page is https://www.gnu.org/software/texinfo.
\message{Loading texinfo [version \texinfoversion]:}
\startlink attr{/Border [0 0 0]}%
user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
\endgroup}
+ % \pdfgettoks - Surround page numbers in #1 with @pdflink. #1 may
+ % be a simple number, or a list of numbers in the case of an index
+ % entry.
\def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
\def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
\def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
\font\smallersy=cmsy8
\def\smallerecsize{0800}
+% Fonts for math mode superscripts (7pt).
+\def\sevennominalsize{7pt}
+\setfont\sevenrm\rmshape{7}{1000}{OT1}
+\setfont\seventt\ttshape{10}{700}{OT1TT}
+\setfont\sevenbf\bfshape{10}{700}{OT1}
+\setfont\sevenit\itshape{7}{1000}{OT1IT}
+\setfont\sevensl\slshape{10}{700}{OT1}
+\setfont\sevensf\sfshape{10}{700}{OT1}
+\setfont\sevensc\scshape{10}{700}{OT1}
+\setfont\seventtsl\ttslshape{10}{700}{OT1TT}
+\font\seveni=cmmi7
+\font\sevensy=cmsy7
+\def\sevenecsize{0700}
+
% Fonts for title page (20.4pt):
\def\titlenominalsize{20pt}
\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
\font\smallersy=cmsy8
\def\smallerecsize{0800}
+% Fonts for math mode superscripts (7pt).
+\def\sevennominalsize{7pt}
+\setfont\sevenrm\rmshape{7}{1000}{OT1}
+\setfont\seventt\ttshape{10}{700}{OT1TT}
+\setfont\sevenbf\bfshape{10}{700}{OT1}
+\setfont\sevenit\itshape{7}{1000}{OT1IT}
+\setfont\sevensl\slshape{10}{700}{OT1}
+\setfont\sevensf\sfshape{10}{700}{OT1}
+\setfont\sevensc\scshape{10}{700}{OT1}
+\setfont\seventtsl\ttslshape{10}{700}{OT1TT}
+\font\seveni=cmmi7
+\font\sevensy=cmsy7
+\def\sevenecsize{0700}
+
% Fonts for title page (20.4pt):
\def\titlenominalsize{20pt}
\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
% In order for the font changes to affect most math symbols and letters,
-% we have to define the \textfont of the standard families. We don't
-% bother to reset \scriptfont and \scriptscriptfont; awaiting user need.
+% we have to define the \textfont of the standard families.
+% We don't bother to reset \scriptscriptfont; awaiting user need.
%
\def\resetmathfonts{%
\textfont0=\rmfont \textfont1=\ifont \textfont2=\syfont
\textfont\itfam=\itfont \textfont\slfam=\slfont \textfont\bffam=\bffont
\textfont\ttfam=\ttfont \textfont\sffam=\sffont
+ %
+ % Fonts for superscript. Note that the 7pt fonts are used regardless
+ % of the current font size.
+ \scriptfont0=\sevenrm \scriptfont1=\seveni \scriptfont2=\sevensy
+ \scriptfont\itfam=\sevenit \scriptfont\slfam=\sevensl
+ \scriptfont\bffam=\sevenbf \scriptfont\ttfam=\seventt
+ \scriptfont\sffam=\sevensf
}
%
% to also set the current \fam for math mode. Our \STYLE (e.g., \rm)
% commands hardwire \STYLEfont to set the current font.
%
+% The fonts used for \ifont are for "math italics" (\itfont is for italics
+% in regular text). \syfont is also used in math mode only.
+%
% Each font-changing command also sets the names \lsize (one size lower)
% and \lllsize (three sizes lower). These relative commands are used
% in, e.g., the LaTeX logo and acronyms.
% Markup style infrastructure. \defmarkupstylesetup\INITMACRO will
% define and register \INITMACRO to be called on markup style changes.
% \INITMACRO can check \currentmarkupstyle for the innermost
-% style and the set of \ifmarkupSTYLE switches for all styles
-% currently in effect.
-\newif\ifmarkupvar
-\newif\ifmarkupsamp
-\newif\ifmarkupkey
-%\newif\ifmarkupfile % @file == @samp.
-%\newif\ifmarkupoption % @option == @samp.
-\newif\ifmarkupcode
-\newif\ifmarkupkbd
-%\newif\ifmarkupenv % @env == @code.
-%\newif\ifmarkupcommand % @command == @code.
-\newif\ifmarkuptex % @tex (and part of @math, for now).
-\newif\ifmarkupexample
-\newif\ifmarkupverb
-\newif\ifmarkupverbatim
+% style.
\let\currentmarkupstyle\empty
\def\setupmarkupstyle#1{%
- \csname markup#1true\endcsname
\def\currentmarkupstyle{#1}%
\markupstylesetup
}
% lilypond developers report. xpdf does work with the regular 0x27.
%
\def\codequoteright{%
- \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
- \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
- '%
+ \ifmonospace
+ \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
+ \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
+ '%
+ \else \char'15 \fi
\else \char'15 \fi
- \else \char'15 \fi
+ \else
+ '%
+ \fi
}
%
% and a similar option for the left quote char vs. a grave accent.
% the code environments to do likewise.
%
\def\codequoteleft{%
- \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
- \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
- % [Knuth] pp. 380,381,391
- % \relax disables Spanish ligatures ?` and !` of \tt font.
- \relax`%
+ \ifmonospace
+ \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
+ \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
+ % [Knuth] pp. 380,381,391
+ % \relax disables Spanish ligatures ?` and !` of \tt font.
+ \relax`%
+ \else \char'22 \fi
\else \char'22 \fi
- \else \char'22 \fi
+ \else
+ \relax`%
+ \fi
}
% Commands to set the quote options.
\let\indexlbrace\{ % Likewise, set these sequences for braces
\let\indexrbrace\} % used in the sort key.
\begindoublecolumns
- \let\entrywidowpenalty=\indexwidowpenalty
+ \let\dotheinsertentrybox\dotheinsertentryboxwithpenalty
%
% Read input from the index file line by line.
\loopdo
- \ifeof1
- \let\firsttoken\relax
- \else
+ \ifeof1 \else
\read 1 to \nextline
- \edef\act{\gdef\noexpand\firsttoken{\getfirsttoken\nextline}}%
- \act
\fi
+ %
+ \indexinputprocessing
\thisline
%
\ifeof1\else
\fi
\closein 1
\endgroup}
+\def\loopdo#1\repeat{\def\body{#1}\loopdoxxx}
+\def\loopdoxxx{\let\next=\relax\body\let\next=\loopdoxxx\fi\next}
+\def\indexinputprocessing{%
+ \ifeof1
+ \let\firsttoken\relax
+ \else
+ \edef\act{\gdef\noexpand\firsttoken{\getfirsttoken\nextline}}%
+ \act
+ \fi
+}
\def\getfirsttoken#1{\expandafter\getfirsttokenx#1\endfirsttoken}
\long\def\getfirsttokenx#1#2\endfirsttoken{\noexpand#1}
-\def\loopdo#1\repeat{\def\body{#1}\loopdoxxx}
-\def\loopdoxxx{\let\next=\relax\body\let\next=\loopdoxxx\fi\next}
% These macros are used by the sorted index file itself.
% Change them to control the appearance of the index.
% For pdfTeX and XeTeX.
% The redefinition of \domark stops marks being added in \pdflink to
% preserve coloured links across page boundaries. Otherwise the marks
- % would get in the way of \lastbox in \insertindexentrybox.
+ % would get in the way of \lastbox in \insertentrybox.
\let\domark\relax
%
% Start a new paragraph if necessary, so our assignments below can't
\fi
\egroup % end \boxA
\ifdim\wd\boxB = 0pt
- \global\setbox\entryindexbox=\vbox{\unhbox\boxA}%
+ \global\setbox\entrybox=\vbox{\unhbox\boxA}%
\else
- \global\setbox\entryindexbox=\vbox\bgroup
+ \global\setbox\entrybox=\vbox\bgroup
% We want the text of the entries to be aligned to the left, and the
% page numbers to be aligned to the right.
%
\advance\dimen@ii by 1\dimen@i
\ifdim\wd\boxA > \dimen@ii % If the entry doesn't fit in one line
\ifdim\dimen@ > 0.8\dimen@ii % due to long index text
- \dimen@ = 0.7\dimen@ % Try to split the text roughly evenly
+ % Try to split the text roughly evenly. \dimen@ will be the length of
+ % the first line.
+ \dimen@ = 0.7\dimen@
\dimen@ii = \hsize
\ifnum\dimen@>\dimen@ii
- % If the entry is too long, use the whole line
+ % If the entry is too long (for example, if it needs more than
+ % two lines), use all the space in the first line.
\dimen@ = \dimen@ii
\fi
\advance\leftskip by 0pt plus 1fill % ragged right
% instead of using \parshape with explicit line lengths, but TeX
% doesn't seem to provide a way to do such a thing.
%
- \leftskip = 1em
- \parindent = -1em
+ % Indent all lines but the first one.
+ \advance\leftskip by 1em
+ \advance\parindent by -1em
\fi\fi
\indent % start paragraph
\unhbox\boxA
\egroup % The \vbox
\fi
\endgroup
- % delay text of entry until after penalty
- \bgroup\aftergroup\insertindexentrybox
- \entrywidowpenalty
+ \dotheinsertentrybox
}}
\newskip\thinshrinkable
\skip\thinshrinkable=.15em minus .15em
-\newbox\entryindexbox
-\def\insertindexentrybox{%
- \ourunvbox\entryindexbox
+\newbox\entrybox
+\def\insertentrybox{%
+ \ourunvbox\entrybox
}
+% default definition
+\let\dotheinsertentrybox\insertentrybox
+
% Use \lastbox to take apart vbox box by box, and add each sub-box
% to the current vertical list.
\def\ourunvbox#1{%
\newbox\delayedbox
\newbox\interbox
-% Default is no penalty
-\let\entrywidowpenalty\egroup
-
% Used from \printindex. \firsttoken should be the first token
% after the \entry. If it's not another \entry, we are at the last
% line of a group of index entries, so insert a penalty to discourage
% widowed index entries.
-\long\def\indexwidowpenalty{%
- \def\isentry{\entry}%
+\def\dotheinsertentryboxwithpenalty{%
\ifx\firsttoken\isentry
\else
\penalty 9000
\fi
- \egroup % now comes the box added with \aftergroup
+ \insertentrybox
}
+\def\isentry{\entry}%
% Like plain.tex's \dotfill, except uses up at least 1 em.
% The filll stretch here overpowers both the fil and fill stretch to push
% Split the last of the double-column material.
\savemarks
\balancecolumns
- %
+ }%
+ \eject % call the \output just set
+ \ifdim\pagetotal=0pt
% Having called \balancecolumns once, we do not
% want to call it again. Therefore, reset \output to its normal
% definition right away.
\global\output = {\onepageout{\pagecontents\PAGE}}%
- }%
- \eject
- \endgroup % started in \begindoublecolumns
- \restoremarks
- % Leave the double-column material on the current page, no automatic
- % page break.
- \box\balancedcolumns
- %
- % \pagegoal was set to the doubled \vsize above, since we restarted
- % the current page. We're now back to normal single-column
- % typesetting, so reset \pagegoal to the normal \vsize.
- \global\vsize = \txipageheight %
- \pagegoal = \txipageheight %
+ %
+ \endgroup % started in \begindoublecolumns
+ \restoremarks
+ % Leave the double-column material on the current page, no automatic
+ % page break.
+ \box\balancedcolumns
+ %
+ % \pagegoal was set to the doubled \vsize above, since we restarted
+ % the current page. We're now back to normal single-column
+ % typesetting, so reset \pagegoal to the normal \vsize.
+ \global\vsize = \txipageheight %
+ \pagegoal = \txipageheight %
+ \else
+ % We had some left-over material. This might happen when \doublecolumnout
+ % is called in \balancecolumns. Try again.
+ \expandafter\enddoublecolumns
+ \fi
}
\newbox\balancedcolumns
\setbox\balancedcolumns=\vbox{shouldnt see this}%
\ifdim\dimen@<5\baselineskip
% Don't split a short final column in two.
\setbox2=\vbox{}%
+ \global\setbox\balancedcolumns=\vbox{\pagesofar}%
\else
\divide\dimen@ by 2 % target to split to
\dimen@ii = \dimen@
\repeat
}%
% Now the left column is in box 1, and the right column in box 3.
+ %
% Check whether the left column has come out higher than the page itself.
% (Note that we have doubled \vsize for the double columns, so
% the actual height of the page is 0.5\vsize).
\ifdim2\ht1>\vsize
- % Just split the last of the double column material roughly in half.
- \setbox2=\box0
- \setbox0 = \vsplit2 to \dimen@ii
- \setbox0=\vbox to \dimen@ii {\unvbox0\vfill}%
- \setbox2=\vbox to \dimen@ii {\unvbox2\vfill}%
+ % It appears that we have been called upon to balance too much material.
+ % Output some of it with \doublecolumnout, leaving the rest on the page.
+ \setbox\PAGE=\box0
+ \doublecolumnout
\else
% Compare the heights of the two columns.
\ifdim4\ht1>5\ht3
\setbox2=\vbox to\ht1{\unvbox3\unskip}%
\setbox0=\vbox to\ht1{\unvbox1\unskip}%
\fi
+ \global\setbox\balancedcolumns=\vbox{\pagesofar}%
\fi
\fi
%
- \global\setbox\balancedcolumns=\vbox{\pagesofar}%
}
\catcode`\@ = \other
% exist, with an empty box. Let's hope all the numbers have the same width.
% Also ignore the page number, which is conventionally not printed.
\def\numeralbox{\setbox0=\hbox{8}\hbox to \wd0{\hfil}}
-\def\partentry#1#2#3#4{\dochapentry{\numeralbox\labelspace#1}{}}
+\def\partentry#1#2#3#4{%
+ % Add stretch and a bonus for breaking the page before the part heading.
+ % This reduces the chance of the page being broken immediately after the
+ % part heading, before a following chapter heading.
+ \vskip 0pt plus 5\baselineskip
+ \penalty-300
+ \vskip 0pt plus -5\baselineskip
+ \dochapentry{\numeralbox\labelspace#1}{}%
+}
%
% Parts, in the short toc.
\def\shortpartentry#1#2#3#4{%
\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
\gdef\magicamp{\let&=\amprm}
}
+\let\ampchar\&
\newcount\parencount
\newif\ifwarnednoepsf
\newhelp\noepsfhelp{epsf.tex must be installed for images to
work. It is also included in the Texinfo distribution, or you can get
- it from ftp://tug.org/tex/epsf.tex.}
+ it from https://ctan.org/texarchive/macros/texinfo/texinfo/doc/epsf.tex.}
%
\def\image#1{%
\ifx\epsfbox\thisisundefined
\DeclareUnicodeCharacter{2113}{\ensuremath\ell}%
\DeclareUnicodeCharacter{2118}{\ensuremath\wp}%
\DeclareUnicodeCharacter{211C}{\ensuremath\Re}%
- \DeclareUnicodeCharacter{2127}{\ensuremath\mho}%
\DeclareUnicodeCharacter{2135}{\ensuremath\aleph}%
\DeclareUnicodeCharacter{2190}{\ensuremath\leftarrow}%
\DeclareUnicodeCharacter{2191}{\ensuremath\uparrow}%
\DeclareUnicodeCharacter{21AA}{\ensuremath\hookrightarrow}%
\DeclareUnicodeCharacter{21BC}{\ensuremath\leftharpoonup}%
\DeclareUnicodeCharacter{21BD}{\ensuremath\leftharpoondown}%
- \DeclareUnicodeCharacter{21BE}{\ensuremath\upharpoonright}%
\DeclareUnicodeCharacter{21C0}{\ensuremath\rightharpoonup}%
\DeclareUnicodeCharacter{21C1}{\ensuremath\rightharpoondown}%
\DeclareUnicodeCharacter{21CC}{\ensuremath\rightleftharpoons}%
\DeclareUnicodeCharacter{21D3}{\ensuremath\Downarrow}%
\DeclareUnicodeCharacter{21D4}{\ensuremath\Leftrightarrow}%
\DeclareUnicodeCharacter{21D5}{\ensuremath\Updownarrow}%
- \DeclareUnicodeCharacter{21DD}{\ensuremath\leadsto}%
- \DeclareUnicodeCharacter{2201}{\ensuremath\complement}%
\DeclareUnicodeCharacter{2202}{\ensuremath\partial}%
\DeclareUnicodeCharacter{2205}{\ensuremath\emptyset}%
\DeclareUnicodeCharacter{2207}{\ensuremath\nabla}%
\DeclareUnicodeCharacter{2283}{\ensuremath\supset}%
\DeclareUnicodeCharacter{2286}{\ensuremath\subseteq}%
\DeclareUnicodeCharacter{228E}{\ensuremath\uplus}%
- \DeclareUnicodeCharacter{228F}{\ensuremath\sqsubset}%
- \DeclareUnicodeCharacter{2290}{\ensuremath\sqsupset}%
\DeclareUnicodeCharacter{2291}{\ensuremath\sqsubseteq}%
\DeclareUnicodeCharacter{2292}{\ensuremath\sqsupseteq}%
\DeclareUnicodeCharacter{2293}{\ensuremath\sqcap}%
\DeclareUnicodeCharacter{22A4}{\ensuremath\ptextop}%
\DeclareUnicodeCharacter{22A5}{\ensuremath\bot}%
\DeclareUnicodeCharacter{22A8}{\ensuremath\models}%
- \DeclareUnicodeCharacter{22B4}{\ensuremath\unlhd}%
- \DeclareUnicodeCharacter{22B5}{\ensuremath\unrhd}%
\DeclareUnicodeCharacter{22C0}{\ensuremath\bigwedge}%
\DeclareUnicodeCharacter{22C1}{\ensuremath\bigvee}%
\DeclareUnicodeCharacter{22C2}{\ensuremath\bigcap}%
\DeclareUnicodeCharacter{2322}{\ensuremath\frown}%
\DeclareUnicodeCharacter{2323}{\ensuremath\smile}%
%
- \DeclareUnicodeCharacter{25A1}{\ensuremath\Box}%
\DeclareUnicodeCharacter{25B3}{\ensuremath\triangle}%
\DeclareUnicodeCharacter{25B7}{\ensuremath\triangleright}%
\DeclareUnicodeCharacter{25BD}{\ensuremath\bigtriangledown}%
\DeclareUnicodeCharacter{25C1}{\ensuremath\triangleleft}%
- \DeclareUnicodeCharacter{25C7}{\ensuremath\Diamond}%
+ \DeclareUnicodeCharacter{25C7}{\ensuremath\diamond}%
\DeclareUnicodeCharacter{2660}{\ensuremath\spadesuit}%
\DeclareUnicodeCharacter{2661}{\ensuremath\heartsuit}%
\DeclareUnicodeCharacter{2662}{\ensuremath\diamondsuit}%
\DeclareUnicodeCharacter{2A02}{\ensuremath\bigotimes}%
\DeclareUnicodeCharacter{2A04}{\ensuremath\biguplus}%
\DeclareUnicodeCharacter{2A06}{\ensuremath\bigsqcup}%
- \DeclareUnicodeCharacter{2A1D}{\ensuremath\Join}%
\DeclareUnicodeCharacter{2A3F}{\ensuremath\amalg}%
\DeclareUnicodeCharacter{2AAF}{\ensuremath\preceq}%
\DeclareUnicodeCharacter{2AB0}{\ensuremath\succeq}%
%
\dimen0 = #1\relax
\advance\dimen0 by \voffset
+ \advance\dimen0 by 1in % reference point for DVI is 1 inch from top of page
%
\dimen2 = \hsize
\advance\dimen2 by \normaloffset
+ \advance\dimen2 by 1in % reference point is 1 inch from left edge of page
%
\internalpagesizes{#1}{\hsize}%
{\voffset}{\normaloffset}%
@markupsetuprqdefault
@c Local variables:
-@c eval: (add-hook 'write-file-hooks 'time-stamp)
+@c eval: (add-hook 'before-save-hook 'time-stamp)
@c page-delimiter: "^\\\\message\\|emacs-page"
@c time-stamp-start: "def\\\\texinfoversion{"
@c time-stamp-format: "%:y-%02m-%02d.%02H"
if 0;
# Update an FSF copyright year list to include the current year.
-my $VERSION = '2016-01-12.23:13'; # UTC
+my $VERSION = '2018-03-07.03:47'; # UTC
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 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
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# Written by Jim Meyering and Joel E. Denny
# B. (c)
# C. @copyright{}
# D. ©
+# E. ©
#
# 4. The "Copyright" appears at the beginning of a line, except that it
# may be prefixed by any sequence (e.g., a comment) of no more than
use warnings;
my $copyright_re = 'Copyright';
-my $circle_c_re = '(?:\([cC]\)|@copyright\{}|\\\\\(co|©)';
+my $circle_c_re = '(?:\([cC]\)|@copyright\{}|\\\\\(co|©|©)';
my $holder = $ENV{UPDATE_COPYRIGHT_HOLDER};
$holder ||= 'Free Software Foundation, Inc.';
my $prefix_max = 5;
print STDERR "$ARGV: warning: copyright statement not found\n";
}
+# Hey Emacs!
# Local variables:
+# coding: utf-8
# mode: perl
# indent-tabs-mode: nil
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "my $VERSION = '"
# time-stamp-format: "%:y-%02m-%02d.%02H:%02M"
# time-stamp-time-zone: "UTC0"
# Detect instances of "if (p) free (p);".
# Likewise "if (p != 0)", "if (0 != p)", or with NULL; and with braces.
-my $VERSION = '2016-08-01 17:47'; # UTC
+my $VERSION = '2018-03-07 03:47'; # UTC
# The definition above must lie within the first 8 lines in order
# for the Emacs time-stamp write hook (at end) to update it.
# If you change this file with Emacs, please let the write hook
# do its job. Otherwise, update this string manually.
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 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
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# Written by Jim Meyering
(my $ME = $0) =~ s|.*/||;
-# use File::Coda; # http://meyering.net/code/Coda/
+# use File::Coda; # https://meyering.net/code/Coda/
END {
defined fileno STDOUT or return;
close STDOUT and return;
## Local Variables:
## mode: perl
## indent-tabs-mode: nil
-## eval: (add-hook 'write-file-hooks 'time-stamp)
+## eval: (add-hook 'before-save-hook 'time-stamp)
## time-stamp-start: "my $VERSION = '"
## time-stamp-format: "%:y-%02m-%02d %02H:%02M"
## time-stamp-time-zone: "UTC0"
# List version-controlled file names.
# Print a version string.
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 2006-2017 Free Software Foundation, Inc.
+# Copyright (C) 2006-2018 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
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# List the specified version-controlled files.
cat <<EOF
vc-list-files $scriptversion
Copyright (C) $year Free Software Foundation, Inc,
-License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
EOF
for dir
do
- if test -d .git; then
+ if test -d .git || test -f .git; then
test "x$dir" = x. \
&& dir= sed_esc= \
|| { dir="$dir/"; sed_esc=`echo "$dir"|env sed 's,\([\\/]\),\\\\\1,g'`; }
done
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# Customize maint.mk -*- makefile -*-
-# Copyright (C) 2003-2013, 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2013, 2015-2018 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
# Use the direct link. This is guaranteed to work immediately, while
# it can take a while for the faster mirror links to become usable.
-url_dir_list = http://ftp.gnu.org/gnu/$(PACKAGE)
+url_dir_list = https://ftp.gnu.org/gnu/$(PACKAGE)
# Used in maint.mk's web-manual rule
manual_title = Comparing and Merging Files
# Tools used to bootstrap this package, used for "announcement".
bootstrap-tools = autoconf,automake,gnulib
+# Override the default Cc: used in generating an announcement.
+announcement_Cc_ = $(translation_project_), $(PACKAGE)-devel@gnu.org
+
# Now that we have better tests, make this the default.
export VERBOSE = yes
-old_NEWS_hash = 0216ec3bf3e3322f33afd4e949a9a29b
+old_NEWS_hash = 773368daadfe6d96f43de867c87f45e7
# Tell maint.mk's syntax-check rules that diff gets config.h directly or
# via diff.h or system.h.
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69.185-b502e for GNU diffutils 3.6.
+# Generated by GNU Autoconf 2.69.197-b8fd7 for GNU diffutils 3.7.
#
# Report bugs to <bug-diffutils@gnu.org>.
#
# Identity of this package.
PACKAGE_NAME='GNU diffutils'
PACKAGE_TARNAME='diffutils'
-PACKAGE_VERSION='3.6'
-PACKAGE_STRING='GNU diffutils 3.6'
+PACKAGE_VERSION='3.7'
+PACKAGE_STRING='GNU diffutils 3.7'
PACKAGE_BUGREPORT='bug-diffutils@gnu.org'
-PACKAGE_URL='http://www.gnu.org/software/diffutils/'
+PACKAGE_URL='https://www.gnu.org/software/diffutils/'
ac_unique_file="src/diff.c"
# Factoring default headers for most tests.
NEXT_STDARG_H
NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H
NEXT_SIGNAL_H
+GLIBC21
REPLACE_RAISE
REPLACE_PTHREAD_SIGMASK
HAVE_SIGHANDLER_T
GNULIB_RAISE
GNULIB_PTHREAD_SIGMASK
UNDEFINE_STRTOK_R
-REPLACE_STRTOK_R
REPLACE_STRSIGNAL
-REPLACE_STRNLEN
-REPLACE_STRNDUP
-REPLACE_STRNCAT
REPLACE_STRERROR_R
REPLACE_STRERROR
-REPLACE_STRCHRNUL
+REPLACE_STRTOK_R
REPLACE_STRCASESTR
REPLACE_STRSTR
+REPLACE_STRNLEN
+REPLACE_STRNDUP
+REPLACE_STRNCAT
REPLACE_STRDUP
+REPLACE_STRCHRNUL
REPLACE_STPNCPY
REPLACE_MEMMEM
REPLACE_MEMCHR
HAVE_MEMCHR
HAVE_FFSLL
HAVE_FFSL
+HAVE_EXPLICIT_BZERO
HAVE_MBSLEN
GNULIB_STRVERSCMP
GNULIB_STRSIGNAL
GNULIB_MEMCHR
GNULIB_FFSLL
GNULIB_FFSL
+GNULIB_EXPLICIT_BZERO
LOCALE_FR_UTF8
LOCALE_ZH_CN
LOCALE_JA
HAVE_STRTOULL
HAVE_STRTOLL
HAVE_STRTOD
+HAVE_DECL_SETSTATE
HAVE_DECL_SETENV
HAVE_SETENV
HAVE_SECURE_GETENV
HAVE_RPMATCH
HAVE_REALPATH
+HAVE_REALLOCARRAY
HAVE_RANDOM_R
HAVE_RANDOM_H
HAVE_RANDOM
HAVE_MKOSTEMPS
HAVE_MKOSTEMP
HAVE_MKDTEMP
+HAVE_DECL_INITSTATE
HAVE_GRANTPT
HAVE_GETSUBOPT
HAVE_DECL_GETLOADAVG
GNULIB_RPMATCH
GNULIB_REALPATH
GNULIB_REALLOC_POSIX
+GNULIB_REALLOCARRAY
GNULIB_RANDOM_R
GNULIB_RANDOM
GNULIB_QSORT_R
HAVE_MAX_ALIGN_T
REPLACE_NULL
REPLACE_STRUCT_LCONV
+REPLACE_FREELOCALE
REPLACE_DUPLOCALE
+REPLACE_NEWLOCALE
REPLACE_SETLOCALE
REPLACE_LOCALECONV
+HAVE_FREELOCALE
HAVE_DUPLOCALE
+HAVE_NEWLOCALE
+GNULIB_LOCALENAME
GNULIB_DUPLOCALE
GNULIB_SETLOCALE
GNULIB_LOCALECONV
LOCALCHARSET_TESTS_ENVIRONMENT
-GLIBC21
HAVE_LANGINFO_YESEXPR
HAVE_LANGINFO_ERA
+HAVE_LANGINFO_ALTMON
HAVE_LANGINFO_T_FMT_AMPM
HAVE_LANGINFO_CODESET
HAVE_LANGINFO_H
INT32_MAX_LT_INTMAX_MAX
REPLACE_STRTOUMAX
REPLACE_STRTOIMAX
+HAVE_IMAXDIV_T
HAVE_DECL_STRTOUMAX
HAVE_DECL_STRTOIMAX
HAVE_DECL_IMAXDIV
GL_GENERATE_FNMATCH_H_FALSE
GL_GENERATE_FNMATCH_H_TRUE
FNMATCH_H
+HAVE_FNMATCH_H
+NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H
+NEXT_FNMATCH_H
+REPLACE_FNMATCH
+HAVE_FNMATCH
+GNULIB_FNMATCH
REPLACE_ITOLD
GL_GENERATE_FLOAT_H_FALSE
GL_GENERATE_FLOAT_H_TRUE
INCLUDE_NEXT
HAVE_ISBLANK
GNULIB_ISBLANK
-pkglibexecdir
-lispdir
HAVE_WINSOCK2_H
REPLACE_IOCTL
SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS
REPLACE_LINK
REPLACE_LCHOWN
REPLACE_ISATTY
+REPLACE_GETPASS
REPLACE_GETPAGESIZE
REPLACE_GETGROUPS
REPLACE_GETLOGIN_R
REPLACE_GETCWD
REPLACE_FTRUNCATE
REPLACE_FCHOWNAT
+REPLACE_FACCESSAT
REPLACE_DUP2
REPLACE_DUP
REPLACE_CLOSE
HAVE_SYS_PARAM_H
HAVE_OS_H
HAVE_DECL_TTYNAME_R
+HAVE_DECL_TRUNCATE
HAVE_DECL_SETHOSTNAME
HAVE_DECL_GETUSERSHELL
HAVE_DECL_GETPAGESIZE
HAVE_DECL_ENVIRON
HAVE_USLEEP
HAVE_UNLINKAT
-HAVE_TRUNCATE
HAVE_SYMLINKAT
HAVE_SYMLINK
HAVE_SLEEP
HAVE_LINK
HAVE_LCHOWN
HAVE_GROUP_MEMBER
+HAVE_GETPASS
HAVE_GETPAGESIZE
HAVE_GETLOGIN
HAVE_GETHOSTNAME
GNULIB_ISATTY
GNULIB_GROUP_MEMBER
GNULIB_GETUSERSHELL
+GNULIB_GETPASS
GNULIB_GETPAGESIZE
GNULIB_GETLOGIN_R
GNULIB_GETLOGIN
am__untar
am__tar
AMTAR
+am__leading_dot
SET_MAKE
AWK
+mkdir_p
MKDIR_P
INSTALL_STRIP_PROGRAM
STRIP
INSTALL_DATA
INSTALL_SCRIPT
INSTALL_PROGRAM
-mkdir_p
target_alias
host_alias
build_alias
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures GNU diffutils 3.6 to adapt to many kinds of systems.
+\`configure' configures GNU diffutils 3.7 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of GNU diffutils 3.6:";;
+ short | recursive ) echo "Configuration of GNU diffutils 3.7:";;
esac
cat <<\_ACEOF
it to find libraries and programs with nonstandard names/locations.
Report bugs to <bug-diffutils@gnu.org>.
-GNU diffutils home page: <http://www.gnu.org/software/diffutils/>.
-General help using GNU software: <http://www.gnu.org/gethelp/>.
+GNU diffutils home page: <https://www.gnu.org/software/diffutils/>.
+General help using GNU software: <https://www.gnu.org/gethelp/>.
_ACEOF
ac_status=$?
fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-GNU diffutils configure 3.6
-generated by GNU Autoconf 2.69.185-b502e
+GNU diffutils configure 3.7
+generated by GNU Autoconf 2.69.197-b8fd7
Copyright (C) 2017 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
eval "$3=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_werror_flag
fi
eval ac_res=\$$3
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
- ac_c_werror_flag=$ac_save_werror_flag
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_decl
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_member
+ac_configure_args_raw=
+for ac_arg
+do
+ case $ac_arg in
+ *\'*)
+ ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append ac_configure_args_raw " '$ac_arg'"
+done
+
+case $ac_configure_args_raw in
+ *$as_nl*)
+ ac_safe_unquote= ;;
+ *)
+ ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab.
+ ac_unsafe_a="$ac_unsafe_z#~"
+ ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
+ ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
+esac
+
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by GNU diffutils $as_me 3.6, which was
-generated by GNU Autoconf 2.69.185-b502e. Invocation command line was
+It was created by GNU diffutils $as_me 3.7, which was
+generated by GNU Autoconf 2.69.197-b8fd7. Invocation command line was
- $ $0 $@
+ $ $0$ac_configure_args_raw
_ACEOF
exec 5>>config.log
as_fn_append ac_func_c_list " fcntl HAVE_FCNTL"
as_fn_append ac_func_c_list " symlink HAVE_SYMLINK"
as_fn_append ac_func_c_list " mempcpy HAVE_MEMPCPY"
+as_fn_append ac_header_c_list " fnmatch.h fnmatch_h HAVE_FNMATCH_H"
+as_fn_append ac_func_c_list " fnmatch HAVE_FNMATCH"
as_fn_append ac_func_c_list " isblank HAVE_ISBLANK"
as_fn_append ac_func_c_list " iswctype HAVE_ISWCTYPE"
as_fn_append ac_func_c_list " mbsrtowcs HAVE_MBSRTOWCS"
as_fn_append ac_func_c_list " getprogname HAVE_GETPROGNAME"
as_fn_append ac_func_c_list " getexecname HAVE_GETEXECNAME"
as_fn_append ac_func_c_list " gettimeofday HAVE_GETTIMEOFDAY"
-as_fn_append ac_func_c_list " nanotime HAVE_NANOTIME"
as_fn_append ac_header_c_list " sys/time.h sys_time_h HAVE_SYS_TIME_H"
as_fn_append ac_header_c_list " iconv.h iconv_h HAVE_ICONV_H"
as_fn_append ac_header_c_list " limits.h limits_h HAVE_LIMITS_H"
as_fn_append ac_header_c_list " sys/param.h sys_param_h HAVE_SYS_PARAM_H"
as_fn_append ac_func_c_list " readlink HAVE_READLINK"
as_fn_append ac_header_c_list " malloc.h malloc_h HAVE_MALLOC_H"
-as_fn_append ac_func_c_list " secure_getenv HAVE_SECURE_GETENV"
-as_fn_append ac_func_c_list " getuid HAVE_GETUID"
-as_fn_append ac_func_c_list " geteuid HAVE_GETEUID"
-as_fn_append ac_func_c_list " getgid HAVE_GETGID"
-as_fn_append ac_func_c_list " getegid HAVE_GETEGID"
as_fn_append ac_func_c_list " setenv HAVE_SETENV"
as_fn_append ac_func_c_list " sigaction HAVE_SIGACTION"
as_fn_append ac_func_c_list " siginterrupt HAVE_SIGINTERRUPT"
-am__api_version='1.99a'
+am__api_version='1.16'
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
echo one > conftest.one
echo two > conftest.two
mkdir conftest.dir
- if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" &&
test -s conftest.one && test -s conftest.two &&
test -s conftest.dir/conftest.one &&
test -s conftest.dir/conftest.two
SET_MAKE="MAKE=${MAKE-make}"
fi
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
# Check whether --enable-silent-rules was given.
if test ${enable_silent_rules+y}
then :
fi
AM_BACKSLASH='\'
-mkdir_p='$(MKDIR_P)'
if test "`cd $srcdir && pwd`" != "`pwd`"; then
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
# is not polluted with repeated "-I."
# Define the identity of the package.
PACKAGE='diffutils'
- VERSION='3.6'
+ VERSION='3.7'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
# We need awk for the "check" target (and possibly the TAP driver). The
# system "awk" is bad on some platforms.
# Always define AMTAR for backward compatibility. Yes, it's still used
Aborting the configuration process, to ensure you take notice of the issue.
You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
If you want to complete the configuration process using your problematic
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-DEPDIR=.deps
+DEPDIR="${am__leading_dot}deps"
ac_config_commands="$ac_config_commands depfiles"
printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h
+ printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h
+
+ printf "%s\n" "#define _OPENBSD_SOURCE 1" >>confdefs.h
+
printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h
test $ac_cv_should_define__xopen_source = yes &&
printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h
+ printf "%s\n" "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h
+
alpha*)
# On Alpha systems, a compiler option provides the behaviour.
# See the ieee(3) manual page, also available at
- # <http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/0600____.HTM>
+ # <https://backdrift.org/man/tru64/man3/ieee.3.html>
if test -n "$GCC"; then
# GCC has the option -mieee.
# For full IEEE compliance (rarely needed), use option -mieee-with-inexact.
# Code from module c-strcaseeq:
# Code from module careadlinkat:
# Code from module clock-time:
+ # Code from module cloexec:
+ # Code from module cloexec-tests:
# Code from module close:
# Code from module close-tests:
# Code from module config-h:
- # Code from module configmake:
# Code from module connect:
# Code from module connect-tests:
# Code from module ctype:
# Code from module float-tests:
# Code from module fnmatch:
# Code from module fnmatch-gnu:
+ # Code from module fnmatch-h:
+ # Code from module fnmatch-h-tests:
# Code from module fnmatch-tests:
# Code from module fpieee:
# Code from module langinfo-tests:
# Code from module largefile:
+ # Code from module libc-config:
# Code from module libsigsegv:
# Code from module limits-h:
# Code from module limits-h-tests:
# Code from module listen:
# Code from module listen-tests:
# Code from module localcharset:
+ # Code from module localcharset-tests:
# Code from module locale:
# Code from module locale-tests:
# Code from module localeconv:
# Code from module memchr:
# Code from module memchr-tests:
# Code from module minmax:
+ # Code from module mkdir:
+ # Code from module mkdir-tests:
# Code from module mkstemp:
# Code from module mktime:
# Code from module mktime-internal:
# Code from module nl_langinfo:
# Code from module nl_langinfo-tests:
# Code from module nocrash:
+ # Code from module nstrftime:
+ # Code from module nstrftime-tests:
# Code from module open:
# Code from module open-tests:
# Code from module pathmax:
# Code from module regex:
# Code from module regex-tests:
# Code from module same-inode:
- # Code from module secure_getenv:
# Code from module select:
# Code from module select-tests:
# Code from module setenv:
# Code from module strerror_r-posix:
# Code from module strerror_r-posix-tests:
# Code from module strftime:
- # Code from module strftime-tests:
# Code from module striconv:
# Code from module striconv-tests:
# Code from module string:
_ACEOF
save_ac_compile="$ac_compile"
ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest1/`
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ if echo '#include "conftest.c"' >conftest1.c &&
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
_ACEOF
ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest2/`
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ if echo '#include "conftest.c"' >conftest2.c &&
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
fi
fi
ac_compile="$save_ac_compile"
- rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext
+ rm -f conftest12.c conftest12.$ac_objext conftest$ac_exeext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_wchar_h_correct_inline" >&5
C99 mode. You have four options:
- Add the flag -fgnu89-inline to CC and reconfigure, or
- Fix your include files, using parts of
- <http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=b037a293a48718af30d706c2e18c929d0e69a621>, or
+ <https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=b037a293a48718af30d706c2e18c929d0e69a621>, or
- Use a gcc version older than 4.3, or
- Don't use the flags -std=c99 or -std=gnu99.
Configuration aborted." "$LINENO" 5
struct tm t;
char buf[16];
int main () {
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether in the abbreviation of the second month, the second
character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
one byte long. This excludes the UTF-8 encoding. */
t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
+# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
/* Check whether the decimal separator is a comma.
On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
are nl_langinfo(RADIXCHAR) are both ".". */
if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
+# endif
return 0;
+#endif
}
_ACEOF
else
if test "$cross_compiling" = yes
then :
- ac_cv_sys_stack_overflow_works=cross-compiling
+ case "$host_os" in
+ # Guess no on native Windows.
+ mingw*) ac_cv_sys_stack_overflow_works="guessing no" ;;
+ *) ac_cv_sys_stack_overflow_works=cross-compiling ;;
+ esac
+
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_stack_overflow_works" >&5
printf "%s\n" "$ac_cv_sys_stack_overflow_works" >&6; }
- if test $ac_cv_sys_stack_overflow_works = yes; then
+ if test "$ac_cv_sys_stack_overflow_works" = yes; then
printf "%s\n" "#define HAVE_STACK_OVERFLOW_HANDLING 1" >>confdefs.h
then :
printf %s "(cached) " >&6
else
- if test "$cross_compiling" = yes
+ case "${host_os}--${host_cpu}" in
+ linux*--sparc*)
+ ac_cv_sys_xsi_stack_overflow_heuristic=no
+ ;;
+ *)
+ if test "$cross_compiling" = yes
then :
ac_cv_sys_xsi_stack_overflow_heuristic=cross-compiling
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
- #include <unistd.h>
- #include <signal.h>
- #if HAVE_UCONTEXT_H
- # include <ucontext.h>
- #endif
- #if HAVE_SETRLIMIT
- # include <sys/types.h>
- # include <sys/time.h>
- # include <sys/resource.h>
- #endif
- #ifndef SIGSTKSZ
- # define SIGSTKSZ 16384
- #endif
-
- static union
- {
- char buffer[2 * SIGSTKSZ];
- long double ld;
- long u;
- void *p;
- } alternate_signal_stack;
-
- #if STACK_DIRECTION
- # define find_stack_direction(ptr) STACK_DIRECTION
- #else
- static int
- find_stack_direction (char const *addr)
- {
- char dummy;
- return (! addr ? find_stack_direction (&dummy)
- : addr < &dummy ? 1 : -1);
- }
- #endif
+ #include <unistd.h>
+ #include <signal.h>
+ #if HAVE_UCONTEXT_H
+ # include <ucontext.h>
+ #endif
+ #if HAVE_SETRLIMIT
+ # include <sys/types.h>
+ # include <sys/time.h>
+ # include <sys/resource.h>
+ #endif
+ #ifndef SIGSTKSZ
+ # define SIGSTKSZ 16384
+ #endif
- static void
- segv_handler (int signo, siginfo_t *info, void *context)
- {
- if (0 < info->si_code)
+ static union
{
- /* For XSI heuristics to work, we need uc_stack to describe
- the interrupted stack (as on Solaris), and not the
- currently executing stack (as on Linux). */
- ucontext_t const *user_context = context;
- char const *stack_min = user_context->uc_stack.ss_sp;
- size_t stack_size = user_context->uc_stack.ss_size;
- char const *faulting_address = info->si_addr;
- size_t s = faulting_address - stack_min;
- size_t page_size = sysconf (_SC_PAGESIZE);
- if (find_stack_direction (0) < 0)
- s += page_size;
- if (s < stack_size + page_size)
- _exit (0);
- _exit (4);
+ char buffer[2 * SIGSTKSZ];
+ long double ld;
+ long u;
+ void *p;
+ } alternate_signal_stack;
+
+ #if STACK_DIRECTION
+ # define find_stack_direction(ptr) STACK_DIRECTION
+ #else
+ static int
+ find_stack_direction (char const *addr)
+ {
+ char dummy;
+ return (! addr ? find_stack_direction (&dummy)
+ : addr < &dummy ? 1 : -1);
}
- _exit (5);
- }
+ #endif
- static int
- c_stack_action ()
- {
- stack_t st;
- struct sigaction act;
- int r;
+ static void
+ segv_handler (int signo, siginfo_t *info, void *context)
+ {
+ if (0 < info->si_code)
+ {
+ /* For XSI heuristics to work, we need uc_stack to
+ describe the interrupted stack (as on Solaris), and
+ not the currently executing stack (as on Linux). */
+ ucontext_t const *user_context = context;
+ char const *stack_min = user_context->uc_stack.ss_sp;
+ size_t stack_size = user_context->uc_stack.ss_size;
+ char const *faulting_address = info->si_addr;
+ size_t s = faulting_address - stack_min;
+ size_t page_size = sysconf (_SC_PAGESIZE);
+ if (find_stack_direction (0) < 0)
+ s += page_size;
+ if (s < stack_size + page_size)
+ _exit (0);
+ _exit (4);
+ }
+ _exit (5);
+ }
- st.ss_flags = 0;
- /* Use the midpoint to avoid Irix sigaltstack bug. */
- st.ss_sp = alternate_signal_stack.buffer + SIGSTKSZ;
- st.ss_size = SIGSTKSZ;
- r = sigaltstack (&st, 0);
- if (r != 0)
- return 1;
+ static int
+ c_stack_action ()
+ {
+ stack_t st;
+ struct sigaction act;
+ int r;
+
+ st.ss_flags = 0;
+ /* Use the midpoint to avoid Irix sigaltstack bug. */
+ st.ss_sp = alternate_signal_stack.buffer + SIGSTKSZ;
+ st.ss_size = SIGSTKSZ;
+ r = sigaltstack (&st, 0);
+ if (r != 0)
+ return 1;
- sigemptyset (&act.sa_mask);
- act.sa_flags = SA_NODEFER | SA_ONSTACK | SA_RESETHAND | SA_SIGINFO;
- act.sa_sigaction = segv_handler;
- #if FAULT_YIELDS_SIGBUS
- if (sigaction (SIGBUS, &act, 0) < 0)
- return 2;
- #endif
- if (sigaction (SIGSEGV, &act, 0) < 0)
- return 3;
- return 0;
- }
- static volatile int *
- recurse_1 (volatile int n, volatile int *p)
- {
- if (n >= 0)
- *recurse_1 (n + 1, p) += n;
- return p;
- }
- static int
- recurse (volatile int n)
- {
- int sum = 0;
- return *recurse_1 (n, &sum);
- }
- int
- main ()
- {
- int result;
- #if HAVE_SETRLIMIT && defined RLIMIT_STACK
- /* Before starting the endless recursion, try to be friendly
- to the user's machine. On some Linux 2.2.x systems, there
- is no stack limit for user processes at all. We don't want
- to kill such systems. */
- struct rlimit rl;
- rl.rlim_cur = rl.rlim_max = 0x100000; /* 1 MB */
- setrlimit (RLIMIT_STACK, &rl);
- #endif
+ sigemptyset (&act.sa_mask);
+ act.sa_flags = SA_NODEFER | SA_ONSTACK | SA_RESETHAND | SA_SIGINFO;
+ act.sa_sigaction = segv_handler;
+ #if FAULT_YIELDS_SIGBUS
+ if (sigaction (SIGBUS, &act, 0) < 0)
+ return 2;
+ #endif
+ if (sigaction (SIGSEGV, &act, 0) < 0)
+ return 3;
+ return 0;
+ }
+ static volatile int *
+ recurse_1 (volatile int n, volatile int *p)
+ {
+ if (n >= 0)
+ *recurse_1 (n + 1, p) += n;
+ return p;
+ }
+ static int
+ recurse (volatile int n)
+ {
+ int sum = 0;
+ return *recurse_1 (n, &sum);
+ }
+ int
+ main ()
+ {
+ int result;
+ #if HAVE_SETRLIMIT && defined RLIMIT_STACK
+ /* Before starting the endless recursion, try to be friendly
+ to the user's machine. On some Linux 2.2.x systems, there
+ is no stack limit for user processes at all. We don't want
+ to kill such systems. */
+ struct rlimit rl;
+ rl.rlim_cur = rl.rlim_max = 0x100000; /* 1 MB */
+ setrlimit (RLIMIT_STACK, &rl);
+ #endif
- result = c_stack_action ();
- if (result != 0)
- return result;
- return recurse (0);
- }
+ result = c_stack_action ();
+ if (result != 0)
+ return result;
+ return recurse (0);
+ }
_ACEOF
if ac_fn_c_try_run "$LINENO"
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+ ;;
+ esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_xsi_stack_overflow_heuristic" >&5
printf "%s\n" "$ac_cv_sys_xsi_stack_overflow_heuristic" >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if defined __powerpc64__ || defined _ARCH_PPC64
- yes
- #endif
+ int ok;
+ #else
+ error fail
+ #endif
_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "yes" >/dev/null 2>&1
+if ac_fn_c_try_compile "$LINENO"
then :
# The compiler produces 64-bit code. Add option '-b64' so that the
# linker groks 64-bit object files.
esac
fi
-rm -rf conftest*
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ;;
+ sparc64-*-netbsd*)
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined __sparcv9 || defined __arch64__
+ int ok;
+ #else
+ error fail
+ #endif
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+else
+ # The compiler produces 32-bit code. Add option '-m elf32_sparc'
+ # so that the linker groks 32-bit object files.
+ case "$acl_cv_path_LD " in
+ *" -m elf32_sparc "*) ;;
+ *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;;
+ esac
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
;;
esac
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5
-printf %s "checking for the common suffixes of directories in the library search path... " >&6; }
-if test ${acl_cv_libdirstems+y}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking 32-bit host C ABI" >&5
+printf %s "checking 32-bit host C ABI... " >&6; }
+if test ${gl_cv_host_cpu_c_abi_32bit+y}
then :
printf %s "(cached) " >&6
else
- acl_libdirstem=lib
- acl_libdirstem2=
- case "$host_os" in
- solaris*)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
+ if test -n "$gl_cv_host_cpu_c_abi"; then
+ case "$gl_cv_host_cpu_c_abi" in
+ i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
+ gl_cv_host_cpu_c_abi_32bit=yes ;;
+ *)
+ gl_cv_host_cpu_c_abi_32bit=no ;;
+ esac
+ else
+ case "$host_cpu" in
+
+ i[4567]86 )
+ gl_cv_host_cpu_c_abi_32bit=yes
+ ;;
+
+ x86_64 )
+ # On x86_64 systems, the C compiler may be generating code in one of
+ # these ABIs:
+ # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
+ # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
+ # with native Windows (mingw, MSVC).
+ # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
+ # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if (defined __x86_64__ || defined __amd64__ \
+ || defined _M_X64 || defined _M_AMD64) \
+ && !(defined __ILP32__ || defined _ILP32)
+ int ok;
+ #else
+ error fail
+ #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ gl_cv_host_cpu_c_abi_32bit=no
+else
+ gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ;;
+
+ arm* | aarch64 )
+ # Assume arm with EABI.
+ # On arm64 systems, the C compiler may be generating code in one of
+ # these ABIs:
+ # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
+ # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
+ # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32)
+ int ok;
+ #else
+ error fail
+ #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ gl_cv_host_cpu_c_abi_32bit=no
+else
+ gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ;;
+
+ hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
+ # On hppa, the C compiler may be generating 32-bit code or 64-bit
+ # code. In the latter case, it defines _LP64 and __LP64__.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __LP64__
+ int ok;
+ #else
+ error fail
+ #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ gl_cv_host_cpu_c_abi_32bit=no
+else
+ gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ;;
+
+ ia64* )
+ # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
+ # 32-bit code. In the latter case, it defines _ILP32.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef _ILP32
+ int ok;
+ #else
+ error fail
+ #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ gl_cv_host_cpu_c_abi_32bit=yes
+else
+ gl_cv_host_cpu_c_abi_32bit=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ;;
+
+ mips* )
+ # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
+ # at 32.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
+ int ok;
+ #else
+ error fail
+ #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ gl_cv_host_cpu_c_abi_32bit=no
+else
+ gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ;;
+
+ powerpc* )
+ # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
+ # No need to distinguish them here; the caller may distinguish
+ # them based on the OS.
+ # On powerpc64 systems, the C compiler may still be generating
+ # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
+ # be generating 64-bit code.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined __powerpc64__ || defined _ARCH_PPC64
+ int ok;
+ #else
+ error fail
+ #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ gl_cv_host_cpu_c_abi_32bit=no
+else
+ gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ;;
+
+ rs6000 )
+ gl_cv_host_cpu_c_abi_32bit=yes
+ ;;
+
+ riscv32 | riscv64 )
+ # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
+ # Size of 'long' and 'void *':
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined __LP64__
+ int ok;
+ #else
+ error fail
+ #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ gl_cv_host_cpu_c_abi_32bit=no
+else
+ gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ;;
+
+ s390* )
+ # On s390x, the C compiler may be generating 64-bit (= s390x) code
+ # or 31-bit (= s390) code.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined __LP64__ || defined __s390x__
+ int ok;
+ #else
+ error fail
+ #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ gl_cv_host_cpu_c_abi_32bit=no
+else
+ gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ;;
+
+ sparc | sparc64 )
+ # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
+ # C compiler still generates 32-bit code.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined __sparcv9 || defined __arch64__
+ int ok;
+ #else
+ error fail
+ #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ gl_cv_host_cpu_c_abi_32bit=no
+else
+ gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ;;
+
+ *)
+ gl_cv_host_cpu_c_abi_32bit=no
+ ;;
+ esac
+ fi
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi_32bit" >&5
+printf "%s\n" "$gl_cv_host_cpu_c_abi_32bit" >&6; }
+
+ HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit"
+
+
+
+
+
+ case "$host_os" in
+ solaris*)
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
printf %s "checking for 64-bit host... " >&6; }
if test ${gl_cv_solaris_64bit+y}
then :
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-
#ifdef _LP64
-sixtyfour bits
-#endif
+ int ok;
+ #else
+ error fail
+ #endif
_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "sixtyfour bits" >/dev/null 2>&1
+if ac_fn_c_try_compile "$LINENO"
then :
gl_cv_solaris_64bit=yes
else
gl_cv_solaris_64bit=no
fi
-rm -rf conftest*
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5
-printf "%s\n" "$gl_cv_solaris_64bit" >&6; }
- if test $gl_cv_solaris_64bit = yes; then
+printf "%s\n" "$gl_cv_solaris_64bit" >&6; };;
+ esac
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5
+printf %s "checking for the common suffixes of directories in the library search path... " >&6; }
+if test ${acl_cv_libdirstems+y}
+then :
+ printf %s "(cached) " >&6
+else
+ acl_libdirstem=lib
+ acl_libdirstem2=
+ case "$host_os" in
+ solaris*)
+ if test $gl_cv_solaris_64bit = yes; then
acl_libdirstem=lib/64
case "$host_cpu" in
sparc*) acl_libdirstem2=lib/sparcv9 ;;
fi
;;
*)
- searchpath=`(if test -f /usr/bin/gcc \
- && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \
- LC_ALL=C /usr/bin/gcc -print-search-dirs; \
- else \
- LC_ALL=C $CC -print-search-dirs; \
- fi) 2>/dev/null \
- | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
- if test -n "$searchpath"; then
- acl_save_IFS="${IFS= }"; IFS=":"
- for searchdir in $searchpath; do
- if test -d "$searchdir"; then
- case "$searchdir" in
- */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
- */../ | */.. )
- # Better ignore directories of this form. They are misleading.
- ;;
- *) searchdir=`cd "$searchdir" && pwd`
- case "$searchdir" in
- */lib64 ) acl_libdirstem=lib64 ;;
- esac ;;
- esac
- fi
- done
- IFS="$acl_save_IFS"
+ if test "$HOST_CPU_C_ABI_32BIT" != yes; then
+ searchpath=`(if test -f /usr/bin/gcc \
+ && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \
+ LC_ALL=C /usr/bin/gcc -print-search-dirs; \
+ else \
+ LC_ALL=C $CC -print-search-dirs; \
+ fi) 2>/dev/null \
+ | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+ if test -n "$searchpath"; then
+ acl_save_IFS="${IFS= }"; IFS=":"
+ for searchdir in $searchpath; do
+ if test -d "$searchdir"; then
+ case "$searchdir" in
+ */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
+ */../ | */.. )
+ # Better ignore directories of this form. They are misleading.
+ ;;
+ *) searchdir=`cd "$searchdir" && pwd`
+ case "$searchdir" in
+ */lib64 ) acl_libdirstem=lib64 ;;
+ esac ;;
+ esac
+ fi
+ done
+ IFS="$acl_save_IFS"
+ fi
fi
;;
esac
-
use_additional=yes
acl_save_prefix="$prefix"
additional_includedir="$withval/include"
additional_libdir="$withval/$acl_libdirstem"
if test "$acl_libdirstem2" != "$acl_libdirstem" \
- && ! test -d "$withval/$acl_libdirstem"; then
+ && test ! -d "$withval/$acl_libdirstem"; then
additional_libdir="$withval/$acl_libdirstem2"
fi
fi
-
ac_save_CPPFLAGS="$CPPFLAGS"
for element in $INCSIGSEGV; do
GNULIB_GETLOGIN=0;
GNULIB_GETLOGIN_R=0;
GNULIB_GETPAGESIZE=0;
+ GNULIB_GETPASS=0;
GNULIB_GETUSERSHELL=0;
GNULIB_GROUP_MEMBER=0;
GNULIB_ISATTY=0;
HAVE_GETHOSTNAME=1;
HAVE_GETLOGIN=1;
HAVE_GETPAGESIZE=1;
+ HAVE_GETPASS=1;
HAVE_GROUP_MEMBER=1;
HAVE_LCHOWN=1;
HAVE_LINK=1;
HAVE_SLEEP=1;
HAVE_SYMLINK=1;
HAVE_SYMLINKAT=1;
- HAVE_TRUNCATE=1;
HAVE_UNLINKAT=1;
HAVE_USLEEP=1;
HAVE_DECL_ENVIRON=1;
HAVE_DECL_GETPAGESIZE=1;
HAVE_DECL_GETUSERSHELL=1;
HAVE_DECL_SETHOSTNAME=1;
+ HAVE_DECL_TRUNCATE=1;
HAVE_DECL_TTYNAME_R=1;
HAVE_OS_H=0;
HAVE_SYS_PARAM_H=0;
REPLACE_CLOSE=0;
REPLACE_DUP=0;
REPLACE_DUP2=0;
+ REPLACE_FACCESSAT=0;
REPLACE_FCHOWNAT=0;
REPLACE_FTRUNCATE=0;
REPLACE_GETCWD=0;
REPLACE_GETLOGIN_R=0;
REPLACE_GETGROUPS=0;
REPLACE_GETPAGESIZE=0;
+ REPLACE_GETPASS=0;
REPLACE_ISATTY=0;
REPLACE_LCHOWN=0;
REPLACE_LINK=0;
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if environ is properly declared" >&5
printf %s "checking if environ is properly declared... " >&6; }
- if test ${gt_cv_var_environ_declaration+y}
+if test ${gt_cv_var_environ_declaration+y}
then :
printf %s "(cached) " >&6
else
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if HAVE_UNISTD_H
#include <unistd.h>
/* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */
#include <stdlib.h>
- extern struct { int foo; } environ;
+ extern struct { int foo; } environ;
int
main (void)
{
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_var_environ_declaration" >&5
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_var_environ_declaration" >&5
printf "%s\n" "$gt_cv_var_environ_declaration" >&6; }
if test $gt_cv_var_environ_declaration = yes; then
else
if test "$cross_compiling" = yes
then :
- gl_cv_header_working_fcntl_h=cross-compiling
+ case "$host_os" in
+ # Guess 'no' on native Windows.
+ mingw*) gl_cv_header_working_fcntl_h='no' ;;
+ *) gl_cv_header_working_fcntl_h=cross-compiling ;;
+ esac
+
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5
printf "%s\n" "$gl_cv_header_working_fcntl_h" >&6; }
+ GNULIB_FNMATCH=0;
+ HAVE_FNMATCH=1;
+ REPLACE_FNMATCH=0;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_fnmatch_h='<'fnmatch.h'>'
+ else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <fnmatch.h>" >&5
+printf %s "checking absolute name of <fnmatch.h>... " >&6; }
+if test ${gl_cv_next_fnmatch_h+y}
+then :
+ printf %s "(cached) " >&6
+else
+
+ if test $ac_cv_header_fnmatch_h = yes; then
+
+
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <fnmatch.h>
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+ gl_header_literal_regex=`echo 'fnmatch.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+
+ gl_cv_absolute_fnmatch_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`
+
+ gl_header=$gl_cv_absolute_fnmatch_h
+ gl_cv_next_fnmatch_h='"'$gl_header'"'
+ else
+ gl_cv_next_fnmatch_h='<'fnmatch.h'>'
+ fi
+
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_fnmatch_h" >&5
+printf "%s\n" "$gl_cv_next_fnmatch_h" >&6; }
+ fi
+ NEXT_FNMATCH_H=$gl_cv_next_fnmatch_h
+
+ if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+ # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+ gl_next_as_first_directive='<'fnmatch.h'>'
+ else
+ # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+ gl_next_as_first_directive=$gl_cv_next_fnmatch_h
+ fi
+ NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H=$gl_next_as_first_directive
+
+
+
+
+
+
+
+ if test $ac_cv_header_fnmatch_h = yes; then
+ HAVE_FNMATCH_H=1
+ else
+ HAVE_FNMATCH_H=0
+ fi
+
+
+ FNMATCH_H=''
+ if false; then
+ FNMATCH_H=fnmatch.h
+ else
+ if test $ac_cv_header_fnmatch_h != yes; then
+ FNMATCH_H=fnmatch.h
+ fi
+ fi
+
+
+ if test -n "$FNMATCH_H"; then
+ GL_GENERATE_FNMATCH_H_TRUE=
+ GL_GENERATE_FNMATCH_H_FALSE='#'
+else
+ GL_GENERATE_FNMATCH_H_TRUE='#'
+ GL_GENERATE_FNMATCH_H_FALSE=
+fi
+
+
+
+
+
+
+
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5
printf %s "checking for mbstate_t... " >&6; }
- for gl_func in fchmodat fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat mknod mknodat stat utimensat; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/stat.h>
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
}
}
}
-#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#elif defined _WIN32 && ! defined __CYGWIN__
/* Avoid a crash on native Windows. */
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
:
-
GNULIB_GETTIMEOFDAY=0;
HAVE_GETTIMEOFDAY=1;
HAVE_STRUCT_TIMEVAL=1;
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
typedef int *int_ptr;
- int foo (int_ptr $ac_kw ip) { return ip[0]; }
- int bar (int [$ac_kw]); /* Catch GCC bug 14050. */
- int bar (int ip[$ac_kw]) { return ip[0]; }
+ int foo (int_ptr $ac_kw ip) { return ip[0]; }
+ int bar (int [$ac_kw]); /* Catch GCC bug 14050. */
+ int bar (int ip[$ac_kw]) { return ip[0]; }
int
main (void)
{
int s[1];
- int *$ac_kw t = s;
- t[0] = 0;
- return foo (t) + bar (t);
+ int *$ac_kw t = s;
+ t[0] = 0;
+ return foo (t) + bar (t);
;
return 0;
fi
- for gl_func in gettimeofday; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#if HAVE_SYS_TIME_H
-# include <sys/time.h>
-#endif
-#include <time.h>
-
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
-
use_additional=yes
acl_save_prefix="$prefix"
additional_includedir="$withval/include"
additional_libdir="$withval/$acl_libdirstem"
if test "$acl_libdirstem2" != "$acl_libdirstem" \
- && ! test -d "$withval/$acl_libdirstem"; then
+ && test ! -d "$withval/$acl_libdirstem"; then
additional_libdir="$withval/$acl_libdirstem2"
fi
fi
REPLACE_ICONV_OPEN=0;
REPLACE_ICONV_UTF=0;
ICONV_H='';
+ if false; then
+ ICONV_H='iconv.h'
+ fi
+
if test -n "$ICONV_H"; then
GL_GENERATE_ICONV_H_TRUE=
GL_GENERATE_ICONV_H_FALSE='#'
#endif
/* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
provided. */
- if (/* Try standardized names. */
- iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
- /* Try IRIX, OSF/1 names. */
- && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
- /* Try AIX names. */
- && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
- /* Try HP-UX names. */
- && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
- result |= 16;
+ {
+ /* Try standardized names. */
+ iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP");
+ /* Try IRIX, OSF/1 names. */
+ iconv_t cd2 = iconv_open ("UTF-8", "eucJP");
+ /* Try AIX names. */
+ iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP");
+ /* Try HP-UX names. */
+ iconv_t cd4 = iconv_open ("utf8", "eucJP");
+ if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1)
+ && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1))
+ result |= 16;
+ if (cd1 != (iconv_t)(-1))
+ iconv_close (cd1);
+ if (cd2 != (iconv_t)(-1))
+ iconv_close (cd2);
+ if (cd3 != (iconv_t)(-1))
+ iconv_close (cd3);
+ if (cd4 != (iconv_t)(-1))
+ iconv_close (cd4);
+ }
return result;
;
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether limits.h has ULLONG_WIDTH etc." >&5
-printf %s "checking whether limits.h has ULLONG_WIDTH etc.... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether limits.h has LLONG_MAX, WORD_BIT, ULLONG_WIDTH etc." >&5
+printf %s "checking whether limits.h has LLONG_MAX, WORD_BIT, ULLONG_WIDTH etc.... " >&6; }
if test ${gl_cv_header_limits_width+y}
then :
printf %s "(cached) " >&6
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
- #define __STDC_WANT_IEC_60559_BFP_EXT__ 1
- #endif
- #include <limits.h>
- int ullw = ULLONG_WIDTH;
+ #define __STDC_WANT_IEC_60559_BFP_EXT__ 1
+ #endif
+ #include <limits.h>
+ long long llm = LLONG_MAX;
+ int wb = WORD_BIT;
+ int ullw = ULLONG_WIDTH;
+
int
main (void)
{
then :
if test "$cross_compiling" = yes
then :
- gl_cv_header_working_stdint_h=yes
+ case "$host_os" in
+ # Guess yes on native Windows.
+ mingw*) gl_cv_header_working_stdint_h="guessing yes" ;;
+ # In general, assume it works.
+ *) gl_cv_header_working_stdint_h="guessing yes" ;;
+ esac
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
HAVE_SYS_BITYPES_H=0
HAVE_SYS_INTTYPES_H=0
STDINT_H=stdint.h
- if test "$gl_cv_header_working_stdint_h" = yes; then
- HAVE_C99_STDINT_H=1
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stdint.h predates C++11" >&5
+ case "$gl_cv_header_working_stdint_h" in
+ *yes)
+ HAVE_C99_STDINT_H=1
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stdint.h predates C++11" >&5
printf %s "checking whether stdint.h predates C++11... " >&6; }
if test ${gl_cv_header_stdint_predates_cxx11_h+y}
then :
printf %s "(cached) " >&6
else
gl_cv_header_stdint_predates_cxx11_h=yes
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_predates_cxx11_h" >&5
printf "%s\n" "$gl_cv_header_stdint_predates_cxx11_h" >&6; }
- if test "$gl_cv_header_stdint_predates_cxx11_h" = yes; then
+ if test "$gl_cv_header_stdint_predates_cxx11_h" = yes; then
printf "%s\n" "#define __STDC_CONSTANT_MACROS 1" >>confdefs.h
printf "%s\n" "#define __STDC_LIMIT_MACROS 1" >>confdefs.h
- fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stdint.h has UINTMAX_WIDTH etc." >&5
+ fi
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stdint.h has UINTMAX_WIDTH etc." >&5
printf %s "checking whether stdint.h has UINTMAX_WIDTH etc.... " >&6; }
if test ${gl_cv_header_stdint_width+y}
then :
printf %s "(cached) " >&6
else
gl_cv_header_stdint_width=no
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
- /* Work if build is not clean. */
- #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1
- #ifndef __STDC_WANT_IEC_60559_BFP_EXT__
- #define __STDC_WANT_IEC_60559_BFP_EXT__ 1
- #endif
- #include <stdint.h>
+ /* Work if build is not clean. */
+ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1
+ #ifndef __STDC_WANT_IEC_60559_BFP_EXT__
+ #define __STDC_WANT_IEC_60559_BFP_EXT__ 1
+ #endif
+ #include <stdint.h>
/* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
included before <wchar.h>. */
# include <wchar.h>
#endif
- int iw = UINTMAX_WIDTH;
+ int iw = UINTMAX_WIDTH;
int
main (void)
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_width" >&5
printf "%s\n" "$gl_cv_header_stdint_width" >&6; }
- if test "$gl_cv_header_stdint_width" = yes; then
- STDINT_H=
- fi
- else
- ac_fn_c_check_header_compile "$LINENO" "sys/inttypes.h" "ac_cv_header_sys_inttypes_h" "$ac_includes_default"
+ if test "$gl_cv_header_stdint_width" = yes; then
+ STDINT_H=
+ fi
+ ;;
+ *)
+ ac_fn_c_check_header_compile "$LINENO" "sys/inttypes.h" "ac_cv_header_sys_inttypes_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_inttypes_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_INTTYPES_H 1" >>confdefs.h
fi
- if test $ac_cv_header_sys_inttypes_h = yes; then
- HAVE_SYS_INTTYPES_H=1
- fi
- if test $ac_cv_header_sys_bitypes_h = yes; then
- HAVE_SYS_BITYPES_H=1
- fi
+ if test $ac_cv_header_sys_inttypes_h = yes; then
+ HAVE_SYS_INTTYPES_H=1
+ fi
+ if test $ac_cv_header_sys_bitypes_h = yes; then
+ HAVE_SYS_BITYPES_H=1
+ fi
if test $APPLE_UNIVERSAL_BUILD = 0; then
BITSIZEOF_WINT_T=32
fi
- fi
+ ;;
+ esac
- LIMITS_H=limits.h
+
+
+ LIMITS_H='limits.h'
if test -n "$LIMITS_H"; then
GL_GENERATE_LIMITS_H_TRUE=
GL_GENERATE_LIMITS_H_FALSE='#'
+
if test -n "$STDINT_H"; then
GL_GENERATE_STDINT_H_TRUE=
GL_GENERATE_STDINT_H_FALSE='#'
HAVE_DECL_IMAXDIV=1;
HAVE_DECL_STRTOIMAX=1;
HAVE_DECL_STRTOUMAX=1;
+ HAVE_IMAXDIV_T=1;
REPLACE_STRTOIMAX=0;
REPLACE_STRTOUMAX=0;
INT32_MAX_LT_INTMAX_MAX=1;
- for gl_func in imaxabs imaxdiv strtoimax strtoumax; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <inttypes.h>
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
if test "$cross_compiling" = yes
then :
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdlib.h>
#if __GNU_LIBRARY__ == 1
fi
- for gl_func in wctype iswctype wctrans towctrans ; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
- <wchar.h>.
- BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
- included before <wchar.h>. */
-#if !(defined __GLIBC__ && !defined __UCLIBC__)
-# include <stddef.h>
-# include <stdio.h>
-# include <time.h>
-# include <wchar.h>
-#endif
-#include <wctype.h>
-
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
REPLACE_NL_LANGINFO=0;
-ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default"
-if test "x$ac_cv_have_decl_getc_unlocked" = xyes
-then :
- ac_have_decl=1
-else
- ac_have_decl=0
-fi
-
-printf "%s\n" "#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl" >>confdefs.h
-
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library >= 2.1 or uClibc" >&5
-printf %s "checking whether we are using the GNU C Library >= 2.1 or uClibc... " >&6; }
-if test ${ac_cv_gnu_library_2_1+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <features.h>
-#ifdef __GNU_LIBRARY__
- #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
- Lucky GNU user
- #endif
-#endif
-#ifdef __UCLIBC__
- Lucky user
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "Lucky" >/dev/null 2>&1
-then :
- ac_cv_gnu_library_2_1=yes
-else
- ac_cv_gnu_library_2_1=no
-fi
-rm -rf conftest*
-
-
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5
-printf "%s\n" "$ac_cv_gnu_library_2_1" >&6; }
-
- GLIBC21="$ac_cv_gnu_library_2_1"
-
-
GNULIB_LOCALECONV=0;
GNULIB_SETLOCALE=0;
GNULIB_DUPLOCALE=0;
- HAVE_DUPLOCALE=1;
+ GNULIB_LOCALENAME=0;
+ HAVE_NEWLOCALE=1;
+ HAVE_DUPLOCALE=1;
+ HAVE_FREELOCALE=1;
REPLACE_LOCALECONV=0;
REPLACE_SETLOCALE=0;
+ REPLACE_NEWLOCALE=0;
REPLACE_DUPLOCALE=0;
+ REPLACE_FREELOCALE=0;
REPLACE_STRUCT_LCONV=0;
STDDEF_H=
- ac_fn_c_check_type "$LINENO" "max_align_t" "ac_cv_type_max_align_t" "#include <stddef.h>
-"
-if test "x$ac_cv_type_max_align_t" = xyes
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for good max_align_t" >&5
+printf %s "checking for good max_align_t... " >&6; }
+if test ${gl_cv_type_max_align_t+y}
then :
+ printf %s "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stddef.h>
+ unsigned int s = sizeof (max_align_t);
+ #if defined __GNUC__ || defined __IBM__ALIGNOF__
+ int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1];
+ int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1];
+ #endif
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ gl_cv_type_max_align_t=yes
else
- HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h
+ gl_cv_type_max_align_t=no
fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_max_align_t" >&5
+printf "%s\n" "$gl_cv_type_max_align_t" >&6; }
+ if test $gl_cv_type_max_align_t = no; then
+ HAVE_MAX_ALIGN_T=0
+ STDDEF_H=stddef.h
+ fi
if test $gt_cv_c_wchar_t = no; then
HAVE_WCHAR_T=0
STDDEF_H=stddef.h
fi
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5
printf %s "checking whether NULL can be used in arbitrary expressions... " >&6; }
if test ${gl_cv_decl_null_works+y}
STDDEF_H=stddef.h
fi
+
if test -n "$STDDEF_H"; then
GL_GENERATE_STDDEF_H_TRUE=
GL_GENERATE_STDDEF_H_FALSE='#'
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5
printf %s "checking whether lstat correctly handles trailing slash... " >&6; }
if test ${gl_cv_func_lstat_dereferences_slashed_symlink+y}
then :
if test "$cross_compiling" = yes
then :
case "$host_os" in
- *-gnu*)
+ linux-* | linux)
+ # Guess yes on Linux systems.
+ gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
+ *-gnu* | gnu*)
# Guess yes on glibc systems.
gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
+ mingw*)
+ # Guess no on native Windows.
+ gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;;
*)
# If we don't know, assume the worst.
gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;;
GNULIB_QSORT_R=0;
GNULIB_RANDOM=0;
GNULIB_RANDOM_R=0;
+ GNULIB_REALLOCARRAY=0;
GNULIB_REALLOC_POSIX=0;
GNULIB_REALPATH=0;
GNULIB_RPMATCH=0;
HAVE_DECL_GETLOADAVG=1;
HAVE_GETSUBOPT=1;
HAVE_GRANTPT=1;
+ HAVE_DECL_INITSTATE=1;
HAVE_MKDTEMP=1;
HAVE_MKOSTEMP=1;
HAVE_MKOSTEMPS=1;
HAVE_RANDOM=1;
HAVE_RANDOM_H=1;
HAVE_RANDOM_R=1;
+ HAVE_REALLOCARRAY=1;
HAVE_REALPATH=1;
HAVE_RPMATCH=1;
HAVE_SECURE_GETENV=1;
HAVE_SETENV=1;
HAVE_DECL_SETENV=1;
+ HAVE_DECL_SETSTATE=1;
HAVE_STRTOD=1;
HAVE_STRTOLL=1;
HAVE_STRTOULL=1;
int
main (void)
{
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
choke me
#endif
then :
case "$host_os" in
# Guess yes on platforms where we know the result.
- *-gnu* | freebsd* | netbsd* | openbsd* \
+ *-gnu* | gnu* | freebsd* | netbsd* | openbsd* \
| hpux* | solaris* | cygwin* | mingw*)
ac_cv_func_malloc_0_nonnull=yes ;;
# If we don't know, assume the worst.
char buf[16];
int main ()
{
- const char *p;
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales
on Cygwin 1.5.x. */
if (MB_CUR_MAX == 1)
return 1;
/* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
This excludes the UTF-8 encoding (except on MirBSD). */
- t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
- if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
- for (p = buf; *p != '\0'; p++)
- if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
- return 1;
+ {
+ const char *p;
+ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+ if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+ for (p = buf; *p != '\0'; p++)
+ if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+ return 1;
+ }
return 0;
+#endif
}
_ACEOF
char buf[16];
int main ()
{
- const char *p;
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
This excludes the UTF-8 encoding (except on MirBSD). */
- t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
- if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
- for (p = buf; *p != '\0'; p++)
- if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
- return 1;
+ {
+ const char *p;
+ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+ if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+ for (p = buf; *p != '\0'; p++)
+ if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+ return 1;
+ }
/* Check whether a typical GB18030 multibyte sequence is recognized as a
single wide character. This excludes the GB2312 and GBK encodings. */
if (mblen ("\203\062\332\066", 5) != 4)
return 1;
return 0;
+#endif
}
_ACEOF
variables, and all locales use the UTF-8 encoding. */
#if !(defined __BEOS__ || defined __HAIKU__)
/* Check whether the given locale name is recognized by the system. */
-# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+ GNULIB_EXPLICIT_BZERO=0;
GNULIB_FFSL=0;
GNULIB_FFSLL=0;
GNULIB_MEMCHR=0;
GNULIB_STRSIGNAL=0;
GNULIB_STRVERSCMP=0;
HAVE_MBSLEN=0;
- HAVE_FFSL=1;
+ HAVE_EXPLICIT_BZERO=1;
+ HAVE_FFSL=1;
HAVE_FFSLL=1;
HAVE_MEMCHR=1;
HAVE_DECL_MEMMEM=1;
REPLACE_MEMCHR=0;
REPLACE_MEMMEM=0;
REPLACE_STPNCPY=0;
+ REPLACE_STRCHRNUL=0;
REPLACE_STRDUP=0;
+ REPLACE_STRNCAT=0;
+ REPLACE_STRNDUP=0;
+ REPLACE_STRNLEN=0;
REPLACE_STRSTR=0;
REPLACE_STRCASESTR=0;
- REPLACE_STRCHRNUL=0;
+ REPLACE_STRTOK_R=0;
REPLACE_STRERROR=0;
REPLACE_STRERROR_R=0;
- REPLACE_STRNCAT=0;
- REPLACE_STRNDUP=0;
- REPLACE_STRNLEN=0;
REPLACE_STRSIGNAL=0;
- REPLACE_STRTOK_R=0;
UNDEFINE_STRTOK_R=0;
+
# Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
# fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
# irrelevant for anonymous mappings.
if test $HAVE_MEMCHR = 1; then
# Detect platform-specific bugs in some versions of glibc:
# memchr should not dereference anything with length 0
- # http://bugzilla.redhat.com/499689
+ # https://bugzilla.redhat.com/show_bug.cgi?id=499689
# memchr should not dereference overestimated length after a match
- # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737
- # http://sourceware.org/bugzilla/show_bug.cgi?id=10162
+ # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=10162
# Assume that memchr works on platforms that lack mprotect.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5
printf %s "checking whether memchr works... " >&6; }
else
if test "$cross_compiling" = yes
then :
- gl_cv_func_memchr_works="guessing no"
+ case "$host_os" in
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_memchr_works="guessing yes" ;;
+ # Be pessimistic for now.
+ *) gl_cv_func_memchr_works="guessing no" ;;
+ esac
+
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memchr_works" >&5
printf "%s\n" "$gl_cv_func_memchr_works" >&6; }
- if test "$gl_cv_func_memchr_works" != yes; then
- REPLACE_MEMCHR=1
- fi
+ case "$gl_cv_func_memchr_works" in
+ *yes) ;;
+ *) REPLACE_MEMCHR=1 ;;
+ esac
fi
else
if test "$cross_compiling" = yes
then :
- gl_cv_func_working_mktime="guessing no"
+ case "$host_os" in
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_working_mktime="guessing no" ;;
+ *) gl_cv_func_working_mktime="guessing no" ;;
+ esac
+
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
# include <signal.h>
#endif
+#ifndef TIME_T_IS_SIGNED
+# define TIME_T_IS_SIGNED 0
+#endif
+
/* Work around redefinition to rpl_putenv by other config tests. */
#undef putenv
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
+printf %s "checking whether struct tm is in sys/time.h or time.h... " >&6; }
+if test ${ac_cv_struct_tm+y}
+then :
+ printf %s "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <time.h>
+
+int
+main (void)
+{
+struct tm tm;
+ int *p = &tm.tm_sec;
+ return !p;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_struct_tm=time.h
+else
+ ac_cv_struct_tm=sys/time.h
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5
+printf "%s\n" "$ac_cv_struct_tm" >&6; }
+if test $ac_cv_struct_tm = sys/time.h; then
+
+printf "%s\n" "#define TM_IN_SYS_TIME 1" >>confdefs.h
+
+fi
+
+ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include <sys/types.h>
+#include <$ac_cv_struct_tm>
+
+"
+if test "x$ac_cv_member_struct_tm_tm_zone" = xyes
+then :
+
+printf "%s\n" "#define HAVE_STRUCT_TM_TM_ZONE 1" >>confdefs.h
+
+
+fi
+
+if test "$ac_cv_member_struct_tm_tm_zone" = yes; then
+
+printf "%s\n" "#define HAVE_TM_ZONE 1" >>confdefs.h
+
+else
+ ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include <time.h>
+"
+if test "x$ac_cv_have_decl_tzname" = xyes
+then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+printf "%s\n" "#define HAVE_DECL_TZNAME $ac_have_decl" >>confdefs.h
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5
+printf %s "checking for tzname... " >&6; }
+if test ${ac_cv_var_tzname+y}
+then :
+ printf %s "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <time.h>
+#if !HAVE_DECL_TZNAME
+extern char *tzname[];
+#endif
+
+int
+main (void)
+{
+return tzname[0][0];
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ ac_cv_var_tzname=yes
+else
+ ac_cv_var_tzname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5
+printf "%s\n" "$ac_cv_var_tzname" >&6; }
+ if test $ac_cv_var_tzname = yes; then
+
+printf "%s\n" "#define HAVE_TZNAME 1" >>confdefs.h
+
+ fi
+fi
+
+
+ ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "#include <time.h>
+"
+if test "x$ac_cv_member_struct_tm_tm_gmtoff" = xyes
+then :
+
+printf "%s\n" "#define HAVE_TM_GMTOFF 1" >>confdefs.h
+
+fi
+
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for O_CLOEXEC" >&5
+printf %s "checking for O_CLOEXEC... " >&6; }
+if test ${gl_cv_macro_O_CLOEXEC+y}
+then :
+ printf %s "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <fcntl.h>
+ #ifndef O_CLOEXEC
+ choke me;
+ #endif
+
+int
+main (void)
+{
+return O_CLOEXEC;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ gl_cv_macro_O_CLOEXEC=yes
+else
+ gl_cv_macro_O_CLOEXEC=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_macro_O_CLOEXEC" >&5
+printf "%s\n" "$gl_cv_macro_O_CLOEXEC" >&6; }
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for promoted mode_t type" >&5
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library >= 2.1 or uClibc" >&5
+printf %s "checking whether we are using the GNU C Library >= 2.1 or uClibc... " >&6; }
+if test ${ac_cv_gnu_library_2_1+y}
+then :
+ printf %s "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+ Lucky GNU user
+ #endif
+#endif
+#ifdef __UCLIBC__
+ Lucky user
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Lucky" >/dev/null 2>&1
+then :
+ ac_cv_gnu_library_2_1=yes
+else
+ ac_cv_gnu_library_2_1=no
+fi
+rm -rf conftest*
+
+
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5
+printf "%s\n" "$ac_cv_gnu_library_2_1" >&6; }
+
+ GLIBC21="$ac_cv_gnu_library_2_1"
ac_fn_c_check_decl "$LINENO" "setenv" "ac_cv_have_decl_setenv" "$ac_includes_default"
char o[sizeof n == m * sizeof n[0] ? 1 : -1];
char p[-1 - (Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
/* Catch a bug in an HP-UX C compiler. See
- http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
- http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+ https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+ https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html
*/
Bool q = true;
Bool *pq = &q;
if test "$cross_compiling" = yes
then :
case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_strerror_0_works="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_strerror_0_works="guessing no" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_strerror_0_works="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_strerror_0_works="guessing no" ;;
esac
else
fi
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
-printf %s "checking whether struct tm is in sys/time.h or time.h... " >&6; }
-if test ${ac_cv_struct_tm+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
-#include <time.h>
-
-int
-main (void)
-{
-struct tm tm;
- int *p = &tm.tm_sec;
- return !p;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_struct_tm=time.h
-else
- ac_cv_struct_tm=sys/time.h
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5
-printf "%s\n" "$ac_cv_struct_tm" >&6; }
-if test $ac_cv_struct_tm = sys/time.h; then
-
-printf "%s\n" "#define TM_IN_SYS_TIME 1" >>confdefs.h
-
-fi
-
-ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include <sys/types.h>
-#include <$ac_cv_struct_tm>
-
-"
-if test "x$ac_cv_member_struct_tm_tm_zone" = xyes
-then :
-
-printf "%s\n" "#define HAVE_STRUCT_TM_TM_ZONE 1" >>confdefs.h
-
-
-fi
-
-if test "$ac_cv_member_struct_tm_tm_zone" = yes; then
-
-printf "%s\n" "#define HAVE_TM_ZONE 1" >>confdefs.h
-
-else
- ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include <time.h>
-"
-if test "x$ac_cv_have_decl_tzname" = xyes
-then :
- ac_have_decl=1
-else
- ac_have_decl=0
-fi
-
-printf "%s\n" "#define HAVE_DECL_TZNAME $ac_have_decl" >>confdefs.h
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5
-printf %s "checking for tzname... " >&6; }
-if test ${ac_cv_var_tzname+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <time.h>
-#if !HAVE_DECL_TZNAME
-extern char *tzname[];
-#endif
-
-int
-main (void)
-{
-return tzname[0][0];
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_var_tzname=yes
-else
- ac_cv_var_tzname=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5
-printf "%s\n" "$ac_cv_var_tzname" >&6; }
- if test $ac_cv_var_tzname = yes; then
-
-printf "%s\n" "#define HAVE_TZNAME 1" >>confdefs.h
-
- fi
-fi
-
-
- ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "#include <time.h>
-"
-if test "x$ac_cv_member_struct_tm_tm_gmtoff" = xyes
-then :
-
-printf "%s\n" "#define HAVE_TM_GMTOFF 1" >>confdefs.h
-
-fi
-
-
- for gl_func in ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r strsignal strverscmp; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
- for gl_func in ffs strcasecmp strncasecmp; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
- /* Minix 3.1.8 has a bug: <sys/types.h> must be included before
- <strings.h>. */
- #include <sys/types.h>
- #include <strings.h>
-
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
ac_fn_c_check_decl "$LINENO" "strndup" "ac_cv_have_decl_strndup" "$ac_includes_default"
+printf "%s\n" "#define _USE_STD_STAT 1" >>confdefs.h
+
+
+
printf "%s\n" "#define HAVE_DECL_FWRITE_UNLOCKED $ac_have_decl" >>confdefs.h
+ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getc_unlocked" = xyes
+then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+printf "%s\n" "#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl" >>confdefs.h
+
ac_fn_c_check_decl "$LINENO" "getchar_unlocked" "ac_cv_have_decl_getchar_unlocked" "$ac_includes_default"
if test "x$ac_cv_have_decl_getchar_unlocked" = xyes
then :
if test "$cross_compiling" = yes
then :
-
- case "$host_os" in
+ case "$host_os" in
# Guess yes on glibc systems.
- *-gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ *-gnu* | gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";;
# Guess yes on FreeBSD >= 5.
freebsd[1-4].*) gl_cv_func_snprintf_retval_c99="guessing no";;
freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
# Guess yes on BeOS.
beos*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on MSVC, no on mingw.
+ mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef _MSC_VER
+ Known
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Known" >/dev/null 2>&1
+then :
+ gl_cv_func_snprintf_retval_c99="guessing yes"
+else
+ gl_cv_func_snprintf_retval_c99="guessing no"
+fi
+rm -rf conftest*
+
+ ;;
# If we don't know, assume the worst.
*) gl_cv_func_snprintf_retval_c99="guessing no";;
esac
- for gl_func in socket connect accept bind getpeername getsockname getsockopt listen recv send recvfrom sendto setsockopt shutdown accept4; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Some systems require prerequisite headers. */
-#include <sys/types.h>
-#include <sys/socket.h>
-
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
if test "$cross_compiling" = yes
then :
case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_getcwd_null="guessing yes";;
- # Guess yes on Cygwin.
- cygwin*) gl_cv_func_getcwd_null="guessing yes";;
- # If we don't know, assume the worst.
- *) gl_cv_func_getcwd_null="guessing no";;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_getcwd_null="guessing yes";;
+ # Guess yes on Cygwin.
+ cygwin*) gl_cv_func_getcwd_null="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_getcwd_null="guessing no";;
esac
else
main (void)
{
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
/* mingw cwd does not start with '/', but getcwd does allocate.
However, mingw fails to honor non-zero size. */
#else
if (! f)
return 2;
if (f[0] != '/')
- return 3;
+ { free (f); return 3; }
if (f[1] != '\0')
- return 4;
+ { free (f); return 4; }
free (f);
return 0;
}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for IPv4 sockets" >&5
printf %s "checking for IPv4 sockets... " >&6; }
- if test ${gl_cv_socket_ipv4+y}
+if test ${gl_cv_socket_ipv4+y}
then :
printf %s "(cached) " >&6
else
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socket_ipv4" >&5
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socket_ipv4" >&5
printf "%s\n" "$gl_cv_socket_ipv4" >&6; }
if test $gl_cv_socket_ipv4 = yes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for IPv6 sockets" >&5
printf %s "checking for IPv6 sockets... " >&6; }
- if test ${gl_cv_socket_ipv6+y}
+if test ${gl_cv_socket_ipv6+y}
then :
printf %s "(cached) " >&6
else
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socket_ipv6" >&5
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socket_ipv6" >&5
printf "%s\n" "$gl_cv_socket_ipv6" >&6; }
if test $gl_cv_socket_ipv6 = yes; then
- for gl_func in pselect select; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Some systems require prerequisite headers. */
-#include <sys/types.h>
-#if !(defined __GLIBC__ && !defined __UCLIBC__) && HAVE_SYS_TIME_H
-# include <sys/time.h>
-#endif
-#include <sys/select.h>
-
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
LIBSOCKET='-lws2_32'
fi
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
printf %s "checking for library containing setsockopt... " >&6; }
if test ${gl_cv_lib_socket+y}
then :
then :
case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_select_detects_ebadf="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_select_detects_ebadf="guessing no" ;;
+ # Guess yes on Linux systems.
+ linux-* | linux) gl_cv_func_select_detects_ebadf="guessing yes" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_select_detects_ebadf="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_select_detects_ebadf="guessing no" ;;
esac
else
case "$host_os" in
# Guess no on Cygwin.
cygwin*) gl_cv_func_btowc_nul="guessing no" ;;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_btowc_nul="guessing yes" ;;
# Guess yes otherwise.
*) gl_cv_func_btowc_nul="guessing yes" ;;
esac
else
case "$host_os" in
- # Guess no on IRIX.
- irix*) gl_cv_func_btowc_eof="guessing no" ;;
- # Guess yes otherwise.
- *) gl_cv_func_btowc_eof="guessing yes" ;;
+ # Guess no on IRIX.
+ irix*) gl_cv_func_btowc_eof="guessing no" ;;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_btowc_eof="guessing yes" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_btowc_eof="guessing yes" ;;
esac
if test $LOCALE_FR != none; then
if test "$cross_compiling" = yes
+printf "%s\n" "#define GNULIB_TEST_CLOEXEC 1" >>confdefs.h
+
+
+
+
if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
- if test "x$datarootdir" = x; then
- datarootdir='${datadir}'
-
- fi
- if test "x$docdir" = x; then
- docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-
- fi
- if test "x$htmldir" = x; then
- htmldir='${docdir}'
-
- fi
- if test "x$dvidir" = x; then
- dvidir='${docdir}'
-
- fi
- if test "x$pdfdir" = x; then
- pdfdir='${docdir}'
-
- fi
- if test "x$psdir" = x; then
- psdir='${docdir}'
-
- fi
- if test "x$lispdir" = x; then
- lispdir='${datarootdir}/emacs/site-lisp'
-
- fi
- if test "x$localedir" = x; then
- localedir='${datarootdir}/locale'
-
- fi
- if test "x$runstatedir" = x; then
- runstatedir='${localstatedir}/run'
-
- fi
-
- pkglibexecdir='${libexecdir}/${PACKAGE}'
-
-
-
- for gl_func in isblank; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
- for gl_func in fcntl openat; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <fcntl.h>
-
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
aix* | beos* | openbsd* | mirbsd* | irix*)
FLOAT_H=float.h
;;
- freebsd*)
+ freebsd* | dragonfly*)
case "$host_cpu" in
i[34567]86 )
FLOAT_H=float.h
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if defined __LP64__ || defined __x86_64__ || defined __amd64__
- yes
- #endif
+ int ok;
+ #else
+ error fail
+ #endif
+
_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "yes" >/dev/null 2>&1
+if ac_fn_c_try_compile "$LINENO"
then :
else
FLOAT_H=float.h
fi
-rm -rf conftest*
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
;;
esac
;;
;;
esac
case "$host_os" in
- aix* | freebsd* | linux*)
+ aix* | freebsd* | dragonfly* | linux*)
if test -n "$FLOAT_H"; then
REPLACE_FLOAT_LDBL=1
fi
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if defined __LP64__ || defined __arch64__
- yes
- #endif
+ int ok;
+ #else
+ error fail
+ #endif
+
_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "yes" >/dev/null 2>&1
+if ac_fn_c_try_compile "$LINENO"
then :
gl_cv_func_itold_works="guessing no"
else
gl_cv_func_itold_works="guessing yes"
fi
-rm -rf conftest*
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
;;
- *) gl_cv_func_itold_works="guessing yes" ;;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_itold_works="guessing yes" ;;
+ *) gl_cv_func_itold_works="guessing yes" ;;
esac
else
-
- FNMATCH_H=
gl_fnmatch_required_lowercase=`
echo $gl_fnmatch_required | LC_ALL=C tr '[A-Z]' '[a-z]'
`
- gl_fnmatch_cache_var="gl_cv_func_fnmatch_${gl_fnmatch_required_lowercase}"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working $gl_fnmatch_required fnmatch" >&5
+
+ if test $ac_cv_func_fnmatch = no; then
+ HAVE_FNMATCH=0
+ else
+ gl_fnmatch_cache_var="gl_cv_func_fnmatch_${gl_fnmatch_required_lowercase}"
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working $gl_fnmatch_required fnmatch" >&5
printf %s "checking for working $gl_fnmatch_required fnmatch... " >&6; }
if eval test \${$gl_fnmatch_cache_var+y}
then :
printf %s "(cached) " >&6
else
- if test $gl_fnmatch_required = GNU; then
- gl_fnmatch_gnu_start=
- gl_fnmatch_gnu_end=
- else
- gl_fnmatch_gnu_start='#if 0'
- gl_fnmatch_gnu_end='#endif'
- fi
- if test "$cross_compiling" = yes
+ if test $gl_fnmatch_required = GNU; then
+ gl_fnmatch_gnu_start=
+ gl_fnmatch_gnu_end=
+ else
+ gl_fnmatch_gnu_start='#if 0'
+ gl_fnmatch_gnu_end='#endif'
+ fi
+ if test "$cross_compiling" = yes
then :
eval "$gl_fnmatch_cache_var=\"guessing no\""
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <fnmatch.h>
- static int
- y (char const *pattern, char const *string, int flags)
- {
- return fnmatch (pattern, string, flags) == 0;
- }
- static int
- n (char const *pattern, char const *string, int flags)
- {
- return fnmatch (pattern, string, flags) == FNM_NOMATCH;
- }
+ static int
+ y (char const *pattern, char const *string, int flags)
+ {
+ return fnmatch (pattern, string, flags) == 0;
+ }
+ static int
+ n (char const *pattern, char const *string, int flags)
+ {
+ return fnmatch (pattern, string, flags) == FNM_NOMATCH;
+ }
int
main (void)
{
char const *Apat = 'A' < '\\\\' ? "[A-\\\\\\\\]" : "[\\\\\\\\-A]";
- char const *apat = 'a' < '\\\\' ? "[a-\\\\\\\\]" : "[\\\\\\\\-a]";
- static char const A_1[] = { 'A' - 1, 0 };
- static char const A01[] = { 'A' + 1, 0 };
- static char const a_1[] = { 'a' - 1, 0 };
- static char const a01[] = { 'a' + 1, 0 };
- static char const bs_1[] = { '\\\\' - 1, 0 };
- static char const bs01[] = { '\\\\' + 1, 0 };
- int result = 0;
- if (!n ("a*", "", 0))
- return 1;
- if (!y ("a*", "abc", 0))
- return 1;
- if (!y ("[/b", "[/b", 0)) /*"]]"*/ /* glibc Bugzilla bug 12378 */
- return 1;
- if (!n ("d*/*1", "d/s/1", FNM_PATHNAME))
- return 2;
- if (!y ("a\\\\bc", "abc", 0))
- return 3;
- if (!n ("a\\\\bc", "abc", FNM_NOESCAPE))
- return 3;
- if (!y ("*x", ".x", 0))
- return 4;
- if (!n ("*x", ".x", FNM_PERIOD))
- return 4;
- if (!y (Apat, "\\\\", 0))
- return 5;
- if (!y (Apat, "A", 0))
- return 5;
- if (!y (apat, "\\\\", 0))
- return 5;
- if (!y (apat, "a", 0))
- return 5;
- if (!(n (Apat, A_1, 0) == ('A' < '\\\\')))
- return 5;
- if (!(n (apat, a_1, 0) == ('a' < '\\\\')))
- return 5;
- if (!(y (Apat, A01, 0) == ('A' < '\\\\')))
- return 5;
- if (!(y (apat, a01, 0) == ('a' < '\\\\')))
- return 5;
- if (!(y (Apat, bs_1, 0) == ('A' < '\\\\')))
- return 5;
- if (!(y (apat, bs_1, 0) == ('a' < '\\\\')))
- return 5;
- if (!(n (Apat, bs01, 0) == ('A' < '\\\\')))
- return 5;
- if (!(n (apat, bs01, 0) == ('a' < '\\\\')))
- return 5;
- $gl_fnmatch_gnu_start
- if (!y ("xxXX", "xXxX", FNM_CASEFOLD))
- result |= 8;
- if (!y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH))
- result |= 16;
- if (!n ("d*/*1", "d/s/1", FNM_FILE_NAME))
- result |= 32;
- if (!y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR))
- result |= 64;
- if (!y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR))
- result |= 64;
- if (!y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR))
- result |= 64;
- $gl_fnmatch_gnu_end
- return result;
+ char const *apat = 'a' < '\\\\' ? "[a-\\\\\\\\]" : "[\\\\\\\\-a]";
+ static char const A_1[] = { 'A' - 1, 0 };
+ static char const A01[] = { 'A' + 1, 0 };
+ static char const a_1[] = { 'a' - 1, 0 };
+ static char const a01[] = { 'a' + 1, 0 };
+ static char const bs_1[] = { '\\\\' - 1, 0 };
+ static char const bs01[] = { '\\\\' + 1, 0 };
+ int result = 0;
+ if (!n ("a*", "", 0))
+ return 1;
+ if (!y ("a*", "abc", 0))
+ return 1;
+ if (!y ("[/b", "[/b", 0)) /*"]]"*/ /* glibc Bugzilla bug 12378 */
+ return 1;
+ if (!n ("d*/*1", "d/s/1", FNM_PATHNAME))
+ return 2;
+ if (!y ("a\\\\bc", "abc", 0))
+ return 3;
+ if (!n ("a\\\\bc", "abc", FNM_NOESCAPE))
+ return 3;
+ if (!y ("*x", ".x", 0))
+ return 4;
+ if (!n ("*x", ".x", FNM_PERIOD))
+ return 4;
+ if (!y (Apat, "\\\\", 0))
+ return 5;
+ if (!y (Apat, "A", 0))
+ return 5;
+ if (!y (apat, "\\\\", 0))
+ return 5;
+ if (!y (apat, "a", 0))
+ return 5;
+ if (!(n (Apat, A_1, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(n (apat, a_1, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(y (Apat, A01, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(y (apat, a01, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(y (Apat, bs_1, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(y (apat, bs_1, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(n (Apat, bs01, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(n (apat, bs01, 0) == ('a' < '\\\\')))
+ return 5;
+ $gl_fnmatch_gnu_start
+ if (!y ("xxXX", "xXxX", FNM_CASEFOLD))
+ result |= 8;
+ if (!y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH))
+ result |= 16;
+ if (!n ("d*/*1", "d/s/1", FNM_FILE_NAME))
+ result |= 32;
+ if (!y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ if (!y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ if (!y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ $gl_fnmatch_gnu_end
+ return result;
;
return 0;
eval ac_res=\$$gl_fnmatch_cache_var
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
- eval "gl_fnmatch_result=\"\$$gl_fnmatch_cache_var\""
- if test "$gl_fnmatch_result" = yes; then
- rm -f "$gl_source_base/fnmatch.h"
- else
- FNMATCH_H=fnmatch.h
+ eval "gl_fnmatch_result=\"\$$gl_fnmatch_cache_var\""
+ if test "$gl_fnmatch_result" != yes; then
+ REPLACE_FNMATCH=1
+ fi
fi
+ if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then
+
+ FNMATCH_H='fnmatch.h'
if test -n "$FNMATCH_H"; then
GL_GENERATE_FNMATCH_H_TRUE=
GL_GENERATE_FNMATCH_H_FALSE='#'
fi
- if test -n "$FNMATCH_H"; then
-
+ fi
+ if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then
- gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext"
+ gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext"
-printf "%s\n" "#define fnmatch ${gl_fnmatch_required_lowercase}_fnmatch" >>confdefs.h
ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h>
- if test -n "$FNMATCH_H"; then
+ GNULIB_FNMATCH=1
+printf "%s\n" "#define GNULIB_TEST_FNMATCH 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then
- gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext"
-printf "%s\n" "#define fnmatch ${gl_fnmatch_required_lowercase}_fnmatch" >>confdefs.h
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext"
+
ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h>
fi
+printf "%s\n" "#define GNULIB_FNMATCH_GNU 1" >>confdefs.h
+
+
+
+
+
case "$host_os" in
mingw* | pw* | os2*)
case "$host_os" in
- mingw*)
- REPLACE_FSTAT=1
+ mingw* | solaris*)
+ REPLACE_FSTAT=1
;;
esac
gl_LIBOBJS="$gl_LIBOBJS fstat.$ac_objext"
+ case "$host_os" in
+ mingw*)
gl_LIBOBJS="$gl_LIBOBJS stat-w32.$ac_objext"
+ ;;
+ esac
:
if test $ac_cv_func_getdtablesize = yes &&
test $ac_cv_have_decl_getdtablesize = yes; then
- # Cygwin 1.7.25 automatically increases the RLIMIT_NOFILE soft limit
- # up to an unchangeable hard limit; all other platforms correctly
- # require setrlimit before getdtablesize() can report a larger value.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether getdtablesize works" >&5
printf %s "checking whether getdtablesize works... " >&6; }
if test ${gl_cv_func_getdtablesize_works+y}
then :
printf %s "(cached) " >&6
else
- if test "$cross_compiling" = yes
+ case "$host_os" in
+ vms*) gl_cv_func_getdtablesize_works="no (limitation)" ;;
+ *)
+ if test "$cross_compiling" = yes
then :
case "$host_os" in
- cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows
- gl_cv_func_getdtablesize_works="guessing no" ;;
- *) gl_cv_func_getdtablesize_works="guessing yes" ;;
- esac
+ cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows
+ gl_cv_func_getdtablesize_works="guessing no" ;;
+ *) gl_cv_func_getdtablesize_works="guessing yes" ;;
+ esac
+
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
- #include <unistd.h>
+ #include <unistd.h>
int
main (void)
{
int size = getdtablesize();
- if (dup2 (0, getdtablesize()) != -1)
- return 1;
- if (size != getdtablesize())
- return 2;
+ if (dup2 (0, getdtablesize()) != -1)
+ return 1;
+ if (size != getdtablesize())
+ return 2;
;
return 0;
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+ ;;
+ esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getdtablesize_works" >&5
printf "%s\n" "$gl_cv_func_getdtablesize_works" >&6; }
case "$gl_cv_func_getdtablesize_works" in
- *yes) ;;
+ *yes | "no (limitation)") ;;
*) REPLACE_GETDTABLESIZE=1 ;;
esac
else
then :
# When cross-compiling:
case "$host_os" in
- # Guess all is fine on glibc systems.
- *-gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_gettimeofday_clobber="guessing yes" ;;
+ # Guess all is fine on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_gettimeofday_clobber="guessing yes" ;;
esac
else
- if ${MAKE-make} --version /cannot/make/this >/dev/null 2>&1; then
+ if LC_ALL=C ${MAKE-make} --version 2>/dev/null | sed -e '2,$d' | grep GNU >/dev/null; then
GNU_MAKE_TRUE=
GNU_MAKE_FALSE='#'
else
ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile"
- :
-
-
+
+
+
+
if test "$am_cv_func_iconv" = yes; then
HAVE_LANGINFO_CODESET=0
HAVE_LANGINFO_T_FMT_AMPM=0
+ HAVE_LANGINFO_ALTMON=0
HAVE_LANGINFO_ERA=0
HAVE_LANGINFO_YESEXPR=0
if test $ac_cv_header_langinfo_h = yes; then
HAVE_LANGINFO_H=1
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines CODESET" >&5
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines CODESET" >&5
printf %s "checking whether langinfo.h defines CODESET... " >&6; }
if test ${gl_cv_header_langinfo_codeset+y}
then :
if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then
HAVE_LANGINFO_T_FMT_AMPM=1
fi
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ALTMON_1" >&5
+printf %s "checking whether langinfo.h defines ALTMON_1... " >&6; }
+if test ${gl_cv_header_langinfo_altmon+y}
+then :
+ printf %s "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int a = ALTMON_1;
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ gl_cv_header_langinfo_altmon=yes
+else
+ gl_cv_header_langinfo_altmon=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_altmon" >&5
+printf "%s\n" "$gl_cv_header_langinfo_altmon" >&6; }
+ if test $gl_cv_header_langinfo_altmon = yes; then
+ HAVE_LANGINFO_ALTMON=1
+ fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ERA" >&5
printf %s "checking whether langinfo.h defines ERA... " >&6; }
if test ${gl_cv_header_langinfo_era+y}
- for gl_func in nl_langinfo; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
+
+
+
+
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the __inline keyword" >&5
+printf %s "checking whether the compiler supports the __inline keyword... " >&6; }
+if test ${gl_cv_c___inline+y}
then :
printf %s "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <langinfo.h>
-
+typedef int foo_t;
+ static __inline foo_t foo (void) { return 0; }
int
main (void)
{
-#undef $gl_func
- (void) $gl_func;
+return foo ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
- eval "$as_gl_Symbol=yes"
+ gl_cv_c___inline=yes
else
- eval "$as_gl_Symbol=no"
+ gl_cv_c___inline=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
-
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c___inline" >&5
+printf "%s\n" "$gl_cv_c___inline" >&6; }
+ if test $gl_cv_c___inline = yes; then
+printf "%s\n" "#define HAVE___INLINE 1" >>confdefs.h
+ fi
additional_includedir="$withval/include"
additional_libdir="$withval/$acl_libdirstem"
if test "$acl_libdirstem2" != "$acl_libdirstem" \
- && ! test -d "$withval/$acl_libdirstem"; then
+ && test ! -d "$withval/$acl_libdirstem"; then
additional_libdir="$withval/$acl_libdirstem2"
fi
fi
-
ac_save_CPPFLAGS="$CPPFLAGS"
for element in $INCSIGSEGV; do
-
-
-
-
-
- LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\""
+ LOCALCHARSET_TESTS_ENVIRONMENT=
- for gl_func in setlocale duplocale; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <locale.h>
-/* Some systems provide declarations in a non-standard header. */
-#if HAVE_XLOCALE_H
-# include <xlocale.h>
-#endif
-
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
+
if test $ac_cv_func_lstat = yes; then
- case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
- *no)
+ case $host_os,$gl_cv_func_lstat_dereferences_slashed_symlink in
+ solaris* | *no)
REPLACE_LSTAT=1
;;
esac
else
case "$host_os" in
- # Guess no on AIX and glibc systems.
- aix* | *-gnu*)
- gl_cv_func_mbrtowc_empty_input="guessing no" ;;
- *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;;
+ # Guess no on AIX and glibc systems.
+ aix* | *-gnu* | gnu*) gl_cv_func_mbrtowc_empty_input="guessing no" ;;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;;
+ *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;;
esac
if test "$cross_compiling" = yes
then :
printf "%s\n" "$gl_cv_func_mbrtowc_empty_input" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C locale is free of encoding errors" >&5
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C locale is free of encoding errors" >&5
printf %s "checking whether the C locale is free of encoding errors... " >&6; }
if test ${gl_cv_C_locale_sans_EILSEQ+y}
then :
if test "$cross_compiling" = yes
then :
- :
+ case "$host_os" in
+ # Guess yes on native Windows.
+ mingw*) gl_cv_C_locale_sans_EILSEQ="guessing yes" ;;
+ esac
+
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_C_locale_sans_EILSEQ" >&5
printf "%s\n" "$gl_cv_C_locale_sans_EILSEQ" >&6; }
gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext"
+
:
fi
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mkdir handles trailing slash" >&5
+printf %s "checking whether mkdir handles trailing slash... " >&6; }
+if test ${gl_cv_func_mkdir_trailing_slash_works+y}
+then :
+ printf %s "(cached) " >&6
+else
+ rm -rf conftest.dir
+ if test "$cross_compiling" = yes
+then :
+ case "$host_os" in
+ # Guess yes on Linux systems.
+ linux-* | linux) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;;
+ # Guess yes on MSVC, no on mingw.
+ mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef _MSC_VER
+ Known
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Known" >/dev/null 2>&1
+then :
+ gl_cv_func_mkdir_trailing_slash_works="guessing yes"
+else
+ gl_cv_func_mkdir_trailing_slash_works="guessing no"
+fi
+rm -rf conftest*
+
+ ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_mkdir_trailing_slash_works="guessing no" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <sys/types.h>
+# include <sys/stat.h>
+
+int
+main (void)
+{
+return mkdir ("conftest.dir/", 0700);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+ gl_cv_func_mkdir_trailing_slash_works=yes
+else
+ gl_cv_func_mkdir_trailing_slash_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.dir
+
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mkdir_trailing_slash_works" >&5
+printf "%s\n" "$gl_cv_func_mkdir_trailing_slash_works" >&6; }
+ case "$gl_cv_func_mkdir_trailing_slash_works" in
+ *yes) ;;
+ *)
+ REPLACE_MKDIR=1
+ ;;
+ esac
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mkdir handles trailing dot" >&5
+printf %s "checking whether mkdir handles trailing dot... " >&6; }
+if test ${gl_cv_func_mkdir_trailing_dot_works+y}
+then :
+ printf %s "(cached) " >&6
+else
+ rm -rf conftest.dir
+ if test "$cross_compiling" = yes
+then :
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_mkdir_trailing_dot_works="guessing no" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_mkdir_trailing_dot_works="guessing no" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <sys/types.h>
+# include <sys/stat.h>
+
+int
+main (void)
+{
+return !mkdir ("conftest.dir/./", 0700);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+ gl_cv_func_mkdir_trailing_dot_works=yes
+else
+ gl_cv_func_mkdir_trailing_dot_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.dir
+
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mkdir_trailing_dot_works" >&5
+printf "%s\n" "$gl_cv_func_mkdir_trailing_dot_works" >&6; }
+ case "$gl_cv_func_mkdir_trailing_dot_works" in
+ *yes) ;;
+ *)
+ REPLACE_MKDIR=1
+
+printf "%s\n" "#define FUNC_MKDIR_DOT_BUG 1" >>confdefs.h
+
+ ;;
+ esac
+
+ if test $REPLACE_MKDIR = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mkdir.$ac_objext"
+
+ fi
+
+
if test $ac_cv_func_mkstemp = yes; then
if test "$cross_compiling" = yes
then :
case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_working_mkstemp="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_working_mkstemp="guessing no" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_working_mkstemp="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_working_mkstemp="guessing no" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_working_mkstemp="guessing no" ;;
esac
else
printf "%s\n" "#define FUNC_NL_LANGINFO_YESEXPR_WORKS $FUNC_NL_LANGINFO_YESEXPR_WORKS" >>confdefs.h
- if test $HAVE_LANGINFO_CODESET = 1 && test $HAVE_LANGINFO_ERA = 1 \
- && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then
+ if test $HAVE_LANGINFO_CODESET = 1 \
+ && test $HAVE_LANGINFO_T_FMT_AMPM = 1 \
+ && test $HAVE_LANGINFO_ALTMON = 1 \
+ && test $HAVE_LANGINFO_ERA = 1 \
+ && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then
:
else
REPLACE_NL_LANGINFO=1
+ # This defines (or not) HAVE_TZNAME and HAVE_TM_ZONE.
+
+
+
+
+
+
+
+printf "%s\n" "#define my_strftime nstrftime" >>confdefs.h
+
+
+
+
case "$host_os" in
mingw* | pw*)
;;
*)
+ if test "$gl_cv_macro_O_CLOEXEC" != yes; then
+ REPLACE_OPEN=1
+ fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether open recognizes a trailing slash" >&5
printf %s "checking whether open recognizes a trailing slash... " >&6; }
if test ${gl_cv_func_open_slash+y}
if test "$cross_compiling" = yes
then :
case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_readlink_works="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_readlink_works="guessing no" ;;
+ # Guess yes on Linux systems.
+ linux-* | linux) gl_cv_func_readlink_works="guessing yes" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_readlink_works="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_readlink_works="guessing no" ;;
esac
else
else
if test "$cross_compiling" = yes
then :
- gl_cv_func_re_compile_pattern_working=no
+ case "$host_os" in
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_re_compile_pattern_working="guessing no" ;;
+ # Otherwise, assume it is not working.
+ *) gl_cv_func_re_compile_pattern_working="guessing no" ;;
+ esac
+
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
if (setlocale (LC_ALL, "en_US.UTF-8"))
{
{
- /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html
+ /* https://sourceware.org/ml/libc-hacker/2006-09/msg00008.html
This test needs valgrind to catch the bug on Debian
GNU/Linux 3.1 x86, but it might catch the bug better
on other platforms and it shouldn't hurt to try the
{
/* This test is from glibc bug 15078.
The test case is from Andreas Schwab in
- <http://www.sourceware.org/ml/libc-alpha/2013-01/msg00967.html>.
+ <https://sourceware.org/ml/libc-alpha/2013-01/msg00967.html>.
*/
static char const pat[] = "[^x]x";
static char const data[] =
result |= 16;
/* Catch a bug reported by Vin Shelton in
- http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html
+ https://lists.gnu.org/r/bug-coreutils/2007-06/msg00089.html
*/
re_set_syntax (RE_SYNTAX_POSIX_BASIC
& ~RE_CONTEXT_INVALID_DUP
if (! REG_STARTEND)
result |= 64;
+ /* Matching with the compiled form of this regexp would provoke
+ an assertion failure prior to glibc-2.28:
+ regexec.c:1375: pop_fail_stack: Assertion 'num >= 0' failed
+ With glibc-2.28, compilation fails and reports the invalid
+ back reference. */
+ re_set_syntax (RE_SYNTAX_POSIX_EGREP);
+ memset (®ex, 0, sizeof regex);
+ s = re_compile_pattern ("0|()0|\\1|0", 10, ®ex);
+ if (!s || strcmp (s, "Invalid back reference"))
+ result |= 64;
+
#if 0
/* It would be nice to reject hosts whose regoff_t values are too
narrow (including glibc on hosts with 64-bit ptrdiff_t and
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_re_compile_pattern_working" >&5
printf "%s\n" "$gl_cv_func_re_compile_pattern_working" >&6; }
- case $gl_cv_func_re_compile_pattern_working in #(
- yes) ac_use_included_regex=no;; #(
- no) ac_use_included_regex=yes;;
+ case "$gl_cv_func_re_compile_pattern_working" in #(
+ *yes) ac_use_included_regex=no;; #(
+ *no) ac_use_included_regex=yes;;
esac
;;
*) as_fn_error $? "Invalid value for --with-included-regex: $with_included_regex" "$LINENO" 5
fi
-
-
-
- if test $ac_cv_func_secure_getenv = no; then
- HAVE_SECURE_GETENV=0
- fi
-
- if test $HAVE_SECURE_GETENV = 0; then
-
-
-
-
-
-
-
-
- gl_LIBOBJS="$gl_LIBOBJS secure_getenv.$ac_objext"
-
-
- ac_fn_c_check_func "$LINENO" "__secure_getenv" "ac_cv_func___secure_getenv"
-if test "x$ac_cv_func___secure_getenv" = xyes
-then :
- printf "%s\n" "#define HAVE___SECURE_GETENV 1" >>confdefs.h
-
-fi
-
- if test $ac_cv_func___secure_getenv = no; then
- ac_fn_c_check_func "$LINENO" "issetugid" "ac_cv_func_issetugid"
-if test "x$ac_cv_func_issetugid" = xyes
-then :
- printf "%s\n" "#define HAVE_ISSETUGID 1" >>confdefs.h
-
-fi
-
- fi
-
-
- fi
-
-
-
-
-
- GNULIB_SECURE_GETENV=1
-
-
-
-
-
-printf "%s\n" "#define GNULIB_TEST_SECURE_GETENV 1" >>confdefs.h
-
-
-
-
-
if test $ac_cv_func_setenv = no; then
HAVE_SETENV=0
else
if test "$cross_compiling" = yes
then :
case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_setenv_works="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_setenv_works="guessing no" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_setenv_works="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_setenv_works="guessing no" ;;
esac
else
- for gl_func in pthread_sigmask sigaction sigaddset sigdelset sigemptyset sigfillset sigismember sigpending sigprocmask; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <signal.h>
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
if test "$cross_compiling" = yes
then :
case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_stat_file_slash="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_stat_file_slash="guessing no" ;;
+ # Guess yes on Linux systems.
+ linux-* | linux) gl_cv_func_stat_file_slash="guessing yes" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_stat_file_slash="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_stat_file_slash="guessing no" ;;
esac
else
printf "%s\n" "#define REPLACE_FUNC_STAT_FILE 1" >>confdefs.h
;;
esac
+ case $host_os in
+ solaris*)
+ REPLACE_FSTAT=1 ;;
+ esac
;;
esac
gl_LIBOBJS="$gl_LIBOBJS stat.$ac_objext"
+ case "$host_os" in
+ mingw*)
gl_LIBOBJS="$gl_LIBOBJS stat-w32.$ac_objext"
+ ;;
+ esac
:
NEXT_STDARG_H='<stdarg.h>'
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5
printf %s "checking for va_copy... " >&6; }
- if test ${gl_cv_func_va_copy+y}
+if test ${gl_cv_func_va_copy+y}
then :
printf %s "(cached) " >&6
else
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdarg.h>
int
gl_cv_func_va_copy=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_va_copy" >&5
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_va_copy" >&5
printf "%s\n" "$gl_cv_func_va_copy" >&6; }
if test $gl_cv_func_va_copy = no; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
STDDEF_H=
- ac_fn_c_check_type "$LINENO" "max_align_t" "ac_cv_type_max_align_t" "#include <stddef.h>
-"
-if test "x$ac_cv_type_max_align_t" = xyes
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for good max_align_t" >&5
+printf %s "checking for good max_align_t... " >&6; }
+if test ${gl_cv_type_max_align_t+y}
then :
+ printf %s "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stddef.h>
+ unsigned int s = sizeof (max_align_t);
+ #if defined __GNUC__ || defined __IBM__ALIGNOF__
+ int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1];
+ int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1];
+ #endif
+
+int
+main (void)
+{
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ gl_cv_type_max_align_t=yes
else
- HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h
+ gl_cv_type_max_align_t=no
fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_max_align_t" >&5
+printf "%s\n" "$gl_cv_type_max_align_t" >&6; }
+ if test $gl_cv_type_max_align_t = no; then
+ HAVE_MAX_ALIGN_T=0
+ STDDEF_H=stddef.h
+ fi
if test $gt_cv_c_wchar_t = no; then
HAVE_WCHAR_T=0
STDDEF_H=stddef.h
fi
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5
printf %s "checking whether NULL can be used in arbitrary expressions... " >&6; }
if test ${gl_cv_decl_null_works+y}
STDDEF_H=stddef.h
fi
+
if test -n "$STDDEF_H"; then
GL_GENERATE_STDDEF_H_TRUE=
GL_GENERATE_STDDEF_H_FALSE='#'
/* For non-mingw systems, compilation will trivially succeed.
For mingw, compilation will succeed for older mingw (system
printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */
- #if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) && \
+ #if (defined _WIN32 && ! defined __CYGWIN__) && \
(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1];
#endif
- for gl_func in dprintf fpurge fseeko ftello getdelim getline gets pclose popen renameat snprintf tmpfile vdprintf vsnprintf; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
- for gl_func in _Exit atoll canonicalize_file_name getloadavg getsubopt grantpt initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps posix_openpt ptsname ptsname_r qsort_r random random_r realpath rpmatch secure_getenv setenv setstate setstate_r srandom srandom_r strtod strtoll strtoull unlockpt unsetenv; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#if HAVE_SYS_LOADAVG_H
-# include <sys/loadavg.h>
-#endif
-#if HAVE_RANDOM_H
-# include <random.h>
-#endif
-
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
if test "$cross_compiling" = yes
then :
case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_working_strerror="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_working_strerror="guessing no" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_working_strerror="guessing no" ;;
esac
else
fi
-
- # This defines (or not) HAVE_TZNAME and HAVE_TM_ZONE.
-
-
-
-
-
-
-
-printf "%s\n" "#define my_strftime nstrftime" >>confdefs.h
-
-
if test $gl_cond_libtool = false; then
gl_ltlibdeps="$gl_ltlibdeps $LTLIBICONV"
gl_libdeps="$gl_libdeps $LIBICONV"
- for gl_func in fchmodat fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat mknod mknodat stat utimensat; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/stat.h>
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
- for gl_func in waitpid; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/wait.h>
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
+ # Mac OS X 10.6 loops forever with some time_t values.
+ # See Bug#27706, Bug#27736, and
+ # https://lists.gnu.org/r/bug-gnulib/2017-07/msg00142.html
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether localtime loops forever near extrema" >&5
+printf %s "checking whether localtime loops forever near extrema... " >&6; }
+if test ${gl_cv_func_localtime_infloop_bug+y}
+then :
+ printf %s "(cached) " >&6
+else
+ gl_cv_func_localtime_infloop_bug=no
+ if test "$cross_compiling" = yes
+then :
+ gl_cv_func_localtime_infloop_bug="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
+ #include <time.h>
+
+int
+main (void)
+{
+
+ time_t t = -67768038400666600;
+ struct tm *tm;
+ char *tz = getenv ("TZ");
+ if (! (tz && strcmp (tz, "QQQ0") == 0))
+ return 0;
+ alarm (2);
+ tm = localtime (&t);
+ /* Use TM and *TM to suppress over-optimization. */
+ return tm && tm->tm_isdst;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+ (TZ=QQQ0 ./conftest$EXEEXT) >/dev/null 2>&1 ||
+ gl_cv_func_localtime_infloop_bug=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_localtime_infloop_bug" >&5
+printf "%s\n" "$gl_cv_func_localtime_infloop_bug" >&6; }
+ if test "$gl_cv_func_localtime_infloop_bug" = yes; then
+
+printf "%s\n" "#define HAVE_LOCALTIME_INFLOOP_BUG 1" >>confdefs.h
+
+ fi
+
ac_fn_c_check_type "$LINENO" "timezone_t" "ac_cv_type_timezone_t" "#include <time.h>
"
if test "x$ac_cv_type_timezone_t" = xyes
then :
printf %s "(cached) " >&6
else
-
if test "$cross_compiling" = yes
then :
case "$host_os" in
- # Guess all is fine on glibc systems.
- *-gnu*) gl_cv_func_tzset_clobber="guessing no" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_tzset_clobber="guessing yes" ;;
+ # Guess all is fine on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_tzset_clobber="guessing no" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_tzset_clobber="guessing no" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_tzset_clobber="guessing yes" ;;
esac
else
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_tzset_clobber" >&5
printf "%s\n" "$gl_cv_func_tzset_clobber" >&6; }
- for gl_func in chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups gethostname getlogin getlogin_r getpagesize getusershell setusershell endusershell group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sethostname sleep symlink symlinkat truncate ttyname_r unlink unlinkat usleep; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-/* Some systems declare various items in the wrong headers. */
-#if !(defined __GLIBC__ && !defined __UCLIBC__)
-# include <fcntl.h>
-# include <stdio.h>
-# include <stdlib.h>
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-# include <io.h>
-# endif
-#endif
-
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
|| { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
&& { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
|| { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
- && test $LIBUNISTRING_VERSION_SUBMINOR -lt 6
+ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 8
}
}
}
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef __STDC_NO_VLA__
- defined
- #endif
+ defined
+ #endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Test for VLA support. This test is partly inspired
- from examples in the C standard. Use at least two VLA
- functions to detect the GCC 3.4.3 bug described in:
- http://lists.gnu.org/archive/html/bug-gnulib/2014-08/msg00014.html
- */
- #ifdef __STDC_NO_VLA__
- syntax error;
- #else
- extern int n;
- int B[100];
- int fvla (int m, int C[m][m]);
-
- int
- simple (int count, int all[static count])
- {
- return all[count - 1];
- }
-
- int
- fvla (int m, int C[m][m])
- {
- typedef int VLA[m][m];
- VLA x;
- int D[m];
- static int (*q)[m] = &B;
- int (*s)[n] = q;
- return C && &x[0][0] == &D[0] && &D[0] == s[0];
- }
- #endif
+ from examples in the C standard. Use at least two VLA
+ functions to detect the GCC 3.4.3 bug described in:
+ https://lists.gnu.org/r/bug-gnulib/2014-08/msg00014.html
+ */
+ #ifdef __STDC_NO_VLA__
+ syntax error;
+ #else
+ extern int n;
+ int B[100];
+ int fvla (int m, int C[m][m]);
+
+ int
+ simple (int count, int all[static count])
+ {
+ return all[count - 1];
+ }
+
+ int
+ fvla (int m, int C[m][m])
+ {
+ typedef int VLA[m][m];
+ VLA x;
+ int D[m];
+ static int (*q)[m] = &B;
+ int (*s)[n] = q;
+ return C && &x[0][0] == &D[0] && &D[0] == s[0];
+ }
+ #endif
int
main (void)
- for gl_func in btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth wcsftime ; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
- <wchar.h>.
- BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
- included before <wchar.h>. */
-#if !(defined __GLIBC__ && !defined __UCLIBC__)
-# include <stddef.h>
-# include <stdio.h>
-# include <time.h>
-#endif
-#include <wchar.h>
-
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
case "$host_os" in
# Guess no on AIX 4, OSF/1 and Solaris.
aix4* | osf* | solaris*) gl_cv_func_wcrtomb_retval="guessing no" ;;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_wcrtomb_retval="guessing yes" ;;
# Guess yes otherwise.
*) gl_cv_func_wcrtomb_retval="guessing yes" ;;
esac
if test "$cross_compiling" = yes
then :
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdlib.h>
#if __GNU_LIBRARY__ == 1
fi
- for gl_func in wctype iswctype wctrans towctrans ; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
- <wchar.h>.
- BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
- included before <wchar.h>. */
-#if !(defined __GLIBC__ && !defined __UCLIBC__)
-# include <stddef.h>
-# include <stdio.h>
-# include <time.h>
-# include <wchar.h>
-#endif
-#include <wctype.h>
-
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
HAVE_DECL_WCWIDTH=0
fi
- if test $ac_cv_func_wcwidth = yes; then
+ if test $ac_cv_func_wcwidth != yes; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether wcwidth is a macro" >&5
+printf %s "checking whether wcwidth is a macro... " >&6; }
+if test ${gl_cv_func_wcwidth_macro+y}
+then :
+ printf %s "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <wchar.h>
+#ifdef wcwidth
+ wchar_header_defines_wcwidth
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "wchar_header_defines_wcwidth" >/dev/null 2>&1
+then :
+ gl_cv_func_wcwidth_macro=yes
+else
+ gl_cv_func_wcwidth_macro=no
+fi
+rm -rf conftest*
+
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcwidth_macro" >&5
+printf "%s\n" "$gl_cv_func_wcwidth_macro" >&6; }
+ fi
+
+ if test $ac_cv_func_wcwidth = yes || test $gl_cv_func_wcwidth_macro = yes; then
HAVE_WCWIDTH=1
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether wcwidth works reasonably in UTF-8 locales" >&5
printf %s "checking whether wcwidth works reasonably in UTF-8 locales... " >&6; }
then :
case "$host_os" in
- # Guess yes on glibc and AIX 7 systems.
- *-gnu* | aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";;
- *) gl_cv_func_wcwidth_works="guessing no";;
+ # Guess yes on glibc and AIX 7 systems.
+ *-gnu* | gnu* | aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";;
+ *) gl_cv_func_wcwidth_works="guessing no";;
esac
else
gl_LIBOBJS="$gl_LIBOBJS wcwidth.$ac_objext"
+
+
+ :
+
fi
- for gl_func in inet_ntop inet_pton; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* On some systems, this header is not self-consistent. */
-#if !(defined __GLIBC__ || defined __UCLIBC__)
-# include <sys/socket.h>
-#endif
-#ifdef __TANDEM
-# include <netdb.h>
-#endif
-#include <arpa/inet.h>
-
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
struct tm t;
char buf[16];
int main () {
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether in the abbreviation of the second month, the second
character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
one byte long. This excludes the UTF-8 encoding. */
t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
+# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
/* Check whether the decimal separator is a comma.
On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
are nl_langinfo(RADIXCHAR) are both ".". */
if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
+# endif
return 0;
+#endif
}
_ACEOF
variables, and all locales use the UTF-8 encoding. */
#if !(defined __BEOS__ || defined __HAIKU__)
/* Check whether the given locale name is recognized by the system. */
-# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
struct tm t;
char buf[16];
int main () {
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether in the abbreviation of the second month, the second
character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
one byte long. This excludes the UTF-8 encoding. */
t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
+# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
/* Check whether the decimal separator is a comma.
On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
are nl_langinfo(RADIXCHAR) are both ".". */
if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
+# endif
return 0;
+#endif
}
_ACEOF
implement the Turkish upper-/lowercase mappings. Therefore, let this
program return 1 on BeOS. */
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+#if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
- ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
-if test "x$ac_cv_func_getpagesize" = xyes
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getpagesize" >&5
+printf %s "checking for getpagesize... " >&6; }
+if test ${gl_cv_func_getpagesize+y}
+then :
+ printf %s "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+int
+main (void)
+{
+return getpagesize();
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
then :
- printf "%s\n" "#define HAVE_GETPAGESIZE 1" >>confdefs.h
+ gl_cv_func_getpagesize=yes
+else
+ gl_cv_func_getpagesize=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getpagesize" >&5
+printf "%s\n" "$gl_cv_func_getpagesize" >&6; }
- if test $ac_cv_func_getpagesize = no; then
+ if test $gl_cv_func_getpagesize = no; then
HAVE_GETPAGESIZE=0
ac_fn_c_check_header_compile "$LINENO" "OS.h" "ac_cv_header_OS_h" "$ac_includes_default"
if test "x$ac_cv_header_OS_h" = xyes
- HAVE_INET_PTON=1
+ HAVE_INET_PTON=1
INET_PTON_LIB=
return 0;
}
_ACEOF
-for ac_lib in '' nsl resolv
+for ac_lib in '' nsl resolv network
do
if test -z "$ac_lib"; then
ac_res="none required"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/ioctl.h>
+ /* On some platforms, ioctl() is declared in <unistd.h>. */
+ #include <unistd.h>
+
int
main (void)
{
struct tm t;
char buf[16];
int main () {
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether in the abbreviation of the second month, the second
character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
one byte long. This excludes the UTF-8 encoding. */
t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
+# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
/* Check whether the decimal separator is a comma.
On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
are nl_langinfo(RADIXCHAR) are both ".". */
if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
+# endif
return 0;
+#endif
}
_ACEOF
variables, and all locales use the UTF-8 encoding. */
#if !(defined __BEOS__ || defined __HAIKU__)
/* Check whether the given locale name is recognized by the system. */
-# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
char buf[16];
int main ()
{
- const char *p;
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales
on Cygwin 1.5.x. */
if (MB_CUR_MAX == 1)
return 1;
/* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
This excludes the UTF-8 encoding (except on MirBSD). */
- t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
- if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
- for (p = buf; *p != '\0'; p++)
- if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
- return 1;
+ {
+ const char *p;
+ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+ if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+ for (p = buf; *p != '\0'; p++)
+ if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+ return 1;
+ }
return 0;
+#endif
}
_ACEOF
char buf[16];
int main ()
{
- const char *p;
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
This excludes the UTF-8 encoding (except on MirBSD). */
- t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
- if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
- for (p = buf; *p != '\0'; p++)
- if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
- return 1;
+ {
+ const char *p;
+ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+ if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+ for (p = buf; *p != '\0'; p++)
+ if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+ return 1;
+ }
/* Check whether a typical GB18030 multibyte sequence is recognized as a
single wide character. This excludes the GB2312 and GBK encodings. */
if (mblen ("\203\062\332\066", 5) != 4)
return 1;
return 0;
+#endif
}
_ACEOF
implement the Turkish upper-/lowercase mappings. Therefore, let this
program return 1 on BeOS. */
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+#if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
variables, and all locales use the UTF-8 encoding. */
#if !(defined __BEOS__ || defined __HAIKU__)
/* Check whether the given locale name is recognized by the system. */
-# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
struct tm t;
char buf[16];
int main () {
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether in the abbreviation of the second month, the second
character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
one byte long. This excludes the UTF-8 encoding. */
t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
+# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
/* Check whether the decimal separator is a comma.
On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
are nl_langinfo(RADIXCHAR) are both ".". */
if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
+# endif
return 0;
+#endif
}
_ACEOF
variables, and all locales use the UTF-8 encoding. */
#if !(defined __BEOS__ || defined __HAIKU__)
/* Check whether the given locale name is recognized by the system. */
-# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
char buf[16];
int main ()
{
- const char *p;
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales
on Cygwin 1.5.x. */
if (MB_CUR_MAX == 1)
return 1;
/* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
This excludes the UTF-8 encoding (except on MirBSD). */
- t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
- if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
- for (p = buf; *p != '\0'; p++)
- if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
- return 1;
+ {
+ const char *p;
+ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+ if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+ for (p = buf; *p != '\0'; p++)
+ if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+ return 1;
+ }
return 0;
+#endif
}
_ACEOF
char buf[16];
int main ()
{
- const char *p;
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
This excludes the UTF-8 encoding (except on MirBSD). */
- t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
- if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
- for (p = buf; *p != '\0'; p++)
- if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
- return 1;
+ {
+ const char *p;
+ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+ if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+ for (p = buf; *p != '\0'; p++)
+ if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+ return 1;
+ }
/* Check whether a typical GB18030 multibyte sequence is recognized as a
single wide character. This excludes the GB2312 and GBK encodings. */
if (mblen ("\203\062\332\066", 5) != 4)
return 1;
return 0;
+#endif
}
_ACEOF
variables, and all locales use the UTF-8 encoding. */
#if !(defined __BEOS__ || defined __HAIKU__)
/* Check whether the given locale name is recognized by the system. */
-# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
char buf[16];
int main ()
{
- const char *p;
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
This excludes the UTF-8 encoding (except on MirBSD). */
- t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
- if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
- for (p = buf; *p != '\0'; p++)
- if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
- return 1;
+ {
+ const char *p;
+ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+ if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+ for (p = buf; *p != '\0'; p++)
+ if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+ return 1;
+ }
/* Check whether a typical GB18030 multibyte sequence is recognized as a
single wide character. This excludes the GB2312 and GBK encodings. */
if (mblen ("\203\062\332\066", 5) != 4)
return 1;
return 0;
+#endif
}
_ACEOF
+
+
nanosleep_save_libs=$LIBS
# Solaris 2.5.1 needs -lposix4 to get the nanosleep function.
then :
case "$host_os" in linux*) # Guess it halfway works when the kernel is Linux.
gl_cv_func_nanosleep='guessing no (mishandles large arguments)' ;;
+ mingw*) # Guess no on native Windows.
+ gl_cv_func_nanosleep='guessing no' ;;
*) # If we don't know, assume the worst.
gl_cv_func_nanosleep='guessing no' ;;
esac
? (t) -1 \
: ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
+ #if HAVE_DECL_ALARM
static void
check_for_SIGALRM (int sig)
{
if (sig != SIGALRM)
_exit (1);
}
+ #endif
int
main ()
{
static struct timespec ts_sleep;
static struct timespec ts_remaining;
- static struct sigaction act;
/* Test for major problems first. */
if (! nanosleep)
return 2;
- act.sa_handler = check_for_SIGALRM;
- sigemptyset (&act.sa_mask);
- sigaction (SIGALRM, &act, NULL);
ts_sleep.tv_sec = 0;
ts_sleep.tv_nsec = 1;
- alarm (1);
- if (nanosleep (&ts_sleep, NULL) != 0)
+ #if HAVE_DECL_ALARM
+ {
+ static struct sigaction act;
+ act.sa_handler = check_for_SIGALRM;
+ sigemptyset (&act.sa_mask);
+ sigaction (SIGALRM, &act, NULL);
+ alarm (1);
+ if (nanosleep (&ts_sleep, NULL) != 0)
+ return 3;
+ /* Test for a minor problem: the handling of large arguments. */
+ ts_sleep.tv_sec = TYPE_MAXIMUM (time_t);
+ ts_sleep.tv_nsec = 999999999;
+ alarm (1);
+ if (nanosleep (&ts_sleep, &ts_remaining) != -1)
+ return 4;
+ if (errno != EINTR)
+ return 5;
+ if (ts_remaining.tv_sec <= TYPE_MAXIMUM (time_t) - 10)
+ return 6;
+ }
+ #else /* A simpler test for native Windows. */
+ if (nanosleep (&ts_sleep, &ts_remaining) < 0)
return 3;
- /* Test for a minor problem: the handling of large arguments. */
- ts_sleep.tv_sec = TYPE_MAXIMUM (time_t);
- ts_sleep.tv_nsec = 999999999;
- alarm (1);
- if (nanosleep (&ts_sleep, &ts_remaining) != -1)
- return 4;
- if (errno != EINTR)
- return 5;
- if (ts_remaining.tv_sec <= TYPE_MAXIMUM (time_t) - 10)
- return 6;
+ #endif
return 0;
}
_ACEOF
struct tm t;
char buf[16];
int main () {
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether in the abbreviation of the second month, the second
character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
one byte long. This excludes the UTF-8 encoding. */
t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
+# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
/* Check whether the decimal separator is a comma.
On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
are nl_langinfo(RADIXCHAR) are both ".". */
if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
+# endif
return 0;
+#endif
}
_ACEOF
variables, and all locales use the UTF-8 encoding. */
#if !(defined __BEOS__ || defined __HAIKU__)
/* Check whether the given locale name is recognized by the system. */
-# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
- if test "$ERRNO_H:$REPLACE_STRERROR_0" != :0; then
+ if test "$ERRNO_H:$REPLACE_STRERROR_0" != :0; then
REPLACE_PERROR=1
fi
case ${gl_cv_func_strerror_r_works-unset} in
else
if test "$cross_compiling" = yes
then :
- gl_cv_func_perror_works="guessing no"
+ case "$host_os" in
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_perror_works="guessing yes" ;;
+ # Otherwise guess no.
+ *) gl_cv_func_perror_works="guessing no" ;;
+ esac
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_perror_works" >&5
printf "%s\n" "$gl_cv_func_perror_works" >&6; }
- if test "$gl_cv_func_perror_works" != yes; then
- REPLACE_PERROR=1
- fi
+ case "$gl_cv_func_perror_works" in
+ *yes) ;;
+ *) REPLACE_PERROR=1 ;;
+ esac
;;
*)
REPLACE_PERROR=1
if test "$cross_compiling" = yes
then :
case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_svid_putenv="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_svid_putenv="guessing no" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_svid_putenv="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_svid_putenv="guessing no" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_svid_putenv="guessing no" ;;
esac
else
then :
case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_select_detects_ebadf="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_select_detects_ebadf="guessing no" ;;
+ # Guess yes on Linux systems.
+ linux-* | linux) gl_cv_func_select_detects_ebadf="guessing yes" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_select_detects_ebadf="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_select_detects_ebadf="guessing no" ;;
esac
else
gltests_LIBOBJS="$gltests_LIBOBJS setlocale.$ac_objext"
- :
+ :
fi
struct tm t;
char buf[16];
int main () {
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether in the abbreviation of the second month, the second
character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
one byte long. This excludes the UTF-8 encoding. */
t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
+# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
/* Check whether the decimal separator is a comma.
On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
are nl_langinfo(RADIXCHAR) are both ".". */
if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
+# endif
return 0;
+#endif
}
_ACEOF
variables, and all locales use the UTF-8 encoding. */
#if !(defined __BEOS__ || defined __HAIKU__)
/* Check whether the given locale name is recognized by the system. */
-# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
char buf[16];
int main ()
{
- const char *p;
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales
on Cygwin 1.5.x. */
if (MB_CUR_MAX == 1)
return 1;
/* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
This excludes the UTF-8 encoding (except on MirBSD). */
- t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
- if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
- for (p = buf; *p != '\0'; p++)
- if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
- return 1;
+ {
+ const char *p;
+ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+ if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+ for (p = buf; *p != '\0'; p++)
+ if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+ return 1;
+ }
return 0;
+#endif
}
_ACEOF
char buf[16];
int main ()
{
- const char *p;
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
This excludes the UTF-8 encoding (except on MirBSD). */
- t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
- if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
- for (p = buf; *p != '\0'; p++)
- if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
- return 1;
+ {
+ const char *p;
+ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+ if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+ for (p = buf; *p != '\0'; p++)
+ if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+ return 1;
+ }
/* Check whether a typical GB18030 multibyte sequence is recognized as a
single wide character. This excludes the GB2312 and GBK encodings. */
if (mblen ("\203\062\332\066", 5) != 4)
return 1;
return 0;
+#endif
}
_ACEOF
if test "$cross_compiling" = yes
then :
case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_sleep_works="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_sleep_works="guessing no" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_sleep_works="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_sleep_works="guessing no" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_sleep_works="guessing no" ;;
esac
else
if test "$cross_compiling" = yes
then :
- gl_cv_func_snprintf_size1="guessing yes"
+ case "$host_os" in
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_snprintf_size1="guessing yes" ;;
+ *) gl_cv_func_snprintf_size1="guessing yes" ;;
+ esac
+
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
gl_cv_func_printf_positions="guessing no";;
beos*) gl_cv_func_printf_positions="guessing no";;
+ # Guess no on native Windows.
mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
*) gl_cv_func_printf_positions="guessing yes";;
esac
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for socklen_t equivalent" >&5
printf %s "checking for socklen_t equivalent... " >&6; }
- if test ${gl_cv_socklen_t_equiv+y}
+if test ${gl_cv_socklen_t_equiv+y}
then :
printf %s "(cached) " >&6
else
done
test "$gl_cv_socklen_t_equiv" != "" && break
done
+ if test "$gl_cv_socklen_t_equiv" = ""; then
+ as_fn_error $? "Cannot find a type to use in place of socklen_t" "$LINENO" 5
+ fi
fi
-
- if test "$gl_cv_socklen_t_equiv" = ""; then
- as_fn_error $? "Cannot find a type to use in place of socklen_t" "$LINENO" 5
- fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socklen_t_equiv" >&5
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socklen_t_equiv" >&5
printf "%s\n" "$gl_cv_socklen_t_equiv" >&6; }
printf "%s\n" "#define socklen_t $gl_cv_socklen_t_equiv" >>confdefs.h
/* Test that alignof yields a result consistent with offsetof.
This catches GCC bug 52023
- <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>. */
+ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>. */
#ifdef __cplusplus
template <class t> struct alignof_helper { char a; t b; };
# define ao(type) offsetof (alignof_helper<type>, b)
if test "$cross_compiling" = yes
then :
case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_symlink_works="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_symlink_works="guessing no" ;;
+ # Guess yes on Linux systems.
+ linux-* | linux) gl_cv_func_symlink_works="guessing yes" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_symlink_works="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_symlink_works="guessing no" ;;
esac
else
- for gl_func in ioctl; do
- as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval test \${$as_gl_Symbol+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/ioctl.h>
-/* Some platforms declare ioctl in the wrong header. */
-#if !(defined __GLIBC__ && !defined __UCLIBC__)
-# include <unistd.h>
-#endif
-
-int
-main (void)
-{
-#undef $gl_func
- (void) $gl_func;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$as_gl_Symbol=yes"
-else
- eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
-then :
- cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
- eval ac_cv_have_decl_$gl_func=yes
-fi
- done
struct tm t;
char buf[16];
int main () {
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether in the abbreviation of the second month, the second
character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
one byte long. This excludes the UTF-8 encoding. */
t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
+# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
/* Check whether the decimal separator is a comma.
On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
are nl_langinfo(RADIXCHAR) are both ".". */
if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
+# endif
return 0;
+#endif
}
_ACEOF
variables, and all locales use the UTF-8 encoding. */
#if !(defined __BEOS__ || defined __HAIKU__)
/* Check whether the given locale name is recognized by the system. */
-# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
char buf[16];
int main ()
{
- const char *p;
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales
on Cygwin 1.5.x. */
if (MB_CUR_MAX == 1)
return 1;
/* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
This excludes the UTF-8 encoding (except on MirBSD). */
- t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
- if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
- for (p = buf; *p != '\0'; p++)
- if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
- return 1;
+ {
+ const char *p;
+ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+ if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+ for (p = buf; *p != '\0'; p++)
+ if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+ return 1;
+ }
return 0;
+#endif
}
_ACEOF
char buf[16];
int main ()
{
- const char *p;
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
This excludes the UTF-8 encoding (except on MirBSD). */
- t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
- if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
- for (p = buf; *p != '\0'; p++)
- if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
- return 1;
+ {
+ const char *p;
+ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+ if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+ for (p = buf; *p != '\0'; p++)
+ if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+ return 1;
+ }
/* Check whether a typical GB18030 multibyte sequence is recognized as a
single wide character. This excludes the GB2312 and GBK encodings. */
if (mblen ("\203\062\332\066", 5) != 4)
return 1;
return 0;
+#endif
}
_ACEOF
# Guess no on Solaris <= 9 and Cygwin.
solaris2.[1-9] | solaris2.[1-9].* | cygwin*)
gl_cv_func_wctob_works="guessing no" ;;
+ # Guess no on native Windows.
+ mingw*)
+ gl_cv_func_wctob_works="guessing no" ;;
# Guess yes otherwise.
*) gl_cv_func_wctob_works="guessing yes" ;;
esac
if test "$gl_gcc_warnings" = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Werror -Wunknown-warning-option" >&5
+
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Werror -Wunknown-warning-option" >&5
printf %s "checking whether C compiler handles -Werror -Wunknown-warning-option... " >&6; }
if test ${gl_cv_warn_c__Werror__Wunknown_warning_option+y}
then :
gl_unknown_warnings_are_errors=
fi
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Werror" >&5
printf %s "checking whether C compiler handles -Werror... " >&6; }
# ?? -Wstrict-overflow
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
if test -n "$GCC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -Wno-missing-field-initializers is supported" >&5
printf %s "checking whether -Wno-missing-field-initializers is supported... " >&6; }
- if test ${gl_cv_cc_nomfi_supported+y}
+if test ${gl_cv_cc_nomfi_supported+y}
then :
printf %s "(cached) " >&6
else
-
- gl_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -W -Werror -Wno-missing-field-initializers"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ gl_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -W -Werror -Wno-missing-field-initializers"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
gl_cv_cc_nomfi_supported=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS="$gl_save_CFLAGS"
-fi
+ CFLAGS="$gl_save_CFLAGS"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_supported" >&5
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_supported" >&5
printf "%s\n" "$gl_cv_cc_nomfi_supported" >&6; }
if test "$gl_cv_cc_nomfi_supported" = yes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -Wno-missing-field-initializers is needed" >&5
printf %s "checking whether -Wno-missing-field-initializers is needed... " >&6; }
- if test ${gl_cv_cc_nomfi_needed+y}
+if test ${gl_cv_cc_nomfi_needed+y}
then :
printf %s "(cached) " >&6
else
-
- gl_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -W -Werror"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ gl_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -W -Werror"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int f (void)
- {
- typedef struct { int a; int b; } s_t;
- s_t s1 = { 0, };
- return s1.b;
- }
+ {
+ typedef struct { int a; int b; } s_t;
+ s_t s1 = { 0, };
+ return s1.b;
+ }
int
main (void)
gl_cv_cc_nomfi_needed=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS="$gl_save_CFLAGS"
+ CFLAGS="$gl_save_CFLAGS"
fi
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_needed" >&5
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_needed" >&5
printf "%s\n" "$gl_cv_cc_nomfi_needed" >&6; }
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -Wuninitialized is supported" >&5
printf %s "checking whether -Wuninitialized is supported... " >&6; }
- if test ${gl_cv_cc_uninitialized_supported+y}
+if test ${gl_cv_cc_uninitialized_supported+y}
then :
printf %s "(cached) " >&6
else
-
- gl_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Werror -Wuninitialized"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ gl_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -Werror -Wuninitialized"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
gl_cv_cc_uninitialized_supported=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS="$gl_save_CFLAGS"
-fi
+ CFLAGS="$gl_save_CFLAGS"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_uninitialized_supported" >&5
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_uninitialized_supported" >&5
printf "%s\n" "$gl_cv_cc_uninitialized_supported" >&6; }
fi
# To compare this list to your installed GCC's, run this Bash command:
#
# comm -3 \
- # <(sed -n 's/^ *\(-[^ ]*\) .*/\1/p' manywarnings.m4 | sort) \
- # <(gcc --help=warnings | sed -n 's/^ \(-[^ ]*\) .*/\1/p' | sort |
- # grep -v -x -F -f <(
- # awk '/^[^#]/ {print ws}' ../build-aux/gcc-warning.spec))
+ # <((sed -n 's/^ *\(-[^ 0-9][^ ]*\) .*/\1/p' manywarnings.m4; \
+ # awk '/^[^#]/ {print ws}' ../build-aux/gcc-warning.spec) | sort) \
+ # <(LC_ALL=C gcc --help=warnings | sed -n 's/^ \(-[^ ]*\) .*/\1/p' | sort)
gl_manywarn_set=
for gl_manywarn_item in -fno-common \
-W \
- -Wabi \
-Waddress \
-Waggressive-loop-optimizations \
-Wall \
+ -Wattribute-alias \
-Wattributes \
-Wbad-function-cast \
-Wbool-compare \
-Wbuiltin-declaration-mismatch \
-Wbuiltin-macro-redefined \
-Wcast-align \
+ -Wcast-align=strict \
+ -Wcast-function-type \
-Wchar-subscripts \
- -Wchkp \
-Wclobbered \
-Wcomment \
-Wcomments \
-Wframe-address \
-Wfree-nonheap-object \
-Whsa \
+ -Wif-not-aligned \
-Wignored-attributes \
-Wignored-qualifiers \
-Wimplicit \
-Wint-to-pointer-cast \
-Winvalid-memory-model \
-Winvalid-pch \
- -Wjump-misses-init \
-Wlogical-not-parentheses \
-Wlogical-op \
-Wmain \
-Wmemset-elt-size \
-Wmemset-transposed-args \
-Wmisleading-indentation \
+ -Wmissing-attributes \
-Wmissing-braces \
-Wmissing-declarations \
-Wmissing-field-initializers \
-Wmissing-parameter-type \
-Wmissing-prototypes \
-Wmultichar \
+ -Wmultistatement-macros \
-Wnarrowing \
-Wnested-externs \
-Wnonnull \
-Woverride-init \
-Wpacked \
-Wpacked-bitfield-compat \
+ -Wpacked-not-aligned \
-Wparentheses \
-Wpointer-arith \
-Wpointer-compare \
-Wshift-count-overflow \
-Wshift-negative-value \
-Wsizeof-array-argument \
+ -Wsizeof-pointer-div \
-Wsizeof-pointer-memaccess \
-Wstack-protector \
-Wstrict-aliasing \
-Wstrict-overflow \
-Wstrict-prototypes \
+ -Wstringop-truncation \
+ -Wsuggest-attribute=cold \
-Wsuggest-attribute=const \
-Wsuggest-attribute=format \
+ -Wsuggest-attribute=malloc \
-Wsuggest-attribute=noreturn \
-Wsuggest-attribute=pure \
-Wsuggest-final-methods \
-Wsuggest-final-types \
-Wswitch \
-Wswitch-bool \
- -Wswitch-default \
-Wswitch-unreachable \
-Wsync-nand \
-Wsystem-headers \
# gcc --help=warnings outputs an unusual form for these options; list
# them here so that the above 'comm' command doesn't report a false match.
- # Would prefer "min (PTRDIFF_MAX, SIZE_MAX)", but it must be a literal:
- ptrdiff_max_max=9223372036854775807
- gl_manywarn_set="$gl_manywarn_set -Walloc-size-larger-than=$ptrdiff_max_max"
+ # Would prefer "min (PTRDIFF_MAX, SIZE_MAX)", but it must be a literal.
+ # Also, AC_COMPUTE_INT requires it to fit in a long; it is 2**63 on
+ # the only platforms where it does not fit in a long, so make that
+ # a special case.
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking max safe object size" >&5
+printf %s "checking max safe object size... " >&6; }
+ if ac_fn_c_compute_int "$LINENO" "LONG_MAX < (PTRDIFF_MAX < (size_t) -1 ? PTRDIFF_MAX : (size_t) -1)
+ ? -1
+ : PTRDIFF_MAX < (size_t) -1 ? (long) PTRDIFF_MAX : (long) (size_t) -1" "gl_alloc_max" "#include <limits.h>
+ #include <stddef.h>
+ #include <stdint.h>
+ "
+then :
+
+else
+ gl_alloc_max=2147483647
+fi
+
+ case $gl_alloc_max in
+ -1) gl_alloc_max=9223372036854775807;;
+ esac
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_alloc_max" >&5
+printf "%s\n" "$gl_alloc_max" >&6; }
+ gl_manywarn_set="$gl_manywarn_set -Walloc-size-larger-than=$gl_alloc_max"
gl_manywarn_set="$gl_manywarn_set -Warray-bounds=2"
gl_manywarn_set="$gl_manywarn_set -Wformat-overflow=2"
gl_manywarn_set="$gl_manywarn_set -Wformat-truncation=2"
ws=$gl_manywarn_set
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
gl_warn_set=
set x $ws; shift
for w in $ws; do
+
as_gl_Warn=`printf "%s\n" "gl_cv_warn_c_$w" | $as_tr_sh`
gl_positive="$w"
case $gl_positive in
done
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-missing-field-initializers" >&5
printf %s "checking whether C compiler handles -Wno-missing-field-initializers... " >&6; }
if test ${gl_cv_warn_c__Wno_missing_field_initializers+y}
# We need this one
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-sign-compare" >&5
printf %s "checking whether C compiler handles -Wno-sign-compare... " >&6; }
if test ${gl_cv_warn_c__Wno_sign_compare+y}
# Too many warnings for now
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-pointer-sign" >&5
printf %s "checking whether C compiler handles -Wno-pointer-sign... " >&6; }
if test ${gl_cv_warn_c__Wno_pointer_sign+y}
# Too many warnings for now
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-unused-parameter" >&5
printf %s "checking whether C compiler handles -Wno-unused-parameter... " >&6; }
if test ${gl_cv_warn_c__Wno_unused_parameter+y}
# Too many warnings for now
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-format-nonliteral" >&5
printf %s "checking whether C compiler handles -Wno-format-nonliteral... " >&6; }
if test ${gl_cv_warn_c__Wno_format_nonliteral+y}
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-cast-function-type" >&5
+printf %s "checking whether C compiler handles -Wno-cast-function-type... " >&6; }
+if test ${gl_cv_warn_c__Wno_cast_function_type+y}
+then :
+ printf %s "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wcast-function-type"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ gl_cv_warn_c__Wno_cast_function_type=yes
+else
+ gl_cv_warn_c__Wno_cast_function_type=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Wno_cast_function_type" >&5
+printf "%s\n" "$gl_cv_warn_c__Wno_cast_function_type" >&6; }
+if test "x$gl_cv_warn_c__Wno_cast_function_type" = xyes
+then :
+ as_fn_append WARN_CFLAGS " -Wno-cast-function-type"
+fi
+
+ # For sig-handler.h:47
+
# In spite of excluding -Wlogical-op above, it is enabled, as of
# gcc 4.5.0 20090517, and it provokes warnings in cat.c, dd.c, truncate.c
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-logical-op" >&5
printf %s "checking whether C compiler handles -Wno-logical-op... " >&6; }
if test ${gl_cv_warn_c__Wno_logical_op+y}
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -fdiagnostics-show-option" >&5
printf %s "checking whether C compiler handles -fdiagnostics-show-option... " >&6; }
if test ${gl_cv_warn_c__fdiagnostics_show_option+y}
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -funit-at-a-time" >&5
printf %s "checking whether C compiler handles -funit-at-a-time... " >&6; }
if test ${gl_cv_warn_c__funit_at_a_time+y}
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -fno-common" >&5
printf %s "checking whether C compiler handles -fno-common... " >&6; }
if test ${gl_cv_warn_c__fno_common+y}
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef __STDC_NO_VLA__
- defined
- #endif
+ defined
+ #endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Test for VLA support. This test is partly inspired
- from examples in the C standard. Use at least two VLA
- functions to detect the GCC 3.4.3 bug described in:
- http://lists.gnu.org/archive/html/bug-gnulib/2014-08/msg00014.html
- */
- #ifdef __STDC_NO_VLA__
- syntax error;
- #else
- extern int n;
- int B[100];
- int fvla (int m, int C[m][m]);
-
- int
- simple (int count, int all[static count])
- {
- return all[count - 1];
- }
-
- int
- fvla (int m, int C[m][m])
- {
- typedef int VLA[m][m];
- VLA x;
- int D[m];
- static int (*q)[m] = &B;
- int (*s)[n] = q;
- return C && &x[0][0] == &D[0] && &D[0] == s[0];
- }
- #endif
+ from examples in the C standard. Use at least two VLA
+ functions to detect the GCC 3.4.3 bug described in:
+ https://lists.gnu.org/r/bug-gnulib/2014-08/msg00014.html
+ */
+ #ifdef __STDC_NO_VLA__
+ syntax error;
+ #else
+ extern int n;
+ int B[100];
+ int fvla (int m, int C[m][m]);
+
+ int
+ simple (int count, int all[static count])
+ {
+ return all[count - 1];
+ }
+
+ int
+ fvla (int m, int C[m][m])
+ {
+ typedef int VLA[m][m];
+ VLA x;
+ int D[m];
+ static int (*q)[m] = &B;
+ int (*s)[n] = q;
+ return C && &x[0][0] == &D[0] && &D[0] == s[0];
+ }
+ #endif
int
main (void)
#endif
/* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
provided. */
- if (/* Try standardized names. */
- iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
- /* Try IRIX, OSF/1 names. */
- && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
- /* Try AIX names. */
- && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
- /* Try HP-UX names. */
- && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
- result |= 16;
+ {
+ /* Try standardized names. */
+ iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP");
+ /* Try IRIX, OSF/1 names. */
+ iconv_t cd2 = iconv_open ("UTF-8", "eucJP");
+ /* Try AIX names. */
+ iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP");
+ /* Try HP-UX names. */
+ iconv_t cd4 = iconv_open ("utf8", "eucJP");
+ if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1)
+ && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1))
+ result |= 16;
+ if (cd1 != (iconv_t)(-1))
+ iconv_close (cd1);
+ if (cd2 != (iconv_t)(-1))
+ iconv_close (cd2);
+ if (cd3 != (iconv_t)(-1))
+ iconv_close (cd3);
+ if (cd4 != (iconv_t)(-1))
+ iconv_close (cd4);
+ }
return result;
;
-
use_additional=yes
acl_save_prefix="$prefix"
additional_includedir="$withval/include"
additional_libdir="$withval/$acl_libdirstem"
if test "$acl_libdirstem2" != "$acl_libdirstem" \
- && ! test -d "$withval/$acl_libdirstem"; then
+ && test ! -d "$withval/$acl_libdirstem"; then
additional_libdir="$withval/$acl_libdirstem2"
fi
fi
-
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
printf %s "checking for GNU gettext in libintl... " >&6; }
if eval test \${$gt_func_gnugettext_libintl+y}
as_fn_error $? "conditional \"GL_GENERATE_FNMATCH_H\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${GL_GENERATE_FNMATCH_H_TRUE}" && test -z "${GL_GENERATE_FNMATCH_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_FNMATCH_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${GNU_MAKE_TRUE}" && test -z "${GNU_MAKE_FALSE}"; then
as_fn_error $? "conditional \"GNU_MAKE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by GNU diffutils $as_me 3.6, which was
-generated by GNU Autoconf 2.69.185-b502e. Invocation command line was
+This file was extended by GNU diffutils $as_me 3.7, which was
+generated by GNU Autoconf 2.69.197-b8fd7. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
$config_commands
Report bugs to <bug-diffutils@gnu.org>.
-GNU diffutils home page: <http://www.gnu.org/software/diffutils/>.
-General help using GNU software: <http://www.gnu.org/gethelp/>."
+GNU diffutils home page: <https://www.gnu.org/software/diffutils/>.
+General help using GNU software: <https://www.gnu.org/gethelp/>."
_ACEOF
+ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
+ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`printf "%s\n" "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-GNU diffutils config.status 3.6
-configured by $0, generated by GNU Autoconf 2.69.185-b502e,
+GNU diffutils config.status 3.7
+configured by $0, generated by GNU Autoconf 2.69.197-b8fd7,
with options \\"\$ac_cs_config\\"
Copyright (C) 2017 Free Software Foundation, Inc.
# Configure template for GNU Diffutils.
-# Copyright (C) 1994-1995, 1998, 2001-2002, 2004, 2006, 2009-2013, 2015-2017
+# Copyright (C) 1994-1995, 1998, 2001-2002, 2004, 2006, 2009-2013, 2015-2018
# Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-AC_PREREQ(2.61)
+AC_PREREQ([2.63])
AC_INIT([GNU diffutils],
m4_esyscmd([build-aux/git-version-gen .tarball-version]),
color-tests parallel-tests])
AM_SILENT_RULES([yes]) # make --enable-silent-rules the default.
-AC_CONFIG_HEADER([lib/config.h:lib/config.hin])
+AC_CONFIG_HEADERS([lib/config.h:lib/config.hin])
AC_PROG_AWK
AC_PROG_CC
gl_WARN_ADD([-Wno-pointer-sign]) # Too many warnings for now
gl_WARN_ADD([-Wno-unused-parameter]) # Too many warnings for now
gl_WARN_ADD([-Wno-format-nonliteral])
+ gl_WARN_ADD([-Wno-cast-function-type]) # For sig-handler.h:47
# In spite of excluding -Wlogical-op above, it is enabled, as of
# gcc 4.5.0 20090517, and it provokes warnings in cat.c, dd.c, truncate.c
# Makefile for GNU diffutils documentation.
-# Copyright (C) 2001-2002, 2009-2013, 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2002, 2009-2013, 2015-2018 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
-# Makefile.in generated by automake 1.99a from Makefile.am.
+# Makefile.in generated by automake 1.16a from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2015 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Makefile for GNU diffutils documentation.
-# Copyright (C) 2001-2002, 2009-2013, 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2002, 2009-2013, 2015-2018 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
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
subdir = doc
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
+ $(top_srcdir)/m4/__inline.m4 \
$(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
$(top_srcdir)/m4/arpa_inet_h.m4 $(top_srcdir)/m4/btowc.m4 \
$(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-stack.m4 \
$(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/close.m4 \
$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
- $(top_srcdir)/m4/configmake.m4 $(top_srcdir)/m4/ctype.m4 \
- $(top_srcdir)/m4/dirname.m4 \
+ $(top_srcdir)/m4/ctype.m4 $(top_srcdir)/m4/dirname.m4 \
$(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \
$(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \
$(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \
$(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \
$(top_srcdir)/m4/fdopen.m4 $(top_srcdir)/m4/filenamecat.m4 \
$(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
- $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpieee.m4 \
- $(top_srcdir)/m4/freopen.m4 $(top_srcdir)/m4/fstat.m4 \
- $(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/getcwd.m4 \
- $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getopt.m4 \
- $(top_srcdir)/m4/getpagesize.m4 \
+ $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fnmatch_h.m4 \
+ $(top_srcdir)/m4/fpieee.m4 $(top_srcdir)/m4/freopen.m4 \
+ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/ftruncate.m4 \
+ $(top_srcdir)/m4/getcwd.m4 $(top_srcdir)/m4/getdtablesize.m4 \
+ $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/getpagesize.m4 \
$(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnu-make.m4 \
$(top_srcdir)/m4/gnulib-common.m4 \
$(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \
+ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \
$(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inet_pton.m4 \
$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/intlmacosx.m4 \
$(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbslen.m4 \
$(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \
$(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
- $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mkstemp.m4 \
- $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \
- $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \
+ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mkdir.m4 \
+ $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \
+ $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \
+ $(top_srcdir)/m4/msvc-inval.m4 \
$(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
$(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/netinet_in_h.m4 \
$(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \
+ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/nstrftime.m4 \
+ $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open-cloexec.m4 \
$(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/pathmax.m4 \
$(top_srcdir)/m4/perror.m4 $(top_srcdir)/m4/pipe.m4 \
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
$(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
$(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
$(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/regex.m4 \
- $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/select.m4 \
- $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale.m4 \
- $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \
+ $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/setenv.m4 \
+ $(top_srcdir)/m4/setlocale.m4 $(top_srcdir)/m4/sigaction.m4 \
+ $(top_srcdir)/m4/signal_h.m4 \
$(top_srcdir)/m4/signalblocking.m4 \
$(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
$(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
$(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
$(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
- $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/strftime.m4 \
- $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strings_h.m4 \
- $(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
- $(top_srcdir)/m4/strptime.m4 $(top_srcdir)/m4/strtoull.m4 \
- $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
- $(top_srcdir)/m4/sys_ioctl_h.m4 \
+ $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \
+ $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strndup.m4 \
+ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strptime.m4 \
+ $(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \
+ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_ioctl_h.m4 \
$(top_srcdir)/m4/sys_select_h.m4 \
$(top_srcdir)/m4/sys_socket_h.m4 \
$(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
$(top_srcdir)/build-aux/mdate-sh \
$(top_srcdir)/build-aux/texinfo.tex
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-pkglibexecdir = @pkglibexecdir@
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
ALLOCA_H = @ALLOCA_H@
GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
GNULIB_ENVIRON = @GNULIB_ENVIRON@
GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
+GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@
GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
GNULIB_FCHDIR = @GNULIB_FCHDIR@
GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
GNULIB_FFSLL = @GNULIB_FFSLL@
GNULIB_FGETC = @GNULIB_FGETC@
GNULIB_FGETS = @GNULIB_FGETS@
+GNULIB_FNMATCH = @GNULIB_FNMATCH@
GNULIB_FOPEN = @GNULIB_FOPEN@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETPASS = @GNULIB_GETPASS@
GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@
GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@
GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@
GNULIB_LINKAT = @GNULIB_LINKAT@
GNULIB_LISTEN = @GNULIB_LISTEN@
GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
+GNULIB_LOCALENAME = @GNULIB_LOCALENAME@
GNULIB_LOCALTIME = @GNULIB_LOCALTIME@
GNULIB_LSEEK = @GNULIB_LSEEK@
GNULIB_LSTAT = @GNULIB_LSTAT@
GNULIB_READ = @GNULIB_READ@
GNULIB_READLINK = @GNULIB_READLINK@
GNULIB_READLINKAT = @GNULIB_READLINKAT@
+GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@
GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
GNULIB_REALPATH = @GNULIB_REALPATH@
GNULIB_RECV = @GNULIB_RECV@
HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@
+HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@
HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
+HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@
HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@
HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
HAVE_DUP3 = @HAVE_DUP3@
HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@
HAVE_FACCESSAT = @HAVE_FACCESSAT@
HAVE_FCHDIR = @HAVE_FCHDIR@
HAVE_FCHMODAT = @HAVE_FCHMODAT@
HAVE_FFS = @HAVE_FFS@
HAVE_FFSL = @HAVE_FFSL@
HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FNMATCH = @HAVE_FNMATCH@
+HAVE_FNMATCH_H = @HAVE_FNMATCH_H@
+HAVE_FREELOCALE = @HAVE_FREELOCALE@
HAVE_FSEEKO = @HAVE_FSEEKO@
HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
HAVE_GETLOGIN = @HAVE_GETLOGIN@
HAVE_GETOPT_H = @HAVE_GETOPT_H@
HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETPASS = @HAVE_GETPASS@
HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
HAVE_GRANTPT = @HAVE_GRANTPT@
HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
HAVE_ISBLANK = @HAVE_ISBLANK@
HAVE_ISWBLANK = @HAVE_ISWBLANK@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@
HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
+HAVE_NEWLOCALE = @HAVE_NEWLOCALE@
HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
HAVE_OPENAT = @HAVE_OPENAT@
HAVE_OS_H = @HAVE_OS_H@
HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
HAVE_READLINK = @HAVE_READLINK@
HAVE_READLINKAT = @HAVE_READLINKAT@
+HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@
HAVE_REALPATH = @HAVE_REALPATH@
HAVE_RENAMEAT = @HAVE_RENAMEAT@
HAVE_RPMATCH = @HAVE_RPMATCH@
HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
HAVE_TIMEGM = @HAVE_TIMEGM@
HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@
-HAVE_TRUNCATE = @HAVE_TRUNCATE@
HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
HAVE_TZSET = @HAVE_TZSET@
HAVE_UNISTD_H = @HAVE_UNISTD_H@
NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
+NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H@
NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@
NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
NEXT_ERRNO_H = @NEXT_ERRNO_H@
NEXT_FCNTL_H = @NEXT_FCNTL_H@
NEXT_FLOAT_H = @NEXT_FLOAT_H@
+NEXT_FNMATCH_H = @NEXT_FNMATCH_H@
NEXT_GETOPT_H = @NEXT_GETOPT_H@
NEXT_ICONV_H = @NEXT_ICONV_H@
NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
REPLACE_DUP = @REPLACE_DUP@
REPLACE_DUP2 = @REPLACE_DUP2@
REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_FACCESSAT = @REPLACE_FACCESSAT@
REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
REPLACE_FCLOSE = @REPLACE_FCLOSE@
REPLACE_FCNTL = @REPLACE_FCNTL@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FNMATCH = @REPLACE_FNMATCH@
REPLACE_FOPEN = @REPLACE_FOPEN@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_FPURGE = @REPLACE_FPURGE@
+REPLACE_FREELOCALE = @REPLACE_FREELOCALE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
REPLACE_FSEEK = @REPLACE_FSEEK@
REPLACE_FSEEKO = @REPLACE_FSEEKO@
REPLACE_GETLINE = @REPLACE_GETLINE@
REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_GETPASS = @REPLACE_GETPASS@
REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
REPLACE_GMTIME = @REPLACE_GMTIME@
REPLACE_ICONV = @REPLACE_ICONV@
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
REPLACE_MKTIME = @REPLACE_MKTIME@
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
+REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@
REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
REPLACE_NULL = @REPLACE_NULL@
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
am__include = @am__include@
+am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
-lispdir = @lispdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
$(am__aclocal_m4_deps):
.texi.info:
- $(AM_V_MAKEINFO)$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
- -I $(srcdir) --no-split -o $@-t \
- $<
- $(AM_V_at)mv -f $@-t $@
+ $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+ am__cwd=`pwd` && $(am__cd) $(srcdir) && \
+ rm -rf $$backupdir && mkdir $$backupdir && \
+ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
+ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+ done; \
+ else :; fi && \
+ cd "$$am__cwd"; \
+ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ -o $@ $<; \
+ then \
+ rc=0; \
+ $(am__cd) $(srcdir); \
+ else \
+ rc=$$?; \
+ $(am__cd) $(srcdir) && \
+ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+ fi; \
+ rm -rf $$backupdir; exit $$rc
.texi.dvi:
$(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
@list='$(INFO_DEPS)'; \
for file in $$list; do \
relfile=`echo "$$file" | sed 's|^.*/||'`; \
+ relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
(if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \
- echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile"; \
- rm -f $$relfile; \
+ echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \
+ rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
else :; fi); \
done
case $$base in \
$(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
esac; \
- if test -f $$base; then \
- file=./$$base; \
- else \
- file=$(srcdir)/$$base; \
- fi; \
- if test -f $$file && test ! -f "$(distdir)/$$base"; then \
- cp -p $$file "$(distdir)/$$base"; \
- fi; \
+ if test -f $$base; then d=.; else d=$(srcdir); fi; \
+ base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \
+ for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \
+ if test -f $$file; then \
+ relfile=`expr "$$file" : "$$d/\(.*\)"`; \
+ test -f "$(distdir)/$$relfile" || \
+ cp -p $$file "$(distdir)/$$relfile"; \
+ else :; fi; \
+ done; \
done
mostlyclean-aminfo:
|| rm -rf diffutils.dvi diffutils.pdf diffutils.ps diffutils.html
maintainer-clean-aminfo:
- -test -z "$(INFO_DEPS)" || rm -f $(INFO_DEPS)
+ @list='$(INFO_DEPS)'; for i in $$list; do \
+ i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \
+ echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
+ rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
+ done
tags TAGS:
ctags CTAGS:
cscope cscopelist:
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
esac; \
- if test -f $$file; then \
- echo ./$$file; \
- else \
- echo $(srcdir)/$$file; \
- fi; \
+ if test -f $$file; then d=.; else d=$(srcdir); fi; \
+ file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \
+ for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \
+ $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \
+ if test -f $$ifile; then \
+ echo "$$ifile"; \
+ else : ; fi; \
+ done; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \
-This is diffutils.info-t, produced by makeinfo version 6.3 from
+This is diffutils.info, produced by makeinfo version 6.5 from
diffutils.texi.
-This manual is for GNU Diffutils (version 3.6, 6 May 2017), and
+This manual is for GNU Diffutils (version 3.7, 7 January 2018), and
documents the GNU 'diff', 'diff3', 'sdiff', and 'cmp' commands for
showing the differences between files and the GNU 'patch' command for
using their output to update files.
- Copyright (C) 1992-1994, 1998, 2001-2002, 2004, 2006, 2009-2017 Free
+ Copyright (C) 1992-1994, 1998, 2001-2002, 2004, 2006, 2009-2018 Free
Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this
END-INFO-DIR-ENTRY
\1f
-File: diffutils.info-t, Node: Top, Next: Overview, Up: (dir)
+File: diffutils.info, Node: Top, Next: Overview, Up: (dir)
Comparing and Merging Files
***************************
-This manual is for GNU Diffutils (version 3.6, 6 May 2017), and
+This manual is for GNU Diffutils (version 3.7, 7 January 2018), and
documents the GNU 'diff', 'diff3', 'sdiff', and 'cmp' commands for
showing the differences between files and the GNU 'patch' command for
using their output to update files.
- Copyright (C) 1992-1994, 1998, 2001-2002, 2004, 2006, 2009-2017 Free
+ Copyright (C) 1992-1994, 1998, 2001-2002, 2004, 2006, 2009-2018 Free
Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this
* Index:: Index.
\1f
-File: diffutils.info-t, Node: Overview, Next: Comparison, Prev: Top, Up: Top
+File: diffutils.info, Node: Overview, Next: Comparison, Prev: Top, Up: Top
Overview
********
Wall, with his permission.
\1f
-File: diffutils.info-t, Node: Comparison, Next: Output Formats, Prev: Overview, Up: Top
+File: diffutils.info, Node: Comparison, Next: Output Formats, Prev: Overview, Up: Top
1 What Comparison Means
***********************
* Binary:: Comparing binary files or forcing text comparisons.
\1f
-File: diffutils.info-t, Node: Hunks, Next: White Space, Up: Comparison
+File: diffutils.info, Node: Hunks, Next: White Space, Up: Comparison
1.1 Hunks
=========
diff Performance::).
\1f
-File: diffutils.info-t, Node: White Space, Next: Blank Lines, Prev: Hunks, Up: Comparison
+File: diffutils.info, Node: White Space, Next: Blank Lines, Prev: Hunks, Up: Comparison
1.2 Suppressing Differences in Blank and Tab Spacing
====================================================
newline-related changes; it ignores only other white space changes.
\1f
-File: diffutils.info-t, Node: Blank Lines, Next: Specified Lines, Prev: White Space, Up: Comparison
+File: diffutils.info, Node: Blank Lines, Next: Specified Lines, Prev: White Space, Up: Comparison
1.3 Suppressing Differences Whose Lines Are All Blank
=====================================================
to '-I '^[[:space:]]*$'' if '-b', '-w' or '-Z' is also specified.
\1f
-File: diffutils.info-t, Node: Specified Lines, Next: Case Folding, Prev: Blank Lines, Up: Comparison
+File: diffutils.info, Node: Specified Lines, Next: Case Folding, Prev: Blank Lines, Up: Comparison
1.4 Suppressing Differences Whose Lines All Match a Regular Expression
======================================================================
against each regular expression.
\1f
-File: diffutils.info-t, Node: Case Folding, Next: Brief, Prev: Specified Lines, Up: Comparison
+File: diffutils.info, Node: Case Folding, Next: Brief, Prev: Specified Lines, Up: Comparison
1.5 Suppressing Case Differences
================================
use the '-i' or '--ignore-case' option.
\1f
-File: diffutils.info-t, Node: Brief, Next: Binary, Prev: Case Folding, Up: Comparison
+File: diffutils.info, Node: Brief, Next: Binary, Prev: Case Folding, Up: Comparison
1.6 Summarizing Which Files Differ
==================================
two files.
\1f
-File: diffutils.info-t, Node: Binary, Prev: Brief, Up: Comparison
+File: diffutils.info, Node: Binary, Prev: Brief, Up: Comparison
1.7 Binary Files and Forcing Text Comparisons
=============================================
line by using the '-a' or '--text' option.
\1f
-File: diffutils.info-t, Node: Output Formats, Next: Incomplete Lines, Prev: Comparison, Up: Top
+File: diffutils.info, Node: Output Formats, Next: Incomplete Lines, Prev: Comparison, Up: Top
2 'diff' Output Formats
***********************
* If-then-else:: Merging files with if-then-else.
\1f
-File: diffutils.info-t, Node: Sample diff Input, Next: Context, Up: Output Formats
+File: diffutils.info, Node: Sample diff Input, Next: Context, Up: Output Formats
2.1 Two Sample Input Files
==========================
last three lines of 'tzu'.
\1f
-File: diffutils.info-t, Node: Context, Next: Side by Side, Prev: Sample diff Input, Up: Output Formats
+File: diffutils.info, Node: Context, Next: Side by Side, Prev: Sample diff Input, Up: Output Formats
2.2 Showing Differences in Their Context
========================================
* Alternate Names:: Showing alternate file names in context headers.
\1f
-File: diffutils.info-t, Node: Context Format, Next: Unified Format, Up: Context
+File: diffutils.info, Node: Context Format, Next: Unified Format, Up: Context
2.2.1 Context Format
--------------------
* Detailed Context:: A detailed description of the context output format.
\1f
-File: diffutils.info-t, Node: Example Context, Next: Less Context, Up: Context Format
+File: diffutils.info, Node: Example Context, Next: Less Context, Up: Context Format
2.2.1.1 An Example of Context Format
....................................
--- 1,6 ----
The Nameless is the origin of Heaven and Earth;
! The named is the mother of all things.
- !
+ !
Therefore let there always be non-being,
so we may see their subtlety,
And let there always be being,
+ The door of all subtleties!
\1f
-File: diffutils.info-t, Node: Less Context, Next: Detailed Context, Prev: Example Context, Up: Context Format
+File: diffutils.info, Node: Less Context, Next: Detailed Context, Prev: Example Context, Up: Context Format
2.2.1.2 An Example of Context Format with Less Context
......................................................
--- 1,4 ----
The Nameless is the origin of Heaven and Earth;
! The named is the mother of all things.
- !
+ !
Therefore let there always be non-being,
***************
*** 11 ****
+ The door of all subtleties!
\1f
-File: diffutils.info-t, Node: Detailed Context, Prev: Less Context, Up: Context Format
+File: diffutils.info, Node: Detailed Context, Prev: Less Context, Up: Context Format
2.2.1.3 Detailed Description of Context Format
..............................................
of TO-FILE are omitted.
\1f
-File: diffutils.info-t, Node: Unified Format, Next: Sections, Prev: Context Format, Up: Context
+File: diffutils.info, Node: Unified Format, Next: Sections, Prev: Context Format, Up: Context
2.2.2 Unified Format
--------------------
* Detailed Unified:: A detailed description of unified format.
\1f
-File: diffutils.info-t, Node: Example Unified, Next: Detailed Unified, Up: Unified Format
+File: diffutils.info, Node: Example Unified, Next: Detailed Unified, Up: Unified Format
2.2.2.1 An Example of Unified Format
....................................
+The door of all subtleties!
\1f
-File: diffutils.info-t, Node: Detailed Unified, Prev: Example Unified, Up: Unified Format
+File: diffutils.info, Node: Detailed Unified, Prev: Example Unified, Up: Unified Format
2.2.2.2 Detailed Description of Unified Format
..............................................
A line was removed here from the first file.
\1f
-File: diffutils.info-t, Node: Sections, Next: Alternate Names, Prev: Unified Format, Up: Context
+File: diffutils.info, Node: Sections, Next: Alternate Names, Prev: Unified Format, Up: Context
2.2.3 Showing Which Sections Differences Are in
-----------------------------------------------
* C Function Headings:: Showing headings of C functions.
\1f
-File: diffutils.info-t, Node: Specified Headings, Next: C Function Headings, Up: Sections
+File: diffutils.info, Node: Specified Headings, Next: C Function Headings, Up: Sections
2.2.3.1 Showing Lines That Match Regular Expressions
....................................................
you can use '-p' and '-F' together, if you wish.
\1f
-File: diffutils.info-t, Node: C Function Headings, Prev: Specified Headings, Up: Sections
+File: diffutils.info, Node: C Function Headings, Prev: Specified Headings, Up: Sections
2.2.3.2 Showing C Function Headings
...................................
this option for the sake of convenience.
\1f
-File: diffutils.info-t, Node: Alternate Names, Prev: Sections, Up: Context
+File: diffutils.info, Node: Alternate Names, Prev: Sections, Up: Context
2.2.4 Showing Alternate File Names
----------------------------------
--- modified
\1f
-File: diffutils.info-t, Node: Side by Side, Next: Normal, Prev: Context, Up: Output Formats
+File: diffutils.info, Node: Side by Side, Next: Normal, Prev: Context, Up: Output Formats
2.3 Showing Differences Side by Side
====================================
* Example Side by Side:: Sample side by side output.
\1f
-File: diffutils.info-t, Node: Side by Side Format, Next: Example Side by Side, Up: Side by Side
+File: diffutils.info, Node: Side by Side Format, Next: Example Side by Side, Up: Side by Side
2.3.1 Controlling Side by Side Format
-------------------------------------
entirely.
\1f
-File: diffutils.info-t, Node: Example Side by Side, Prev: Side by Side Format, Up: Side by Side
+File: diffutils.info, Node: Example Side by Side, Prev: Side by Side Format, Up: Side by Side
2.3.2 An Example of Side by Side Format
---------------------------------------
> The door of all subtleties!
\1f
-File: diffutils.info-t, Node: Normal, Next: Scripts, Prev: Side by Side, Up: Output Formats
+File: diffutils.info, Node: Normal, Next: Scripts, Prev: Side by Side, Up: Output Formats
2.4 Showing Differences Without Context
=======================================
* Detailed Normal:: A detailed description of normal output format.
\1f
-File: diffutils.info-t, Node: Example Normal, Next: Detailed Normal, Up: Normal
+File: diffutils.info, Node: Example Normal, Next: Detailed Normal, Up: Normal
2.4.1 An Example of Normal Format
---------------------------------
< The Named is the mother of all things.
---
> The named is the mother of all things.
- >
+ >
11a11,13
> They both may be called deep and profound.
> Deeper and more profound,
> The door of all subtleties!
\1f
-File: diffutils.info-t, Node: Detailed Normal, Prev: Example Normal, Up: Normal
+File: diffutils.info, Node: Detailed Normal, Prev: Example Normal, Up: Normal
2.4.2 Detailed Description of Normal Format
-------------------------------------------
after line 3 of file 2.
\1f
-File: diffutils.info-t, Node: Scripts, Next: If-then-else, Prev: Normal, Up: Output Formats
+File: diffutils.info, Node: Scripts, Next: If-then-else, Prev: Normal, Up: Output Formats
2.5 Making Edit Scripts
=======================
* RCS:: A special 'diff' output format used by RCS.
\1f
-File: diffutils.info-t, Node: ed Scripts, Next: Forward ed, Up: Scripts
+File: diffutils.info, Node: ed Scripts, Next: Forward ed, Up: Scripts
2.5.1 'ed' Scripts
------------------
* Detailed ed:: A detailed description of 'ed' format.
\1f
-File: diffutils.info-t, Node: Example ed, Next: Detailed ed, Up: ed Scripts
+File: diffutils.info, Node: Example ed, Next: Detailed ed, Up: ed Scripts
2.5.1.1 Example 'ed' Script
...........................
1,2d
\1f
-File: diffutils.info-t, Node: Detailed ed, Prev: Example ed, Up: ed Scripts
+File: diffutils.info, Node: Detailed ed, Prev: Example ed, Up: ed Scripts
2.5.1.2 Detailed Description of 'ed' Format
...........................................
'5,7d' means delete lines 5-7 of file 1.
\1f
-File: diffutils.info-t, Node: Forward ed, Next: RCS, Prev: ed Scripts, Up: Scripts
+File: diffutils.info, Node: Forward ed, Next: RCS, Prev: ed Scripts, Up: Scripts
2.5.2 Forward 'ed' Scripts
--------------------------
'--forward-ed' option to select it.
\1f
-File: diffutils.info-t, Node: RCS, Prev: Forward ed, Up: Scripts
+File: diffutils.info, Node: RCS, Prev: Forward ed, Up: Scripts
2.5.3 RCS Scripts
-----------------
The door of all subtleties!
\1f
-File: diffutils.info-t, Node: If-then-else, Prev: Scripts, Up: Output Formats
+File: diffutils.info, Node: If-then-else, Prev: Scripts, Up: Output Formats
2.6 Merging Files with If-then-else
===================================
* Detailed If-then-else:: A detailed description of if-then-else format.
\1f
-File: diffutils.info-t, Node: Line Group Formats, Next: Line Formats, Up: If-then-else
+File: diffutils.info, Node: Line Group Formats, Next: Line Formats, Up: If-then-else
2.6.1 Line Group Formats
------------------------
0, to '1 line' if N is 1, and to '%dN lines' otherwise.
\1f
-File: diffutils.info-t, Node: Line Formats, Next: Example If-then-else, Prev: Line Group Formats, Up: If-then-else
+File: diffutils.info, Node: Line Formats, Next: Example If-then-else, Prev: Line Group Formats, Up: If-then-else
2.6.2 Line Formats
------------------
old new
\1f
-File: diffutils.info-t, Node: Example If-then-else, Next: Detailed If-then-else, Prev: Line Formats, Up: If-then-else
+File: diffutils.info, Node: Example If-then-else, Next: Detailed If-then-else, Prev: Line Formats, Up: If-then-else
2.6.3 An Example of If-then-else Format
---------------------------------------
#endif /* TWO */
\1f
-File: diffutils.info-t, Node: Detailed If-then-else, Prev: Example If-then-else, Up: If-then-else
+File: diffutils.info, Node: Detailed If-then-else, Prev: Example If-then-else, Up: If-then-else
2.6.4 Detailed Description of If-then-else Format
-------------------------------------------------
file. *Note patch Options::.
\1f
-File: diffutils.info-t, Node: Incomplete Lines, Next: Comparing Directories, Prev: Output Formats, Up: Top
+File: diffutils.info, Node: Incomplete Lines, Next: Comparing Directories, Prev: Output Formats, Up: Top
3 Incomplete Lines
******************
.
\1f
-File: diffutils.info-t, Node: Comparing Directories, Next: Adjusting Output, Prev: Incomplete Lines, Up: Top
+File: diffutils.info, Node: Comparing Directories, Next: Adjusting Output, Prev: Incomplete Lines, Up: Top
4 Comparing Directories
***********************
'--no-dereference' option.
\1f
-File: diffutils.info-t, Node: Adjusting Output, Next: diff Performance, Prev: Comparing Directories, Up: Top
+File: diffutils.info, Node: Adjusting Output, Next: diff Performance, Prev: Comparing Directories, Up: Top
5 Making 'diff' Output Prettier
*******************************
* Pagination:: Page numbering and time-stamping 'diff' output.
\1f
-File: diffutils.info-t, Node: Tabs, Next: Trailing Blanks, Up: Adjusting Output
+File: diffutils.info, Node: Tabs, Next: Trailing Blanks, Up: Adjusting Output
5.1 Preserving Tab Stop Alignment
=================================
'--initial-tab' option.
\1f
-File: diffutils.info-t, Node: Trailing Blanks, Next: Pagination, Prev: Tabs, Up: Adjusting Output
+File: diffutils.info, Node: Trailing Blanks, Next: Pagination, Prev: Tabs, Up: Adjusting Output
5.2 Omitting trailing blanks
============================
'patch' as well.
\1f
-File: diffutils.info-t, Node: Pagination, Prev: Trailing Blanks, Up: Adjusting Output
+File: diffutils.info, Node: Pagination, Prev: Trailing Blanks, Up: Adjusting Output
5.3 Paginating 'diff' Output
============================
2002-02-22 14:20 diff -lc lao tzu Page 1
\1f
-File: diffutils.info-t, Node: diff Performance, Next: Comparing Three Files, Prev: Adjusting Output, Up: Top
+File: diffutils.info, Node: diff Performance, Next: Comparing Three Files, Prev: Adjusting Output, Up: Top
6 'diff' Performance Tradeoffs
******************************
nicer in some cases.
\1f
-File: diffutils.info-t, Node: Comparing Three Files, Next: diff3 Merging, Prev: diff Performance, Up: Top
+File: diffutils.info, Node: Comparing Three Files, Next: diff3 Merging, Prev: diff Performance, Up: Top
7 Comparing Three Files
***********************
* diff3 Hunks:: The format of normal output format.
\1f
-File: diffutils.info-t, Node: Sample diff3 Input, Next: Example diff3 Normal, Up: Comparing Three Files
+File: diffutils.info, Node: Sample diff3 Input, Next: Example diff3 Normal, Up: Comparing Three Files
7.1 A Third Sample Input File
=============================
-- The Way of Lao-Tzu, tr. Wing-tsit Chan
\1f
-File: diffutils.info-t, Node: Example diff3 Normal, Next: Detailed diff3 Normal, Prev: Sample diff3 Input, Up: Comparing Three Files
+File: diffutils.info, Node: Example diff3 Normal, Next: Detailed diff3 Normal, Prev: Sample diff3 Input, Up: Comparing Three Files
7.2 An Example of 'diff3' Normal Format
=======================================
2:2,3c
3:4,5c
The named is the mother of all things.
-
+
====3
1:8c
2:7c
Deeper and more profound,
The door of all subtleties!
3:13,14c
-
+
-- The Way of Lao-Tzu, tr. Wing-tsit Chan
\1f
-File: diffutils.info-t, Node: Detailed diff3 Normal, Next: diff3 Hunks, Prev: Example diff3 Normal, Up: Comparing Three Files
+File: diffutils.info, Node: Detailed diff3 Normal, Next: diff3 Hunks, Prev: Example diff3 Normal, Up: Comparing Three Files
7.3 Detailed Description of 'diff3' Normal Format
=================================================
following line that starts with '\'.
\1f
-File: diffutils.info-t, Node: diff3 Hunks, Prev: Detailed diff3 Normal, Up: Comparing Three Files
+File: diffutils.info, Node: diff3 Hunks, Prev: Detailed diff3 Normal, Up: Comparing Three Files
7.4 'diff3' Hunks
=================
file.
\1f
-File: diffutils.info-t, Node: diff3 Merging, Next: Interactive Merging, Prev: Comparing Three Files, Up: Top
+File: diffutils.info, Node: diff3 Merging, Next: Interactive Merging, Prev: Comparing Three Files, Up: Top
8 Merging From a Common Ancestor
********************************
* Saving the Changed File:: Emulating System V behavior.
\1f
-File: diffutils.info-t, Node: Which Changes, Next: Marking Conflicts, Up: diff3 Merging
+File: diffutils.info, Node: Which Changes, Next: Marking Conflicts, Up: diff3 Merging
8.1 Selecting Which Changes to Incorporate
==========================================
.
\1f
-File: diffutils.info-t, Node: Marking Conflicts, Next: Bypassing ed, Prev: Which Changes, Up: diff3 Merging
+File: diffutils.info, Node: Marking Conflicts, Next: Bypassing ed, Prev: Which Changes, Up: diff3 Merging
8.2 Marking Conflicts
=====================
rather than from files named 'A', 'B' and 'C'.
\1f
-File: diffutils.info-t, Node: Bypassing ed, Next: Merging Incomplete Lines, Prev: Marking Conflicts, Up: diff3 Merging
+File: diffutils.info, Node: Bypassing ed, Next: Merging Incomplete Lines, Prev: Marking Conflicts, Up: diff3 Merging
8.3 Generating the Merged Output Directly
=========================================
>>>>>>> tao
\1f
-File: diffutils.info-t, Node: Merging Incomplete Lines, Next: Saving the Changed File, Prev: Bypassing ed, Up: diff3 Merging
+File: diffutils.info, Node: Merging Incomplete Lines, Next: Saving the Changed File, Prev: Bypassing ed, Up: diff3 Merging
8.4 How 'diff3' Merges Incomplete Lines
=======================================
been present.
\1f
-File: diffutils.info-t, Node: Saving the Changed File, Prev: Merging Incomplete Lines, Up: diff3 Merging
+File: diffutils.info, Node: Saving the Changed File, Prev: Merging Incomplete Lines, Up: diff3 Merging
8.5 Saving the Changed File
===========================
and is incompatible with the merged output option '-m'.
\1f
-File: diffutils.info-t, Node: Interactive Merging, Next: Merging with patch, Prev: diff3 Merging, Up: Top
+File: diffutils.info, Node: Interactive Merging, Next: Merging with patch, Prev: diff3 Merging, Up: Top
9 Interactive Merging with 'sdiff'
**********************************
* Merge Commands:: Merging two files interactively.
\1f
-File: diffutils.info-t, Node: sdiff Option Summary, Next: Merge Commands, Up: Interactive Merging
+File: diffutils.info, Node: sdiff Option Summary, Next: Merge Commands, Up: Interactive Merging
9.1 Specifying 'diff' Options to 'sdiff'
========================================
option (*note Side by Side::).
\1f
-File: diffutils.info-t, Node: Merge Commands, Prev: sdiff Option Summary, Up: Interactive Merging
+File: diffutils.info, Node: Merge Commands, Prev: sdiff Option Summary, Up: Interactive Merging
9.2 Merge Commands
==================
variable if it is set. The default is system-dependent.
\1f
-File: diffutils.info-t, Node: Merging with patch, Next: Making Patches, Prev: Interactive Merging, Up: Top
+File: diffutils.info, Node: Merging with patch, Next: Making Patches, Prev: Interactive Merging, Up: Top
10 Merging with 'patch'
***********************
* patch and Tradition:: GNU versus traditional 'patch'.
\1f
-File: diffutils.info-t, Node: patch Input, Next: Revision Control, Up: Merging with patch
+File: diffutils.info, Node: patch Input, Next: Revision Control, Up: Merging with patch
10.1 Selecting the 'patch' Input Format
=======================================
unified diff.
\1f
-File: diffutils.info-t, Node: Revision Control, Next: Imperfect, Prev: patch Input, Up: Merging with patch
+File: diffutils.info, Node: Revision Control, Next: Imperfect, Prev: patch Input, Up: Merging with patch
10.2 Revision Control
=====================
'VERSION_CONTROL' environment variable (*note Backup Names::).
\1f
-File: diffutils.info-t, Node: Imperfect, Next: Creating and Removing, Prev: Revision Control, Up: Merging with patch
+File: diffutils.info, Node: Imperfect, Next: Creating and Removing, Prev: Revision Control, Up: Merging with patch
10.3 Applying Imperfect Patches
===============================
* Dry Runs:: Predicting what 'patch' will do.
\1f
-File: diffutils.info-t, Node: Changed White Space, Next: Reversed Patches, Up: Imperfect
+File: diffutils.info, Node: Changed White Space, Next: Reversed Patches, Up: Imperfect
10.3.1 Applying Patches with Changed White Space
------------------------------------------------
line of the context must still match a line in the input file.
\1f
-File: diffutils.info-t, Node: Reversed Patches, Next: Inexact, Prev: Changed White Space, Up: Imperfect
+File: diffutils.info, Node: Reversed Patches, Next: Inexact, Prev: Changed White Space, Up: Imperfect
10.3.2 Applying Reversed Patches
--------------------------------
process.
\1f
-File: diffutils.info-t, Node: Inexact, Next: Dry Runs, Prev: Reversed Patches, Up: Imperfect
+File: diffutils.info, Node: Inexact, Next: Dry Runs, Prev: Reversed Patches, Up: Imperfect
10.3.3 Helping 'patch' Find Inexact Matches
-------------------------------------------
from.
\1f
-File: diffutils.info-t, Node: Dry Runs, Prev: Inexact, Up: Imperfect
+File: diffutils.info, Node: Dry Runs, Prev: Inexact, Up: Imperfect
10.3.4 Predicting what 'patch' will do
--------------------------------------
option.
\1f
-File: diffutils.info-t, Node: Creating and Removing, Next: Patching Timestamps, Prev: Imperfect, Up: Merging with patch
+File: diffutils.info, Node: Creating and Removing, Next: Patching Timestamps, Prev: Imperfect, Up: Merging with patch
10.4 Creating and Removing Files
================================
asks for confirmation before applying the patch.
\1f
-File: diffutils.info-t, Node: Patching Timestamps, Next: Multiple Patches, Prev: Creating and Removing, Up: Merging with patch
+File: diffutils.info, Node: Patching Timestamps, Next: Multiple Patches, Prev: Creating and Removing, Up: Merging with patch
10.5 Updating Timestamps on Patched Files
=========================================
confused by the patched files' times.
\1f
-File: diffutils.info-t, Node: Multiple Patches, Next: patch Directories, Prev: Patching Timestamps, Up: Merging with patch
+File: diffutils.info, Node: Multiple Patches, Next: patch Directories, Prev: Patching Timestamps, Up: Merging with patch
10.6 Multiple Patches in a File
===============================
POSIX.
\1f
-File: diffutils.info-t, Node: patch Directories, Next: Backups, Prev: Multiple Patches, Up: Merging with patch
+File: diffutils.info, Node: patch Directories, Next: Backups, Prev: Multiple Patches, Up: Merging with patch
10.7 Applying Patches in Other Directories
==========================================
directory.
\1f
-File: diffutils.info-t, Node: Backups, Next: Backup Names, Prev: patch Directories, Up: Merging with patch
+File: diffutils.info, Node: Backups, Next: Backup Names, Prev: patch Directories, Up: Merging with patch
10.8 Backup Files
=================
file.
\1f
-File: diffutils.info-t, Node: Backup Names, Next: Reject Names, Prev: Backups, Up: Merging with patch
+File: diffutils.info, Node: Backup Names, Next: Reject Names, Prev: Backups, Up: Merging with patch
10.9 Backup File Names
======================
use '~', but this should be fixed in the next release.
\1f
-File: diffutils.info-t, Node: Reject Names, Next: patch Messages, Prev: Backup Names, Up: Merging with patch
+File: diffutils.info, Node: Reject Names, Next: patch Messages, Prev: Backup Names, Up: Merging with patch
10.10 Reject File Names
=======================
name.
\1f
-File: diffutils.info-t, Node: patch Messages, Next: patch and POSIX, Prev: Reject Names, Up: Merging with patch
+File: diffutils.info, Node: patch Messages, Next: patch and POSIX, Prev: Reject Names, Up: Merging with patch
10.11 Messages and Questions from 'patch'
=========================================
status, so you don't apply a later patch to a partially patched file.
\1f
-File: diffutils.info-t, Node: More or Fewer Messages, Next: patch and Keyboard Input, Up: patch Messages
+File: diffutils.info, Node: More or Fewer Messages, Next: patch and Keyboard Input, Up: patch Messages
10.11.1 Controlling the Verbosity of 'patch'
--------------------------------------------
occurs, by using the '-s', '--quiet', or '--silent' option.
\1f
-File: diffutils.info-t, Node: patch and Keyboard Input, Next: patch Quoting Style, Prev: More or Fewer Messages, Up: patch Messages
+File: diffutils.info, Node: patch and Keyboard Input, Next: patch Quoting Style, Prev: More or Fewer Messages, Up: patch Messages
10.11.2 Inhibiting Keyboard Input
---------------------------------
* Assume that patches are reversed if they look like they are.
\1f
-File: diffutils.info-t, Node: patch Quoting Style, Prev: patch and Keyboard Input, Up: patch Messages
+File: diffutils.info, Node: patch Quoting Style, Prev: patch and Keyboard Input, Up: patch Messages
10.11.3 'patch' Quoting Style
-----------------------------
change in a future version of 'patch'.
\1f
-File: diffutils.info-t, Node: patch and POSIX, Next: patch and Tradition, Prev: patch Messages, Up: Merging with patch
+File: diffutils.info, Node: patch and POSIX, Next: patch and Tradition, Prev: patch Messages, Up: Merging with patch
10.12 'patch' and the POSIX Standard
====================================
Backups::.
\1f
-File: diffutils.info-t, Node: patch and Tradition, Prev: patch and POSIX, Up: Merging with patch
+File: diffutils.info, Node: patch and Tradition, Prev: patch and POSIX, Up: Merging with patch
10.13 GNU 'patch' and Traditional 'patch'
=========================================
-r REJECTFILE
\1f
-File: diffutils.info-t, Node: Making Patches, Next: Invoking cmp, Prev: Merging with patch, Up: Top
+File: diffutils.info, Node: Making Patches, Next: Invoking cmp, Prev: Merging with patch, Up: Top
11 Tips for Making and Using Patches
************************************
* Generating Smaller Patches:: How to generate smaller patches.
\1f
-File: diffutils.info-t, Node: Tips for Patch Producers, Next: Tips for Patch Consumers, Up: Making Patches
+File: diffutils.info, Node: Tips for Patch Producers, Next: Tips for Patch Consumers, Up: Making Patches
11.1 Tips for Patch Producers
=============================
when generating a patch.
\1f
-File: diffutils.info-t, Node: Tips for Patch Consumers, Next: Avoiding Common Mistakes, Prev: Tips for Patch Producers, Up: Making Patches
+File: diffutils.info, Node: Tips for Patch Consumers, Next: Avoiding Common Mistakes, Prev: Tips for Patch Producers, Up: Making Patches
11.2 Tips for Patch Consumers
=============================
upgrading to a recent version of GNU 'patch'.
\1f
-File: diffutils.info-t, Node: Avoiding Common Mistakes, Next: Generating Smaller Patches, Prev: Tips for Patch Consumers, Up: Making Patches
+File: diffutils.info, Node: Avoiding Common Mistakes, Next: Generating Smaller Patches, Prev: Tips for Patch Consumers, Up: Making Patches
11.3 Avoiding Common Mistakes
=============================
the wrong order.
\1f
-File: diffutils.info-t, Node: Generating Smaller Patches, Prev: Avoiding Common Mistakes, Up: Making Patches
+File: diffutils.info, Node: Generating Smaller Patches, Prev: Avoiding Common Mistakes, Up: Making Patches
11.4 Generating Smaller Patches
===============================
proper operation when patches do not exactly match the input files.
\1f
-File: diffutils.info-t, Node: Invoking cmp, Next: Invoking diff, Prev: Making Patches, Up: Top
+File: diffutils.info, Node: Invoking cmp, Next: Invoking diff, Prev: Making Patches, Up: Top
12 Invoking 'cmp'
*****************
* cmp Options:: Summary of options to 'cmp'.
\1f
-File: diffutils.info-t, Node: cmp Options, Up: Invoking cmp
+File: diffutils.info, Node: cmp Options, Up: Invoking cmp
12.1 Options to 'cmp'
=====================
to IEC 60027-2.)
\1f
-File: diffutils.info-t, Node: Invoking diff, Next: Invoking diff3, Prev: Invoking cmp, Up: Top
+File: diffutils.info, Node: Invoking diff, Next: Invoking diff3, Prev: Invoking cmp, Up: Top
13 Invoking 'diff'
******************
* diff Options:: Summary of options to 'diff'.
\1f
-File: diffutils.info-t, Node: diff Options, Up: Invoking diff
+File: diffutils.info, Node: diff Options, Up: Invoking diff
13.1 Options to 'diff'
======================
Ignore white space at line end. *Note White Space::.
\1f
-File: diffutils.info-t, Node: Invoking diff3, Next: Invoking patch, Prev: Invoking diff, Up: Top
+File: diffutils.info, Node: Invoking diff3, Next: Invoking patch, Prev: Invoking diff, Up: Top
14 Invoking 'diff3'
*******************
* diff3 Options:: Summary of options to 'diff3'.
\1f
-File: diffutils.info-t, Node: diff3 Options, Up: Invoking diff3
+File: diffutils.info, Node: diff3 Options, Up: Invoking diff3
14.1 Options to 'diff3'
=======================
Which Changes::.
\1f
-File: diffutils.info-t, Node: Invoking patch, Next: Invoking sdiff, Prev: Invoking diff3, Up: Top
+File: diffutils.info, Node: Invoking patch, Next: Invoking sdiff, Prev: Invoking diff3, Up: Top
15 Invoking 'patch'
*******************
* patch Options:: Summary table of options to 'patch'.
\1f
-File: diffutils.info-t, Node: patch Options, Up: Invoking patch
+File: diffutils.info, Node: patch Options, Up: Invoking patch
15.1 Options to 'patch'
=======================
diff headers use UTC. *Note Patching Timestamps::.
\1f
-File: diffutils.info-t, Node: Invoking sdiff, Next: Standards conformance, Prev: Invoking patch, Up: Top
+File: diffutils.info, Node: Invoking sdiff, Next: Standards conformance, Prev: Invoking patch, Up: Top
16 Invoking 'sdiff'
*******************
* sdiff Options:: Summary of options to 'diff'.
\1f
-File: diffutils.info-t, Node: sdiff Options, Up: Invoking sdiff
+File: diffutils.info, Node: sdiff Options, Up: Invoking sdiff
16.1 Options to 'sdiff'
=======================
Ignore white space at line end. *Note White Space::.
\1f
-File: diffutils.info-t, Node: Standards conformance, Next: Projects, Prev: Invoking sdiff, Up: Top
+File: diffutils.info, Node: Standards conformance, Next: Projects, Prev: Invoking sdiff, Up: Top
17 Standards conformance
************************
your environment.
\1f
-File: diffutils.info-t, Node: Projects, Next: Copying This Manual, Prev: Standards conformance, Up: Top
+File: diffutils.info, Node: Projects, Next: Copying This Manual, Prev: Standards conformance, Up: Top
18 Future Projects
******************
* Bugs:: Reporting bugs.
\1f
-File: diffutils.info-t, Node: Shortcomings, Next: Bugs, Up: Projects
+File: diffutils.info, Node: Shortcomings, Next: Bugs, Up: Projects
18.1 Suggested Projects for Improving GNU 'diff' and 'patch'
============================================================
* Speedups:: Improving performance.
\1f
-File: diffutils.info-t, Node: Internationalization, Next: Changing Structure, Up: Shortcomings
+File: diffutils.info, Node: Internationalization, Next: Changing Structure, Up: Shortcomings
18.1.1 Handling Multibyte and Varying-Width Characters
------------------------------------------------------
of 'diff', so more work needs to be done in this area.
\1f
-File: diffutils.info-t, Node: Changing Structure, Next: Special Files, Prev: Internationalization, Up: Shortcomings
+File: diffutils.info, Node: Changing Structure, Next: Special Files, Prev: Internationalization, Up: Shortcomings
18.1.2 Handling Changes to the Directory Structure
--------------------------------------------------
understand these extensions.
\1f
-File: diffutils.info-t, Node: Special Files, Next: Unusual File Names, Prev: Changing Structure, Up: Shortcomings
+File: diffutils.info, Node: Special Files, Next: Unusual File Names, Prev: Changing Structure, Up: Shortcomings
18.1.3 Files that are Neither Directories Nor Regular Files
-----------------------------------------------------------
and 'patch' should be extended to understand these extensions.
\1f
-File: diffutils.info-t, Node: Unusual File Names, Next: Timestamp Order, Prev: Special Files, Up: Shortcomings
+File: diffutils.info, Node: Unusual File Names, Next: Timestamp Order, Prev: Special Files, Up: Shortcomings
18.1.4 File Names that Contain Unusual Characters
-------------------------------------------------
'diff' output should be extended to handle all possible file names.
\1f
-File: diffutils.info-t, Node: Timestamp Order, Next: Ignoring Changes, Prev: Unusual File Names, Up: Shortcomings
+File: diffutils.info, Node: Timestamp Order, Next: Ignoring Changes, Prev: Unusual File Names, Up: Shortcomings
18.1.5 Outputting Diffs in Timestamp Order
------------------------------------------
timestamp order.
\1f
-File: diffutils.info-t, Node: Ignoring Changes, Next: Speedups, Prev: Timestamp Order, Up: Shortcomings
+File: diffutils.info, Node: Ignoring Changes, Next: Speedups, Prev: Timestamp Order, Up: Shortcomings
18.1.6 Ignoring Certain Changes
-------------------------------
However, this outputs the filtered text, not the original.
\1f
-File: diffutils.info-t, Node: Speedups, Prev: Ignoring Changes, Up: Shortcomings
+File: diffutils.info, Node: Speedups, Prev: Ignoring Changes, Up: Shortcomings
18.1.7 Improving Performance
----------------------------
content. *Note diff Performance::.
\1f
-File: diffutils.info-t, Node: Bugs, Prev: Shortcomings, Up: Projects
+File: diffutils.info, Node: Bugs, Prev: Shortcomings, Up: Projects
18.2 Reporting Bugs
===================
<ftp://alpha.gnu.org/gnu/diffutils/>.
\1f
-File: diffutils.info-t, Node: Copying This Manual, Next: Translations, Prev: Projects, Up: Top
+File: diffutils.info, Node: Copying This Manual, Next: Translations, Prev: Projects, Up: Top
Appendix A Copying This Manual
******************************
Version 1.3, 3 November 2008
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
- <http://fsf.org/>
+ <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
the GNU Free Documentation License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns. See
- <http://www.gnu.org/copyleft/>.
+ <https://www.gnu.org/copyleft/>.
Each version of the License is given a distinguishing version
number. If the Document specifies that a particular numbered
their use in free software.
\1f
-File: diffutils.info-t, Node: Translations, Next: Index, Prev: Copying This Manual, Up: Top
+File: diffutils.info, Node: Translations, Next: Index, Prev: Copying This Manual, Up: Top
Appendix B Translations of This Manual
**************************************
<http://openlab.ring.gr.jp/gnujdoc/cvsweb/cvsweb.cgi/gnujdoc/>.
\1f
-File: diffutils.info-t, Node: Index, Prev: Translations, Up: Top
+File: diffutils.info, Node: Index, Prev: Translations, Up: Top
Appendix C Index
****************
\1f
Tag Table:
-Node: Top\7f1429
-Node: Overview\7f3640
-Node: Comparison\7f7396
+Node: Top\7f1431
+Node: Overview\7f3644
+Node: Comparison\7f7398
Node: Hunks\7f10340
-Node: White Space\7f11783
-Node: Blank Lines\7f13624
-Node: Specified Lines\7f14615
-Node: Case Folding\7f15743
-Node: Brief\7f16162
-Node: Binary\7f17487
-Node: Output Formats\7f21286
-Node: Sample diff Input\7f22013
-Node: Context\7f23514
-Node: Context Format\7f25093
-Node: Example Context\7f25887
-Node: Less Context\7f27397
-Node: Detailed Context\7f28589
-Node: Unified Format\7f30786
-Node: Example Unified\7f31585
-Node: Detailed Unified\7f32625
-Node: Sections\7f34267
-Node: Specified Headings\7f35028
-Node: C Function Headings\7f36579
-Node: Alternate Names\7f37427
-Node: Side by Side\7f38342
-Node: Side by Side Format\7f40494
-Node: Example Side by Side\7f41398
-Node: Normal\7f42740
-Node: Example Normal\7f43743
-Node: Detailed Normal\7f44482
-Node: Scripts\7f46223
-Node: ed Scripts\7f46630
-Node: Example ed\7f47838
-Node: Detailed ed\7f48290
-Node: Forward ed\7f50051
-Node: RCS\7f50829
-Node: If-then-else\7f52047
-Node: Line Group Formats\7f53727
-Node: Line Formats\7f59610
-Node: Example If-then-else\7f62881
-Node: Detailed If-then-else\7f63962
-Node: Incomplete Lines\7f65849
-Node: Comparing Directories\7f67487
-Node: Adjusting Output\7f71781
-Node: Tabs\7f72290
-Node: Trailing Blanks\7f73906
-Node: Pagination\7f75133
-Node: diff Performance\7f75603
-Node: Comparing Three Files\7f78694
-Node: Sample diff3 Input\7f79574
-Node: Example diff3 Normal\7f80524
-Node: Detailed diff3 Normal\7f81590
-Node: diff3 Hunks\7f83380
-Node: diff3 Merging\7f84648
-Node: Which Changes\7f86895
-Node: Marking Conflicts\7f88297
-Node: Bypassing ed\7f90754
-Node: Merging Incomplete Lines\7f92099
-Node: Saving the Changed File\7f92827
-Node: Interactive Merging\7f93445
-Node: sdiff Option Summary\7f94156
-Node: Merge Commands\7f95361
-Node: Merging with patch\7f96652
-Node: patch Input\7f99021
-Node: Revision Control\7f99705
-Node: Imperfect\7f100877
-Node: Changed White Space\7f102028
-Node: Reversed Patches\7f102827
-Node: Inexact\7f104293
-Node: Dry Runs\7f107851
-Node: Creating and Removing\7f108717
-Node: Patching Timestamps\7f109768
-Node: Multiple Patches\7f111957
-Node: patch Directories\7f114620
-Node: Backups\7f116246
-Node: Backup Names\7f117312
-Ref: Backup Names-Footnote-1\7f120269
-Node: Reject Names\7f120396
-Node: patch Messages\7f120987
-Node: More or Fewer Messages\7f122049
-Node: patch and Keyboard Input\7f122682
-Node: patch Quoting Style\7f123713
-Node: patch and POSIX\7f124861
-Node: patch and Tradition\7f125702
-Node: Making Patches\7f129125
-Node: Tips for Patch Producers\7f129953
-Node: Tips for Patch Consumers\7f131210
-Node: Avoiding Common Mistakes\7f131849
-Node: Generating Smaller Patches\7f134376
-Node: Invoking cmp\7f136137
-Node: cmp Options\7f137689
-Node: Invoking diff\7f141335
-Node: diff Options\7f142956
-Node: Invoking diff3\7f152807
-Node: diff3 Options\7f153447
-Node: Invoking patch\7f156482
-Node: patch Options\7f157692
-Node: Invoking sdiff\7f162914
-Node: sdiff Options\7f164058
-Node: Standards conformance\7f167032
-Node: Projects\7f168780
-Node: Shortcomings\7f169494
-Node: Internationalization\7f170596
-Node: Changing Structure\7f171764
-Node: Special Files\7f172869
-Node: Unusual File Names\7f173982
-Node: Timestamp Order\7f174622
-Node: Ignoring Changes\7f175260
-Node: Speedups\7f176031
-Node: Bugs\7f176495
-Node: Copying This Manual\7f177350
-Node: Translations\7f202471
-Node: Index\7f202845
+Node: White Space\7f11781
+Node: Blank Lines\7f13620
+Node: Specified Lines\7f14609
+Node: Case Folding\7f15735
+Node: Brief\7f16152
+Node: Binary\7f17475
+Node: Output Formats\7f21272
+Node: Sample diff Input\7f21997
+Node: Context\7f23496
+Node: Context Format\7f25073
+Node: Example Context\7f25865
+Node: Less Context\7f27372
+Node: Detailed Context\7f28561
+Node: Unified Format\7f30756
+Node: Example Unified\7f31553
+Node: Detailed Unified\7f32591
+Node: Sections\7f34231
+Node: Specified Headings\7f34990
+Node: C Function Headings\7f36539
+Node: Alternate Names\7f37385
+Node: Side by Side\7f38298
+Node: Side by Side Format\7f40448
+Node: Example Side by Side\7f41350
+Node: Normal\7f42690
+Node: Example Normal\7f43691
+Node: Detailed Normal\7f44427
+Node: Scripts\7f46166
+Node: ed Scripts\7f46571
+Node: Example ed\7f47777
+Node: Detailed ed\7f48227
+Node: Forward ed\7f49986
+Node: RCS\7f50762
+Node: If-then-else\7f51978
+Node: Line Group Formats\7f53656
+Node: Line Formats\7f59537
+Node: Example If-then-else\7f62806
+Node: Detailed If-then-else\7f63885
+Node: Incomplete Lines\7f65770
+Node: Comparing Directories\7f67406
+Node: Adjusting Output\7f71698
+Node: Tabs\7f72205
+Node: Trailing Blanks\7f73819
+Node: Pagination\7f75044
+Node: diff Performance\7f75512
+Node: Comparing Three Files\7f78601
+Node: Sample diff3 Input\7f79479
+Node: Example diff3 Normal\7f80427
+Node: Detailed diff3 Normal\7f81487
+Node: diff3 Hunks\7f83275
+Node: diff3 Merging\7f84541
+Node: Which Changes\7f86786
+Node: Marking Conflicts\7f88186
+Node: Bypassing ed\7f90641
+Node: Merging Incomplete Lines\7f91984
+Node: Saving the Changed File\7f92710
+Node: Interactive Merging\7f93326
+Node: sdiff Option Summary\7f94035
+Node: Merge Commands\7f95238
+Node: Merging with patch\7f96527
+Node: patch Input\7f98894
+Node: Revision Control\7f99576
+Node: Imperfect\7f100746
+Node: Changed White Space\7f101895
+Node: Reversed Patches\7f102692
+Node: Inexact\7f104156
+Node: Dry Runs\7f107712
+Node: Creating and Removing\7f108576
+Node: Patching Timestamps\7f109625
+Node: Multiple Patches\7f111812
+Node: patch Directories\7f114473
+Node: Backups\7f116097
+Node: Backup Names\7f117161
+Ref: Backup Names-Footnote-1\7f120116
+Node: Reject Names\7f120243
+Node: patch Messages\7f120832
+Node: More or Fewer Messages\7f121892
+Node: patch and Keyboard Input\7f122523
+Node: patch Quoting Style\7f123552
+Node: patch and POSIX\7f124698
+Node: patch and Tradition\7f125537
+Node: Making Patches\7f128958
+Node: Tips for Patch Producers\7f129784
+Node: Tips for Patch Consumers\7f131039
+Node: Avoiding Common Mistakes\7f131676
+Node: Generating Smaller Patches\7f134201
+Node: Invoking cmp\7f135960
+Node: cmp Options\7f137510
+Node: Invoking diff\7f141154
+Node: diff Options\7f142773
+Node: Invoking diff3\7f152622
+Node: diff3 Options\7f153260
+Node: Invoking patch\7f156293
+Node: patch Options\7f157501
+Node: Invoking sdiff\7f162721
+Node: sdiff Options\7f163863
+Node: Standards conformance\7f166835
+Node: Projects\7f168581
+Node: Shortcomings\7f169293
+Node: Internationalization\7f170393
+Node: Changing Structure\7f171559
+Node: Special Files\7f172662
+Node: Unusual File Names\7f173773
+Node: Timestamp Order\7f174411
+Node: Ignoring Changes\7f175047
+Node: Speedups\7f175816
+Node: Bugs\7f176278
+Node: Copying This Manual\7f177131
+Node: Translations\7f202252
+Node: Index\7f202624
\1f
End Tag Table
differences between files and the GNU @command{patch} command for
using their output to update files.
-Copyright @copyright{} 1992-1994, 1998, 2001-2002, 2004, 2006, 2009-2017 Free
+Copyright @copyright{} 1992-1994, 1998, 2001-2002, 2004, 2006, 2009-2018 Free
Software Foundation, Inc.
@quotation
@display
Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-@uref{http://fsf.org/}
+@uref{https://fsf.org/}
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
of the GNU Free Documentation License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns. See
-@uref{http://www.gnu.org/copyleft/}.
+@uref{https://www.gnu.org/copyleft/}.
Each version of the License is given a distinguishing version number.
If the Document specifies that a particular numbered version of this
-@set UPDATED 6 May 2017
-@set UPDATED-MONTH May 2017
-@set EDITION 3.6
-@set VERSION 3.6
+@set UPDATED 7 January 2018
+@set UPDATED-MONTH January 2018
+@set EDITION 3.7
+@set VERSION 3.7
-@set UPDATED 6 May 2017
-@set UPDATED-MONTH May 2017
-@set EDITION 3.6
-@set VERSION 3.6
+@set UPDATED 7 January 2018
+@set UPDATED-MONTH January 2018
+@set EDITION 3.7
+@set VERSION 3.7
#! /bin/sh
# Wrapper around gettext for programs using the msgid convention.
-# Copyright (C) 1998, 2001, 2004, 2009-2013, 2015-2017 Free Software
+# Copyright (C) 1998, 2001, 2004, 2009-2013, 2015-2018 Free Software
# Foundation, Inc.
# Written by Paul Eggert <eggert@twinsun.com>.
-# Makefile.in generated by automake 1.99a from Makefile.am.
+# Makefile.in generated by automake 1.16a from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2015 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@SET_MAKE@
-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
+# Copyright (C) 2002-2018 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this file. If not, see <http://www.gnu.org/licenses/>.
+# along with this file. If not, see <https://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License,
# this file may be distributed as part of a program that
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
test-arpa_inet$(EXEEXT) test-binary-io.sh test-bind$(EXEEXT) \
test-bitrotate$(EXEEXT) test-btowc1.sh test-btowc2.sh \
test-c-ctype$(EXEEXT) test-c-stack.sh test-c-stack2.sh \
- test-c-strcase.sh test-close$(EXEEXT) test-connect$(EXEEXT) \
- test-ctype$(EXEEXT) test-dirname$(EXEEXT) test-dup2$(EXEEXT) \
- test-environ$(EXEEXT) test-errno$(EXEEXT) test-exclude1.sh \
- test-exclude2.sh test-exclude3.sh test-exclude4.sh \
- test-exclude5.sh test-exclude6.sh test-exclude7.sh \
- test-exclude8.sh test-fcntl-h$(EXEEXT) test-fcntl$(EXEEXT) \
- test-fdopen$(EXEEXT) test-fgetc$(EXEEXT) \
- test-filenamecat$(EXEEXT) test-float$(EXEEXT) \
+ test-c-strcase.sh test-cloexec$(EXEEXT) test-close$(EXEEXT) \
+ test-connect$(EXEEXT) test-ctype$(EXEEXT) \
+ test-dirname$(EXEEXT) test-dup2$(EXEEXT) test-environ$(EXEEXT) \
+ test-errno$(EXEEXT) test-exclude1.sh test-exclude2.sh \
+ test-exclude3.sh test-exclude4.sh test-exclude5.sh \
+ test-exclude6.sh test-exclude7.sh test-exclude8.sh \
+ test-fcntl-h$(EXEEXT) test-fcntl$(EXEEXT) test-fdopen$(EXEEXT) \
+ test-fgetc$(EXEEXT) test-filenamecat$(EXEEXT) \
+ test-float$(EXEEXT) test-fnmatch-h$(EXEEXT) \
test-fnmatch$(EXEEXT) test-fputc$(EXEEXT) test-fread$(EXEEXT) \
test-freopen-safer$(EXEEXT) test-freopen$(EXEEXT) \
test-fstat$(EXEEXT) test-ftruncate.sh test-fwrite$(EXEEXT) \
test-mbrtowc-w32-5.sh test-mbscasecmp.sh test-mbsinit.sh \
test-mbsrtowcs1.sh test-mbsrtowcs2.sh test-mbsrtowcs3.sh \
test-mbsrtowcs4.sh test-mbsstr1$(EXEEXT) test-mbsstr2.sh \
- test-mbsstr3.sh test-memchr$(EXEEXT) test-nanosleep$(EXEEXT) \
- test-netinet_in$(EXEEXT) test-nl_langinfo.sh \
- test-open$(EXEEXT) test-pathmax$(EXEEXT) test-perror.sh \
- test-perror2$(EXEEXT) test-pipe$(EXEEXT) \
- test-quotearg-simple$(EXEEXT) test-raise$(EXEEXT) \
- test-rawmemchr$(EXEEXT) test-readlink$(EXEEXT) \
- test-regex$(EXEEXT) test-select$(EXEEXT) test-select-in.sh \
- test-select-out.sh test-setenv$(EXEEXT) test-setlocale1.sh \
- test-setlocale2.sh test-setsockopt$(EXEEXT) \
- test-sh-quote$(EXEEXT) test-sigaction$(EXEEXT) \
- test-signal-h$(EXEEXT) test-sigprocmask$(EXEEXT) \
- test-sleep$(EXEEXT) test-snprintf$(EXEEXT) \
- test-sockets$(EXEEXT) test-stat$(EXEEXT) \
- test-stat-time$(EXEEXT) test-stdalign$(EXEEXT) \
- test-stdbool$(EXEEXT) test-stddef$(EXEEXT) \
- test-stdint$(EXEEXT) test-stdio$(EXEEXT) test-stdlib$(EXEEXT) \
- test-strerror$(EXEEXT) test-strerror_r$(EXEEXT) \
- test-strftime$(EXEEXT) test-striconv$(EXEEXT) \
+ test-mbsstr3.sh test-memchr$(EXEEXT) test-mkdir$(EXEEXT) \
+ test-nanosleep$(EXEEXT) test-netinet_in$(EXEEXT) \
+ test-nl_langinfo.sh test-nstrftime$(EXEEXT) test-open$(EXEEXT) \
+ test-pathmax$(EXEEXT) test-perror.sh test-perror2$(EXEEXT) \
+ test-pipe$(EXEEXT) test-quotearg-simple$(EXEEXT) \
+ test-raise$(EXEEXT) test-rawmemchr$(EXEEXT) \
+ test-readlink$(EXEEXT) test-regex$(EXEEXT) \
+ test-select$(EXEEXT) test-select-in.sh test-select-out.sh \
+ test-setenv$(EXEEXT) test-setlocale1.sh test-setlocale2.sh \
+ test-setsockopt$(EXEEXT) test-sh-quote$(EXEEXT) \
+ test-sigaction$(EXEEXT) test-signal-h$(EXEEXT) \
+ test-sigprocmask$(EXEEXT) test-sleep$(EXEEXT) \
+ test-snprintf$(EXEEXT) test-sockets$(EXEEXT) \
+ test-stat$(EXEEXT) test-stat-time$(EXEEXT) \
+ test-stdalign$(EXEEXT) test-stdbool$(EXEEXT) \
+ test-stddef$(EXEEXT) test-stdint$(EXEEXT) test-stdio$(EXEEXT) \
+ test-stdlib$(EXEEXT) test-strerror$(EXEEXT) \
+ test-strerror_r$(EXEEXT) test-striconv$(EXEEXT) \
test-string$(EXEEXT) test-strings$(EXEEXT) \
test-strnlen$(EXEEXT) test-strtoull$(EXEEXT) \
test-strtoumax$(EXEEXT) test-symlink$(EXEEXT) \
test-xalloc-die.sh test-xstrtol.sh test-xstrtoumax.sh \
test-xvasprintf$(EXEEXT)
XFAIL_TESTS =
-noinst_PROGRAMS =
+noinst_PROGRAMS = test-localcharset$(EXEEXT)
check_PROGRAMS = test-accept$(EXEEXT) test-alloca-opt$(EXEEXT) \
test-areadlink$(EXEEXT) test-argmatch$(EXEEXT) \
test-arpa_inet$(EXEEXT) test-binary-io$(EXEEXT) \
test-bind$(EXEEXT) test-bitrotate$(EXEEXT) test-btowc$(EXEEXT) \
test-c-ctype$(EXEEXT) test-c-stack$(EXEEXT) \
test-c-strcasecmp$(EXEEXT) test-c-strncasecmp$(EXEEXT) \
- test-close$(EXEEXT) test-connect$(EXEEXT) test-ctype$(EXEEXT) \
+ test-cloexec$(EXEEXT) test-close$(EXEEXT) \
+ test-connect$(EXEEXT) test-ctype$(EXEEXT) \
test-dirname$(EXEEXT) test-dup2$(EXEEXT) test-environ$(EXEEXT) \
test-errno$(EXEEXT) test-exclude$(EXEEXT) \
test-fcntl-h$(EXEEXT) test-fcntl$(EXEEXT) test-fdopen$(EXEEXT) \
test-fgetc$(EXEEXT) test-filenamecat$(EXEEXT) \
- test-float$(EXEEXT) test-fnmatch$(EXEEXT) test-fputc$(EXEEXT) \
- test-fread$(EXEEXT) test-freopen-safer$(EXEEXT) \
- test-freopen$(EXEEXT) test-fstat$(EXEEXT) \
- test-ftruncate$(EXEEXT) test-fwrite$(EXEEXT) \
- test-getcwd-lgpl$(EXEEXT) test-getdtablesize$(EXEEXT) \
- test-getopt-gnu$(EXEEXT) test-getopt-posix$(EXEEXT) \
- test-getprogname$(EXEEXT) test-gettimeofday$(EXEEXT) \
- test-hash$(EXEEXT) test-iconv-h$(EXEEXT) test-iconv$(EXEEXT) \
+ test-float$(EXEEXT) test-fnmatch-h$(EXEEXT) \
+ test-fnmatch$(EXEEXT) test-fputc$(EXEEXT) test-fread$(EXEEXT) \
+ test-freopen-safer$(EXEEXT) test-freopen$(EXEEXT) \
+ test-fstat$(EXEEXT) test-ftruncate$(EXEEXT) \
+ test-fwrite$(EXEEXT) test-getcwd-lgpl$(EXEEXT) \
+ test-getdtablesize$(EXEEXT) test-getopt-gnu$(EXEEXT) \
+ test-getopt-posix$(EXEEXT) test-getprogname$(EXEEXT) \
+ test-gettimeofday$(EXEEXT) test-hash$(EXEEXT) \
+ test-iconv-h$(EXEEXT) test-iconv$(EXEEXT) \
test-ignore-value$(EXEEXT) test-inet_pton$(EXEEXT) \
test-intprops$(EXEEXT) test-inttostr$(EXEEXT) \
test-inttypes$(EXEEXT) test-ioctl$(EXEEXT) \
test-mbrtowc-w32$(EXEEXT) test-mbscasecmp$(EXEEXT) \
test-mbsinit$(EXEEXT) test-mbsrtowcs$(EXEEXT) \
test-mbsstr1$(EXEEXT) test-mbsstr2$(EXEEXT) \
- test-mbsstr3$(EXEEXT) test-memchr$(EXEEXT) \
+ test-mbsstr3$(EXEEXT) test-memchr$(EXEEXT) test-mkdir$(EXEEXT) \
test-nanosleep$(EXEEXT) test-netinet_in$(EXEEXT) \
- test-nl_langinfo$(EXEEXT) test-open$(EXEEXT) \
- test-pathmax$(EXEEXT) test-perror$(EXEEXT) \
+ test-nl_langinfo$(EXEEXT) test-nstrftime$(EXEEXT) \
+ test-open$(EXEEXT) test-pathmax$(EXEEXT) test-perror$(EXEEXT) \
test-perror2$(EXEEXT) test-pipe$(EXEEXT) \
test-quotearg-simple$(EXEEXT) test-raise$(EXEEXT) \
test-rawmemchr$(EXEEXT) test-readlink$(EXEEXT) \
test-stdbool$(EXEEXT) test-stddef$(EXEEXT) \
test-stdint$(EXEEXT) test-stdio$(EXEEXT) test-stdlib$(EXEEXT) \
test-strerror$(EXEEXT) test-strerror_r$(EXEEXT) \
- test-strftime$(EXEEXT) test-striconv$(EXEEXT) \
- test-string$(EXEEXT) test-strings$(EXEEXT) \
- test-strnlen$(EXEEXT) test-strtoull$(EXEEXT) \
- test-strtoumax$(EXEEXT) test-symlink$(EXEEXT) \
- test-sys_ioctl$(EXEEXT) test-sys_select$(EXEEXT) \
- test-sys_socket$(EXEEXT) test-sys_stat$(EXEEXT) \
- test-sys_time$(EXEEXT) test-sys_types$(EXEEXT) \
- test-sys_uio$(EXEEXT) test-sys_wait$(EXEEXT) \
- test-time$(EXEEXT) test-timespec$(EXEEXT) test-unistd$(EXEEXT) \
+ test-striconv$(EXEEXT) test-string$(EXEEXT) \
+ test-strings$(EXEEXT) test-strnlen$(EXEEXT) \
+ test-strtoull$(EXEEXT) test-strtoumax$(EXEEXT) \
+ test-symlink$(EXEEXT) test-sys_ioctl$(EXEEXT) \
+ test-sys_select$(EXEEXT) test-sys_socket$(EXEEXT) \
+ test-sys_stat$(EXEEXT) test-sys_time$(EXEEXT) \
+ test-sys_types$(EXEEXT) test-sys_uio$(EXEEXT) \
+ test-sys_wait$(EXEEXT) test-time$(EXEEXT) \
+ test-timespec$(EXEEXT) test-unistd$(EXEEXT) \
test-u8-mbtoucr$(EXEEXT) test-u8-uctomb$(EXEEXT) \
test-uc_width$(EXEEXT) test-uc_width2$(EXEEXT) \
test-unsetenv$(EXEEXT) test-vasnprintf$(EXEEXT) \
subdir = gnulib-tests
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
+ $(top_srcdir)/m4/__inline.m4 \
$(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
$(top_srcdir)/m4/arpa_inet_h.m4 $(top_srcdir)/m4/btowc.m4 \
$(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-stack.m4 \
$(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/close.m4 \
$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
- $(top_srcdir)/m4/configmake.m4 $(top_srcdir)/m4/ctype.m4 \
- $(top_srcdir)/m4/dirname.m4 \
+ $(top_srcdir)/m4/ctype.m4 $(top_srcdir)/m4/dirname.m4 \
$(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \
$(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \
$(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \
$(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \
$(top_srcdir)/m4/fdopen.m4 $(top_srcdir)/m4/filenamecat.m4 \
$(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
- $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpieee.m4 \
- $(top_srcdir)/m4/freopen.m4 $(top_srcdir)/m4/fstat.m4 \
- $(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/getcwd.m4 \
- $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getopt.m4 \
- $(top_srcdir)/m4/getpagesize.m4 \
+ $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fnmatch_h.m4 \
+ $(top_srcdir)/m4/fpieee.m4 $(top_srcdir)/m4/freopen.m4 \
+ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/ftruncate.m4 \
+ $(top_srcdir)/m4/getcwd.m4 $(top_srcdir)/m4/getdtablesize.m4 \
+ $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/getpagesize.m4 \
$(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnu-make.m4 \
$(top_srcdir)/m4/gnulib-common.m4 \
$(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \
+ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \
$(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inet_pton.m4 \
$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/intlmacosx.m4 \
$(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbslen.m4 \
$(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \
$(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
- $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mkstemp.m4 \
- $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \
- $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \
+ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mkdir.m4 \
+ $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \
+ $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \
+ $(top_srcdir)/m4/msvc-inval.m4 \
$(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
$(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/netinet_in_h.m4 \
$(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \
+ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/nstrftime.m4 \
+ $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open-cloexec.m4 \
$(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/pathmax.m4 \
$(top_srcdir)/m4/perror.m4 $(top_srcdir)/m4/pipe.m4 \
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
$(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
$(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
$(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/regex.m4 \
- $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/select.m4 \
- $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale.m4 \
- $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \
+ $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/setenv.m4 \
+ $(top_srcdir)/m4/setlocale.m4 $(top_srcdir)/m4/sigaction.m4 \
+ $(top_srcdir)/m4/signal_h.m4 \
$(top_srcdir)/m4/signalblocking.m4 \
$(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
$(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
$(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
$(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
- $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/strftime.m4 \
- $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strings_h.m4 \
- $(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
- $(top_srcdir)/m4/strptime.m4 $(top_srcdir)/m4/strtoull.m4 \
- $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
- $(top_srcdir)/m4/sys_ioctl_h.m4 \
+ $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \
+ $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strndup.m4 \
+ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strptime.m4 \
+ $(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \
+ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_ioctl_h.m4 \
$(top_srcdir)/m4/sys_select_h.m4 \
$(top_srcdir)/m4/sys_socket_h.m4 \
$(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
CONFIG_HEADER = $(top_builddir)/lib/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
+PROGRAMS = $(noinst_PROGRAMS)
LIBRARIES = $(noinst_LIBRARIES)
AM_V_AR = $(am__v_AR_@AM_V@)
am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
sockets.$(OBJEXT) sys_socket.$(OBJEXT) timespec-add.$(OBJEXT) \
timespec-sub.$(OBJEXT)
libtests_a_OBJECTS = $(am_libtests_a_OBJECTS)
-PROGRAMS = $(noinst_PROGRAMS)
test_accept_SOURCES = test-accept.c
test_accept_OBJECTS = test-accept.$(OBJEXT)
am__DEPENDENCIES_2 = libtests.a ../lib/libdiffutils.a libtests.a \
test_c_strncasecmp_LDADD = $(LDADD)
test_c_strncasecmp_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
libtests.a $(am__DEPENDENCIES_1)
+test_cloexec_SOURCES = test-cloexec.c
+test_cloexec_OBJECTS = test-cloexec.$(OBJEXT)
+test_cloexec_LDADD = $(LDADD)
+test_cloexec_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+ libtests.a $(am__DEPENDENCIES_1)
test_close_SOURCES = test-close.c
test_close_OBJECTS = test-close.$(OBJEXT)
test_close_LDADD = $(LDADD)
test_fnmatch_LDADD = $(LDADD)
test_fnmatch_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
libtests.a $(am__DEPENDENCIES_1)
+test_fnmatch_h_SOURCES = test-fnmatch-h.c
+test_fnmatch_h_OBJECTS = test-fnmatch-h.$(OBJEXT)
+test_fnmatch_h_LDADD = $(LDADD)
+test_fnmatch_h_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+ libtests.a $(am__DEPENDENCIES_1)
test_fputc_SOURCES = test-fputc.c
test_fputc_OBJECTS = test-fputc.$(OBJEXT)
test_fputc_LDADD = $(LDADD)
test_listen_SOURCES = test-listen.c
test_listen_OBJECTS = test-listen.$(OBJEXT)
test_listen_DEPENDENCIES = $(am__DEPENDENCIES_2)
+test_localcharset_SOURCES = test-localcharset.c
+test_localcharset_OBJECTS = test-localcharset.$(OBJEXT)
+test_localcharset_LDADD = $(LDADD)
+test_localcharset_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+ libtests.a $(am__DEPENDENCIES_1)
test_locale_SOURCES = test-locale.c
test_locale_OBJECTS = test-locale.$(OBJEXT)
test_locale_LDADD = $(LDADD)
test_memchr_LDADD = $(LDADD)
test_memchr_DEPENDENCIES = libtests.a ../lib/libdiffutils.a libtests.a \
$(am__DEPENDENCIES_1)
+test_mkdir_SOURCES = test-mkdir.c
+test_mkdir_OBJECTS = test-mkdir.$(OBJEXT)
+test_mkdir_LDADD = $(LDADD)
+test_mkdir_DEPENDENCIES = libtests.a ../lib/libdiffutils.a libtests.a \
+ $(am__DEPENDENCIES_1)
test_nanosleep_SOURCES = test-nanosleep.c
test_nanosleep_OBJECTS = test-nanosleep.$(OBJEXT)
test_nanosleep_DEPENDENCIES = $(am__DEPENDENCIES_2) \
test_nl_langinfo_LDADD = $(LDADD)
test_nl_langinfo_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
libtests.a $(am__DEPENDENCIES_1)
+test_nstrftime_SOURCES = test-nstrftime.c
+test_nstrftime_OBJECTS = test-nstrftime.$(OBJEXT)
+test_nstrftime_LDADD = $(LDADD)
+test_nstrftime_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+ libtests.a $(am__DEPENDENCIES_1)
test_open_SOURCES = test-open.c
test_open_OBJECTS = test-open.$(OBJEXT)
test_open_LDADD = $(LDADD)
test_strerror_r_LDADD = $(LDADD)
test_strerror_r_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
libtests.a $(am__DEPENDENCIES_1)
-test_strftime_SOURCES = test-strftime.c
-test_strftime_OBJECTS = test-strftime.$(OBJEXT)
-test_strftime_LDADD = $(LDADD)
-test_strftime_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
- libtests.a $(am__DEPENDENCIES_1)
test_striconv_SOURCES = test-striconv.c
test_striconv_OBJECTS = test-striconv.$(OBJEXT)
test_striconv_DEPENDENCIES = $(am__DEPENDENCIES_2)
test_timespec_LDADD = $(LDADD)
test_timespec_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
libtests.a $(am__DEPENDENCIES_1)
-am__dirstamp = .dirstamp
+am__dirstamp = $(am__leading_dot)dirstamp
am_test_u8_mbtoucr_OBJECTS = unistr/test-u8-mbtoucr.$(OBJEXT)
test_u8_mbtoucr_OBJECTS = $(am_test_u8_mbtoucr_OBJECTS)
test_u8_mbtoucr_DEPENDENCIES = $(am__DEPENDENCIES_2)
libtests.a $(am__DEPENDENCIES_1)
test_wcwidth_SOURCES = test-wcwidth.c
test_wcwidth_OBJECTS = test-wcwidth.$(OBJEXT)
-test_wcwidth_LDADD = $(LDADD)
-test_wcwidth_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
- libtests.a $(am__DEPENDENCIES_1)
+test_wcwidth_DEPENDENCIES = $(am__DEPENDENCIES_2)
test_xalloc_die_SOURCES = test-xalloc-die.c
test_xalloc_die_OBJECTS = test-xalloc-die.$(OBJEXT)
test_xalloc_die_DEPENDENCIES = $(am__DEPENDENCIES_2)
./$(DEPDIR)/test-bind.Po ./$(DEPDIR)/test-bitrotate.Po \
./$(DEPDIR)/test-btowc.Po ./$(DEPDIR)/test-c-ctype.Po \
./$(DEPDIR)/test-c-stack.Po ./$(DEPDIR)/test-c-strcasecmp.Po \
- ./$(DEPDIR)/test-c-strncasecmp.Po ./$(DEPDIR)/test-close.Po \
- ./$(DEPDIR)/test-connect.Po ./$(DEPDIR)/test-ctype.Po \
- ./$(DEPDIR)/test-dirname.Po ./$(DEPDIR)/test-dup2.Po \
- ./$(DEPDIR)/test-environ.Po ./$(DEPDIR)/test-errno.Po \
- ./$(DEPDIR)/test-exclude.Po ./$(DEPDIR)/test-fcntl-h.Po \
- ./$(DEPDIR)/test-fcntl.Po ./$(DEPDIR)/test-fdopen.Po \
- ./$(DEPDIR)/test-fgetc.Po ./$(DEPDIR)/test-filenamecat.Po \
- ./$(DEPDIR)/test-float.Po ./$(DEPDIR)/test-fnmatch.Po \
+ ./$(DEPDIR)/test-c-strncasecmp.Po ./$(DEPDIR)/test-cloexec.Po \
+ ./$(DEPDIR)/test-close.Po ./$(DEPDIR)/test-connect.Po \
+ ./$(DEPDIR)/test-ctype.Po ./$(DEPDIR)/test-dirname.Po \
+ ./$(DEPDIR)/test-dup2.Po ./$(DEPDIR)/test-environ.Po \
+ ./$(DEPDIR)/test-errno.Po ./$(DEPDIR)/test-exclude.Po \
+ ./$(DEPDIR)/test-fcntl-h.Po ./$(DEPDIR)/test-fcntl.Po \
+ ./$(DEPDIR)/test-fdopen.Po ./$(DEPDIR)/test-fgetc.Po \
+ ./$(DEPDIR)/test-filenamecat.Po ./$(DEPDIR)/test-float.Po \
+ ./$(DEPDIR)/test-fnmatch-h.Po ./$(DEPDIR)/test-fnmatch.Po \
./$(DEPDIR)/test-fputc.Po ./$(DEPDIR)/test-fread.Po \
./$(DEPDIR)/test-freopen-safer.Po ./$(DEPDIR)/test-freopen.Po \
./$(DEPDIR)/test-fstat.Po ./$(DEPDIR)/test-ftruncate.Po \
./$(DEPDIR)/test-inttypes.Po ./$(DEPDIR)/test-ioctl.Po \
./$(DEPDIR)/test-isblank.Po ./$(DEPDIR)/test-iswblank.Po \
./$(DEPDIR)/test-langinfo.Po ./$(DEPDIR)/test-limits-h.Po \
- ./$(DEPDIR)/test-listen.Po ./$(DEPDIR)/test-locale.Po \
- ./$(DEPDIR)/test-localeconv.Po ./$(DEPDIR)/test-lstat.Po \
- ./$(DEPDIR)/test-malloca.Po ./$(DEPDIR)/test-mbrtowc-w32.Po \
- ./$(DEPDIR)/test-mbrtowc.Po ./$(DEPDIR)/test-mbscasecmp.Po \
- ./$(DEPDIR)/test-mbsinit.Po ./$(DEPDIR)/test-mbsrtowcs.Po \
- ./$(DEPDIR)/test-mbsstr1.Po ./$(DEPDIR)/test-mbsstr2.Po \
- ./$(DEPDIR)/test-mbsstr3.Po ./$(DEPDIR)/test-memchr.Po \
+ ./$(DEPDIR)/test-listen.Po ./$(DEPDIR)/test-localcharset.Po \
+ ./$(DEPDIR)/test-locale.Po ./$(DEPDIR)/test-localeconv.Po \
+ ./$(DEPDIR)/test-lstat.Po ./$(DEPDIR)/test-malloca.Po \
+ ./$(DEPDIR)/test-mbrtowc-w32.Po ./$(DEPDIR)/test-mbrtowc.Po \
+ ./$(DEPDIR)/test-mbscasecmp.Po ./$(DEPDIR)/test-mbsinit.Po \
+ ./$(DEPDIR)/test-mbsrtowcs.Po ./$(DEPDIR)/test-mbsstr1.Po \
+ ./$(DEPDIR)/test-mbsstr2.Po ./$(DEPDIR)/test-mbsstr3.Po \
+ ./$(DEPDIR)/test-memchr.Po ./$(DEPDIR)/test-mkdir.Po \
./$(DEPDIR)/test-nanosleep.Po ./$(DEPDIR)/test-netinet_in.Po \
- ./$(DEPDIR)/test-nl_langinfo.Po ./$(DEPDIR)/test-open.Po \
- ./$(DEPDIR)/test-pathmax.Po ./$(DEPDIR)/test-perror.Po \
- ./$(DEPDIR)/test-perror2.Po ./$(DEPDIR)/test-pipe.Po \
- ./$(DEPDIR)/test-quotearg-simple.Po ./$(DEPDIR)/test-raise.Po \
- ./$(DEPDIR)/test-rawmemchr.Po ./$(DEPDIR)/test-readlink.Po \
- ./$(DEPDIR)/test-regex.Po ./$(DEPDIR)/test-select-fd.Po \
- ./$(DEPDIR)/test-select-stdin.Po ./$(DEPDIR)/test-select.Po \
- ./$(DEPDIR)/test-setenv.Po ./$(DEPDIR)/test-setlocale1.Po \
- ./$(DEPDIR)/test-setlocale2.Po ./$(DEPDIR)/test-setsockopt.Po \
- ./$(DEPDIR)/test-sh-quote.Po ./$(DEPDIR)/test-sigaction.Po \
- ./$(DEPDIR)/test-signal-h.Po ./$(DEPDIR)/test-sigprocmask.Po \
- ./$(DEPDIR)/test-sleep.Po ./$(DEPDIR)/test-snprintf.Po \
- ./$(DEPDIR)/test-sockets.Po ./$(DEPDIR)/test-stat-time.Po \
- ./$(DEPDIR)/test-stat.Po ./$(DEPDIR)/test-stdalign.Po \
- ./$(DEPDIR)/test-stdbool.Po ./$(DEPDIR)/test-stddef.Po \
- ./$(DEPDIR)/test-stdint.Po ./$(DEPDIR)/test-stdio.Po \
- ./$(DEPDIR)/test-stdlib.Po ./$(DEPDIR)/test-strerror.Po \
- ./$(DEPDIR)/test-strerror_r.Po ./$(DEPDIR)/test-strftime.Po \
+ ./$(DEPDIR)/test-nl_langinfo.Po ./$(DEPDIR)/test-nstrftime.Po \
+ ./$(DEPDIR)/test-open.Po ./$(DEPDIR)/test-pathmax.Po \
+ ./$(DEPDIR)/test-perror.Po ./$(DEPDIR)/test-perror2.Po \
+ ./$(DEPDIR)/test-pipe.Po ./$(DEPDIR)/test-quotearg-simple.Po \
+ ./$(DEPDIR)/test-raise.Po ./$(DEPDIR)/test-rawmemchr.Po \
+ ./$(DEPDIR)/test-readlink.Po ./$(DEPDIR)/test-regex.Po \
+ ./$(DEPDIR)/test-select-fd.Po ./$(DEPDIR)/test-select-stdin.Po \
+ ./$(DEPDIR)/test-select.Po ./$(DEPDIR)/test-setenv.Po \
+ ./$(DEPDIR)/test-setlocale1.Po ./$(DEPDIR)/test-setlocale2.Po \
+ ./$(DEPDIR)/test-setsockopt.Po ./$(DEPDIR)/test-sh-quote.Po \
+ ./$(DEPDIR)/test-sigaction.Po ./$(DEPDIR)/test-signal-h.Po \
+ ./$(DEPDIR)/test-sigprocmask.Po ./$(DEPDIR)/test-sleep.Po \
+ ./$(DEPDIR)/test-snprintf.Po ./$(DEPDIR)/test-sockets.Po \
+ ./$(DEPDIR)/test-stat-time.Po ./$(DEPDIR)/test-stat.Po \
+ ./$(DEPDIR)/test-stdalign.Po ./$(DEPDIR)/test-stdbool.Po \
+ ./$(DEPDIR)/test-stddef.Po ./$(DEPDIR)/test-stdint.Po \
+ ./$(DEPDIR)/test-stdio.Po ./$(DEPDIR)/test-stdlib.Po \
+ ./$(DEPDIR)/test-strerror.Po ./$(DEPDIR)/test-strerror_r.Po \
./$(DEPDIR)/test-striconv.Po ./$(DEPDIR)/test-string.Po \
./$(DEPDIR)/test-strings.Po ./$(DEPDIR)/test-strnlen.Po \
./$(DEPDIR)/test-strtoull.Po ./$(DEPDIR)/test-strtoumax.Po \
uniwidth/$(DEPDIR)/test-uc_width.Po \
uniwidth/$(DEPDIR)/test-uc_width2.Po
am__mv = mv -f
-am__set_depbase = depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.[^.]*$$||'`
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_@AM_V@)
test-accept.c test-alloca-opt.c test-areadlink.c \
test-argmatch.c test-arpa_inet.c test-binary-io.c test-bind.c \
test-bitrotate.c test-btowc.c test-c-ctype.c test-c-stack.c \
- test-c-strcasecmp.c test-c-strncasecmp.c test-close.c \
- test-connect.c test-ctype.c test-dirname.c test-dup2.c \
- test-environ.c test-errno.c test-exclude.c test-fcntl.c \
- test-fcntl-h.c test-fdopen.c test-fgetc.c test-filenamecat.c \
- test-float.c test-fnmatch.c test-fputc.c test-fread.c \
- test-freopen.c test-freopen-safer.c test-fstat.c \
- test-ftruncate.c test-fwrite.c test-getcwd-lgpl.c \
- test-getdtablesize.c test-getopt-gnu.c test-getopt-posix.c \
- test-getprogname.c test-gettimeofday.c test-hash.c \
- test-iconv.c test-iconv-h.c test-ignore-value.c \
- test-inet_pton.c test-intprops.c test-inttostr.c \
- test-inttypes.c test-ioctl.c test-isblank.c test-iswblank.c \
- test-langinfo.c test-limits-h.c test-listen.c test-locale.c \
- test-localeconv.c test-lstat.c test-malloca.c test-mbrtowc.c \
- test-mbrtowc-w32.c test-mbscasecmp.c test-mbsinit.c \
- test-mbsrtowcs.c test-mbsstr1.c test-mbsstr2.c test-mbsstr3.c \
- test-memchr.c test-nanosleep.c test-netinet_in.c \
- test-nl_langinfo.c test-open.c test-pathmax.c test-perror.c \
- test-perror2.c test-pipe.c test-quotearg-simple.c test-raise.c \
- test-rawmemchr.c test-readlink.c test-regex.c test-select.c \
- test-select-fd.c test-select-stdin.c test-setenv.c \
- test-setlocale1.c test-setlocale2.c test-setsockopt.c \
- test-sh-quote.c test-sigaction.c test-signal-h.c \
- test-sigprocmask.c test-sleep.c test-snprintf.c test-sockets.c \
- test-stat.c test-stat-time.c test-stdalign.c test-stdbool.c \
- test-stddef.c test-stdint.c test-stdio.c test-stdlib.c \
- test-strerror.c test-strerror_r.c test-strftime.c \
- test-striconv.c test-string.c test-strings.c test-strnlen.c \
- test-strtoull.c test-strtoumax.c test-symlink.c \
+ test-c-strcasecmp.c test-c-strncasecmp.c test-cloexec.c \
+ test-close.c test-connect.c test-ctype.c test-dirname.c \
+ test-dup2.c test-environ.c test-errno.c test-exclude.c \
+ test-fcntl.c test-fcntl-h.c test-fdopen.c test-fgetc.c \
+ test-filenamecat.c test-float.c test-fnmatch.c \
+ test-fnmatch-h.c test-fputc.c test-fread.c test-freopen.c \
+ test-freopen-safer.c test-fstat.c test-ftruncate.c \
+ test-fwrite.c test-getcwd-lgpl.c test-getdtablesize.c \
+ test-getopt-gnu.c test-getopt-posix.c test-getprogname.c \
+ test-gettimeofday.c test-hash.c test-iconv.c test-iconv-h.c \
+ test-ignore-value.c test-inet_pton.c test-intprops.c \
+ test-inttostr.c test-inttypes.c test-ioctl.c test-isblank.c \
+ test-iswblank.c test-langinfo.c test-limits-h.c test-listen.c \
+ test-localcharset.c test-locale.c test-localeconv.c \
+ test-lstat.c test-malloca.c test-mbrtowc.c test-mbrtowc-w32.c \
+ test-mbscasecmp.c test-mbsinit.c test-mbsrtowcs.c \
+ test-mbsstr1.c test-mbsstr2.c test-mbsstr3.c test-memchr.c \
+ test-mkdir.c test-nanosleep.c test-netinet_in.c \
+ test-nl_langinfo.c test-nstrftime.c test-open.c test-pathmax.c \
+ test-perror.c test-perror2.c test-pipe.c \
+ test-quotearg-simple.c test-raise.c test-rawmemchr.c \
+ test-readlink.c test-regex.c test-select.c test-select-fd.c \
+ test-select-stdin.c test-setenv.c test-setlocale1.c \
+ test-setlocale2.c test-setsockopt.c test-sh-quote.c \
+ test-sigaction.c test-signal-h.c test-sigprocmask.c \
+ test-sleep.c test-snprintf.c test-sockets.c test-stat.c \
+ test-stat-time.c test-stdalign.c test-stdbool.c test-stddef.c \
+ test-stdint.c test-stdio.c test-stdlib.c test-strerror.c \
+ test-strerror_r.c test-striconv.c test-string.c test-strings.c \
+ test-strnlen.c test-strtoull.c test-strtoumax.c test-symlink.c \
test-sys_ioctl.c test-sys_select.c test-sys_socket.c \
test-sys_stat.c test-sys_time.c test-sys_types.c \
test-sys_uio.c test-sys_wait.c test-time.c test-timespec.c \
test-accept.c test-alloca-opt.c test-areadlink.c \
test-argmatch.c test-arpa_inet.c test-binary-io.c test-bind.c \
test-bitrotate.c test-btowc.c test-c-ctype.c test-c-stack.c \
- test-c-strcasecmp.c test-c-strncasecmp.c test-close.c \
- test-connect.c test-ctype.c test-dirname.c test-dup2.c \
- test-environ.c test-errno.c test-exclude.c test-fcntl.c \
- test-fcntl-h.c test-fdopen.c test-fgetc.c test-filenamecat.c \
- test-float.c test-fnmatch.c test-fputc.c test-fread.c \
- test-freopen.c test-freopen-safer.c test-fstat.c \
- test-ftruncate.c test-fwrite.c test-getcwd-lgpl.c \
- test-getdtablesize.c test-getopt-gnu.c test-getopt-posix.c \
- test-getprogname.c test-gettimeofday.c test-hash.c \
- test-iconv.c test-iconv-h.c test-ignore-value.c \
- test-inet_pton.c test-intprops.c test-inttostr.c \
- test-inttypes.c test-ioctl.c test-isblank.c test-iswblank.c \
- test-langinfo.c test-limits-h.c test-listen.c test-locale.c \
- test-localeconv.c test-lstat.c test-malloca.c test-mbrtowc.c \
- test-mbrtowc-w32.c test-mbscasecmp.c test-mbsinit.c \
- test-mbsrtowcs.c test-mbsstr1.c test-mbsstr2.c test-mbsstr3.c \
- test-memchr.c test-nanosleep.c test-netinet_in.c \
- test-nl_langinfo.c test-open.c test-pathmax.c test-perror.c \
- test-perror2.c test-pipe.c test-quotearg-simple.c test-raise.c \
- test-rawmemchr.c test-readlink.c test-regex.c test-select.c \
- test-select-fd.c test-select-stdin.c test-setenv.c \
- test-setlocale1.c test-setlocale2.c test-setsockopt.c \
- test-sh-quote.c test-sigaction.c test-signal-h.c \
- test-sigprocmask.c test-sleep.c test-snprintf.c test-sockets.c \
- test-stat.c test-stat-time.c test-stdalign.c test-stdbool.c \
- test-stddef.c test-stdint.c test-stdio.c test-stdlib.c \
- test-strerror.c test-strerror_r.c test-strftime.c \
- test-striconv.c test-string.c test-strings.c test-strnlen.c \
- test-strtoull.c test-strtoumax.c test-symlink.c \
+ test-c-strcasecmp.c test-c-strncasecmp.c test-cloexec.c \
+ test-close.c test-connect.c test-ctype.c test-dirname.c \
+ test-dup2.c test-environ.c test-errno.c test-exclude.c \
+ test-fcntl.c test-fcntl-h.c test-fdopen.c test-fgetc.c \
+ test-filenamecat.c test-float.c test-fnmatch.c \
+ test-fnmatch-h.c test-fputc.c test-fread.c test-freopen.c \
+ test-freopen-safer.c test-fstat.c test-ftruncate.c \
+ test-fwrite.c test-getcwd-lgpl.c test-getdtablesize.c \
+ test-getopt-gnu.c test-getopt-posix.c test-getprogname.c \
+ test-gettimeofday.c test-hash.c test-iconv.c test-iconv-h.c \
+ test-ignore-value.c test-inet_pton.c test-intprops.c \
+ test-inttostr.c test-inttypes.c test-ioctl.c test-isblank.c \
+ test-iswblank.c test-langinfo.c test-limits-h.c test-listen.c \
+ test-localcharset.c test-locale.c test-localeconv.c \
+ test-lstat.c test-malloca.c test-mbrtowc.c test-mbrtowc-w32.c \
+ test-mbscasecmp.c test-mbsinit.c test-mbsrtowcs.c \
+ test-mbsstr1.c test-mbsstr2.c test-mbsstr3.c test-memchr.c \
+ test-mkdir.c test-nanosleep.c test-netinet_in.c \
+ test-nl_langinfo.c test-nstrftime.c test-open.c test-pathmax.c \
+ test-perror.c test-perror2.c test-pipe.c \
+ test-quotearg-simple.c test-raise.c test-rawmemchr.c \
+ test-readlink.c test-regex.c test-select.c test-select-fd.c \
+ test-select-stdin.c test-setenv.c test-setlocale1.c \
+ test-setlocale2.c test-setsockopt.c test-sh-quote.c \
+ test-sigaction.c test-signal-h.c test-sigprocmask.c \
+ test-sleep.c test-snprintf.c test-sockets.c test-stat.c \
+ test-stat-time.c test-stdalign.c test-stdbool.c test-stddef.c \
+ test-stdint.c test-stdio.c test-stdlib.c test-strerror.c \
+ test-strerror_r.c test-striconv.c test-string.c test-strings.c \
+ test-strnlen.c test-strtoull.c test-strtoumax.c test-symlink.c \
test-sys_ioctl.c test-sys_select.c test-sys_socket.c \
test-sys_stat.c test-sys_time.c test-sys_types.c \
test-sys_uio.c test-sys_wait.c test-time.c test-timespec.c \
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- check recheck distdir
+ check recheck distdir distdir-am
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
-pkglibexecdir = @pkglibexecdir@
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
ALLOCA_H = @ALLOCA_H@
GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
GNULIB_ENVIRON = @GNULIB_ENVIRON@
GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
+GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@
GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
GNULIB_FCHDIR = @GNULIB_FCHDIR@
GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
GNULIB_FFSLL = @GNULIB_FFSLL@
GNULIB_FGETC = @GNULIB_FGETC@
GNULIB_FGETS = @GNULIB_FGETS@
+GNULIB_FNMATCH = @GNULIB_FNMATCH@
GNULIB_FOPEN = @GNULIB_FOPEN@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETPASS = @GNULIB_GETPASS@
GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@
GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@
GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@
GNULIB_LINKAT = @GNULIB_LINKAT@
GNULIB_LISTEN = @GNULIB_LISTEN@
GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
+GNULIB_LOCALENAME = @GNULIB_LOCALENAME@
GNULIB_LOCALTIME = @GNULIB_LOCALTIME@
GNULIB_LSEEK = @GNULIB_LSEEK@
GNULIB_LSTAT = @GNULIB_LSTAT@
GNULIB_READ = @GNULIB_READ@
GNULIB_READLINK = @GNULIB_READLINK@
GNULIB_READLINKAT = @GNULIB_READLINKAT@
+GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@
GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
GNULIB_REALPATH = @GNULIB_REALPATH@
GNULIB_RECV = @GNULIB_RECV@
HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@
+HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@
HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
+HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@
HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@
HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
HAVE_DUP3 = @HAVE_DUP3@
HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@
HAVE_FACCESSAT = @HAVE_FACCESSAT@
HAVE_FCHDIR = @HAVE_FCHDIR@
HAVE_FCHMODAT = @HAVE_FCHMODAT@
HAVE_FFS = @HAVE_FFS@
HAVE_FFSL = @HAVE_FFSL@
HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FNMATCH = @HAVE_FNMATCH@
+HAVE_FNMATCH_H = @HAVE_FNMATCH_H@
+HAVE_FREELOCALE = @HAVE_FREELOCALE@
HAVE_FSEEKO = @HAVE_FSEEKO@
HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
HAVE_GETLOGIN = @HAVE_GETLOGIN@
HAVE_GETOPT_H = @HAVE_GETOPT_H@
HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETPASS = @HAVE_GETPASS@
HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
HAVE_GRANTPT = @HAVE_GRANTPT@
HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
HAVE_ISBLANK = @HAVE_ISBLANK@
HAVE_ISWBLANK = @HAVE_ISWBLANK@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@
HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
+HAVE_NEWLOCALE = @HAVE_NEWLOCALE@
HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
HAVE_OPENAT = @HAVE_OPENAT@
HAVE_OS_H = @HAVE_OS_H@
HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
HAVE_READLINK = @HAVE_READLINK@
HAVE_READLINKAT = @HAVE_READLINKAT@
+HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@
HAVE_REALPATH = @HAVE_REALPATH@
HAVE_RENAMEAT = @HAVE_RENAMEAT@
HAVE_RPMATCH = @HAVE_RPMATCH@
HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
HAVE_TIMEGM = @HAVE_TIMEGM@
HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@
-HAVE_TRUNCATE = @HAVE_TRUNCATE@
HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
HAVE_TZSET = @HAVE_TZSET@
HAVE_UNISTD_H = @HAVE_UNISTD_H@
NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
+NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H@
NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@
NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
NEXT_ERRNO_H = @NEXT_ERRNO_H@
NEXT_FCNTL_H = @NEXT_FCNTL_H@
NEXT_FLOAT_H = @NEXT_FLOAT_H@
+NEXT_FNMATCH_H = @NEXT_FNMATCH_H@
NEXT_GETOPT_H = @NEXT_GETOPT_H@
NEXT_ICONV_H = @NEXT_ICONV_H@
NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
REPLACE_DUP = @REPLACE_DUP@
REPLACE_DUP2 = @REPLACE_DUP2@
REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_FACCESSAT = @REPLACE_FACCESSAT@
REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
REPLACE_FCLOSE = @REPLACE_FCLOSE@
REPLACE_FCNTL = @REPLACE_FCNTL@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FNMATCH = @REPLACE_FNMATCH@
REPLACE_FOPEN = @REPLACE_FOPEN@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_FPURGE = @REPLACE_FPURGE@
+REPLACE_FREELOCALE = @REPLACE_FREELOCALE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
REPLACE_FSEEK = @REPLACE_FSEEK@
REPLACE_FSEEKO = @REPLACE_FSEEKO@
REPLACE_GETLINE = @REPLACE_GETLINE@
REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_GETPASS = @REPLACE_GETPASS@
REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
REPLACE_GMTIME = @REPLACE_GMTIME@
REPLACE_ICONV = @REPLACE_ICONV@
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
REPLACE_MKTIME = @REPLACE_MKTIME@
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
+REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@
REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
REPLACE_NULL = @REPLACE_NULL@
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
am__include = @am__include@
+am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
-lispdir = @lispdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = 1.9.6 foreign subdir-objects
+AUTOMAKE_OPTIONS = 1.11 foreign subdir-objects
SUBDIRS = .
TESTS_ENVIRONMENT = EXEEXT='@EXEEXT@' srcdir='$(srcdir)' \
LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
test-btowc1.sh test-btowc2.sh test-btowc.c signature.h \
macros.h test-c-ctype.c macros.h test-c-stack.c \
test-c-stack.sh test-c-stack2.sh macros.h test-c-strcase.sh \
- test-c-strcasecmp.c test-c-strncasecmp.c macros.h test-close.c \
- signature.h macros.h connect.c w32sock.h test-connect.c \
- signature.h macros.h test-ctype.c test-dirname.c test-dup2.c \
- signature.h macros.h test-environ.c test-errno.c \
- test-exclude.c test-exclude1.sh test-exclude2.sh \
- test-exclude3.sh test-exclude4.sh test-exclude5.sh \
- test-exclude6.sh test-exclude7.sh test-exclude8.sh \
- test-fcntl-h.c test-fcntl.c signature.h macros.h fdopen.c \
- test-fdopen.c signature.h macros.h test-fgetc.c signature.h \
- macros.h test-filenamecat.c test-float.c macros.h \
- test-fnmatch.c signature.h macros.h fpucw.h test-fputc.c \
- signature.h macros.h test-fread.c signature.h macros.h \
- test-freopen-safer.c macros.h test-freopen.c signature.h \
- macros.h test-fstat.c signature.h macros.h ftruncate.c \
- test-ftruncate.c test-ftruncate.sh signature.h macros.h \
- test-fwrite.c signature.h macros.h getcwd-lgpl.c \
- test-getcwd-lgpl.c signature.h macros.h test-getdtablesize.c \
- signature.h macros.h macros.h signature.h test-getopt-gnu.c \
- test-getopt-main.h test-getopt.h test-getopt_long.h macros.h \
- signature.h test-getopt-posix.c test-getopt-main.h \
- test-getopt.h getpagesize.c test-getprogname.c signature.h \
+ test-c-strcasecmp.c test-c-strncasecmp.c macros.h \
+ test-cloexec.c macros.h test-close.c signature.h macros.h \
+ connect.c w32sock.h test-connect.c signature.h macros.h \
+ test-ctype.c test-dirname.c test-dup2.c signature.h macros.h \
+ test-environ.c test-errno.c test-exclude.c test-exclude1.sh \
+ test-exclude2.sh test-exclude3.sh test-exclude4.sh \
+ test-exclude5.sh test-exclude6.sh test-exclude7.sh \
+ test-exclude8.sh test-fcntl-h.c test-fcntl.c signature.h \
+ macros.h fdopen.c test-fdopen.c signature.h macros.h \
+ test-fgetc.c signature.h macros.h test-filenamecat.c \
+ test-float.c macros.h test-fnmatch-h.c test-fnmatch.c \
+ signature.h macros.h fpucw.h test-fputc.c signature.h macros.h \
+ test-fread.c signature.h macros.h test-freopen-safer.c \
+ macros.h test-freopen.c signature.h macros.h test-fstat.c \
+ signature.h macros.h ftruncate.c test-ftruncate.c \
+ test-ftruncate.sh signature.h macros.h test-fwrite.c \
+ signature.h macros.h getcwd-lgpl.c test-getcwd-lgpl.c \
+ signature.h macros.h test-getdtablesize.c signature.h macros.h \
+ macros.h signature.h test-getopt-gnu.c test-getopt-main.h \
+ test-getopt.h test-getopt_long.h macros.h signature.h \
+ test-getopt-posix.c test-getopt-main.h test-getopt.h \
+ getpagesize.c test-getprogname.c signature.h \
test-gettimeofday.c test-hash.c macros.h test-iconv-h.c \
test-iconv.c signature.h macros.h test-ignore-value.c \
inet_pton.c test-inet_pton.c signature.h macros.h \
test-inttypes.c ioctl.c w32sock.h test-ioctl.c signature.h \
macros.h test-isblank.c signature.h macros.h test-iswblank.c \
macros.h test-langinfo.c test-limits-h.c listen.c w32sock.h \
- test-listen.c signature.h macros.h test-locale.c \
- test-localeconv.c signature.h macros.h test-lstat.h \
- test-lstat.c signature.h macros.h test-malloca.c \
+ test-listen.c signature.h macros.h test-localcharset.c \
+ test-locale.c test-localeconv.c signature.h macros.h \
+ test-lstat.h test-lstat.c signature.h macros.h test-malloca.c \
test-mbrtowc1.sh test-mbrtowc2.sh test-mbrtowc3.sh \
test-mbrtowc4.sh test-mbrtowc5.sh test-mbrtowc.c \
test-mbrtowc-w32-1.sh test-mbrtowc-w32-2.sh \
test-mbsrtowcs.c signature.h macros.h test-mbsstr1.c \
test-mbsstr2.sh test-mbsstr2.c test-mbsstr3.sh test-mbsstr3.c \
macros.h test-memchr.c zerosize-ptr.h signature.h macros.h \
- nanosleep.c test-nanosleep.c signature.h macros.h \
- netinet_in.in.h test-netinet_in.c test-nl_langinfo.sh \
- test-nl_langinfo.c signature.h macros.h test-open.h \
+ test-mkdir.h test-mkdir.c signature.h macros.h nanosleep.c \
+ test-nanosleep.c signature.h macros.h netinet_in.in.h \
+ test-netinet_in.c test-nl_langinfo.sh test-nl_langinfo.c \
+ signature.h macros.h test-nstrftime.c macros.h test-open.h \
test-open.c signature.h macros.h test-pathmax.c perror.c \
macros.h signature.h test-perror.c test-perror2.c \
test-perror.sh pipe.c test-pipe.c signature.h macros.h \
macros.h test-stdbool.c test-stddef.c test-stdint.c \
test-stdio.c test-stdlib.c test-sys_wait.h test-strerror.c \
signature.h macros.h strerror_r.c test-strerror_r.c \
- signature.h macros.h test-strftime.c macros.h test-striconv.c \
- macros.h test-string.c test-strings.c test-strnlen.c \
- zerosize-ptr.h signature.h macros.h test-strtoull.c \
- signature.h macros.h test-strtoumax.c signature.h macros.h \
- symlink.c test-symlink.h test-symlink.c signature.h macros.h \
- sys_ioctl.in.h test-sys_ioctl.c sys_select.in.h \
- test-sys_select.c signature.h sys_socket.in.h \
+ signature.h macros.h test-striconv.c macros.h test-string.c \
+ test-strings.c test-strnlen.c zerosize-ptr.h signature.h \
+ macros.h test-strtoull.c signature.h macros.h test-strtoumax.c \
+ signature.h macros.h symlink.c test-symlink.h test-symlink.c \
+ signature.h macros.h sys_ioctl.in.h test-sys_ioctl.c \
+ sys_select.in.h test-sys_select.c signature.h sys_socket.in.h \
test-sys_socket.c test-sys_stat.c test-sys_time.c \
test-sys_types.c sys_uio.in.h test-sys_uio.c test-sys_wait.c \
test-sys_wait.h init.sh test-init.sh test-time.c \
test_uc_width2_SOURCES = uniwidth/test-uc_width2.c
test_uc_width2_LDADD = $(LDADD) $(LIBUNISTRING)
test_version_etc_LDADD = $(LDADD) @LIBINTL@
+test_wcwidth_LDADD = $(LDADD) $(LIBUNISTRING)
test_xalloc_die_LDADD = $(LDADD) @LIBINTL@
test_xstrtol_LDADD = $(LDADD) @LIBINTL@
test_xstrtoul_LDADD = $(LDADD) @LIBINTL@
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
+clean-checkPROGRAMS:
+ -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
+
+clean-noinstPROGRAMS:
+ -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+
clean-checkLIBRARIES:
-test -z "$(check_LIBRARIES)" || rm -f $(check_LIBRARIES)
$(AM_V_AR)$(libtests_a_AR) libtests.a $(libtests_a_OBJECTS) $(libtests_a_LIBADD)
$(AM_V_at)$(RANLIB) libtests.a
-clean-checkPROGRAMS:
- -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
-
-clean-noinstPROGRAMS:
- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-
test-accept$(EXEEXT): $(test_accept_OBJECTS) $(test_accept_DEPENDENCIES) $(EXTRA_test_accept_DEPENDENCIES)
@rm -f test-accept$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_accept_OBJECTS) $(test_accept_LDADD) $(LIBS)
@rm -f test-c-strncasecmp$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_c_strncasecmp_OBJECTS) $(test_c_strncasecmp_LDADD) $(LIBS)
+test-cloexec$(EXEEXT): $(test_cloexec_OBJECTS) $(test_cloexec_DEPENDENCIES) $(EXTRA_test_cloexec_DEPENDENCIES)
+ @rm -f test-cloexec$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_cloexec_OBJECTS) $(test_cloexec_LDADD) $(LIBS)
+
test-close$(EXEEXT): $(test_close_OBJECTS) $(test_close_DEPENDENCIES) $(EXTRA_test_close_DEPENDENCIES)
@rm -f test-close$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_close_OBJECTS) $(test_close_LDADD) $(LIBS)
@rm -f test-fnmatch$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_fnmatch_OBJECTS) $(test_fnmatch_LDADD) $(LIBS)
+test-fnmatch-h$(EXEEXT): $(test_fnmatch_h_OBJECTS) $(test_fnmatch_h_DEPENDENCIES) $(EXTRA_test_fnmatch_h_DEPENDENCIES)
+ @rm -f test-fnmatch-h$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_fnmatch_h_OBJECTS) $(test_fnmatch_h_LDADD) $(LIBS)
+
test-fputc$(EXEEXT): $(test_fputc_OBJECTS) $(test_fputc_DEPENDENCIES) $(EXTRA_test_fputc_DEPENDENCIES)
@rm -f test-fputc$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_fputc_OBJECTS) $(test_fputc_LDADD) $(LIBS)
@rm -f test-listen$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_listen_OBJECTS) $(test_listen_LDADD) $(LIBS)
+test-localcharset$(EXEEXT): $(test_localcharset_OBJECTS) $(test_localcharset_DEPENDENCIES) $(EXTRA_test_localcharset_DEPENDENCIES)
+ @rm -f test-localcharset$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_localcharset_OBJECTS) $(test_localcharset_LDADD) $(LIBS)
+
test-locale$(EXEEXT): $(test_locale_OBJECTS) $(test_locale_DEPENDENCIES) $(EXTRA_test_locale_DEPENDENCIES)
@rm -f test-locale$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_locale_OBJECTS) $(test_locale_LDADD) $(LIBS)
@rm -f test-memchr$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_memchr_OBJECTS) $(test_memchr_LDADD) $(LIBS)
+test-mkdir$(EXEEXT): $(test_mkdir_OBJECTS) $(test_mkdir_DEPENDENCIES) $(EXTRA_test_mkdir_DEPENDENCIES)
+ @rm -f test-mkdir$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_mkdir_OBJECTS) $(test_mkdir_LDADD) $(LIBS)
+
test-nanosleep$(EXEEXT): $(test_nanosleep_OBJECTS) $(test_nanosleep_DEPENDENCIES) $(EXTRA_test_nanosleep_DEPENDENCIES)
@rm -f test-nanosleep$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_nanosleep_OBJECTS) $(test_nanosleep_LDADD) $(LIBS)
@rm -f test-nl_langinfo$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_nl_langinfo_OBJECTS) $(test_nl_langinfo_LDADD) $(LIBS)
+test-nstrftime$(EXEEXT): $(test_nstrftime_OBJECTS) $(test_nstrftime_DEPENDENCIES) $(EXTRA_test_nstrftime_DEPENDENCIES)
+ @rm -f test-nstrftime$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_nstrftime_OBJECTS) $(test_nstrftime_LDADD) $(LIBS)
+
test-open$(EXEEXT): $(test_open_OBJECTS) $(test_open_DEPENDENCIES) $(EXTRA_test_open_DEPENDENCIES)
@rm -f test-open$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_open_OBJECTS) $(test_open_LDADD) $(LIBS)
@rm -f test-strerror_r$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_strerror_r_OBJECTS) $(test_strerror_r_LDADD) $(LIBS)
-test-strftime$(EXEEXT): $(test_strftime_OBJECTS) $(test_strftime_DEPENDENCIES) $(EXTRA_test_strftime_DEPENDENCIES)
- @rm -f test-strftime$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(test_strftime_OBJECTS) $(test_strftime_LDADD) $(LIBS)
-
test-striconv$(EXEEXT): $(test_striconv_OBJECTS) $(test_striconv_DEPENDENCIES) $(EXTRA_test_striconv_DEPENDENCIES)
@rm -f test-striconv$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_striconv_OBJECTS) $(test_striconv_LDADD) $(LIBS)
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-stack.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-strcasecmp.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-strncasecmp.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-cloexec.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-close.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-connect.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ctype.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fgetc.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-filenamecat.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-float.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fnmatch-h.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fnmatch.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fputc.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fread.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-langinfo.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-limits-h.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-listen.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-localcharset.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-locale.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-localeconv.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-lstat.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbsstr2.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbsstr3.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-memchr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mkdir.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-nanosleep.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-netinet_in.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-nl_langinfo.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-nstrftime.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-open.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-pathmax.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-perror.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdlib.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strerror.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strerror_r.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strftime.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-striconv.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-string.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strings.Po@am__quote@ # am--include-marker
am--depfiles: $(am__depfiles_remade)
.c.o:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(am__set_depbase) && \
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $<; \
-@am__fastdepCC_TRUE@ if test $$? = 0; then $(am__mv) $$depbase.Tpo $$depbase.Po; \
-@am__fastdepCC_TRUE@ else rm -f $$depbase.Tpo; false; fi
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(am__set_depbase) && \
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $$($(CYGPATH_W) $<); \
-@am__fastdepCC_TRUE@ if test $$? = 0; then $(am__mv) $$depbase.Tpo $$depbase.Po; \
-@am__fastdepCC_TRUE@ else rm -f $$depbase.Tpo; false; fi
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $$($(CYGPATH_W) $<)
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
# This directory's subdirectories are mostly independent; you can cd
# into them and run 'make' without going through this Makefile.
fi; \
$$success || exit 1
-check-TESTS:
+check-TESTS: $(check_PROGRAMS) $(check_LIBRARIES)
@list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
exit $$?;
-recheck: all $(check_LIBRARIES) $(check_PROGRAMS)
+recheck: all $(check_PROGRAMS) $(check_LIBRARIES)
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
@set +e; $(am__set_TESTS_bases); \
bases=`for i in $$bases; do echo $$i; done \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+test-cloexec.log: test-cloexec$(EXEEXT)
+ @p='test-cloexec$(EXEEXT)'; \
+ b='test-cloexec'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
test-close.log: test-close$(EXEEXT)
@p='test-close$(EXEEXT)'; \
b='test-close'; \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+test-fnmatch-h.log: test-fnmatch-h$(EXEEXT)
+ @p='test-fnmatch-h$(EXEEXT)'; \
+ b='test-fnmatch-h'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
test-fnmatch.log: test-fnmatch$(EXEEXT)
@p='test-fnmatch$(EXEEXT)'; \
b='test-fnmatch'; \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+test-mkdir.log: test-mkdir$(EXEEXT)
+ @p='test-mkdir$(EXEEXT)'; \
+ b='test-mkdir'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
test-nanosleep.log: test-nanosleep$(EXEEXT)
@p='test-nanosleep$(EXEEXT)'; \
b='test-nanosleep'; \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+test-nstrftime.log: test-nstrftime$(EXEEXT)
+ @p='test-nstrftime$(EXEEXT)'; \
+ b='test-nstrftime'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
test-open.log: test-open$(EXEEXT)
@p='test-open$(EXEEXT)'; \
b='test-open'; \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
-test-strftime.log: test-strftime$(EXEEXT)
- @p='test-strftime$(EXEEXT)'; \
- b='test-strftime'; \
- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
test-striconv.log: test-striconv$(EXEEXT)
@p='test-striconv$(EXEEXT)'; \
b='test-striconv'; \
@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
fi; \
done
check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) $(check_LIBRARIES) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(check_LIBRARIES)
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
check: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) check-recursive
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
+all-am: Makefile $(PROGRAMS) $(LIBRARIES) $(HEADERS)
installdirs: installdirs-recursive
installdirs-am:
install: $(BUILT_SOURCES)
-rm -f ./$(DEPDIR)/test-c-stack.Po
-rm -f ./$(DEPDIR)/test-c-strcasecmp.Po
-rm -f ./$(DEPDIR)/test-c-strncasecmp.Po
+ -rm -f ./$(DEPDIR)/test-cloexec.Po
-rm -f ./$(DEPDIR)/test-close.Po
-rm -f ./$(DEPDIR)/test-connect.Po
-rm -f ./$(DEPDIR)/test-ctype.Po
-rm -f ./$(DEPDIR)/test-fgetc.Po
-rm -f ./$(DEPDIR)/test-filenamecat.Po
-rm -f ./$(DEPDIR)/test-float.Po
+ -rm -f ./$(DEPDIR)/test-fnmatch-h.Po
-rm -f ./$(DEPDIR)/test-fnmatch.Po
-rm -f ./$(DEPDIR)/test-fputc.Po
-rm -f ./$(DEPDIR)/test-fread.Po
-rm -f ./$(DEPDIR)/test-langinfo.Po
-rm -f ./$(DEPDIR)/test-limits-h.Po
-rm -f ./$(DEPDIR)/test-listen.Po
+ -rm -f ./$(DEPDIR)/test-localcharset.Po
-rm -f ./$(DEPDIR)/test-locale.Po
-rm -f ./$(DEPDIR)/test-localeconv.Po
-rm -f ./$(DEPDIR)/test-lstat.Po
-rm -f ./$(DEPDIR)/test-mbsstr2.Po
-rm -f ./$(DEPDIR)/test-mbsstr3.Po
-rm -f ./$(DEPDIR)/test-memchr.Po
+ -rm -f ./$(DEPDIR)/test-mkdir.Po
-rm -f ./$(DEPDIR)/test-nanosleep.Po
-rm -f ./$(DEPDIR)/test-netinet_in.Po
-rm -f ./$(DEPDIR)/test-nl_langinfo.Po
+ -rm -f ./$(DEPDIR)/test-nstrftime.Po
-rm -f ./$(DEPDIR)/test-open.Po
-rm -f ./$(DEPDIR)/test-pathmax.Po
-rm -f ./$(DEPDIR)/test-perror.Po
-rm -f ./$(DEPDIR)/test-stdlib.Po
-rm -f ./$(DEPDIR)/test-strerror.Po
-rm -f ./$(DEPDIR)/test-strerror_r.Po
- -rm -f ./$(DEPDIR)/test-strftime.Po
-rm -f ./$(DEPDIR)/test-striconv.Po
-rm -f ./$(DEPDIR)/test-string.Po
-rm -f ./$(DEPDIR)/test-strings.Po
-rm -f ./$(DEPDIR)/test-c-stack.Po
-rm -f ./$(DEPDIR)/test-c-strcasecmp.Po
-rm -f ./$(DEPDIR)/test-c-strncasecmp.Po
+ -rm -f ./$(DEPDIR)/test-cloexec.Po
-rm -f ./$(DEPDIR)/test-close.Po
-rm -f ./$(DEPDIR)/test-connect.Po
-rm -f ./$(DEPDIR)/test-ctype.Po
-rm -f ./$(DEPDIR)/test-fgetc.Po
-rm -f ./$(DEPDIR)/test-filenamecat.Po
-rm -f ./$(DEPDIR)/test-float.Po
+ -rm -f ./$(DEPDIR)/test-fnmatch-h.Po
-rm -f ./$(DEPDIR)/test-fnmatch.Po
-rm -f ./$(DEPDIR)/test-fputc.Po
-rm -f ./$(DEPDIR)/test-fread.Po
-rm -f ./$(DEPDIR)/test-langinfo.Po
-rm -f ./$(DEPDIR)/test-limits-h.Po
-rm -f ./$(DEPDIR)/test-listen.Po
+ -rm -f ./$(DEPDIR)/test-localcharset.Po
-rm -f ./$(DEPDIR)/test-locale.Po
-rm -f ./$(DEPDIR)/test-localeconv.Po
-rm -f ./$(DEPDIR)/test-lstat.Po
-rm -f ./$(DEPDIR)/test-mbsstr2.Po
-rm -f ./$(DEPDIR)/test-mbsstr3.Po
-rm -f ./$(DEPDIR)/test-memchr.Po
+ -rm -f ./$(DEPDIR)/test-mkdir.Po
-rm -f ./$(DEPDIR)/test-nanosleep.Po
-rm -f ./$(DEPDIR)/test-netinet_in.Po
-rm -f ./$(DEPDIR)/test-nl_langinfo.Po
+ -rm -f ./$(DEPDIR)/test-nstrftime.Po
-rm -f ./$(DEPDIR)/test-open.Po
-rm -f ./$(DEPDIR)/test-pathmax.Po
-rm -f ./$(DEPDIR)/test-perror.Po
-rm -f ./$(DEPDIR)/test-stdlib.Po
-rm -f ./$(DEPDIR)/test-strerror.Po
-rm -f ./$(DEPDIR)/test-strerror_r.Po
- -rm -f ./$(DEPDIR)/test-strftime.Po
-rm -f ./$(DEPDIR)/test-striconv.Po
-rm -f ./$(DEPDIR)/test-string.Po
-rm -f ./$(DEPDIR)/test-strings.Po
-#if !defined _Noreturn && __STDC_VERSION__ < 201112
-# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
- || 0x5110 <= __SUNPRO_C)
+#ifndef _Noreturn
+# if 201103 <= (defined __cplusplus ? __cplusplus : 0)
+# define _Noreturn [[noreturn]]
+# elif (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
+ || 4 < __GNUC__ + (7 <= __GNUC_MINOR__))
+ /* _Noreturn works as-is. */
+# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C
# define _Noreturn __attribute__ ((__noreturn__))
-# elif 1200 <= _MSC_VER
+# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0)
# define _Noreturn __declspec (noreturn)
# else
# define _Noreturn
/* accept.c --- wrappers for Windows accept function
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paolo Bonzini */
/* A C macro for declaring that specific arguments must not be NULL.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
that the values passed as arguments n, ..., m must be non-NULL pointers.
/* A GNU-like <arpa/inet.h>.
- Copyright (C) 2005-2006, 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2005-2006, 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _@GUARD_PREFIX@_ARPA_INET_H
/* bind.c --- wrappers for Windows bind function
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paolo Bonzini */
/* C++ compatible function declaration macros.
- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ Copyright (C) 2010-2018 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
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _GL_CXXDEFS_H
#define _GL_CXXDEFS_H
_GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
# define _GL_CXXALIASWARN_1(func,namespace) \
_GL_CXXALIASWARN_2 (func, namespace)
-/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
+/* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
we enable the warning only when not optimizing. */
# if !__OPTIMIZE__
# define _GL_CXXALIASWARN_2(func,namespace) \
GNULIB_NAMESPACE)
# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
_GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
-/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
+/* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
we enable the warning only when not optimizing. */
# if !__OPTIMIZE__
# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
/* connect.c --- wrappers for Windows connect function
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paolo Bonzini */
/* Convert double to timespec.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* written by Paul Eggert */
if (! (TYPE_MINIMUM (time_t) < sec))
return make_timespec (TYPE_MINIMUM (time_t), 0);
else if (! (sec < 1.0 + TYPE_MAXIMUM (time_t)))
- return make_timespec (TYPE_MAXIMUM (time_t), TIMESPEC_RESOLUTION - 1);
+ return make_timespec (TYPE_MAXIMUM (time_t), TIMESPEC_HZ - 1);
else
{
time_t s = sec;
- double frac = TIMESPEC_RESOLUTION * (sec - s);
+ double frac = TIMESPEC_HZ * (sec - s);
long ns = frac;
ns += ns < frac;
- s += ns / TIMESPEC_RESOLUTION;
- ns %= TIMESPEC_RESOLUTION;
+ s += ns / TIMESPEC_HZ;
+ ns %= TIMESPEC_HZ;
if (ns < 0)
{
s--;
- ns += TIMESPEC_RESOLUTION;
+ ns += TIMESPEC_HZ;
}
return make_timespec (s, ns);
/* Open a stream with a given file descriptor.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Manipulating the FPU control word. -*- coding: utf-8 -*-
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _FPUCW_H
#define _FPUCW_H
The FPU control word is under control of the application, i.e. it is
not required to be set either way by the ABI. (In fact, the i386 ABI
- http://refspecs.freestandards.org/elf/abi386-4.pdf page 3-12 = page 38
+ https://www.linux-mips.org/pub/linux/mips/doc/ABI/abi386-4.pdf page 3-12 = page 38
is not clear about it. But in any case, gcc treats the control word
like a "preserved" register: it emits code that assumes that the control
word is preserved across calls, and it restores the control word at the
end of functions that modify it.)
- See Vincent Lefèvre's page http://www.vinc17.org/research/extended.en.html
+ See Vincent Lefèvre's page https://www.vinc17.net/research/extended.en.html
for a good explanation.
See http://www.uwsg.iu.edu/hypermail/linux/kernel/0103.0/0453.html for
some argumentation which setting should be the default. */
/* ftruncate emulations for native Windows.
- Copyright (C) 1992-2017 Free Software Foundation, Inc.
+ Copyright (C) 1992-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
-/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
This file is part of gnulib.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* getpagesize emulation for systems where it cannot be done in a C macro.
- Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible and Martin Lambers. */
#include <unistd.h>
/* This implementation is only for native Windows systems. */
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
## DO NOT EDIT! GENERATED AUTOMATICALLY!
## Process this file with automake to produce Makefile.in.
-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
+# Copyright (C) 2002-2018 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this file. If not, see <http://www.gnu.org/licenses/>.
+# along with this file. If not, see <https://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License,
# this file may be distributed as part of a program that
#
# Generated by gnulib-tool.
-AUTOMAKE_OPTIONS = 1.9.6 foreign subdir-objects
+AUTOMAKE_OPTIONS = 1.11 foreign subdir-objects
SUBDIRS = .
TESTS =
## end gnulib module c-strcase-tests
+## begin gnulib module cloexec-tests
+
+TESTS += test-cloexec
+check_PROGRAMS += test-cloexec
+EXTRA_DIST += test-cloexec.c macros.h
+
+## end gnulib module cloexec-tests
+
## begin gnulib module close-tests
TESTS += test-close
## end gnulib module float-tests
+## begin gnulib module fnmatch-h-tests
+
+TESTS += test-fnmatch-h
+check_PROGRAMS += test-fnmatch-h
+EXTRA_DIST += test-fnmatch-h.c
+
+## end gnulib module fnmatch-h-tests
+
## begin gnulib module fnmatch-tests
TESTS += test-fnmatch
## end gnulib module listen-tests
+## begin gnulib module localcharset-tests
+
+noinst_PROGRAMS += test-localcharset
+EXTRA_DIST += test-localcharset.c
+
+## end gnulib module localcharset-tests
+
## begin gnulib module locale-tests
TESTS += test-locale
## end gnulib module memchr-tests
+## begin gnulib module mkdir-tests
+
+TESTS += test-mkdir
+check_PROGRAMS += test-mkdir
+EXTRA_DIST += test-mkdir.h test-mkdir.c signature.h macros.h
+
+## end gnulib module mkdir-tests
+
## begin gnulib module nanosleep
## end gnulib module nl_langinfo-tests
+## begin gnulib module nstrftime-tests
+
+TESTS += test-nstrftime
+check_PROGRAMS += test-nstrftime
+EXTRA_DIST += test-nstrftime.c macros.h
+
+## end gnulib module nstrftime-tests
+
## begin gnulib module open-tests
TESTS += test-open
## end gnulib module strerror_r-posix-tests
-## begin gnulib module strftime-tests
-
-TESTS += test-strftime
-check_PROGRAMS += test-strftime
-EXTRA_DIST += test-strftime.c macros.h
-
-## end gnulib module strftime-tests
-
## begin gnulib module striconv-tests
TESTS += test-striconv
TESTS += test-wcwidth
check_PROGRAMS += test-wcwidth
+test_wcwidth_LDADD = $(LDADD) $(LIBUNISTRING)
EXTRA_DIST += test-wcwidth.c signature.h macros.h
## end gnulib module wcwidth-tests
/* hash-pjw.c -- compute a hash value from a NUL-terminated string.
- Copyright (C) 2001, 2003, 2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2003, 2006, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* A hash function for NUL-terminated char* strings using
the method described by Bruno Haible.
- See http://www.haible.de/bruno/hashfunc.html. */
+ See https://www.haible.de/bruno/hashfunc.html. */
size_t
hash_pjw (const void *x, size_t tablesize)
/* hash-pjw.h -- declaration for a simple hash function
- Copyright (C) 2001, 2003, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2003, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <stddef.h>
/* inet_pton.c -- convert IPv4 and IPv6 addresses from text to binary form
- Copyright (C) 2006, 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/*
* Copyright (c) 1996,1999 by Internet Software Consortium.
# source this file; set up for tests
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 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
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# Using this file in a test
# =========================
ME_=`expr "./$0" : '.*/\(.*\)$'`
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
+ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
+ || PATH_SEPARATOR=';'
+ }
+fi
+
# We use a trap below for cleanup. This requires us to go through
# hoops to get the right exit status transported through the handler.
# So use 'Exit STATUS' instead of 'exit STATUS' inside of the tests.
# That is part of the shell-selection test above. Why use aliases rather
# than functions? Because support for hyphen-containing aliases is more
# widespread than that for hyphen-containing function names.
-test -n "$EXEEXT" && shopt -s expand_aliases
+test -n "$EXEEXT" && test -n "$BASH_VERSION" && shopt -s expand_aliases
# Enable glibc's malloc-perturbing option.
# This is useful for exposing code that depends on the fact that
path_dir_=$1
case $path_dir_ in
'') fail_ "invalid path dir: '$1'";;
- /*) abs_path_dir_=$path_dir_;;
+ /* | ?:*) abs_path_dir_=$path_dir_;;
*) abs_path_dir_=$initial_cwd_/$path_dir_;;
esac
case $abs_path_dir_ in
- *:*) fail_ "invalid path dir: '$abs_path_dir_'";;
+ *$PATH_SEPARATOR*) fail_ "invalid path dir: '$abs_path_dir_'";;
esac
- PATH="$abs_path_dir_:$PATH"
+ PATH="$abs_path_dir_$PATH_SEPARATOR$PATH"
# Create an alias, FOO, for each FOO.exe in this directory.
create_exe_shims_ "$abs_path_dir_" \
fi
n_plus_50_=`expr $n_ + 50`
- cmds_='date; date +%N; free; who -a; w; ps auxww; ps ef; netstat -n'
+ cmds_='date; date +%N; free; who -a; w; ps auxww; ps -ef'
data_=` (eval "$cmds_") 2>&1 | gzip `
# Ensure that $data_ has length at least 50+$n_
/* ioctl.c --- wrappers for Windows ioctl function
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paolo Bonzini */
/* listen.c --- wrappers for Windows listen function
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paolo Bonzini */
/* Common macros used by gnulib tests.
- Copyright (C) 2006-2017 Free Software Foundation, Inc.
+ Copyright (C) 2006-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* This file contains macros that are used by many gnulib tests.
/* Provide a replacement for the POSIX nanosleep function.
- Copyright (C) 1999-2000, 2002, 2004-2017 Free Software Foundation, Inc.
+ Copyright (C) 1999-2000, 2002, 2004-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* written by Jim Meyering
and Bruno Haible for the native Windows part */
}
}
-#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#elif defined _WIN32 && ! defined __CYGWIN__
/* Native Windows platforms. */
# define WIN32_LEAN_AND_MEAN
/* Assist in file system timestamp tests.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
# include <limits.h>
# include <stdbool.h>
+# include <intprops.h>
+
/* Name of the witness file. */
#define TEMPFILE BASE "nap.tmp"
time_t bs = b.tv_sec;
int ans = a.tv_nsec;
int bns = b.tv_nsec;
+ int sdiff;
+
+ ASSERT (0 <= ans && ans < 2000000000);
+ ASSERT (0 <= bns && bns < 2000000000);
if (! (bs < as || (bs == as && bns < ans)))
return 0;
- if (as - bs <= INT_MAX / 1000000000)
- {
- int sdiff = (as - bs) * 1000000000;
- int usdiff = ans - bns;
- if (usdiff < INT_MAX - sdiff)
- return sdiff + usdiff;
- }
- return INT_MAX;
+
+ if (INT_SUBTRACT_WRAPV (as, bs, &sdiff)
+ || INT_MULTIPLY_WRAPV (sdiff, 1000000000, &sdiff)
+ || INT_ADD_WRAPV (sdiff, ans - bns, &sdiff))
+ return INT_MAX;
+
+ return sdiff;
}
/* If DO_WRITE, bump the modification time of the file designated by NAP_FD.
if (do_write)
{
ASSERT (write (nap_fd, "\n", 1) == 1);
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
- /* On native Windows, the modification times are not changed until NAP_FD
+#if defined _WIN32 || defined __CYGWIN__
+ /* On Windows, the modification times are not changed until NAP_FD
is closed. See
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365747(v=vs.85).aspx */
close (nap_fd);
/* Substitute for <netinet/in.h>.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _@GUARD_PREFIX@_NETINET_IN_H
/* Print a message describing error code.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 Free Software Foundation, Inc.
Written by Bruno Haible and Simon Josefsson.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Create a pipe.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Specification. */
#include <unistd.h>
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
/* Native Windows API. */
/* Get _pipe(). */
-/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2017 Free Software
+/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2018 Free Software
Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
#include <string.h>
#include <unistd.h>
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
#endif
*ep = string;
break;
}
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
if (putenv_result == 0)
{
/* _putenv propagated "NAME= " into the subprocess environment;
/* Determine whether two stat buffers are known to refer to the same file.
- Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef SAME_INODE_H
# define SAME_INODE_H 1
# include <sys/types.h>
-# ifdef __VMS
+# if defined __VMS && __CRTL_VER < 80200000
# define SAME_INODE(a, b) \
((a).st_ino[0] == (b).st_ino[0] \
&& (a).st_ino[1] == (b).st_ino[1] \
&& (a).st_ino[2] == (b).st_ino[2] \
&& (a).st_dev == (b).st_dev)
-# elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# elif defined _WIN32 && ! defined __CYGWIN__
/* Native Windows. */
# if _GL_WINDOWS_STAT_INODES
/* stat() and fstat() set st_dev and st_ino to 0 if information about
/* Emulation for select(2)
Contributed by Paolo Bonzini.
- Copyright 2008-2017 Free Software Foundation, Inc.
+ Copyright 2008-2018 Free Software Foundation, Inc.
This file is part of gnulib.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
#include <alloca.h>
#include <assert.h>
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
/* Native Windows. */
#include <sys/types.h>
#undef select
+/* Avoid warnings from gcc -Wcast-function-type. */
+#define GetProcAddress \
+ (void *) GetProcAddress
+
struct bitset {
unsigned char in[FD_SETSIZE / CHAR_BIT];
unsigned char out[FD_SETSIZE / CHAR_BIT];
/* Set the current locale. -*- coding: utf-8 -*-
- Copyright (C) 2009, 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009, 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
/* Specification. */
#include <locale.h>
+#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "localename.h"
+#if HAVE_CFLOCALECOPYPREFERREDLANGUAGES || HAVE_CFPREFERENCESCOPYAPPVALUE
+# if HAVE_CFLOCALECOPYPREFERREDLANGUAGES
+# include <CoreFoundation/CFLocale.h>
+# elif HAVE_CFPREFERENCESCOPYAPPVALUE
+# include <CoreFoundation/CFPreferences.h>
+# endif
+# include <CoreFoundation/CFPropertyList.h>
+# include <CoreFoundation/CFArray.h>
+# include <CoreFoundation/CFString.h>
+extern void gl_locale_name_canonicalize (char *name);
+#endif
+
#if 1
# undef setlocale
return retval;
}
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
/* The native Windows setlocale() function expects locale names of the form
"German" or "German_Germany" or "DEU", but not "de" or "de_DE". We need
/* The native Windows implementation of setlocale understands the special
locale name "C", but not "POSIX". Therefore map "POSIX" to "C". */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
if (locale != NULL && strcmp (locale, "POSIX") == 0)
locale = "C";
-#endif
/* First, try setlocale with the original argument unchanged. */
result = setlocale (category, locale);
/* Set LC_CTYPE first. Then the other categories. */
static int const categories[] =
{
+ LC_CTYPE,
LC_NUMERIC,
LC_TIME,
LC_COLLATE,
if (base_name == NULL)
base_name = gl_locale_name_default ();
- if (setlocale_unixlike (LC_ALL, base_name) == NULL)
- goto fail;
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ if (setlocale_unixlike (LC_ALL, base_name) != NULL)
+ {
+ /* LC_CTYPE category already set. */
+ i = 1;
+ }
+ else
+ {
+ /* On Mac OS X, "UTF-8" is a valid locale name for LC_CTYPE but
+ not for LC_ALL. Therefore this call may fail. So, try
+ another base_name. */
+ base_name = "C";
+ if (setlocale_unixlike (LC_ALL, base_name) == NULL)
+ goto fail;
+ i = 0;
+ }
+# if defined _WIN32 && ! defined __CYGWIN__
/* On native Windows, setlocale(LC_ALL,...) may succeed but set the
LC_CTYPE category to an invalid value ("C") when it does not
support the specified encoding. Report a failure instead. */
goto fail;
# endif
- for (i = 0; i < sizeof (categories) / sizeof (categories[0]); i++)
+ for (; i < sizeof (categories) / sizeof (categories[0]); i++)
{
int cat = categories[i];
const char *name;
# endif
)
if (setlocale_single (cat, name) == NULL)
+# if defined __APPLE__ && defined __MACH__
+ {
+ /* On Mac OS X 10.13, some locales can be set through
+ System Preferences > Language & Region, that are not
+ supported by libc. The system's setlocale() falls
+ back to "C" for these locale categories. We can possibly
+ do better. If we can't, print a warning, to limit user
+ expectations. */
+ int warn = 1;
+
+ if (cat == LC_CTYPE)
+ warn = (setlocale_single (cat, "UTF-8") == NULL);
+# if HAVE_CFLOCALECOPYPREFERREDLANGUAGES || HAVE_CFPREFERENCESCOPYAPPVALUE /* MacOS X 10.4 or newer */
+ else if (cat == LC_MESSAGES)
+ {
+ /* Take the primary language preference. */
+# if HAVE_CFLOCALECOPYPREFERREDLANGUAGES /* MacOS X 10.5 or newer */
+ CFArrayRef prefArray = CFLocaleCopyPreferredLanguages ();
+# elif HAVE_CFPREFERENCESCOPYAPPVALUE /* MacOS X 10.4 or newer */
+ CFTypeRef preferences =
+ CFPreferencesCopyAppValue (CFSTR ("AppleLanguages"),
+ kCFPreferencesCurrentApplication);
+ if (preferences != NULL
+ && CFGetTypeID (preferences) == CFArrayGetTypeID ())
+ {
+ CFArrayRef prefArray = (CFArrayRef)preferences;
+# endif
+ int n = CFArrayGetCount (prefArray);
+ if (n > 0)
+ {
+ char buf[256];
+ CFTypeRef element = CFArrayGetValueAtIndex (prefArray, 0);
+ if (element != NULL
+ && CFGetTypeID (element) == CFStringGetTypeID ()
+ && CFStringGetCString ((CFStringRef)element,
+ buf, sizeof (buf),
+ kCFStringEncodingASCII))
+ {
+ /* Remove the country.
+ E.g. "zh-Hans-DE" -> "zh-Hans". */
+ char *last_minus = strrchr (buf, '-');
+ if (last_minus != NULL)
+ *last_minus = '\0';
+
+ /* Convert to Unix locale name.
+ E.g. "zh-Hans" -> "zh_CN". */
+ gl_locale_name_canonicalize (buf);
+
+ /* Try setlocale with this value. */
+ warn = (setlocale_single (cat, buf) == NULL);
+ }
+ }
+# if HAVE_CFLOCALECOPYPREFERREDLANGUAGES /* MacOS X 10.5 or newer */
+ CFRelease (prefArray);
+# elif HAVE_CFPREFERENCESCOPYAPPVALUE /* MacOS X 10.4 or newer */
+ }
+# endif
+ }
+# endif
+ /* No fallback possible for LC_NUMERIC. The application
+ should use the locale properties
+ kCFLocaleDecimalSeparator, kCFLocaleGroupingSeparator.
+ No fallback possible for LC_TIME. The application should
+ use the locale property kCFLocaleCalendarIdentifier.
+ No fallback possible for LC_COLLATE. The application
+ should use the locale properties
+ kCFLocaleCollationIdentifier, kCFLocaleCollatorIdentifier.
+ No fallback possible for LC_MONETARY. The application
+ should use the locale properties
+ kCFLocaleCurrencySymbol, kCFLocaleCurrencyCode. */
+
+ if (warn)
+ fprintf (stderr,
+ "Warning: Failed to set locale category %s to %s.\n",
+ category_to_name (cat), name);
+ }
+# else
goto fail;
+# endif
}
/* All steps were successful. */
}
else
{
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
if (category == LC_ALL && locale != NULL && strchr (locale, '.') != NULL)
{
char *saved_locale;
/* setsockopt.c --- wrappers for Windows setsockopt function
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paolo Bonzini */
/* Macro for checking that a function declaration is compliant.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef SIGNATURE_CHECK
/* Pausing execution of the current thread.
- Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
#include "verify.h"
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
# define WIN32_LEAN_AND_MEAN /* avoid including junk */
# include <windows.h>
/* Formatted output to strings.
- Copyright (C) 2004, 2006-2017 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2006-2018 Free Software Foundation, Inc.
Written by Simon Josefsson and Paul Eggert.
This program is free software; you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* socket.c --- wrappers for Windows socket function
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paolo Bonzini */
/* sockets.c --- wrappers for Windows socket functions
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Simon Josefsson */
/* sockets.h - wrappers for Windows socket functions
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Simon Josefsson */
/* A substitute for ISO C11 <stdalign.h>.
- Copyright 2011-2017 Free Software Foundation, Inc.
+ Copyright 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert and Bruno Haible. */
#undef _Alignof
/* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023
- <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>. */
+ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>. */
#if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \
|| (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9)))
# ifdef __cplusplus
/* strerror_r.c --- POSIX compatible system error routine
- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ Copyright (C) 2010-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2010. */
# define USE_SYSTEM_STRERROR 1
-# if defined __NetBSD__ || defined __hpux || ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) || defined __sgi || (defined __sun && !defined _LP64) || defined __CYGWIN__
+# if defined __NetBSD__ || defined __hpux || (defined _WIN32 && !defined __CYGWIN__) || defined __sgi || (defined __sun && !defined _LP64) || defined __CYGWIN__
/* No locking needed. */
safe_copy (char *buf, size_t buflen, const char *msg)
{
size_t len = strlen (msg);
- int ret;
+ size_t moved = len < buflen ? len : buflen - 1;
- if (len < buflen)
- {
- /* Although POSIX allows memcpy() to corrupt errno, we don't
- know of any implementation where this is a real problem. */
- memcpy (buf, msg, len + 1);
- ret = 0;
- }
- else
- {
- memcpy (buf, msg, buflen - 1);
- buf[buflen - 1] = '\0';
- ret = ERANGE;
- }
- return ret;
+ /* Although POSIX lets memmove corrupt errno, we don't
+ know of any implementation where this is a real problem. */
+ memmove (buf, msg, moved);
+ buf[moved] = '\0';
+ return len < buflen ? 0 : ERANGE;
}
# else
ret = strerror_r (errnum, buf, buflen);
- /* Some old implementations may return (-1, EINVAL) instead of EINVAL. */
+ /* Some old implementations may return (-1, EINVAL) instead of EINVAL.
+ But on Haiku, valid error numbers are negative. */
+# if !defined __HAIKU__
if (ret < 0)
ret = errno;
+# endif
# endif
-# ifdef _AIX
- /* AIX returns 0 rather than ERANGE when truncating strings; try
+# if defined _AIX || defined __HAIKU__
+ /* AIX and Haiku return 0 rather than ERANGE when truncating strings; try
again until we are sure we got the entire string. */
if (!ret && strlen (buf) == buflen - 1)
{
/* Try to do what strerror (errnum) does, but without clobbering the
buffer used by strerror(). */
-# if defined __NetBSD__ || defined __hpux || ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) || defined __CYGWIN__ /* NetBSD, HP-UX, native Windows, Cygwin */
+# if defined __NetBSD__ || defined __hpux || (defined _WIN32 && !defined __CYGWIN__) || defined __CYGWIN__ /* NetBSD, HP-UX, native Windows, Cygwin */
/* NetBSD: sys_nerr, sys_errlist are declared through _NETBSD_SOURCE
and <errno.h> above.
#endif
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+#if defined _WIN32 && !defined __CYGWIN__
/* MSVC 14 defines names for many error codes in the range 100..140,
but _sys_errlist contains strings only for the error codes
< _sys_nerr = 43. */
#endif
if (ret == EINVAL && !*buf)
- snprintf (buf, buflen, "Unknown error %d", errnum);
+ {
+#if defined __HAIKU__
+ /* For consistency with perror(). */
+ snprintf (buf, buflen, "Unknown Application Error (%d)", errnum);
+#else
+ snprintf (buf, buflen, "Unknown error %d", errnum);
+#endif
+ }
errno = saved_errno;
return ret;
/* Stub for symlink().
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Substitute for and wrapper around <sys/ioctl.h>.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _@GUARD_PREFIX@_SYS_IOCTL_H
/* AIX 5.1 and Solaris 10 declare ioctl() in <unistd.h> and in <stropts.h>,
but not in <sys/ioctl.h>.
+ Haiku declares ioctl() in <unistd.h>, but not in <sys/ioctl.h>.
But avoid namespace pollution on glibc systems. */
#ifndef __GLIBC__
# include <unistd.h>
/* Substitute for <sys/select.h>.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
# if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
/* Provide a sys/socket header file for systems lacking it (read: MinGW)
and for systems where it is incomplete.
- Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ Copyright (C) 2005-2018 Free Software Foundation, Inc.
Written by Simon Josefsson.
This program is free software; you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* This file is supposed to be used on platforms that lack <sys/socket.h>,
on platforms where <sys/socket.h> cannot be included standalone, and on
# define SHUT_RDWR 2
# endif
+# ifdef __VMS /* OpenVMS */
+# ifndef CMSG_SPACE
+# define CMSG_SPACE(length) _CMSG_SPACE(length)
+# endif
+# ifndef CMSG_LEN
+# define CMSG_LEN(length) _CMSG_LEN(length)
+# endif
+# endif
+
#else
# ifdef __CYGWIN__
code may not run on older Windows releases then. My Windows 2000
box was not able to run the code, for example. The situation is
slightly confusing because
- <http://msdn.microsoft.com/en-us/library/ms738520>
+ <https://msdn.microsoft.com/en-us/library/ms738520>
suggests that getaddrinfo should be available on all Windows
releases. */
#endif
+/* Ensure SO_REUSEPORT is defined. */
+/* For the subtle differences between SO_REUSEPORT and SO_REUSEADDR, see
+ https://stackoverflow.com/questions/14388706/socket-options-so-reuseaddr-and-so-reuseport-how-do-they-differ-do-they-mean-t
+ and https://lwn.net/Articles/542629/
+ */
+#ifndef SO_REUSEPORT
+# define SO_REUSEPORT SO_REUSEADDR
+#endif
+
/* Fix some definitions from <winsock2.h>. */
#if @HAVE_WINSOCK2_H@
The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
and O_TEXT, O_BINARY (defined in "binary-io.h").
See also the Linux man page at
- <http://www.kernel.org/doc/man-pages/online/pages/man2/accept4.2.html>. */
+ <https://www.kernel.org/doc/man-pages/online/pages/man2/accept4.2.html>. */
# if @HAVE_ACCEPT4@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define accept4 rpl_accept4
/* Substitute for <sys/uio.h>.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
# if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
/* Test accepting a connection to a server socket.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of optional automatic memory allocation.
- Copyright (C) 2005, 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Tests of areadlink.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
/* Tests of areadlink and friends.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
/* Test of exact or abbreviated match search.
- Copyright (C) 1990, 1998-1999, 2001-2017 Free Software Foundation, Inc.
+ Copyright (C) 1990, 1998-1999, 2001-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007, based on test code
by David MacKenzie <djm@gnu.ai.mit.edu>. */
/* Test of <arpa/inet.h> substitute.
- Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of binary mode I/O.
- Copyright (C) 2005, 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2005. */
/* Test binding a server socket to a port.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of <bitrotate.h> substitute.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Simon Josefsson <simon@josefsson.org>, 2008. */
/* Test of conversion of unibyte character to wide character.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
/* Test of character handling in C locale.
- Copyright (C) 2005, 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2005. */
/* Test of c-stack module.
- Copyright (C) 2002, 2004, 2006, 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2006, 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of case-insensitive string comparison function.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of case-insensitive string comparison function.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
--- /dev/null
+/* Test duplicating non-inheritable file descriptors.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Written by Eric Blake <ebb9@byu.net>, 2009. */
+
+#include <config.h>
+
+#include "cloexec.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#if defined _WIN32 && ! defined __CYGWIN__
+/* Get declarations of the native Windows API functions. */
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+/* Get _get_osfhandle. */
+# if GNULIB_MSVC_NOTHROW
+# include "msvc-nothrow.h"
+# else
+# include <io.h>
+# endif
+#endif
+
+#include "binary-io.h"
+#include "macros.h"
+
+/* Return non-zero if FD is open and inheritable across exec/spawn. */
+static int
+is_inheritable (int fd)
+{
+#if defined _WIN32 && ! defined __CYGWIN__
+ /* On native Windows, the initial state of unassigned standard file
+ descriptors is that they are open but point to an
+ INVALID_HANDLE_VALUE, and there is no fcntl. */
+ HANDLE h = (HANDLE) _get_osfhandle (fd);
+ DWORD flags;
+ if (h == INVALID_HANDLE_VALUE || GetHandleInformation (h, &flags) == 0)
+ return 0;
+ return (flags & HANDLE_FLAG_INHERIT) != 0;
+#else
+# ifndef F_GETFD
+# error Please port fcntl to your platform
+# endif
+ int i = fcntl (fd, F_GETFD);
+ return 0 <= i && (i & FD_CLOEXEC) == 0;
+#endif
+}
+
+#if !O_BINARY
+# define setmode(f,m) zero ()
+static int zero (void) { return 0; }
+#endif
+
+/* Return non-zero if FD is open in the given MODE, which is either
+ O_TEXT or O_BINARY. */
+static int
+is_mode (int fd, int mode)
+{
+ int value = setmode (fd, O_BINARY);
+ setmode (fd, value);
+ return mode == value;
+}
+
+int
+main (void)
+{
+ const char *file = "test-cloexec.tmp";
+ int fd = creat (file, 0600);
+ int fd2;
+ int bad_fd = getdtablesize ();
+
+ /* Assume std descriptors were provided by invoker. */
+ ASSERT (STDERR_FILENO < fd);
+ ASSERT (is_inheritable (fd));
+
+ /* Normal use of set_cloexec_flag. */
+ ASSERT (set_cloexec_flag (fd, true) == 0);
+#if !(defined _WIN32 && ! defined __CYGWIN__)
+ ASSERT (!is_inheritable (fd));
+#endif
+ ASSERT (set_cloexec_flag (fd, false) == 0);
+ ASSERT (is_inheritable (fd));
+
+ /* Normal use of dup_cloexec. */
+ fd2 = dup_cloexec (fd);
+ ASSERT (fd < fd2);
+ ASSERT (!is_inheritable (fd2));
+ ASSERT (close (fd) == 0);
+ ASSERT (dup_cloexec (fd2) == fd);
+ ASSERT (!is_inheritable (fd));
+ ASSERT (close (fd2) == 0);
+
+ /* On systems that distinguish between text and binary mode,
+ dup_cloexec reuses the mode of the source. */
+ setmode (fd, O_BINARY);
+ ASSERT (is_mode (fd, O_BINARY));
+ fd2 = dup_cloexec (fd);
+ ASSERT (fd < fd2);
+ ASSERT (is_mode (fd2, O_BINARY));
+ ASSERT (close (fd2) == 0);
+ setmode (fd, O_TEXT);
+ ASSERT (is_mode (fd, O_TEXT));
+ fd2 = dup_cloexec (fd);
+ ASSERT (fd < fd2);
+ ASSERT (is_mode (fd2, O_TEXT));
+ ASSERT (close (fd2) == 0);
+
+ /* Test error handling. */
+ errno = 0;
+ ASSERT (set_cloexec_flag (-1, false) == -1);
+ ASSERT (errno == EBADF);
+ errno = 0;
+ ASSERT (set_cloexec_flag (bad_fd, false) == -1);
+ ASSERT (errno == EBADF);
+ errno = 0;
+ ASSERT (set_cloexec_flag (fd2, false) == -1);
+ ASSERT (errno == EBADF);
+ errno = 0;
+ ASSERT (dup_cloexec (-1) == -1);
+ ASSERT (errno == EBADF);
+ errno = 0;
+ ASSERT (dup_cloexec (bad_fd) == -1);
+ ASSERT (errno == EBADF);
+ errno = 0;
+ ASSERT (dup_cloexec (fd2) == -1);
+ ASSERT (errno == EBADF);
+
+ /* Clean up. */
+ ASSERT (close (fd) == 0);
+ ASSERT (unlink (file) == 0);
+
+ return 0;
+}
/* Test closing a file or socket.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test connecting a client socket.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of <ctype.h> substitute.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
/* Test the gnulib dirname module.
- Copyright (C) 2005-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2005-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test duplicating file descriptors.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
# include "cloexec.h"
#endif
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
/* Get declarations of the native Windows API functions. */
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
static int
is_open (int fd)
{
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
/* On native Windows, the initial state of unassigned standard file
descriptors is that they are open but point to an
INVALID_HANDLE_VALUE, and there is no fcntl. */
static int
is_inheritable (int fd)
{
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
/* On native Windows, the initial state of unassigned standard file
descriptors is that they are open but point to an
INVALID_HANDLE_VALUE, and there is no fcntl. */
/* Test of environ variable.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
/* Test of <errno.h> substitute.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
/* Test suite for exclude.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
This file is part of the GNUlib Library.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
#include <stdio.h>
#! /bin/sh
# Test suite for exclude.
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
. "${srcdir=.}/init.sh"; path_prepend_ .
fail=0
#! /bin/sh
# Test suite for exclude.
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
. "${srcdir=.}/init.sh"; path_prepend_ .
fail=0
#! /bin/sh
# Test suite for exclude.
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
. "${srcdir=.}/init.sh"; path_prepend_ .
fail=0
#! /bin/sh
# Test suite for exclude.
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
. "${srcdir=.}/init.sh"; path_prepend_ .
fail=0
#! /bin/sh
# Test suite for exclude.
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
. "${srcdir=.}/init.sh"; path_prepend_ .
fail=0
#! /bin/sh
# Test suite for exclude.
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
. "${srcdir=.}/init.sh"; path_prepend_ .
fail=0
#! /bin/sh
# Test suite for exclude.
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
. "${srcdir=.}/init.sh"; path_prepend_ .
fail=0
#! /bin/sh
# Test suite for exclude.
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
. "${srcdir=.}/init.sh"; path_prepend_ .
fail=0
/* Test of <fcntl.h> substitute.
- Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Check that the various O_* macros are defined. */
int o = (O_DIRECT | O_DIRECTORY | O_DSYNC | O_IGNORE_CTTY | O_NDELAY | O_NOATIME
- | O_NONBLOCK | O_NOCTTY | O_NOFOLLOW | O_NOLINK | O_NOLINKS | O_NOTRANS
- | O_RSYNC | O_SYNC | O_TTY_INIT | O_BINARY | O_TEXT);
+ | O_NONBLOCK | O_NOCTTY | O_NOFOLLOW | O_NOLINK | O_NOLINKS | O_NOTRANS
+ | O_RSYNC | O_SYNC | O_TTY_INIT | O_BINARY | O_TEXT);
/* Check that the various SEEK_* macros are defined. */
int sk[] = { SEEK_CUR, SEEK_END, SEEK_SET };
/* Test of fcntl(2).
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
#include <stdbool.h>
#include <unistd.h>
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
/* Get declarations of the native Windows API functions. */
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
static bool
is_open (int fd)
{
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
/* On native Windows, the initial state of unassigned standard file
descriptors is that they are open but point to an
INVALID_HANDLE_VALUE, and there is no fcntl. */
static bool
is_inheritable (int fd)
{
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
/* On native Windows, the initial state of unassigned standard file
descriptors is that they are open but point to an
INVALID_HANDLE_VALUE, and there is no fcntl. */
ASSERT (errno == EINVAL);
errno = 0;
ASSERT (fcntl (fd, F_DUPFD_CLOEXEC, bad_fd) == -1);
- ASSERT (errno == EINVAL);
+ ASSERT (errno == EINVAL
+ || errno == EMFILE /* WSL */);
/* For F_DUPFD*, check for correct inheritance, as well as
preservation of text vs. binary. */
/* Test opening a stream with a file descriptor.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of fgetc() function.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of concatenation of two arbitrary file names.
- Copyright (C) 1996-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1996-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Jim Meyering. */
#include "filenamecat.h"
#include <stdbool.h>
+#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
{"a", "/b", "a/b"},
{"/", "b", "/b"},
- {"/", "/b", "/b"},
- {"/", "/", "/"},
+ {"/", "/b", "/./b"}, /* This result could be shorter. */
+ {"/", "/", "/./"}, /* This result could be shorter. */
{"a", "/", "a/"}, /* this might deserve a diagnostic */
{"/a", "/", "/a/"}, /* this might deserve a diagnostic */
- {"a", "//b", "a/b"},
+ {"a", "//b", "a//b"},
{"", "a", "a"}, /* this might deserve a diagnostic */
};
unsigned int i;
char *base_in_result;
char const *const *t = tests[i];
char *res = file_name_concat (t[0], t[1], &base_in_result);
+ ptrdiff_t prefixlen = base_in_result - res;
+ size_t t0len = strlen (t[0]);
+ size_t reslen = strlen (res);
if (strcmp (res, t[2]) != 0)
{
fprintf (stderr, "test #%u: got %s, expected %s\n", i, res, t[2]);
fail = true;
}
+ if (strcmp (t[1], base_in_result) != 0)
+ {
+ fprintf (stderr, "test #%u: base %s != base_in_result %s\n",
+ i, t[1], base_in_result);
+ fail = true;
+ }
+ if (! (0 <= prefixlen && prefixlen <= reslen))
+ {
+ fprintf (stderr, "test #%u: base_in_result is not in result\n", i);
+ fail = true;
+ }
+ if (reslen < t0len || memcmp (res, t[0], t0len) != 0)
+ {
+ fprintf (stderr, "test #%u: %s is not a prefix of %s\n",
+ i, t[0], res);
+ fail = true;
+ }
}
exit (fail ? EXIT_FAILURE : EXIT_SUCCESS);
}
/* Test of <float.h> substitute.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2011. */
--- /dev/null
+/* Test of <fnmatch.h> substitute.
+ Copyright (C) 2018 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2018. */
+
+#include <config.h>
+
+#include <fnmatch.h>
+
+/* Check that the various FNM_* macros are defined. */
+int ret = FNM_NOMATCH;
+int options[] = { FNM_PATHNAME, FNM_PERIOD, FNM_NOESCAPE };
+
+int
+main (void)
+{
+ return 0;
+}
/* Test of fnmatch string matching function.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Simon Josefsson <simon@josefsson.org>, 2009. */
/* Test of fputc() function.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of fread() function.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of reopening a stream.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
/* Test of opening a file stream.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Tests of fstat() function.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test truncating a file.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of fwrite() function.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of getcwd() function.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of getdtablesize() function.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
/* Test of command line argument processing.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
/* Test of command line argument processing.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
/* Test of command line argument processing.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
/* Test of command line argument processing.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
#include <stdbool.h>
-#include "macros.h"
/* The glibc/gnulib implementation of getopt supports setting optind =
0, but not all other implementations do. This matters for getopt.
}
/* Check that 'W' does not dump core:
- http://sourceware.org/bugzilla/show_bug.cgi?id=12922
+ https://sourceware.org/bugzilla/show_bug.cgi?id=12922
Technically, POSIX says the presence of ';' in the opt-string
gives unspecified behavior, so we only test this when GNU compliance
is desired. */
/* Test of command line argument processing.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
}
/* Test that 'W' does not dump core:
- http://sourceware.org/bugzilla/show_bug.cgi?id=12922 */
+ https://sourceware.org/bugzilla/show_bug.cgi?id=12922 */
{
int argc = 0;
const char *argv[10];
/* Test behavior of getopt_long when POSIXLY_CORRECT is set in the
environment. Options with optional arguments should not change
behavior just because of an environment variable.
- http://lists.gnu.org/archive/html/bug-m4/2006-09/msg00028.html */
+ https://lists.gnu.org/r/bug-m4/2006-09/msg00028.html */
static void
test_getopt_long_posix (void)
{
/* Test the gnulib getprogname module.
- Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ Copyright (C) 2016-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/*
- * Copyright (C) 2005, 2007, 2009-2017 Free Software Foundation, Inc.
+ * Copyright (C) 2005, 2007, 2009-2018 Free Software Foundation, Inc.
* Written by Jim Meyering.
*
* This program is free software: you can redistribute it and/or modify
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ * along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/*
- * Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ * Copyright (C) 2009-2018 Free Software Foundation, Inc.
* Written by Jim Meyering
*
* This program is free software: you can redistribute it and/or modify
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ * along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of <iconv.h> substitute.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of character set conversion.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test the "ignore-value" module.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake. */
/* Test of inet_pton function.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
#!/bin/sh
# Unit tests for init.sh
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>. */
+# along with this program. If not, see <https://www.gnu.org/licenses/>. */
: ${srcdir=.}
. "$srcdir/init.sh"; path_prepend_ .
/* Test intprops.h.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
#include "macros.h"
+/* Compile-time verification of expression X.
+ In this file, we need it as a statement, rather than as a declaration. */
+#define verify_stmt(x) do { verify (x); } while (0)
+
/* VERIFY (X) uses a static assertion for compilers that are known to work,
and falls back on a dynamic assertion for other compilers.
These tests should be checkable via 'verify' rather than 'ASSERT', but
using 'verify' would run into a bug with HP-UX 11.23 cc; see
- <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00401.html>. */
+ <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00401.html>. */
#if __GNUC__ || __SUNPRO_C
-# define VERIFY(x) do { verify (x); } while (0)
+# define VERIFY(x) verify_stmt (x)
#else
# define VERIFY(x) ASSERT (x)
#endif
VERIFY (TYPE_MINIMUM (unsigned long int) == 0);
VERIFY (TYPE_MAXIMUM (unsigned long int) == ULONG_MAX);
#ifdef LLONG_MAX
- verify (TYPE_MINIMUM (long long int) == LLONG_MIN);
- verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
+ verify_stmt (TYPE_MINIMUM (long long int) == LLONG_MIN);
+ verify_stmt (TYPE_MAXIMUM (long long int) == LLONG_MAX);
+ verify_stmt (TYPE_MINIMUM (unsigned long long int) == 0);
+ verify_stmt (TYPE_MAXIMUM (unsigned long long int) == ULLONG_MAX);
#endif
VERIFY (TYPE_MINIMUM (intmax_t) == INTMAX_MIN);
VERIFY (TYPE_MAXIMUM (intmax_t) == INTMAX_MAX);
/* TYPE_WIDTH. */
#ifdef CHAR_WIDTH
- verify (TYPE_WIDTH (char) == CHAR_WIDTH);
- verify (TYPE_WIDTH (signed char) == SCHAR_WIDTH);
- verify (TYPE_WIDTH (unsigned char) == UCHAR_WIDTH);
- verify (TYPE_WIDTH (short int) == SHRT_WIDTH);
- verify (TYPE_WIDTH (unsigned short int) == USHRT_WIDTH);
- verify (TYPE_WIDTH (int) == INT_WIDTH);
- verify (TYPE_WIDTH (unsigned int) == UINT_WIDTH);
- verify (TYPE_WIDTH (long int) == LONG_WIDTH);
- verify (TYPE_WIDTH (unsigned long int) == ULONG_WIDTH);
+ verify_stmt (TYPE_WIDTH (char) == CHAR_WIDTH);
+ verify_stmt (TYPE_WIDTH (signed char) == SCHAR_WIDTH);
+ verify_stmt (TYPE_WIDTH (unsigned char) == UCHAR_WIDTH);
+ verify_stmt (TYPE_WIDTH (short int) == SHRT_WIDTH);
+ verify_stmt (TYPE_WIDTH (unsigned short int) == USHRT_WIDTH);
+ verify_stmt (TYPE_WIDTH (int) == INT_WIDTH);
+ verify_stmt (TYPE_WIDTH (unsigned int) == UINT_WIDTH);
+ verify_stmt (TYPE_WIDTH (long int) == LONG_WIDTH);
+ verify_stmt (TYPE_WIDTH (unsigned long int) == ULONG_WIDTH);
#ifdef LLONG_WIDTH
- verify (TYPE_WIDTH (long long int) == LLONG_WIDTH);
- verify (TYPE_WIDTH (unsigned long long int) == ULLONG_WIDTH);
+ verify_stmt (TYPE_WIDTH (long long int) == LLONG_WIDTH);
+ verify_stmt (TYPE_WIDTH (unsigned long long int) == ULLONG_WIDTH);
#endif
#endif
/* Test inttostr functions, and incidentally, INT_BUFSIZE_BOUND
- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ Copyright (C) 2010-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Jim Meyering. */
/* Test of <inttypes.h> substitute.
- Copyright (C) 2006-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2006-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of ioctl() function.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of isblank() function.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
/* Test of iswblank() function.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of <langinfo.h> substitute.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
/* Test of <limits.h> substitute.
- Copyright 2016-2017 Free Software Foundation, Inc.
+ Copyright 2016-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
# pragma GCC diagnostic ignored "-Woverlength-strings"
#endif
-/* Macros specified by ISO/IEC TS 18661-1:2014. */
-
#define verify_width(width, min, max) \
verify ((max) >> ((width) - 1 - ((min) < 0)) == 1)
+/* Macros borrowed from intprops.h. */
+#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
+#define TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT)
+#define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t))
+#define TYPE_MAXIMUM(t) \
+ ((t) (! TYPE_SIGNED (t) \
+ ? (t) -1 \
+ : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1)))
+
+/* Type width macros. */
+
+int type_bits[] =
+ {
+ CHAR_BIT,
+ WORD_BIT,
+ LONG_BIT
+ };
+verify_width (CHAR_BIT, CHAR_MIN, CHAR_MAX);
+verify_width (WORD_BIT, INT_MIN, INT_MAX);
+verify_width (LONG_BIT, LONG_MIN, LONG_MAX);
+
+/* Numerical limit macros. */
+
+char limits1[] = { CHAR_MIN, CHAR_MAX };
+verify (TYPE_MINIMUM (char) == CHAR_MIN);
+verify (TYPE_MAXIMUM (char) == CHAR_MAX);
+
+signed char limits2[] = { SCHAR_MIN, SCHAR_MAX };
+verify (TYPE_MINIMUM (signed char) == SCHAR_MIN);
+verify (TYPE_MAXIMUM (signed char) == SCHAR_MAX);
+
+unsigned char limits3[] = { UCHAR_MAX };
+verify (TYPE_MINIMUM (unsigned char) == 0);
+verify (TYPE_MAXIMUM (unsigned char) == UCHAR_MAX);
+
+short limits4[] = { SHRT_MIN, SHRT_MAX };
+verify (TYPE_MINIMUM (short int) == SHRT_MIN);
+verify (TYPE_MAXIMUM (short int) == SHRT_MAX);
+
+unsigned short limits5[] = { USHRT_MAX };
+verify (TYPE_MINIMUM (unsigned short int) == 0);
+verify (TYPE_MAXIMUM (unsigned short int) == USHRT_MAX);
+
+int limits6[] = { INT_MIN, INT_MAX };
+verify (TYPE_MINIMUM (int) == INT_MIN);
+verify (TYPE_MAXIMUM (int) == INT_MAX);
+
+unsigned int limits7[] = { UINT_MAX };
+verify (TYPE_MINIMUM (unsigned int) == 0);
+verify (TYPE_MAXIMUM (unsigned int) == UINT_MAX);
+
+long limits8[] = { LONG_MIN, LONG_MAX };
+verify (TYPE_MINIMUM (long int) == LONG_MIN);
+verify (TYPE_MAXIMUM (long int) == LONG_MAX);
+
+unsigned long limits9[] = { ULONG_MAX };
+verify (TYPE_MINIMUM (unsigned long int) == 0);
+verify (TYPE_MAXIMUM (unsigned long int) == ULONG_MAX);
+
+long long limits10[] = { LLONG_MIN, LLONG_MAX };
+verify (TYPE_MINIMUM (long long int) == LLONG_MIN);
+verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
+
+unsigned long long limits11[] = { ULLONG_MAX };
+verify (TYPE_MINIMUM (unsigned long long int) == 0);
+verify (TYPE_MAXIMUM (unsigned long long int) == ULLONG_MAX);
+
+/* Macros specified by ISO/IEC TS 18661-1:2014. */
+
verify_width (CHAR_WIDTH, CHAR_MIN, CHAR_MAX);
verify_width (SCHAR_WIDTH, SCHAR_MIN, SCHAR_MAX);
verify_width (UCHAR_WIDTH, 0, UCHAR_MAX);
/* Test listen() function.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
--- /dev/null
+/* Manual test of localcharset() function.
+ Copyright (C) 2018 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* This program prints the result of locale_charset in the current locale.
+ One way to use it is:
+ $ for l in `locale -a`; do
+ echo -n "$l "; LANG=$l ./test-localcharset;
+ done \
+ | sort -k 2
+ */
+
+#include <config.h>
+
+#include "localcharset.h"
+
+#include <locale.h>
+#include <stdio.h>
+
+int
+main (void)
+{
+ setlocale (LC_ALL, "");
+ printf ("%s\n", locale_charset ());
+
+ return 0;
+}
/* Test of <locale.h> substitute.
- Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of localeconv() function.
- Copyright (C) 2012-2017 Free Software Foundation, Inc.
+ Copyright (C) 2012-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2012. */
ASSERT (STREQ (l->decimal_point, "."));
ASSERT (STREQ (l->thousands_sep, ""));
-#if !((defined __FreeBSD__ || defined __DragonFly__) || defined __sun)
+#if !((defined __FreeBSD__ || defined __DragonFly__) || defined __sun || defined __CYGWIN__)
ASSERT (STREQ (l->grouping, ""));
#endif
ASSERT (STREQ (l->mon_decimal_point, ""));
ASSERT (STREQ (l->mon_thousands_sep, ""));
-#if !((defined __FreeBSD__ || defined __DragonFly__) || defined __sun)
+#if !((defined __FreeBSD__ || defined __DragonFly__) || defined __sun || defined __CYGWIN__)
ASSERT (STREQ (l->mon_grouping, ""));
#endif
ASSERT (STREQ (l->positive_sign, ""));
/* Test of lstat() function.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Simon Josefsson, 2008; and Eric Blake, 2009. */
/* Test of lstat() function.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Simon Josefsson, 2008; and Eric Blake, 2009. */
/* Test of safe automatic memory allocation.
- Copyright (C) 2005, 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2005. */
/* Test of conversion of multibyte character to wide character.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
#include "macros.h"
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+#if defined _WIN32 && !defined __CYGWIN__
static int
test_one_locale (const char *name, int codepage)
/* Test of conversion of multibyte character to wide character.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
wc = (wchar_t) 0xBADFACE;
ret = mbrtowc (&wc, buf, 1, &state);
ASSERT (ret == 1);
- ASSERT (wc == c);
+ if (c < 0x80)
+ /* c is an ASCII character. */
+ ASSERT (wc == c);
+ else
+ /* argv[1] starts with '5', that is, we are testing the C or POSIX
+ locale.
+ On most platforms, the bytes 0x80..0xFF map to U+0080..U+00FF.
+ But on musl libc, the bytes 0x80..0xFF map to U+DF80..U+DFFF. */
+ ASSERT (wc == (btowc (c) == WEOF ? c : btowc (c)));
ASSERT (mbsinit (&state));
ret = mbrtowc (NULL, buf, 1, &state);
ASSERT (ret == 1);
/* Test of case-insensitive string comparison function.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of test for initial conversion state.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
/* Test of conversion of string to wide string.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
/* Test of searching in a string.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of searching in a string.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of searching in a string.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/*
- * Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2018 Free Software Foundation, Inc.
* Written by Eric Blake and Bruno Haible
*
* This program is free software: you can redistribute it and/or modify
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ * along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
--- /dev/null
+/* Tests of mkdir.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Written by Eric Blake <ebb9@byu.net>, 2009. */
+
+#include <config.h>
+
+#include <sys/stat.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (mkdir, int, (char const *, mode_t));
+
+#include <fcntl.h>
+#include <errno.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "ignore-value.h"
+#include "macros.h"
+
+#define BASE "test-mkdir.t"
+
+#include "test-mkdir.h"
+
+int
+main (void)
+{
+ /* Clean up any trash from prior testsuite runs. */
+ ignore_value (system ("rm -rf " BASE "*"));
+
+ return test_mkdir (mkdir, true);
+}
--- /dev/null
+/* Test of mkdir() function.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* This file is designed to test both mkdir(a,b) and
+ mkdirat(AT_FDCWD,a,b). FUNC is the function to test. Assumes that
+ BASE and ASSERT are already defined, and that appropriate headers
+ are already included. If PRINT, warn before skipping tests with
+ status 77 when symlinks are unsupported. */
+
+static int
+test_mkdir (int (*func) (char const *, mode_t), bool print)
+{
+ /* Test basic error handling. */
+ ASSERT (close (creat (BASE "file", 0600)) == 0);
+ errno = 0;
+ ASSERT (func (BASE "file", 0700) == -1);
+ ASSERT (errno == EEXIST);
+ errno = 0;
+ ASSERT (func (BASE "file/", 0700) == -1);
+ ASSERT (errno == ENOTDIR || errno == EEXIST);
+ errno = 0;
+ ASSERT (func (BASE "file/dir", 0700) == -1);
+ ASSERT (errno == ENOTDIR || errno == ENOENT || errno == EOPNOTSUPP);
+ ASSERT (unlink (BASE "file") == 0);
+ errno = 0;
+ ASSERT (func ("", 0700) == -1);
+ ASSERT (errno == ENOENT);
+ errno = 0;
+ ASSERT (func (BASE "dir/sub", 0700) == -1);
+ ASSERT (errno == ENOENT);
+ errno = 0;
+ ASSERT (func (BASE "dir/.", 0700) == -1);
+ ASSERT (errno == ENOENT);
+ errno = 0;
+ ASSERT (func (BASE "dir/.//", 0700) == -1);
+ ASSERT (errno == ENOENT);
+
+ /* Test trailing slash handling. */
+ ASSERT (func (BASE "dir", 0700) == 0);
+ errno = 0;
+ ASSERT (func (BASE "dir", 0700) == -1);
+ ASSERT (errno == EEXIST);
+ ASSERT (rmdir (BASE "dir") == 0);
+ ASSERT (func (BASE "dir/", 0700) == 0);
+ errno = 0;
+ ASSERT (func (BASE "dir/", 0700) == -1);
+ ASSERT (errno == EEXIST);
+ ASSERT (rmdir (BASE "dir") == 0);
+
+ /* Test symlink behavior. POSIX requires the creation of
+ directories through a dangling symlink with trailing slash, but
+ GNU does not yet implement that, so we support either behavior
+ for now. */
+ if (symlink (BASE "dir", BASE "link"))
+ {
+ if (print)
+ fputs ("skipping test: symlinks not supported on this file system\n",
+ stderr);
+ return 77;
+ }
+ errno = 0;
+ ASSERT (func (BASE "link", 0700) == -1);
+ ASSERT (errno == EEXIST);
+ {
+ int result;
+ errno = 0;
+ result = func (BASE "link/", 0700);
+ if (!result)
+ ASSERT (rmdir (BASE "dir") == 0);
+ else
+ {
+ ASSERT (result == -1);
+ ASSERT (errno == EEXIST);
+ errno = 0;
+ ASSERT (rmdir (BASE "dir") == -1);
+ ASSERT (errno == ENOENT);
+ }
+ }
+ errno = 0;
+ ASSERT (func (BASE "link/.", 0700) == -1);
+ ASSERT (errno == ENOENT);
+ ASSERT (unlink (BASE "link") == 0);
+
+ return 0;
+}
/* Test of nanosleep() function.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
/* Test of <netinet/in.h> substitute.
- Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of nl_langinfo replacement.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
ASSERT (strlen (nl_langinfo (MON_10)) > 0);
ASSERT (strlen (nl_langinfo (MON_11)) > 0);
ASSERT (strlen (nl_langinfo (MON_12)) > 0);
+ ASSERT (strlen (nl_langinfo (ALTMON_1)) > 0);
+ ASSERT (strlen (nl_langinfo (ALTMON_2)) > 0);
+ ASSERT (strlen (nl_langinfo (ALTMON_3)) > 0);
+ ASSERT (strlen (nl_langinfo (ALTMON_4)) > 0);
+ ASSERT (strlen (nl_langinfo (ALTMON_5)) > 0);
+ ASSERT (strlen (nl_langinfo (ALTMON_6)) > 0);
+ ASSERT (strlen (nl_langinfo (ALTMON_7)) > 0);
+ ASSERT (strlen (nl_langinfo (ALTMON_8)) > 0);
+ ASSERT (strlen (nl_langinfo (ALTMON_9)) > 0);
+ ASSERT (strlen (nl_langinfo (ALTMON_10)) > 0);
+ ASSERT (strlen (nl_langinfo (ALTMON_11)) > 0);
+ ASSERT (strlen (nl_langinfo (ALTMON_12)) > 0);
+ /* In the tested locales, alternate month names and month names ought to be
+ the same. */
+ ASSERT (strcmp (nl_langinfo (ALTMON_1), nl_langinfo (MON_1)) == 0);
+ ASSERT (strcmp (nl_langinfo (ALTMON_2), nl_langinfo (MON_2)) == 0);
+ ASSERT (strcmp (nl_langinfo (ALTMON_3), nl_langinfo (MON_3)) == 0);
+ ASSERT (strcmp (nl_langinfo (ALTMON_4), nl_langinfo (MON_4)) == 0);
+ ASSERT (strcmp (nl_langinfo (ALTMON_5), nl_langinfo (MON_5)) == 0);
+ ASSERT (strcmp (nl_langinfo (ALTMON_6), nl_langinfo (MON_6)) == 0);
+ ASSERT (strcmp (nl_langinfo (ALTMON_7), nl_langinfo (MON_7)) == 0);
+ ASSERT (strcmp (nl_langinfo (ALTMON_8), nl_langinfo (MON_8)) == 0);
+ ASSERT (strcmp (nl_langinfo (ALTMON_9), nl_langinfo (MON_9)) == 0);
+ ASSERT (strcmp (nl_langinfo (ALTMON_10), nl_langinfo (MON_10)) == 0);
+ ASSERT (strcmp (nl_langinfo (ALTMON_11), nl_langinfo (MON_11)) == 0);
+ ASSERT (strcmp (nl_langinfo (ALTMON_12), nl_langinfo (MON_12)) == 0);
ASSERT (strlen (nl_langinfo (ABMON_1)) > 0);
ASSERT (strlen (nl_langinfo (ABMON_2)) > 0);
ASSERT (strlen (nl_langinfo (ABMON_3)) > 0);
-/* Test that posixtime works as required.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+/* Test that nstrftime works as required.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Jim Meyering. */
#include <errno.h>
#include <stdio.h>
-#include <time.h>
#include <string.h>
+#include <time.h>
+#include <unistd.h>
#include "macros.h"
#define STREQ(a, b) (strcmp (a, b) == 0)
+/* Support for settings like TZ='<+00>0' was added in IEEE Std 1003.1-2001. */
+#define TZ_ANGLE_BRACKETS_SHOULD_WORK (200112 <= _POSIX_VERSION)
+
struct posixtm_test
{
time_t in;
{ TZ+CentEur, 0, "1970-01-01 01:00:00 +0100 (CET)", 0 },
{ TZ+Japan , 0, "1970-01-01 09:00:00 +0900 (JST)", 0 },
{ TZ+NZ , 0, "1970-01-01 13:00:00 +1300 (NZDT)", 1 },
- { TZ+Unknown, 0, "1970-01-01 00:00:00 -0000 (-00)", 0 },
{ TZ+Pacific, 500000001, "1985-11-04 16:53:21 -0800 (PST)", 0 },
{ TZ+Arizona, 500000001, "1985-11-04 17:53:21 -0700 (MST)", 0 },
{ TZ+UTC , 500000001, "1985-11-05 00:53:21 +0000 (UTC)", 0 },
{ TZ+CentEur, 500000001, "1985-11-05 01:53:21 +0100 (CET)", 1 },
{ TZ+Japan , 500000001, "1985-11-05 09:53:21 +0900 (JST)", 0 },
{ TZ+NZ , 500000001, "1985-11-05 13:53:21 +1300 (NZDT)", 0 },
- { TZ+Unknown, 500000001, "1985-11-05 00:53:21 -0000 (-00)", 0 },
{ TZ+Pacific, 1000000002, "2001-09-08 18:46:42 -0700 (PDT)", 0 },
{ TZ+Arizona, 1000000002, "2001-09-08 18:46:42 -0700 (MST)", 0 },
{ TZ+UTC , 1000000002, "2001-09-09 01:46:42 +0000 (UTC)", 0 },
{ TZ+CentEur, 1000000002, "2001-09-09 03:46:42 +0200 (CEST)", 0 },
{ TZ+Japan , 1000000002, "2001-09-09 10:46:42 +0900 (JST)", 0 },
{ TZ+NZ , 1000000002, "2001-09-09 13:46:42 +1200 (NZST)", 0 },
+#if TZ_ANGLE_BRACKETS_SHOULD_WORK
+ { TZ+Unknown, 0, "1970-01-01 00:00:00 -0000 (-00)", 0 },
+ { TZ+Unknown, 500000001, "1985-11-05 00:53:21 -0000 (-00)", 0 },
{ TZ+Unknown, 1000000002, "2001-09-09 01:46:42 -0000 (-00)", 0 },
+#endif
{ 0 }
};
/* Test of opening a file descriptor.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of opening a file descriptor.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of "pathmax.h".
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2011. */
/* Test of perror() function.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of perror() function.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
perror (NULL);
#if 0
/* Commented out until cygwin behaves:
- http://sourceware.org/ml/newlib/2011/msg00228.html */
+ https://sourceware.org/ml/newlib/2011/msg00228.html */
ASSERT (errno > 0);
/* Commented out until glibc behaves:
- http://sourceware.org/bugzilla/show_bug.cgi?id=12792 */
+ https://sourceware.org/bugzilla/show_bug.cgi?id=12792 */
ASSERT (ferror (stderr));
#endif
}
/* Test of pipe.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
#include <fcntl.h>
#include <stdbool.h>
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
/* Get declarations of the native Windows API functions. */
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
static bool
is_open (int fd)
{
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
/* On native Windows, the initial state of unassigned standard file
descriptors is that they are open but point to an
INVALID_HANDLE_VALUE, and there is no fcntl. */
static bool
is_cloexec (int fd)
{
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
HANDLE h = (HANDLE) _get_osfhandle (fd);
DWORD flags;
ASSERT (GetHandleInformation (h, &flags));
static bool
is_nonblocking (int fd)
{
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
/* We don't use the non-blocking mode for sockets here. */
return 0;
#else
/* Test of quotearg family of functions.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2008. */
/* Test of quotearg family of functions.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2008. */
/* Test raising a signal.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/*
- * Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2018 Free Software Foundation, Inc.
* Written by Eric Blake and Bruno Haible
*
* This program is free software: you can redistribute it and/or modify
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ * along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Tests of readlink.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
/* Tests of readlink.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
/* Test regular expressions
- Copyright 1996-2001, 2003-2017 Free Software Foundation, Inc.
+ Copyright 1996-2001, 2003-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
if (setlocale (LC_ALL, "en_US.UTF-8"))
{
{
- /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html
+ /* https://sourceware.org/ml/libc-hacker/2006-09/msg00008.html
This test needs valgrind to catch the bug on Debian
GNU/Linux 3.1 x86, but it might catch the bug better
on other platforms and it shouldn't hurt to try the
{
/* This test is from glibc bug 15078.
The test case is from Andreas Schwab in
- <http://www.sourceware.org/ml/libc-alpha/2013-01/msg00967.html>.
+ <https://sourceware.org/ml/libc-alpha/2013-01/msg00967.html>.
*/
static char const pat[] = "[^x]x";
static char const data[] =
}
/* Catch a bug reported by Vin Shelton in
- http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html
+ https://lists.gnu.org/r/bug-coreutils/2007-06/msg00089.html
*/
re_set_syntax (RE_SYNTAX_POSIX_BASIC
& ~RE_CONTEXT_INVALID_DUP
if (! REG_STARTEND)
result |= 64;
+ /* Matching with the compiled form of this regexp would provoke
+ an assertion failure prior to glibc-2.28:
+ regexec.c:1375: pop_fail_stack: Assertion 'num >= 0' failed
+ With glibc-2.28, compilation fails and reports the invalid
+ back reference. */
+ re_set_syntax (RE_SYNTAX_POSIX_EGREP);
+ memset (®ex, 0, sizeof regex);
+ s = re_compile_pattern ("0|()0|\\1|0", 10, ®ex);
+ if (!s || strcmp (s, "Invalid back reference"))
+ result |= 64;
+
#if 0
/* It would be nice to reject hosts whose regoff_t values are too
narrow (including glibc on hosts with 64-bit ptrdiff_t and
/* Test of select() substitute, reading or writing from a given file descriptor.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
/* Test of select() substitute, reading from stdin.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
/* Test of select() substitute.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paolo Bonzini, 2008. */
/* Test of select() substitute.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paolo Bonzini, 2008. */
#include <stdio.h>
#include <string.h>
+#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include "macros.h"
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
# define WINDOWS_NATIVE
#endif
# include <sys/wait.h>
#endif
-#ifndef SO_REUSEPORT
-# define SO_REUSEPORT SO_REUSEADDR
-#endif
-
#define TEST_PORT 12345
/* Can't test FD_SETSIZE + 1 for EINVAL, since some systems allow
dynamically larger set size by redefining FD_SETSIZE anywhere up
to the actual maximum fd. */
- /* if (do_select_bad_nfd_nowait (FD_SETSIZE + 1, my_select) != -1 */
- /* || errno != EINVAL) */
- /* failed ("invalid errno after bogus nfds"); */
+#if 0
+ if (do_select_bad_nfd_nowait (FD_SETSIZE + 1, my_select) != -1
+ || errno != EINVAL)
+ failed ("invalid errno after bogus nfds");
+#endif
}
/* Test select(2) on invalid file descriptors. */
# else
fd = 99;
# endif
+ /* Even on the best POSIX compliant platforms, values of fd >= FD_SETSIZE
+ require an nfds argument that is > FD_SETSIZE and thus may lead to EINVAL,
+ not EBADF. */
+ if (fd >= FD_SETSIZE)
+ fd = FD_SETSIZE - 1;
close (fd);
if (do_select_bad_fd_nowait (fd, SEL_IN, my_select) == 0 || errno != EBADF)
/* Tests of setenv.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
/* Test of setting the current locale.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of setting the current locale.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
French_France.65001 Japanese_Japan.65001 Turkish_Turkey.65001 \
Chinese_Taiwan.65001 Chinese_China.54936 Chinese_China.65001; do
# Here we use 'env' to set the LC_ALL environment variable, because on
- # Solaris 11 2011-11, the /bin/sh refuses to do it for Turkish_Turkey.65001.
+ # Solaris 11.0, the /bin/sh refuses to do it for Turkish_Turkey.65001.
env LC_ALL="$name" ./test-setlocale2${EXEEXT} 1 || exit 1
done
/* Test setsockopt() function.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of sh-quote module.
- Copyright (C) 2012-2017 Free Software Foundation, Inc.
+ Copyright (C) 2012-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2012. */
/* Test of sigaction() function.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2008. */
/* Test of <signal.h> substitute.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
/* Test of sigprocmask.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2011. */
#include "macros.h"
-#if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__)
+#if !(defined _WIN32 && !defined __CYGWIN__)
static volatile int sigint_occurred;
/* Test of sleep() function.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of snprintf() function.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/*
- * Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2018 Free Software Foundation, Inc.
* Written by Simon Josefsson.
*
* This program is free software: you can redistribute it and/or modify
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ * along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of <stat-time.h>.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by James Youngman <jay@gnu.org>, 2007. */
}
}
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+#if defined _WIN32 && !defined __CYGWIN__
/* Skip the ctime tests on native Windows platforms, because their
st_ctime is either the same as st_mtime (plus or minus an offset)
or set to the file _creation_ time, and is not influenced by rename
/* Tests of stat.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
/* Tests of stat.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
/* Test of <stdalign.h>.
- Copyright 2009-2017 Free Software Foundation, Inc.
+ Copyright 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert, inspired by Bruno Haible's test-alignof.c. */
return 77;
#elif defined __HP_cc && __ia64
/* Avoid a test failure due to HP-UX Itanium cc bug; see:
- http://lists.gnu.org/archive/html/bug-gnulib/2017-03/msg00078.html */
+ https://lists.gnu.org/r/bug-gnulib/2017-03/msg00078.html */
fputs ("Skipping test: known HP-UX Itanium cc compiler bug\n", stderr);
return 77;
#else
/* Test of <stdbool.h> substitute.
- Copyright (C) 2002-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
char o[sizeof n == m * sizeof n[0] ? 1 : -1];
char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
/* Catch a bug in an HP-UX C compiler. See
- http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
- http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+ https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+ https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html
*/
_Bool q = true;
_Bool *pq = &q;
/* Catch a bug in IBM AIX xlc compiler version 6.0.0.0
reported by James Lemley on 2005-10-05; see
- http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
+ https://lists.gnu.org/r/bug-coreutils/2005-10/msg00086.html
This is a runtime test, since a corresponding compile-time
test would rely on initializer extensions. */
{
/* Test of <stddef.h> substitute.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
/* Test of <stdint.h> substitute.
- Copyright (C) 2006-2017 Free Software Foundation, Inc.
+ Copyright (C) 2006-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2006. */
/* Test of <stdio.h> substitute.
- Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of <stdlib.h> substitute.
- Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of strerror() function.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2007. */
/* Test of strerror_r() function.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
errno = 0;
ret = strerror_r (err, buf, i);
ASSERT (errno == 0);
- if (err < 0)
+ if (j == 2)
ASSERT (ret == ERANGE || ret == EINVAL);
else
ASSERT (ret == ERANGE);
/* Test of character set conversion.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of <string.h> substitute.
- Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of <strings.h> substitute.
- Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/*
- * Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ * Copyright (C) 2010-2018 Free Software Foundation, Inc.
* Written by Eric Blake
*
* This program is free software: you can redistribute it and/or modify
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ * along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/*
- * Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ * Copyright (C) 2011-2018 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
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ * along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/*
- * Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ * Copyright (C) 2011-2018 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
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ * along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Tests of symlink.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
/* Tests of symlink.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
/* Test of <sys/ioctl.h> substitute.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
/* Test of <sys/select.h> substitute.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of <sys/socket.h> substitute.
- Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of <sys/stat.h> substitute.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of <sys/time.h> substitute.
- Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of <sys/types.h> substitute.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2011. */
/* Test of <sys/uio.h> substitute.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <eblake@redhat.com>, 2011. */
/* Test of <sys/wait.h> substitute.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
/* Test of macros shared between <sys/wait.h> and <stdlib.h>.
- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ Copyright (C) 2010-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2010. */
/* Test of <time.h> substitute.
- Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test timespec functions.
- Copyright 2015-2017 Free Software Foundation, Inc.
+ Copyright 2015-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
{
{ INT_MIN, 0 },
{ INT_MIN, 1 },
- { INT_MIN, TIMESPEC_RESOLUTION - 1 },
+ { INT_MIN, TIMESPEC_HZ - 1 },
{ INT_MIN + 1, 0 },
{ INT_MIN + 1, 1 },
- { INT_MIN + 1, TIMESPEC_RESOLUTION - 1 },
+ { INT_MIN + 1, TIMESPEC_HZ - 1 },
{ -1, 0 },
{ -1, 1 },
- { -1, TIMESPEC_RESOLUTION - 1 },
+ { -1, TIMESPEC_HZ - 1 },
{ 0, 0 },
{ 0, 1 },
- { 0, TIMESPEC_RESOLUTION - 1 },
+ { 0, TIMESPEC_HZ - 1 },
{ 1, 0 },
{ 1, 1 },
- { 1, TIMESPEC_RESOLUTION - 1 },
+ { 1, TIMESPEC_HZ - 1 },
{ 1234567890, 0 },
{ 1234567890, 1 },
- { 1234567890, TIMESPEC_RESOLUTION - 1 },
+ { 1234567890, TIMESPEC_HZ - 1 },
{ INT_MAX - 1, 0 },
{ INT_MAX - 1, 1 },
- { INT_MAX - 1, TIMESPEC_RESOLUTION - 1 },
+ { INT_MAX - 1, TIMESPEC_HZ - 1 },
{ INT_MAX, 0 },
{ INT_MAX, 1 },
- { INT_MAX, TIMESPEC_RESOLUTION - 1 },
- { INT_MAX, 2 * TIMESPEC_RESOLUTION }
+ { INT_MAX, TIMESPEC_HZ - 1 },
+ { INT_MAX, 2 * TIMESPEC_HZ }
};
enum { nprototypes = sizeof prototype / sizeof *prototype };
static bool
valid (struct timespec a)
{
- return 0 <= a.tv_nsec && a.tv_nsec < TIMESPEC_RESOLUTION;
+ return 0 <= a.tv_nsec && a.tv_nsec < TIMESPEC_HZ;
}
static int
extremal (struct timespec a)
{
return ((a.tv_sec == TYPE_MINIMUM (time_t) && a.tv_nsec == 0)
- || (a.tv_sec == TYPE_MAXIMUM (time_t)
- && a.tv_nsec == TIMESPEC_RESOLUTION - 1));
+ || (a.tv_sec == TYPE_MAXIMUM (time_t)
+ && a.tv_nsec == TIMESPEC_HZ - 1));
}
int
int i, j, k;
struct timespec test[nprototypes + 1];
int ntests;
- int computed_resolution = 1;
+ int computed_hz = 1;
struct timespec prevroundtrip;
test[0] = make_timespec (TYPE_MINIMUM (time_t), -1);
{
int s = prototype[i].s;
if (TYPE_SIGNED (time_t) || 0 <= s)
- {
- time_t t = (s <= INT_MIN + 1 ? s - INT_MIN + TYPE_MINIMUM (time_t)
- : INT_MAX - 1 <= s ? s - INT_MAX + TYPE_MAXIMUM (time_t)
- : s);
- test[ntests++] = make_timespec (t, prototype[i].ns);
- }
+ {
+ time_t t = (s <= INT_MIN + 1 ? s - INT_MIN + TYPE_MINIMUM (time_t)
+ : INT_MAX - 1 <= s ? s - INT_MAX + TYPE_MAXIMUM (time_t)
+ : s);
+ test[ntests++] = make_timespec (t, prototype[i].ns);
+ }
}
- for (i = 0; i < LOG10_TIMESPEC_RESOLUTION; i++)
- computed_resolution *= 10;
- ASSERT (computed_resolution == TIMESPEC_RESOLUTION);
+ for (i = 0; i < LOG10_TIMESPEC_HZ; i++)
+ computed_hz *= 10;
+ ASSERT (computed_hz == TIMESPEC_HZ);
for (i = 0; i < ntests; i++)
{
ASSERT (sign (timespec_sign (a)) == cmp (a, make_timespec (0, 0)));
if (valid (a))
- for (j = 0; j < ntests; j++)
- {
- struct timespec b = test[j];
- if (valid (b))
- {
- struct timespec sum = timespec_add (a, b);
- struct timespec diff = timespec_sub (a, b);
- struct timespec rdiff = timespec_sub (b, a);
- ASSERT (cmp (a, b) == sign (i - j));
- ASSERT (eq (sum, timespec_add (b, a)));
- if (! extremal (sum))
- {
- ASSERT (eq (a, timespec_sub (sum, b)));
- ASSERT (eq (b, timespec_sub (sum, a)));
-
- for (k = 0; k < ntests; k++)
- {
- struct timespec c = test[k];
- if (valid (c))
- {
- struct timespec sumbc = timespec_add (b, c);
- if (! extremal (sumbc))
- ASSERT (eq (timespec_add (a, sumbc),
- timespec_add (sum, c)));
- }
- }
- }
- if (! extremal (diff))
- ASSERT (eq (a, timespec_add (diff, b)));
- if (! extremal (rdiff))
- ASSERT (eq (b, timespec_add (rdiff, a)));
-
- }
- }
+ for (j = 0; j < ntests; j++)
+ {
+ struct timespec b = test[j];
+ if (valid (b))
+ {
+ struct timespec sum = timespec_add (a, b);
+ struct timespec diff = timespec_sub (a, b);
+ struct timespec rdiff = timespec_sub (b, a);
+ ASSERT (cmp (a, b) == sign (i - j));
+ ASSERT (eq (sum, timespec_add (b, a)));
+ if (! extremal (sum))
+ {
+ ASSERT (eq (a, timespec_sub (sum, b)));
+ ASSERT (eq (b, timespec_sub (sum, a)));
+
+ for (k = 0; k < ntests; k++)
+ {
+ struct timespec c = test[k];
+ if (valid (c))
+ {
+ struct timespec sumbc = timespec_add (b, c);
+ if (! extremal (sumbc))
+ ASSERT (eq (timespec_add (a, sumbc),
+ timespec_add (sum, c)));
+ }
+ }
+ }
+ if (! extremal (diff))
+ ASSERT (eq (a, timespec_add (diff, b)));
+ if (! extremal (rdiff))
+ ASSERT (eq (b, timespec_add (rdiff, a)));
+
+ }
+ }
}
return 0;
/* Test of <unistd.h> substitute.
- Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Tests of unsetenv.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2009. */
#!/bin/sh
# Test suite for update-copyright.
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
diffout=`diff -u /dev/null /dev/null 2>&1`
if test x"$diffout" = x"" && test $? -eq 0; then
/* Test of vasnprintf() and asnprintf() functions.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
ASSERT (result != NULL);
ASSERT (strcmp (result, "12345") == 0);
ASSERT (length == 5);
- if (size < 6)
+ if (size < 5 + 1)
+ ASSERT (result != buf);
+ ASSERT (memcmp (buf + size, &"DEADBEEF"[size], 8 - size) == 0);
+ if (result != buf)
+ free (result);
+ }
+
+ /* Note: This test assumes IEEE 754 representation of 'double' floats. */
+ for (size = 0; size <= 8; size++)
+ {
+ size_t length;
+ char *result;
+
+ memcpy (buf, "DEADBEEF", 8);
+ length = size;
+ result = my_asnprintf (buf, &length, "%2.0f", 1.6314159265358979e+125);
+ ASSERT (result != NULL);
+ /* The exact result and the result on glibc systems is
+ 163141592653589790215729350939528493057529598899734151772468186268423257777068536614838678161083520756952076273094236944990208
+ On Cygwin, the result is
+ 163141592653589790215729350939528493057529600000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ On HP-UX 11.31 / hppa and IRIX 6.5, the result is
+ 163141592653589790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ */
+ ASSERT (strlen (result) == 126);
+ ASSERT (memcmp (result, "163141592653589790", 18) == 0);
+ ASSERT (length == 126);
+ if (size < 126 + 1)
ASSERT (result != buf);
ASSERT (memcmp (buf + size, &"DEADBEEF"[size], 8 - size) == 0);
if (result != buf)
/* Test of vasprintf() and asprintf() functions.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
#!/bin/sh
# Unit tests for vc-list-files
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>. */
+# along with this program. If not, see <https://www.gnu.org/licenses/>. */
: ${srcdir=.}
. "$srcdir/init.sh"; path_prepend_ "$abs_aux_dir" .
#!/bin/sh
# Unit tests for vc-list-files
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>. */
+# along with this program. If not, see <https://www.gnu.org/licenses/>. */
: ${srcdir=.}
. "$srcdir/init.sh"; path_prepend_ "$abs_aux_dir" .
/* Test the "verify" module.
- Copyright (C) 2017 Free Software Foundation, Inc.
+ Copyright (C) 2017-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* This is a separate source file, so that the execution of test-verify.sh
does not interfere with the building of the 'test-verify' program. */
/* Test the "verify" module.
- Copyright (C) 2005, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible. */
/* Test suite for version-etc.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
This file is part of the GNUlib Library.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
#! /bin/sh
# Test suite for version-etc.
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+. "${srcdir=.}/init.sh"; path_prepend_ .
TMP=ve-expected.tmp
LC_ALL=C
cat > $TMP <<EOT
test-version-etc (PROJECT) VERSION
COPYRIGHT Free Software Foundation, Inc.
-License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
+License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Sergey Poznyakoff and Eric Blake.
EOT
-./test-version-etc${EXEEXT} --version |
+test-version-etc${EXEEXT} --version |
sed '1s/test-version-etc (.*) .*/test-version-etc (PROJECT) VERSION/
/^Packaged by/d
2,3 s/Copyright (C) [0-9]\{4,4\}/COPYRIGHT/' |
tr -d '\015' |
- diff -c $TMP - || ERR=1
+ compare $TMP - || ERR=1
rm $TMP
/* Test of <wchar.h> substitute.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of conversion of wide character to multibyte character.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
#include "macros.h"
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+#if defined _WIN32 && !defined __CYGWIN__
static int
test_one_locale (const char *name, int codepage)
/* Test of conversion of wide character to multibyte character.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
/* Test of <wctype.h> substitute.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of wcwidth() function.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
{
wchar_t wc;
-#ifdef C_CTYPE_ASCII
+#if !GNULIB_WCHAR_SINGLE
+# ifdef C_CTYPE_ASCII
/* Test width of ASCII characters. */
for (wc = 0x20; wc < 0x7F; wc++)
ASSERT (wcwidth (wc) == 1);
+# endif
#endif
/* Switch to an UTF-8 locale. */
/* Test of xalloc_die() function.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Simon Josefsson <simon@josefsson.org>, 2009. */
#!/bin/sh
# Test suite for xalloc_die.
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
. "${srcdir=.}/init.sh"; path_prepend_ .
/* Test of xstrtol module.
- Copyright (C) 1995-1996, 1998-2001, 2003-2017 Free Software Foundation, Inc.
+ Copyright (C) 1995-1996, 1998-2001, 2003-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test of xvasprintf() and xasprintf() functions.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Add two struct timespec values.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
/* Return the sum of two timespec values A and B. On overflow, return
- an extremal value. This assumes 0 <= tv_nsec < TIMESPEC_RESOLUTION. */
+ an extremal value. This assumes 0 <= tv_nsec < TIMESPEC_HZ. */
#include <config.h>
#include "timespec.h"
time_t rs = a.tv_sec;
time_t bs = b.tv_sec;
int ns = a.tv_nsec + b.tv_nsec;
- int nsd = ns - TIMESPEC_RESOLUTION;
+ int nsd = ns - TIMESPEC_HZ;
int rns = ns;
time_t tmin = TYPE_MINIMUM (time_t);
time_t tmax = TYPE_MAXIMUM (time_t);
{
high_overflow:
rs = tmax;
- rns = TIMESPEC_RESOLUTION - 1;
+ rns = TIMESPEC_HZ - 1;
}
}
/* Subtract two struct timespec values.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
/* Return the difference between two timespec values A and B. On
overflow, return an extremal value. This assumes 0 <= tv_nsec <
- TIMESPEC_RESOLUTION. */
+ TIMESPEC_HZ. */
#include <config.h>
#include "timespec.h"
if (ns < 0)
{
- rns = ns + TIMESPEC_RESOLUTION;
+ rns = ns + TIMESPEC_HZ;
if (bs < tmax)
bs++;
else if (- TYPE_SIGNED (time_t) < rs)
else
{
rs = tmax;
- rns = TIMESPEC_RESOLUTION - 1;
+ rns = TIMESPEC_HZ - 1;
}
}
/* Test of u8_mbtoucr() function.
- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ Copyright (C) 2010-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2010. */
/* Test of u8_uctomb() function.
- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ Copyright (C) 2010-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2010. */
/* Test of uc_width() function.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
/* Test of uc_width() function.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
0829..082D 0
082E..0858 A
0859..085B 0
-085C..08E2 A
-08E3..0902 0
+085C..08D3 A
+08D4..0902 0
0903..0939 A
093A 0
093B A
17DD 0
17DE..180A A
180B..180E 0
-180F..18A8 A
+180F..1884 A
+1885..1886 0
+1887..18A8 A
18A9 0
18AA..191F A
1920..1922 0
1CF8..1CF9 0
1CFA..1DBF A
1DC0..1DF5 0
-1DF6..1DFB A
-1DFC..1DFF 0
+1DF6..1DFA A
+1DFB..1DFF 0
1E00..200A A
200B..200F 0
2010..2029 A
A80C..A824 A
A825..A826 0
A827..A8C3 A
-A8C4 0
-A8C5..A8DF A
+A8C4..A8C5 0
+A8C6..A8DF A
A8E0..A8F1 0
A8F2..A925 A
A926..A92D 0
11234 0
11235 1
11236..11237 0
-11238..112DE 1
+11238..1123D 1
+1123E 0
+1123F..112DE 1
112DF 0
112E0..112E2 1
112E3..112EA 0
11366..1136C 0
1136D..1136F 1
11370..11374 0
-11375..114B2 1
+11375..11437 1
+11438..1143F 0
+11440..11441 1
+11442..11444 0
+11445 1
+11446 0
+11447..114B2 1
114B3..114B8 0
114B9 1
114BA 0
11722..11725 0
11726 1
11727..1172B 0
-1172C..16AEF 1
+1172C..11C2F 1
+11C30..11C36 0
+11C37 1
+11C38..11C3D 0
+11C3E..11C91 1
+11C92..11CA7 0
+11CA8..11CA9 1
+11CAA..11CB0 0
+11CB1 1
+11CB2..11CB3 0
+11CB4 1
+11CB5..11CB6 0
+11CB7..16AEF 1
16AF0..16AF4 0
16AF5..16B2F 1
16B30..16B36 0
1DA9B..1DA9F 0
1DAA0 1
1DAA1..1DAAF 0
-1DAB0..1E8CF 1
+1DAB0..1DFFF 1
+1E000..1E006 0
+1E007 1
+1E008..1E018 0
+1E019..1E01A 1
+1E01B..1E021 0
+1E022 1
+1E023..1E024 0
+1E025 1
+1E026..1E02A 0
+1E02B..1E8CF 1
1E8D0..1E8D6 0
-1E8D7..1FFFF 1
+1E8D7..1E943 1
+1E944..1E94A 0
+1E94B..1FFFF 1
20000..3FFFF 2
40000..E0000 1
E0001 0
/* A C macro for declaring that specific function parameters are not used.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* _GL_UNUSED_PARAMETER is a marker that can be appended to function parameter
declarations for parameters that are not used. This helps to reduce
/* w32sock.h --- internal auxiliary functions for Windows socket functions
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paolo Bonzini */
/* A C macro for emitting warnings if a function is used.
- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ Copyright (C) 2010-2018 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
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* _GL_WARN_ON_USE (function, "literal string") issues a declaration
for FUNCTION which will then trigger a compiler warning containing
supported by the compiler. If the compiler does not support this
feature, the macro expands to an unused extern declaration.
- This macro is useful for marking a function as a potential
+ _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the
+ attribute used in _GL_WARN_ON_USE. If the compiler does not support
+ this feature, it expands to empty.
+
+ These macros are useful for marking a function as a potential
portability trap, with the intent that "literal string" include
instructions on the replacement function that should be used
- instead. However, one of the reasons that a function is a
- portability trap is if it has the wrong signature. Declaring
- FUNCTION with a different signature in C is a compilation error, so
- this macro must use the same type as any existing declaration so
- that programs that avoid the problematic FUNCTION do not fail to
- compile merely because they included a header that poisoned the
- function. But this implies that _GL_WARN_ON_USE is only safe to
- use if FUNCTION is known to already have a declaration. Use of
- this macro implies that there must not be any other macro hiding
- the declaration of FUNCTION; but undefining FUNCTION first is part
- of the poisoning process anyway (although for symbols that are
- provided only via a macro, the result is a compilation error rather
- than a warning containing "literal string"). Also note that in
- C++, it is only safe to use if FUNCTION has no overloads.
+ instead.
+ _GL_WARN_ON_USE is for functions with 'extern' linkage.
+ _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline'
+ linkage.
+
+ However, one of the reasons that a function is a portability trap is
+ if it has the wrong signature. Declaring FUNCTION with a different
+ signature in C is a compilation error, so this macro must use the
+ same type as any existing declaration so that programs that avoid
+ the problematic FUNCTION do not fail to compile merely because they
+ included a header that poisoned the function. But this implies that
+ _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already
+ have a declaration. Use of this macro implies that there must not
+ be any other macro hiding the declaration of FUNCTION; but
+ undefining FUNCTION first is part of the poisoning process anyway
+ (although for symbols that are provided only via a macro, the result
+ is a compilation error rather than a warning containing
+ "literal string"). Also note that in C++, it is only safe to use if
+ FUNCTION has no overloads.
For an example, it is possible to poison 'getline' by:
- adding a call to gl_WARN_ON_USE_PREPARE([[#include <stdio.h>]],
(less common usage, like &environ, will cause a compilation error
rather than issue the nice warning, but the end result of informing
the developer about their portability problem is still achieved):
- #if HAVE_RAW_DECL_ENVIRON
- static char ***rpl_environ (void) { return &environ; }
- _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared");
- # undef environ
- # define environ (*rpl_environ ())
- #endif
+ #if HAVE_RAW_DECL_ENVIRON
+ static char ***
+ rpl_environ (void) { return &environ; }
+ _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared");
+ # undef environ
+ # define environ (*rpl_environ ())
+ #endif
+ or better (avoiding contradictory use of 'static' and 'extern'):
+ #if HAVE_RAW_DECL_ENVIRON
+ static char ***
+ _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared")
+ rpl_environ (void) { return &environ; }
+ # undef environ
+ # define environ (*rpl_environ ())
+ #endif
*/
#ifndef _GL_WARN_ON_USE
/* A compiler attribute is available in gcc versions 4.3.0 and later. */
# define _GL_WARN_ON_USE(function, message) \
extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
+# define _GL_WARN_ON_USE_ATTRIBUTE(message) \
+ __attribute__ ((__warning__ (message)))
# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
/* Verify the existence of the function. */
# define _GL_WARN_ON_USE(function, message) \
extern __typeof__ (function) function
+# define _GL_WARN_ON_USE_ATTRIBUTE(message)
# else /* Unsupported. */
# define _GL_WARN_ON_USE(function, message) \
_GL_WARN_EXTERN_C int _gl_warn_on_use
+# define _GL_WARN_ON_USE_ATTRIBUTE(message)
# endif
#endif
/* Convert wide character to unibyte character.
- Copyright (C) 2008, 2010-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008, 2010-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Convert wide character to multibyte character.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
int
wctomb (char *s, wchar_t wc)
/* Convert wide character to multibyte character.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Return a pointer to a zero-size object in memory.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* ISO C 99 does not allow memcmp(), memchr() etc. to be invoked with a NULL
argument. Therefore this file produces a non-NULL pointer which cannot
be dereferenced, if possible. */
+/* On Android, when targeting Android 4.4 or older with a GCC toolchain,
+ prevent a compilation error
+ "error: call to 'mmap' declared with attribute error: mmap is not
+ available with _FILE_OFFSET_BITS=64 when using GCC until android-21.
+ Either raise your minSdkVersion, disable _FILE_OFFSET_BITS=64, or
+ switch to Clang."
+ The files that we access in this compilation unit are less than 2 GB
+ large. */
+#if defined __ANDROID__
+# undef _FILE_OFFSET_BITS
+# undef __USE_FILE_OFFSET64
+#endif
+
#include <stdlib.h>
/* Test whether mmap() and mprotect() are available.
# Automakefile for GNU Diffutils library.
-# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2017 Free Software
+# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2018 Free Software
# Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
-# Makefile.in generated by automake 1.99a from Makefile.am.
+# Makefile.in generated by automake 1.16a from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2015 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Automakefile for GNU Diffutils library.
-# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2017 Free Software
+# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2018 Free Software
# Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
+# Copyright (C) 2002-2018 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this file. If not, see <http://www.gnu.org/licenses/>.
+# along with this file. If not, see <https://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License,
# this file may be distributed as part of a program that
# the same distribution terms as the rest of that program.
#
# Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --local-dir=gl --lib=libdiffutils --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=gnulib-tests --aux-dir=build-aux --with-tests --avoid=localename --avoid=lock --makefile-name=gnulib.mk --no-conditional-dependencies --no-libtool --macro-prefix=gl announce-gen argmatch binary-io c-stack config-h diffseq dirname do-release-commit-and-tag dup2 error exclude exitfail extensions fcntl fdl file-type filenamecat fnmatch-gnu getopt gettext-h gettime git-version-gen gitlog-to-changelog gnu-make gnu-web-doc-update gnumakefile gnupload hard-locale inttostr inttypes isblank largefile lstat maintainer-makefile manywarnings mbrtowc mkstemp mktime progname propername rawmemchr readme-release regex sh-quote signal stat stat-macros stat-time stdint strcase strftime strptime strtoumax sys_wait system-quote unistd unlocked-io update-copyright vararrays verify version-etc version-etc-fsf wcwidth xalloc xfreopen xreadlink xstrtoumax xvasprintf
+# Reproduce by:
+# gnulib-tool --import --local-dir=gl \
+# --lib=libdiffutils \
+# --source-base=lib \
+# --m4-base=m4 \
+# --doc-base=doc \
+# --tests-base=gnulib-tests \
+# --aux-dir=build-aux \
+# --with-tests \
+# --makefile-name=gnulib.mk \
+# --no-conditional-dependencies \
+# --no-libtool \
+# --macro-prefix=gl \
+# --avoid=localename \
+# --avoid=lock \
+# announce-gen \
+# argmatch \
+# binary-io \
+# c-stack \
+# config-h \
+# diffseq \
+# dirname \
+# do-release-commit-and-tag \
+# dup2 \
+# error \
+# exclude \
+# exitfail \
+# extensions \
+# fcntl \
+# fdl \
+# file-type \
+# filenamecat \
+# fnmatch-gnu \
+# getopt \
+# gettext-h \
+# gettime \
+# git-version-gen \
+# gitlog-to-changelog \
+# gnu-make \
+# gnu-web-doc-update \
+# gnumakefile \
+# gnupload \
+# hard-locale \
+# inttostr \
+# inttypes \
+# isblank \
+# largefile \
+# lstat \
+# maintainer-makefile \
+# manywarnings \
+# mbrtowc \
+# mkstemp \
+# mktime \
+# progname \
+# propername \
+# rawmemchr \
+# readme-release \
+# regex \
+# sh-quote \
+# signal \
+# stat \
+# stat-macros \
+# stat-time \
+# stdint \
+# strcase \
+# strftime \
+# strptime \
+# strtoumax \
+# sys_wait \
+# system-quote \
+# unistd \
+# unlocked-io \
+# update-copyright \
+# vararrays \
+# verify \
+# version-etc \
+# version-etc-fsf \
+# wcwidth \
+# xalloc \
+# xfreopen \
+# xreadlink \
+# xstrtoumax \
+# xvasprintf
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
subdir = lib
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
+ $(top_srcdir)/m4/__inline.m4 \
$(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
$(top_srcdir)/m4/arpa_inet_h.m4 $(top_srcdir)/m4/btowc.m4 \
$(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-stack.m4 \
$(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/close.m4 \
$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
- $(top_srcdir)/m4/configmake.m4 $(top_srcdir)/m4/ctype.m4 \
- $(top_srcdir)/m4/dirname.m4 \
+ $(top_srcdir)/m4/ctype.m4 $(top_srcdir)/m4/dirname.m4 \
$(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \
$(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \
$(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \
$(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \
$(top_srcdir)/m4/fdopen.m4 $(top_srcdir)/m4/filenamecat.m4 \
$(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
- $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpieee.m4 \
- $(top_srcdir)/m4/freopen.m4 $(top_srcdir)/m4/fstat.m4 \
- $(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/getcwd.m4 \
- $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getopt.m4 \
- $(top_srcdir)/m4/getpagesize.m4 \
+ $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fnmatch_h.m4 \
+ $(top_srcdir)/m4/fpieee.m4 $(top_srcdir)/m4/freopen.m4 \
+ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/ftruncate.m4 \
+ $(top_srcdir)/m4/getcwd.m4 $(top_srcdir)/m4/getdtablesize.m4 \
+ $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/getpagesize.m4 \
$(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnu-make.m4 \
$(top_srcdir)/m4/gnulib-common.m4 \
$(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \
+ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \
$(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inet_pton.m4 \
$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/intlmacosx.m4 \
$(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbslen.m4 \
$(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \
$(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
- $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mkstemp.m4 \
- $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \
- $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \
+ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mkdir.m4 \
+ $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \
+ $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \
+ $(top_srcdir)/m4/msvc-inval.m4 \
$(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
$(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/netinet_in_h.m4 \
$(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \
+ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/nstrftime.m4 \
+ $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open-cloexec.m4 \
$(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/pathmax.m4 \
$(top_srcdir)/m4/perror.m4 $(top_srcdir)/m4/pipe.m4 \
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
$(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
$(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
$(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/regex.m4 \
- $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/select.m4 \
- $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale.m4 \
- $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \
+ $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/setenv.m4 \
+ $(top_srcdir)/m4/setlocale.m4 $(top_srcdir)/m4/sigaction.m4 \
+ $(top_srcdir)/m4/signal_h.m4 \
$(top_srcdir)/m4/signalblocking.m4 \
$(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
$(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
$(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
$(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
- $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/strftime.m4 \
- $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strings_h.m4 \
- $(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
- $(top_srcdir)/m4/strptime.m4 $(top_srcdir)/m4/strtoull.m4 \
- $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
- $(top_srcdir)/m4/sys_ioctl_h.m4 \
+ $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \
+ $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strndup.m4 \
+ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strptime.m4 \
+ $(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \
+ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_ioctl_h.m4 \
$(top_srcdir)/m4/sys_select_h.m4 \
$(top_srcdir)/m4/sys_socket_h.m4 \
$(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
am__libdiffutils_a_SOURCES_DIST = allocator.c areadlink.c argmatch.c \
binary-io.h binary-io.c bitrotate.h bitrotate.c c-ctype.h \
c-ctype.c c-stack.h c-stack.c c-strcase.h c-strcasecmp.c \
- c-strncasecmp.c careadlinkat.c diffseq.h dirname.c basename.c \
- dirname-lgpl.c basename-lgpl.c stripslash.c exclude.c \
- exitfail.c fd-hook.c file-type.c filenamecat.c \
+ c-strncasecmp.c careadlinkat.c cloexec.c diffseq.h dirname.c \
+ basename.c dirname-lgpl.c basename-lgpl.c stripslash.c \
+ exclude.c exitfail.c fd-hook.c file-type.c filenamecat.c \
filenamecat-lgpl.c freopen-safer.c getprogname.h getprogname.c \
gettext.h gettime.c hard-locale.c hash.c imaxtostr.c \
- inttostr.c offtostr.c uinttostr.c umaxtostr.c localcharset.h \
- localcharset.c malloca.c mbchar.c mbiter.h mbiter.c \
- mbscasecmp.c mbslen.c mbsstr.c mbuiter.h mbuiter.c minmax.h \
- progname.h progname.c propername.h propername.c quotearg.c \
- sh-quote.h sh-quote.c sig-handler.c size_max.h stat-time.c \
- strftime.c striconv.h striconv.c strnlen1.h strnlen1.c \
- system-quote.h system-quote.c tempname.c timespec.c trim.c \
- unistd.c unistr/u8-mbtoucr.c unistr/u8-uctomb.c \
- unistr/u8-uctomb-aux.c uniwidth/width.c version-etc.h \
- version-etc.c version-etc-fsf.c wctype-h.c xmalloc.c \
- xalloc-die.c xfreopen.c xfreopen.h xreadlink.c xsize.h xsize.c \
- xstriconv.h xstriconv.c xstrndup.h xstrndup.c xstrtol.c \
- xstrtoul.c xstrtol-error.c xstrtoumax.c xvasprintf.h \
+ inttostr.c offtostr.c uinttostr.c umaxtostr.c localcharset.c \
+ malloca.c mbchar.c mbiter.h mbiter.c mbscasecmp.c mbslen.c \
+ mbsstr.c mbuiter.h mbuiter.c minmax.h nstrftime.c progname.h \
+ progname.c propername.h propername.c quotearg.c sh-quote.h \
+ sh-quote.c sig-handler.c size_max.h stat-time.c striconv.h \
+ striconv.c strnlen1.h strnlen1.c system-quote.h system-quote.c \
+ tempname.c timespec.c trim.c unistd.c unistr/u8-mbtoucr.c \
+ unistr/u8-uctomb.c unistr/u8-uctomb-aux.c uniwidth/width.c \
+ version-etc.h version-etc.c version-etc-fsf.c wctype-h.c \
+ xmalloc.c xalloc-die.c xfreopen.c xfreopen.h xreadlink.c \
+ xsize.h xsize.c xstriconv.h xstriconv.c xstrndup.h xstrndup.c \
+ xstrtol.c xstrtoul.c xstrtol-error.c xstrtoumax.c xvasprintf.h \
xvasprintf.c xasprintf.c cmpbuf.c prepargs.c
-am__dirstamp = .dirstamp
+am__dirstamp = $(am__leading_dot)dirstamp
@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__objects_1 = unistr/u8-mbtoucr.$(OBJEXT)
@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__objects_2 = unistr/u8-uctomb.$(OBJEXT) \
@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@ unistr/u8-uctomb-aux.$(OBJEXT)
argmatch.$(OBJEXT) binary-io.$(OBJEXT) bitrotate.$(OBJEXT) \
c-ctype.$(OBJEXT) c-stack.$(OBJEXT) c-strcasecmp.$(OBJEXT) \
c-strncasecmp.$(OBJEXT) careadlinkat.$(OBJEXT) \
- dirname.$(OBJEXT) basename.$(OBJEXT) dirname-lgpl.$(OBJEXT) \
- basename-lgpl.$(OBJEXT) stripslash.$(OBJEXT) exclude.$(OBJEXT) \
- exitfail.$(OBJEXT) fd-hook.$(OBJEXT) file-type.$(OBJEXT) \
- filenamecat.$(OBJEXT) filenamecat-lgpl.$(OBJEXT) \
- freopen-safer.$(OBJEXT) getprogname.$(OBJEXT) \
- gettime.$(OBJEXT) hard-locale.$(OBJEXT) hash.$(OBJEXT) \
- imaxtostr.$(OBJEXT) inttostr.$(OBJEXT) offtostr.$(OBJEXT) \
- uinttostr.$(OBJEXT) umaxtostr.$(OBJEXT) localcharset.$(OBJEXT) \
- malloca.$(OBJEXT) mbchar.$(OBJEXT) mbiter.$(OBJEXT) \
- mbscasecmp.$(OBJEXT) mbslen.$(OBJEXT) mbsstr.$(OBJEXT) \
- mbuiter.$(OBJEXT) progname.$(OBJEXT) propername.$(OBJEXT) \
- quotearg.$(OBJEXT) sh-quote.$(OBJEXT) sig-handler.$(OBJEXT) \
- stat-time.$(OBJEXT) strftime.$(OBJEXT) striconv.$(OBJEXT) \
- strnlen1.$(OBJEXT) system-quote.$(OBJEXT) tempname.$(OBJEXT) \
- timespec.$(OBJEXT) trim.$(OBJEXT) unistd.$(OBJEXT) \
- $(am__objects_1) $(am__objects_2) $(am__objects_3) \
- version-etc.$(OBJEXT) version-etc-fsf.$(OBJEXT) \
- wctype-h.$(OBJEXT) xmalloc.$(OBJEXT) xalloc-die.$(OBJEXT) \
- xfreopen.$(OBJEXT) xreadlink.$(OBJEXT) xsize.$(OBJEXT) \
- xstriconv.$(OBJEXT) xstrndup.$(OBJEXT) xstrtol.$(OBJEXT) \
- xstrtoul.$(OBJEXT) xstrtol-error.$(OBJEXT) \
+ cloexec.$(OBJEXT) dirname.$(OBJEXT) basename.$(OBJEXT) \
+ dirname-lgpl.$(OBJEXT) basename-lgpl.$(OBJEXT) \
+ stripslash.$(OBJEXT) exclude.$(OBJEXT) exitfail.$(OBJEXT) \
+ fd-hook.$(OBJEXT) file-type.$(OBJEXT) filenamecat.$(OBJEXT) \
+ filenamecat-lgpl.$(OBJEXT) freopen-safer.$(OBJEXT) \
+ getprogname.$(OBJEXT) gettime.$(OBJEXT) hard-locale.$(OBJEXT) \
+ hash.$(OBJEXT) imaxtostr.$(OBJEXT) inttostr.$(OBJEXT) \
+ offtostr.$(OBJEXT) uinttostr.$(OBJEXT) umaxtostr.$(OBJEXT) \
+ localcharset.$(OBJEXT) malloca.$(OBJEXT) mbchar.$(OBJEXT) \
+ mbiter.$(OBJEXT) mbscasecmp.$(OBJEXT) mbslen.$(OBJEXT) \
+ mbsstr.$(OBJEXT) mbuiter.$(OBJEXT) nstrftime.$(OBJEXT) \
+ progname.$(OBJEXT) propername.$(OBJEXT) quotearg.$(OBJEXT) \
+ sh-quote.$(OBJEXT) sig-handler.$(OBJEXT) stat-time.$(OBJEXT) \
+ striconv.$(OBJEXT) strnlen1.$(OBJEXT) system-quote.$(OBJEXT) \
+ tempname.$(OBJEXT) timespec.$(OBJEXT) trim.$(OBJEXT) \
+ unistd.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
+ $(am__objects_3) version-etc.$(OBJEXT) \
+ version-etc-fsf.$(OBJEXT) wctype-h.$(OBJEXT) xmalloc.$(OBJEXT) \
+ xalloc-die.$(OBJEXT) xfreopen.$(OBJEXT) xreadlink.$(OBJEXT) \
+ xsize.$(OBJEXT) xstriconv.$(OBJEXT) xstrndup.$(OBJEXT) \
+ xstrtol.$(OBJEXT) xstrtoul.$(OBJEXT) xstrtol-error.$(OBJEXT) \
xstrtoumax.$(OBJEXT) xvasprintf.$(OBJEXT) xasprintf.$(OBJEXT) \
cmpbuf.$(OBJEXT) prepargs.$(OBJEXT)
libdiffutils_a_OBJECTS = $(am_libdiffutils_a_OBJECTS)
./$(DEPDIR)/bitrotate.Po ./$(DEPDIR)/btowc.Po \
./$(DEPDIR)/c-ctype.Po ./$(DEPDIR)/c-stack.Po \
./$(DEPDIR)/c-strcasecmp.Po ./$(DEPDIR)/c-strncasecmp.Po \
- ./$(DEPDIR)/careadlinkat.Po ./$(DEPDIR)/close.Po \
- ./$(DEPDIR)/cmpbuf.Po ./$(DEPDIR)/dirname-lgpl.Po \
- ./$(DEPDIR)/dirname.Po ./$(DEPDIR)/dup2.Po \
- ./$(DEPDIR)/error.Po ./$(DEPDIR)/exclude.Po \
- ./$(DEPDIR)/exitfail.Po ./$(DEPDIR)/fcntl.Po \
- ./$(DEPDIR)/fd-hook.Po ./$(DEPDIR)/file-type.Po \
- ./$(DEPDIR)/filenamecat-lgpl.Po ./$(DEPDIR)/filenamecat.Po \
- ./$(DEPDIR)/float.Po ./$(DEPDIR)/fnmatch.Po \
- ./$(DEPDIR)/fnmatch_loop.Po ./$(DEPDIR)/freopen-safer.Po \
- ./$(DEPDIR)/freopen.Po ./$(DEPDIR)/fstat.Po \
- ./$(DEPDIR)/getdtablesize.Po ./$(DEPDIR)/getopt.Po \
- ./$(DEPDIR)/getopt1.Po ./$(DEPDIR)/getprogname.Po \
- ./$(DEPDIR)/gettime.Po ./$(DEPDIR)/gettimeofday.Po \
- ./$(DEPDIR)/hard-locale.Po ./$(DEPDIR)/hash.Po \
- ./$(DEPDIR)/iconv.Po ./$(DEPDIR)/iconv_close.Po \
- ./$(DEPDIR)/iconv_open.Po ./$(DEPDIR)/imaxtostr.Po \
- ./$(DEPDIR)/inttostr.Po ./$(DEPDIR)/isblank.Po \
- ./$(DEPDIR)/iswblank.Po ./$(DEPDIR)/itold.Po \
- ./$(DEPDIR)/localcharset.Po ./$(DEPDIR)/localeconv.Po \
- ./$(DEPDIR)/localtime-buffer.Po ./$(DEPDIR)/lstat.Po \
- ./$(DEPDIR)/malloc.Po ./$(DEPDIR)/malloca.Po \
- ./$(DEPDIR)/mbchar.Po ./$(DEPDIR)/mbiter.Po \
- ./$(DEPDIR)/mbrtowc.Po ./$(DEPDIR)/mbscasecmp.Po \
- ./$(DEPDIR)/mbsinit.Po ./$(DEPDIR)/mbslen.Po \
- ./$(DEPDIR)/mbsrtowcs-state.Po ./$(DEPDIR)/mbsrtowcs.Po \
- ./$(DEPDIR)/mbsstr.Po ./$(DEPDIR)/mbtowc.Po \
- ./$(DEPDIR)/mbuiter.Po ./$(DEPDIR)/memchr.Po \
+ ./$(DEPDIR)/careadlinkat.Po ./$(DEPDIR)/cloexec.Po \
+ ./$(DEPDIR)/close.Po ./$(DEPDIR)/cmpbuf.Po \
+ ./$(DEPDIR)/dirname-lgpl.Po ./$(DEPDIR)/dirname.Po \
+ ./$(DEPDIR)/dup2.Po ./$(DEPDIR)/error.Po \
+ ./$(DEPDIR)/exclude.Po ./$(DEPDIR)/exitfail.Po \
+ ./$(DEPDIR)/fcntl.Po ./$(DEPDIR)/fd-hook.Po \
+ ./$(DEPDIR)/file-type.Po ./$(DEPDIR)/filenamecat-lgpl.Po \
+ ./$(DEPDIR)/filenamecat.Po ./$(DEPDIR)/float.Po \
+ ./$(DEPDIR)/fnmatch.Po ./$(DEPDIR)/fnmatch_loop.Po \
+ ./$(DEPDIR)/freopen-safer.Po ./$(DEPDIR)/freopen.Po \
+ ./$(DEPDIR)/fstat.Po ./$(DEPDIR)/getdtablesize.Po \
+ ./$(DEPDIR)/getopt.Po ./$(DEPDIR)/getopt1.Po \
+ ./$(DEPDIR)/getprogname.Po ./$(DEPDIR)/gettime.Po \
+ ./$(DEPDIR)/gettimeofday.Po ./$(DEPDIR)/hard-locale.Po \
+ ./$(DEPDIR)/hash.Po ./$(DEPDIR)/iconv.Po \
+ ./$(DEPDIR)/iconv_close.Po ./$(DEPDIR)/iconv_open.Po \
+ ./$(DEPDIR)/imaxtostr.Po ./$(DEPDIR)/inttostr.Po \
+ ./$(DEPDIR)/isblank.Po ./$(DEPDIR)/iswblank.Po \
+ ./$(DEPDIR)/itold.Po ./$(DEPDIR)/localcharset.Po \
+ ./$(DEPDIR)/localeconv.Po ./$(DEPDIR)/localtime-buffer.Po \
+ ./$(DEPDIR)/lstat.Po ./$(DEPDIR)/malloc.Po \
+ ./$(DEPDIR)/malloca.Po ./$(DEPDIR)/mbchar.Po \
+ ./$(DEPDIR)/mbiter.Po ./$(DEPDIR)/mbrtowc.Po \
+ ./$(DEPDIR)/mbscasecmp.Po ./$(DEPDIR)/mbsinit.Po \
+ ./$(DEPDIR)/mbslen.Po ./$(DEPDIR)/mbsrtowcs-state.Po \
+ ./$(DEPDIR)/mbsrtowcs.Po ./$(DEPDIR)/mbsstr.Po \
+ ./$(DEPDIR)/mbtowc.Po ./$(DEPDIR)/mbuiter.Po \
+ ./$(DEPDIR)/memchr.Po ./$(DEPDIR)/mkdir.Po \
./$(DEPDIR)/mkstemp.Po ./$(DEPDIR)/mktime.Po \
./$(DEPDIR)/msvc-inval.Po ./$(DEPDIR)/msvc-nothrow.Po \
- ./$(DEPDIR)/nl_langinfo.Po ./$(DEPDIR)/offtostr.Po \
- ./$(DEPDIR)/open.Po ./$(DEPDIR)/prepargs.Po \
- ./$(DEPDIR)/printf-args.Po ./$(DEPDIR)/printf-parse.Po \
- ./$(DEPDIR)/progname.Po ./$(DEPDIR)/propername.Po \
- ./$(DEPDIR)/quotearg.Po ./$(DEPDIR)/raise.Po \
- ./$(DEPDIR)/rawmemchr.Po ./$(DEPDIR)/readlink.Po \
- ./$(DEPDIR)/regcomp.Po ./$(DEPDIR)/regex.Po \
- ./$(DEPDIR)/regex_internal.Po ./$(DEPDIR)/regexec.Po \
- ./$(DEPDIR)/secure_getenv.Po ./$(DEPDIR)/setenv.Po \
+ ./$(DEPDIR)/nl_langinfo.Po ./$(DEPDIR)/nstrftime.Po \
+ ./$(DEPDIR)/offtostr.Po ./$(DEPDIR)/open.Po \
+ ./$(DEPDIR)/prepargs.Po ./$(DEPDIR)/printf-args.Po \
+ ./$(DEPDIR)/printf-parse.Po ./$(DEPDIR)/progname.Po \
+ ./$(DEPDIR)/propername.Po ./$(DEPDIR)/quotearg.Po \
+ ./$(DEPDIR)/raise.Po ./$(DEPDIR)/rawmemchr.Po \
+ ./$(DEPDIR)/readlink.Po ./$(DEPDIR)/regcomp.Po \
+ ./$(DEPDIR)/regex.Po ./$(DEPDIR)/regex_internal.Po \
+ ./$(DEPDIR)/regexec.Po ./$(DEPDIR)/setenv.Po \
./$(DEPDIR)/sh-quote.Po ./$(DEPDIR)/sig-handler.Po \
./$(DEPDIR)/sigaction.Po ./$(DEPDIR)/sigprocmask.Po \
./$(DEPDIR)/stat-time.Po ./$(DEPDIR)/stat-w32.Po \
./$(DEPDIR)/stat.Po ./$(DEPDIR)/strcasecmp.Po \
./$(DEPDIR)/strerror-override.Po ./$(DEPDIR)/strerror.Po \
- ./$(DEPDIR)/strftime.Po ./$(DEPDIR)/striconv.Po \
- ./$(DEPDIR)/stripslash.Po ./$(DEPDIR)/strncasecmp.Po \
- ./$(DEPDIR)/strndup.Po ./$(DEPDIR)/strnlen.Po \
- ./$(DEPDIR)/strnlen1.Po ./$(DEPDIR)/strptime.Po \
- ./$(DEPDIR)/strtoimax.Po ./$(DEPDIR)/strtol.Po \
- ./$(DEPDIR)/strtoul.Po ./$(DEPDIR)/strtoull.Po \
- ./$(DEPDIR)/strtoumax.Po ./$(DEPDIR)/system-quote.Po \
- ./$(DEPDIR)/tempname.Po ./$(DEPDIR)/time_r.Po \
- ./$(DEPDIR)/time_rz.Po ./$(DEPDIR)/timegm.Po \
- ./$(DEPDIR)/timespec.Po ./$(DEPDIR)/trim.Po \
- ./$(DEPDIR)/tzset.Po ./$(DEPDIR)/uinttostr.Po \
- ./$(DEPDIR)/umaxtostr.Po ./$(DEPDIR)/unistd.Po \
- ./$(DEPDIR)/unsetenv.Po ./$(DEPDIR)/vasnprintf.Po \
- ./$(DEPDIR)/vasprintf.Po ./$(DEPDIR)/version-etc-fsf.Po \
- ./$(DEPDIR)/version-etc.Po ./$(DEPDIR)/wcrtomb.Po \
- ./$(DEPDIR)/wctype-h.Po ./$(DEPDIR)/wcwidth.Po \
- ./$(DEPDIR)/xalloc-die.Po ./$(DEPDIR)/xasprintf.Po \
- ./$(DEPDIR)/xfreopen.Po ./$(DEPDIR)/xmalloc.Po \
- ./$(DEPDIR)/xreadlink.Po ./$(DEPDIR)/xsize.Po \
- ./$(DEPDIR)/xstriconv.Po ./$(DEPDIR)/xstrndup.Po \
- ./$(DEPDIR)/xstrtol-error.Po ./$(DEPDIR)/xstrtol.Po \
- ./$(DEPDIR)/xstrtoul.Po ./$(DEPDIR)/xstrtoumax.Po \
- ./$(DEPDIR)/xvasprintf.Po unistr/$(DEPDIR)/u8-mbtoucr.Po \
+ ./$(DEPDIR)/striconv.Po ./$(DEPDIR)/stripslash.Po \
+ ./$(DEPDIR)/strncasecmp.Po ./$(DEPDIR)/strndup.Po \
+ ./$(DEPDIR)/strnlen.Po ./$(DEPDIR)/strnlen1.Po \
+ ./$(DEPDIR)/strptime.Po ./$(DEPDIR)/strtoimax.Po \
+ ./$(DEPDIR)/strtol.Po ./$(DEPDIR)/strtoul.Po \
+ ./$(DEPDIR)/strtoull.Po ./$(DEPDIR)/strtoumax.Po \
+ ./$(DEPDIR)/system-quote.Po ./$(DEPDIR)/tempname.Po \
+ ./$(DEPDIR)/time_r.Po ./$(DEPDIR)/time_rz.Po \
+ ./$(DEPDIR)/timegm.Po ./$(DEPDIR)/timespec.Po \
+ ./$(DEPDIR)/trim.Po ./$(DEPDIR)/tzset.Po \
+ ./$(DEPDIR)/uinttostr.Po ./$(DEPDIR)/umaxtostr.Po \
+ ./$(DEPDIR)/unistd.Po ./$(DEPDIR)/unsetenv.Po \
+ ./$(DEPDIR)/vasnprintf.Po ./$(DEPDIR)/vasprintf.Po \
+ ./$(DEPDIR)/version-etc-fsf.Po ./$(DEPDIR)/version-etc.Po \
+ ./$(DEPDIR)/wcrtomb.Po ./$(DEPDIR)/wctype-h.Po \
+ ./$(DEPDIR)/wcwidth.Po ./$(DEPDIR)/xalloc-die.Po \
+ ./$(DEPDIR)/xasprintf.Po ./$(DEPDIR)/xfreopen.Po \
+ ./$(DEPDIR)/xmalloc.Po ./$(DEPDIR)/xreadlink.Po \
+ ./$(DEPDIR)/xsize.Po ./$(DEPDIR)/xstriconv.Po \
+ ./$(DEPDIR)/xstrndup.Po ./$(DEPDIR)/xstrtol-error.Po \
+ ./$(DEPDIR)/xstrtol.Po ./$(DEPDIR)/xstrtoul.Po \
+ ./$(DEPDIR)/xstrtoumax.Po ./$(DEPDIR)/xvasprintf.Po \
+ unistr/$(DEPDIR)/u8-mbtoucr.Po \
unistr/$(DEPDIR)/u8-uctomb-aux.Po \
unistr/$(DEPDIR)/u8-uctomb.Po uniwidth/$(DEPDIR)/width.Po
am__mv = mv -f
-am__set_depbase = depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.[^.]*$$||'`
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_@AM_V@)
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.hin \
$(srcdir)/gnulib.mk $(top_srcdir)/build-aux/depcomp alloca.c
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-pkglibexecdir = @pkglibexecdir@
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
ALLOCA_H = @ALLOCA_H@
GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
GNULIB_ENVIRON = @GNULIB_ENVIRON@
GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
+GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@
GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
GNULIB_FCHDIR = @GNULIB_FCHDIR@
GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
GNULIB_FFSLL = @GNULIB_FFSLL@
GNULIB_FGETC = @GNULIB_FGETC@
GNULIB_FGETS = @GNULIB_FGETS@
+GNULIB_FNMATCH = @GNULIB_FNMATCH@
GNULIB_FOPEN = @GNULIB_FOPEN@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETPASS = @GNULIB_GETPASS@
GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@
GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@
GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@
GNULIB_LINKAT = @GNULIB_LINKAT@
GNULIB_LISTEN = @GNULIB_LISTEN@
GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
+GNULIB_LOCALENAME = @GNULIB_LOCALENAME@
GNULIB_LOCALTIME = @GNULIB_LOCALTIME@
GNULIB_LSEEK = @GNULIB_LSEEK@
GNULIB_LSTAT = @GNULIB_LSTAT@
GNULIB_READ = @GNULIB_READ@
GNULIB_READLINK = @GNULIB_READLINK@
GNULIB_READLINKAT = @GNULIB_READLINKAT@
+GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@
GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
GNULIB_REALPATH = @GNULIB_REALPATH@
GNULIB_RECV = @GNULIB_RECV@
HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@
+HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@
HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
+HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@
HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@
HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
HAVE_DUP3 = @HAVE_DUP3@
HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@
HAVE_FACCESSAT = @HAVE_FACCESSAT@
HAVE_FCHDIR = @HAVE_FCHDIR@
HAVE_FCHMODAT = @HAVE_FCHMODAT@
HAVE_FFS = @HAVE_FFS@
HAVE_FFSL = @HAVE_FFSL@
HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FNMATCH = @HAVE_FNMATCH@
+HAVE_FNMATCH_H = @HAVE_FNMATCH_H@
+HAVE_FREELOCALE = @HAVE_FREELOCALE@
HAVE_FSEEKO = @HAVE_FSEEKO@
HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
HAVE_GETLOGIN = @HAVE_GETLOGIN@
HAVE_GETOPT_H = @HAVE_GETOPT_H@
HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETPASS = @HAVE_GETPASS@
HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
HAVE_GRANTPT = @HAVE_GRANTPT@
HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
HAVE_ISBLANK = @HAVE_ISBLANK@
HAVE_ISWBLANK = @HAVE_ISWBLANK@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@
HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
+HAVE_NEWLOCALE = @HAVE_NEWLOCALE@
HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
HAVE_OPENAT = @HAVE_OPENAT@
HAVE_OS_H = @HAVE_OS_H@
HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
HAVE_READLINK = @HAVE_READLINK@
HAVE_READLINKAT = @HAVE_READLINKAT@
+HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@
HAVE_REALPATH = @HAVE_REALPATH@
HAVE_RENAMEAT = @HAVE_RENAMEAT@
HAVE_RPMATCH = @HAVE_RPMATCH@
HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
HAVE_TIMEGM = @HAVE_TIMEGM@
HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@
-HAVE_TRUNCATE = @HAVE_TRUNCATE@
HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
HAVE_TZSET = @HAVE_TZSET@
HAVE_UNISTD_H = @HAVE_UNISTD_H@
NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
+NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H@
NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@
NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
NEXT_ERRNO_H = @NEXT_ERRNO_H@
NEXT_FCNTL_H = @NEXT_FCNTL_H@
NEXT_FLOAT_H = @NEXT_FLOAT_H@
+NEXT_FNMATCH_H = @NEXT_FNMATCH_H@
NEXT_GETOPT_H = @NEXT_GETOPT_H@
NEXT_ICONV_H = @NEXT_ICONV_H@
NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
REPLACE_DUP = @REPLACE_DUP@
REPLACE_DUP2 = @REPLACE_DUP2@
REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_FACCESSAT = @REPLACE_FACCESSAT@
REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
REPLACE_FCLOSE = @REPLACE_FCLOSE@
REPLACE_FCNTL = @REPLACE_FCNTL@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FNMATCH = @REPLACE_FNMATCH@
REPLACE_FOPEN = @REPLACE_FOPEN@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_FPURGE = @REPLACE_FPURGE@
+REPLACE_FREELOCALE = @REPLACE_FREELOCALE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
REPLACE_FSEEK = @REPLACE_FSEEK@
REPLACE_FSEEKO = @REPLACE_FSEEKO@
REPLACE_GETLINE = @REPLACE_GETLINE@
REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_GETPASS = @REPLACE_GETPASS@
REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
REPLACE_GMTIME = @REPLACE_GMTIME@
REPLACE_ICONV = @REPLACE_ICONV@
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
REPLACE_MKTIME = @REPLACE_MKTIME@
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
+REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@
REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
REPLACE_NULL = @REPLACE_NULL@
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
am__include = @am__include@
+am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
-lispdir = @lispdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AM_CFLAGS = $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS)
-BUILT_SOURCES = $(ALLOCA_H) configmake.h ctype.h $(ERRNO_H) fcntl.h \
- $(FLOAT_H) $(FNMATCH_H) $(GETOPT_H) $(GETOPT_CDEFS_H) \
- $(ICONV_H) iconv_open-aix.h iconv_open-hpux.h \
- iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h \
- inttypes.h langinfo.h $(LIMITS_H) locale.h signal.h \
- $(STDARG_H) $(STDBOOL_H) $(STDDEF_H) $(STDINT_H) stdio.h \
- stdlib.h string.h strings.h sys/stat.h sys/time.h sys/types.h \
- sys/wait.h time.h unistd.h $(LIBUNISTRING_UNISTR_H) \
- $(LIBUNISTRING_UNITYPES_H) $(LIBUNISTRING_UNIWIDTH_H) wchar.h \
- wctype.h
-CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \
- ref-del.sed
+BUILT_SOURCES = $(ALLOCA_H) ctype.h $(ERRNO_H) fcntl.h $(FLOAT_H) \
+ $(FNMATCH_H) $(GETOPT_H) $(GETOPT_CDEFS_H) $(ICONV_H) \
+ iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h \
+ iconv_open-osf.h iconv_open-solaris.h inttypes.h langinfo.h \
+ $(LIMITS_H) locale.h signal.h $(STDARG_H) $(STDBOOL_H) \
+ $(STDDEF_H) $(STDINT_H) stdio.h stdlib.h string.h strings.h \
+ sys/stat.h sys/time.h sys/types.h sys/wait.h time.h unistd.h \
+ $(LIBUNISTRING_UNISTR_H) $(LIBUNISTRING_UNITYPES_H) \
+ $(LIBUNISTRING_UNIWIDTH_H) wchar.h wctype.h
+CLEANFILES =
#if GNU_MAKE
# [nicer features that work only with GNU Make]
#endif
EXTRA_DIST = alloca.c alloca.in.h allocator.h \
$(top_srcdir)/build-aux/announce-gen areadlink.h argmatch.h \
- assure.h btowc.c c-strcaseeq.h careadlinkat.h close.c \
- ctype.in.h stripslash.c dirname.h \
+ assure.h btowc.c c-strcaseeq.h careadlinkat.h cloexec.h \
+ close.c ctype.in.h stripslash.c dirname.h \
$(top_srcdir)/build-aux/do-release-commit-and-tag dosname.h \
dup2.c errno.in.h error.c error.h exclude.h exitfail.h fcntl.c \
fcntl.in.h fd-hook.h file-type.h filename.h filenamecat.h \
- flexmember.h float.c float.in.h itold.c fnmatch.c fnmatch.in.h \
- fnmatch_loop.c freopen.c stdio--.h stdio-safer.h fstat.c \
- stat-w32.c stat-w32.h $(top_srcdir)/build-aux/gendocs.sh \
- getdtablesize.c getopt-cdefs.in.h getopt-core.h getopt-ext.h \
- getopt-pfx-core.h getopt-pfx-ext.h getopt.c getopt.in.h \
- getopt1.c getopt_int.h gettimeofday.c \
- $(top_srcdir)/build-aux/git-version-gen \
+ flexmember.h float.c float.in.h itold.c fnmatch.c \
+ fnmatch_loop.c fnmatch.in.h freopen.c stdio--.h stdio-safer.h \
+ fstat.c stat-w32.c stat-w32.h \
+ $(top_srcdir)/build-aux/gendocs.sh getdtablesize.c \
+ getopt-cdefs.in.h getopt-core.h getopt-ext.h getopt-pfx-core.h \
+ getopt-pfx-ext.h getopt.c getopt.in.h getopt1.c getopt_int.h \
+ gettimeofday.c $(top_srcdir)/build-aux/git-version-gen \
$(top_srcdir)/build-aux/gitlog-to-changelog \
$(top_srcdir)/build-aux/gnu-web-doc-update \
$(top_srcdir)/GNUmakefile $(top_srcdir)/build-aux/gnupload \
iconv_open-hpux.gperf iconv_open-irix.gperf \
iconv_open-osf.gperf iconv_open-solaris.gperf iconv_open.c \
ignore-value.h intprops.h anytostr.c inttostr.h inttypes.in.h \
- isblank.c iswblank.c langinfo.in.h limits.in.h config.charset \
- ref-add.sin ref-del.sin locale.in.h localeconv.c \
+ isblank.c iswblank.c langinfo.in.h cdefs.h libc-config.h \
+ limits.in.h localcharset.h locale.in.h localeconv.c \
localtime-buffer.c localtime-buffer.h lstat.c \
- $(top_srcdir)/maint.mk malloc.c malloca.h malloca.valgrind \
- mbchar.h mbrtowc.c mbsinit.c mbsrtowcs-impl.h \
- mbsrtowcs-state.c mbsrtowcs.c str-kmp.h mbtowc-impl.h mbtowc.c \
- memchr.c memchr.valgrind mkstemp.c mktime-internal.h mktime.c \
- mktime-internal.h mktime.c msvc-inval.c msvc-inval.h \
- msvc-nothrow.c msvc-nothrow.h nl_langinfo.c open.c pathmax.h \
+ $(top_srcdir)/maint.mk malloc.c malloca.h mbchar.h mbrtowc.c \
+ mbsinit.c mbsrtowcs-impl.h mbsrtowcs-state.c mbsrtowcs.c \
+ str-kmp.h mbtowc-impl.h mbtowc.c memchr.c memchr.valgrind \
+ mkdir.c mkstemp.c mktime-internal.h mktime.c mktime-internal.h \
+ mktime.c msvc-inval.c msvc-inval.h msvc-nothrow.c \
+ msvc-nothrow.h nl_langinfo.c strftime.h open.c pathmax.h \
quote.h quote.h quotearg.h raise.c rawmemchr.c \
rawmemchr.valgrind readlink.c regcomp.c regex.c regex.h \
- regex_internal.c regex_internal.h regexec.c secure_getenv.c \
- setenv.c sig-handler.h sigaction.c signal.in.h sigprocmask.c \
+ regex_internal.c regex_internal.h regexec.c setenv.c \
+ sig-handler.h sigaction.c signal.in.h sigprocmask.c \
_Noreturn.h arg-nonnull.h c++defs.h unused-parameter.h \
warn-on-use.h stat-w32.c stat-w32.h stat.c stat-macros.h \
stat-time.h stdarg.in.h stdbool.in.h stddef.in.h stdint.in.h \
stdio.in.h stdlib.in.h strcasecmp.c strncasecmp.c streq.h \
- strerror.c strerror-override.c strerror-override.h strftime.h \
- string.in.h strings.in.h strndup.c strnlen.c strptime.c \
- strtol.c strtoul.c strtoull.c strtoimax.c strtoumax.c \
- sys_stat.in.h sys_time.in.h sys_types.in.h sys_wait.in.h \
- tempname.h time.in.h time_r.c time-internal.h time_rz.c \
- mktime-internal.h timegm.c timespec.h trim.h tzset.c \
- unistd.in.h unistr.in.h unitypes.in.h localcharset.h \
- uniwidth.in.h uniwidth/cjk.h unlocked-io.h unsetenv.c \
+ strerror.c strerror-override.c strerror-override.h string.in.h \
+ strings.in.h strndup.c strnlen.c strptime.c strtol.c strtoul.c \
+ strtoull.c strtoimax.c strtoumax.c sys_stat.in.h sys_time.in.h \
+ sys_types.in.h sys_wait.in.h tempname.h time.in.h time_r.c \
+ time-internal.h time_rz.c mktime-internal.h timegm.c \
+ timespec.h trim.h tzset.c unistd.in.h unistr.in.h \
+ unitypes.in.h localcharset.h uniwidth.in.h uniwidth/cjk.h \
+ unlocked-io.h unsetenv.c \
$(top_srcdir)/build-aux/update-copyright \
$(top_srcdir)/build-aux/useless-if-before-free asnprintf.c \
float+.h printf-args.c printf-args.h printf-parse.c \
wchar.h-t wctype.h wctype.h-t
MAINTAINERCLEANFILES = iconv_open-aix.h iconv_open-hpux.h \
iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h
-SUFFIXES = .sed .sin
+SUFFIXES =
# No GNU Make output.
noinst_LIBRARIES = libdiffutils.a
noinst_HEADERS = cmpbuf.h prepargs.h
libdiffutils_a_SOURCES = allocator.c areadlink.c argmatch.c \
binary-io.h binary-io.c bitrotate.h bitrotate.c c-ctype.h \
c-ctype.c c-stack.h c-stack.c c-strcase.h c-strcasecmp.c \
- c-strncasecmp.c careadlinkat.c diffseq.h dirname.c basename.c \
- dirname-lgpl.c basename-lgpl.c stripslash.c exclude.c \
- exitfail.c fd-hook.c file-type.c filenamecat.c \
+ c-strncasecmp.c careadlinkat.c cloexec.c diffseq.h dirname.c \
+ basename.c dirname-lgpl.c basename-lgpl.c stripslash.c \
+ exclude.c exitfail.c fd-hook.c file-type.c filenamecat.c \
filenamecat-lgpl.c freopen-safer.c getprogname.h getprogname.c \
gettext.h gettime.c hard-locale.c hash.c imaxtostr.c \
- inttostr.c offtostr.c uinttostr.c umaxtostr.c localcharset.h \
- localcharset.c malloca.c mbchar.c mbiter.h mbiter.c \
- mbscasecmp.c mbslen.c mbsstr.c mbuiter.h mbuiter.c minmax.h \
- progname.h progname.c propername.h propername.c quotearg.c \
- sh-quote.h sh-quote.c sig-handler.c size_max.h stat-time.c \
- strftime.c striconv.h striconv.c strnlen1.h strnlen1.c \
- system-quote.h system-quote.c tempname.c timespec.c trim.c \
- unistd.c $(am__append_1) $(am__append_2) $(am__append_3) \
- version-etc.h version-etc.c version-etc-fsf.c wctype-h.c \
- xmalloc.c xalloc-die.c xfreopen.c xfreopen.h xreadlink.c \
- xsize.h xsize.c xstriconv.h xstriconv.c xstrndup.h xstrndup.c \
- xstrtol.c xstrtoul.c xstrtol-error.c xstrtoumax.c xvasprintf.h \
- xvasprintf.c xasprintf.c cmpbuf.c prepargs.c
+ inttostr.c offtostr.c uinttostr.c umaxtostr.c localcharset.c \
+ malloca.c mbchar.c mbiter.h mbiter.c mbscasecmp.c mbslen.c \
+ mbsstr.c mbuiter.h mbuiter.c minmax.h nstrftime.c progname.h \
+ progname.c propername.h propername.c quotearg.c sh-quote.h \
+ sh-quote.c sig-handler.c size_max.h stat-time.c striconv.h \
+ striconv.c strnlen1.h strnlen1.c system-quote.h system-quote.c \
+ tempname.c timespec.c trim.c unistd.c $(am__append_1) \
+ $(am__append_2) $(am__append_3) version-etc.h version-etc.c \
+ version-etc-fsf.c wctype-h.c xmalloc.c xalloc-die.c xfreopen.c \
+ xfreopen.h xreadlink.c xsize.h xsize.c xstriconv.h xstriconv.c \
+ xstrndup.h xstrndup.c xstrtol.c xstrtoul.c xstrtol-error.c \
+ xstrtoumax.c xvasprintf.h xvasprintf.c xasprintf.c cmpbuf.c \
+ prepargs.c
libdiffutils_a_LIBADD = $(gl_LIBOBJS) @ALLOCA@
libdiffutils_a_DEPENDENCIES = $(gl_LIBOBJS) @ALLOCA@
EXTRA_libdiffutils_a_SOURCES = alloca.c btowc.c close.c stripslash.c \
getopt.c getopt1.c gettimeofday.c iconv.c iconv_close.c \
iconv_open.c anytostr.c isblank.c iswblank.c localeconv.c \
localtime-buffer.c lstat.c malloc.c mbrtowc.c mbsinit.c \
- mbsrtowcs-state.c mbsrtowcs.c mbtowc.c memchr.c mkstemp.c \
- mktime.c mktime.c msvc-inval.c msvc-nothrow.c nl_langinfo.c \
- open.c raise.c rawmemchr.c readlink.c regcomp.c regex.c \
- regex_internal.c regexec.c secure_getenv.c setenv.c \
- sigaction.c sigprocmask.c stat-w32.c stat.c strcasecmp.c \
- strncasecmp.c strerror.c strerror-override.c strndup.c \
- strnlen.c strptime.c strtol.c strtoul.c strtoull.c strtoimax.c \
- strtoumax.c time_r.c time_rz.c timegm.c tzset.c unsetenv.c \
- asnprintf.c printf-args.c printf-parse.c vasnprintf.c \
- asprintf.c vasprintf.c wcrtomb.c wcwidth.c
+ mbsrtowcs-state.c mbsrtowcs.c mbtowc.c memchr.c mkdir.c \
+ mkstemp.c mktime.c mktime.c msvc-inval.c msvc-nothrow.c \
+ nl_langinfo.c open.c raise.c rawmemchr.c readlink.c regcomp.c \
+ regex.c regex_internal.c regexec.c setenv.c sigaction.c \
+ sigprocmask.c stat-w32.c stat.c strcasecmp.c strncasecmp.c \
+ strerror.c strerror-override.c strndup.c strnlen.c strptime.c \
+ strtol.c strtoul.c strtoull.c strtoimax.c strtoumax.c time_r.c \
+ time_rz.c timegm.c tzset.c unsetenv.c asnprintf.c \
+ printf-args.c printf-parse.c vasnprintf.c asprintf.c \
+ vasprintf.c wcrtomb.c wcwidth.c
# Use this preprocessor expression to decide whether #include_next works.
# Do not rely on a 'configure'-time test for this, since the expression
V_GPERF = $(V_GPERF_@AM_V@)
V_GPERF_ = $(V_GPERF_@AM_DEFAULT_V@)
V_GPERF_0 = @echo " GPERF " $@;
-charset_alias = $(DESTDIR)$(libdir)/charset.alias
-charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
# Because this Makefile snippet defines a variable used by other
# gnulib Makefile snippets, it must be present in all makefiles that
$(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
-.SUFFIXES: .sed .sin .c .o .obj
+.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/gnulib.mk $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strcasecmp.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strncasecmp.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/careadlinkat.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cloexec.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmpbuf.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname-lgpl.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbtowc.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbuiter.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memchr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkdir.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkstemp.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mktime.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-inval.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-nothrow.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nl_langinfo.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nstrftime.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/offtostr.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prepargs.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex_internal.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regexec.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/secure_getenv.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setenv.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sh-quote.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sig-handler.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcasecmp.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-override.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strftime.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/striconv.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stripslash.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strncasecmp.Po@am__quote@ # am--include-marker
am--depfiles: $(am__depfiles_remade)
.c.o:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(am__set_depbase) && \
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $<; \
-@am__fastdepCC_TRUE@ if test $$? = 0; then $(am__mv) $$depbase.Tpo $$depbase.Po; \
-@am__fastdepCC_TRUE@ else rm -f $$depbase.Tpo; false; fi
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(am__set_depbase) && \
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $$($(CYGPATH_W) $<); \
-@am__fastdepCC_TRUE@ if test $$? = 0; then $(am__mv) $$depbase.Tpo $$depbase.Po; \
-@am__fastdepCC_TRUE@ else rm -f $$depbase.Tpo; false; fi
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $$($(CYGPATH_W) $<)
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
check-am: all-am
check: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(LIBRARIES) $(HEADERS) config.h all-local
+all-am: Makefile $(LIBRARIES) $(HEADERS) config.h
installdirs:
install: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) install-am
-rm -f ./$(DEPDIR)/c-strcasecmp.Po
-rm -f ./$(DEPDIR)/c-strncasecmp.Po
-rm -f ./$(DEPDIR)/careadlinkat.Po
+ -rm -f ./$(DEPDIR)/cloexec.Po
-rm -f ./$(DEPDIR)/close.Po
-rm -f ./$(DEPDIR)/cmpbuf.Po
-rm -f ./$(DEPDIR)/dirname-lgpl.Po
-rm -f ./$(DEPDIR)/mbtowc.Po
-rm -f ./$(DEPDIR)/mbuiter.Po
-rm -f ./$(DEPDIR)/memchr.Po
+ -rm -f ./$(DEPDIR)/mkdir.Po
-rm -f ./$(DEPDIR)/mkstemp.Po
-rm -f ./$(DEPDIR)/mktime.Po
-rm -f ./$(DEPDIR)/msvc-inval.Po
-rm -f ./$(DEPDIR)/msvc-nothrow.Po
-rm -f ./$(DEPDIR)/nl_langinfo.Po
+ -rm -f ./$(DEPDIR)/nstrftime.Po
-rm -f ./$(DEPDIR)/offtostr.Po
-rm -f ./$(DEPDIR)/open.Po
-rm -f ./$(DEPDIR)/prepargs.Po
-rm -f ./$(DEPDIR)/regex.Po
-rm -f ./$(DEPDIR)/regex_internal.Po
-rm -f ./$(DEPDIR)/regexec.Po
- -rm -f ./$(DEPDIR)/secure_getenv.Po
-rm -f ./$(DEPDIR)/setenv.Po
-rm -f ./$(DEPDIR)/sh-quote.Po
-rm -f ./$(DEPDIR)/sig-handler.Po
-rm -f ./$(DEPDIR)/strcasecmp.Po
-rm -f ./$(DEPDIR)/strerror-override.Po
-rm -f ./$(DEPDIR)/strerror.Po
- -rm -f ./$(DEPDIR)/strftime.Po
-rm -f ./$(DEPDIR)/striconv.Po
-rm -f ./$(DEPDIR)/stripslash.Po
-rm -f ./$(DEPDIR)/strncasecmp.Po
install-dvi-am:
-install-exec-am: install-exec-local
+install-exec-am:
install-html: install-html-am
-rm -f ./$(DEPDIR)/c-strcasecmp.Po
-rm -f ./$(DEPDIR)/c-strncasecmp.Po
-rm -f ./$(DEPDIR)/careadlinkat.Po
+ -rm -f ./$(DEPDIR)/cloexec.Po
-rm -f ./$(DEPDIR)/close.Po
-rm -f ./$(DEPDIR)/cmpbuf.Po
-rm -f ./$(DEPDIR)/dirname-lgpl.Po
-rm -f ./$(DEPDIR)/mbtowc.Po
-rm -f ./$(DEPDIR)/mbuiter.Po
-rm -f ./$(DEPDIR)/memchr.Po
+ -rm -f ./$(DEPDIR)/mkdir.Po
-rm -f ./$(DEPDIR)/mkstemp.Po
-rm -f ./$(DEPDIR)/mktime.Po
-rm -f ./$(DEPDIR)/msvc-inval.Po
-rm -f ./$(DEPDIR)/msvc-nothrow.Po
-rm -f ./$(DEPDIR)/nl_langinfo.Po
+ -rm -f ./$(DEPDIR)/nstrftime.Po
-rm -f ./$(DEPDIR)/offtostr.Po
-rm -f ./$(DEPDIR)/open.Po
-rm -f ./$(DEPDIR)/prepargs.Po
-rm -f ./$(DEPDIR)/regex.Po
-rm -f ./$(DEPDIR)/regex_internal.Po
-rm -f ./$(DEPDIR)/regexec.Po
- -rm -f ./$(DEPDIR)/secure_getenv.Po
-rm -f ./$(DEPDIR)/setenv.Po
-rm -f ./$(DEPDIR)/sh-quote.Po
-rm -f ./$(DEPDIR)/sig-handler.Po
-rm -f ./$(DEPDIR)/strcasecmp.Po
-rm -f ./$(DEPDIR)/strerror-override.Po
-rm -f ./$(DEPDIR)/strerror.Po
- -rm -f ./$(DEPDIR)/strftime.Po
-rm -f ./$(DEPDIR)/striconv.Po
-rm -f ./$(DEPDIR)/stripslash.Po
-rm -f ./$(DEPDIR)/strncasecmp.Po
ps-am:
-uninstall-am: uninstall-local
+uninstall-am:
.MAKE: all check install install-am install-strip
-.PHONY: CTAGS GTAGS TAGS all all-am all-local am--depfiles check \
- check-am clean clean-generic clean-noinstLIBRARIES \
- cscopelist-am ctags ctags-am distclean distclean-compile \
- distclean-generic distclean-hdr distclean-local distclean-tags \
- distdir dvi dvi-am html html-am info info-am install \
- install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-exec-local \
- install-html install-html-am install-info install-info-am \
- install-man install-pdf install-pdf-am install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-compile mostlyclean-generic \
- mostlyclean-local pdf pdf-am ps ps-am tags tags-am uninstall \
- uninstall-am uninstall-local
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
+ clean-generic clean-noinstLIBRARIES cscopelist-am ctags \
+ ctags-am distclean distclean-compile distclean-generic \
+ distclean-hdr distclean-local distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-local pdf pdf-am ps ps-am tags \
+ tags-am uninstall uninstall-am
.PRECIOUS: Makefile
@GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status
@GL_GENERATE_ALLOCA_H_FALSE@ rm -f $@
-# Listed in the same order as the GNU makefile conventions, and
-# provided by autoconf 2.59c+ or 2.70.
-# The Automake-defined pkg* macros are appended, in the order
-# listed in the Automake 1.10a+ documentation.
-configmake.h: Makefile
- $(AM_V_GEN)rm -f $@-t && \
- { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- echo '#define PREFIX "$(prefix)"'; \
- echo '#define EXEC_PREFIX "$(exec_prefix)"'; \
- echo '#define BINDIR "$(bindir)"'; \
- echo '#define SBINDIR "$(sbindir)"'; \
- echo '#define LIBEXECDIR "$(libexecdir)"'; \
- echo '#define DATAROOTDIR "$(datarootdir)"'; \
- echo '#define DATADIR "$(datadir)"'; \
- echo '#define SYSCONFDIR "$(sysconfdir)"'; \
- echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
- echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
- echo '#define RUNSTATEDIR "$(runstatedir)"'; \
- echo '#define INCLUDEDIR "$(includedir)"'; \
- echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
- echo '#define DOCDIR "$(docdir)"'; \
- echo '#define INFODIR "$(infodir)"'; \
- echo '#define HTMLDIR "$(htmldir)"'; \
- echo '#define DVIDIR "$(dvidir)"'; \
- echo '#define PDFDIR "$(pdfdir)"'; \
- echo '#define PSDIR "$(psdir)"'; \
- echo '#define LIBDIR "$(libdir)"'; \
- echo '#define LISPDIR "$(lispdir)"'; \
- echo '#define LOCALEDIR "$(localedir)"'; \
- echo '#define MANDIR "$(mandir)"'; \
- echo '#define MANEXT "$(manext)"'; \
- echo '#define PKGDATADIR "$(pkgdatadir)"'; \
- echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \
- echo '#define PKGLIBDIR "$(pkglibdir)"'; \
- echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
- } | sed '/""/d' > $@-t && \
- mv -f $@-t $@
-
# We need the following in order to create <ctype.h> when the system
# doesn't have one that works with the given compiler.
ctype.h: ctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
@GL_GENERATE_FLOAT_H_FALSE@float.h: $(top_builddir)/config.status
@GL_GENERATE_FLOAT_H_FALSE@ rm -f $@
-# We need the following in order to create <fnmatch.h> when the system
-# doesn't have one that supports the required API.
-@GL_GENERATE_FNMATCH_H_TRUE@fnmatch.h: fnmatch.in.h $(top_builddir)/config.status $(ARG_NONNULL_H)
+# We need the following in order to create <fnmatch.h>.
+@GL_GENERATE_FNMATCH_H_TRUE@fnmatch.h: fnmatch.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
@GL_GENERATE_FNMATCH_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \
-@GL_GENERATE_FNMATCH_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-@GL_GENERATE_FNMATCH_H_TRUE@ sed -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+@GL_GENERATE_FNMATCH_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+@GL_GENERATE_FNMATCH_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_FNMATCH_H_TRUE@ -e 's|@''HAVE_FNMATCH_H''@|$(HAVE_FNMATCH_H)|g' \
+@GL_GENERATE_FNMATCH_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_FNMATCH_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_FNMATCH_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_FNMATCH_H_TRUE@ -e 's|@''NEXT_FNMATCH_H''@|$(NEXT_FNMATCH_H)|g' \
+@GL_GENERATE_FNMATCH_H_TRUE@ -e 's/@''GNULIB_FNMATCH''@/$(GNULIB_FNMATCH)/g' \
+@GL_GENERATE_FNMATCH_H_TRUE@ -e 's|@''HAVE_FNMATCH''@|$(HAVE_FNMATCH)|g' \
+@GL_GENERATE_FNMATCH_H_TRUE@ -e 's|@''REPLACE_FNMATCH''@|$(REPLACE_FNMATCH)|g' \
+@GL_GENERATE_FNMATCH_H_TRUE@ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+@GL_GENERATE_FNMATCH_H_TRUE@ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+@GL_GENERATE_FNMATCH_H_TRUE@ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
@GL_GENERATE_FNMATCH_H_TRUE@ < $(srcdir)/fnmatch.in.h; \
@GL_GENERATE_FNMATCH_H_TRUE@ } > $@-t && \
-@GL_GENERATE_FNMATCH_H_TRUE@ mv -f $@-t $@
+@GL_GENERATE_FNMATCH_H_TRUE@ mv $@-t $@
@GL_GENERATE_FNMATCH_H_FALSE@fnmatch.h: $(top_builddir)/config.status
@GL_GENERATE_FNMATCH_H_FALSE@ rm -f $@
# We need the following in order to create <getopt.h> when the system
# doesn't have one that works with the given compiler.
-getopt.h: getopt.in.h $(top_builddir)/config.status
+getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
sed -e 's|@''GUARD_PREFIX''@|GL|g' \
@GL_GENERATE_ICONV_H_FALSE@iconv.h: $(top_builddir)/config.status
@GL_GENERATE_ICONV_H_FALSE@ rm -f $@
-iconv_open-aix.h: iconv_open-aix.gperf
+$(srcdir)/iconv_open-aix.h: $(srcdir)/iconv_open-aix.gperf
$(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-aix.gperf > $(srcdir)/iconv_open-aix.h-t && \
mv $(srcdir)/iconv_open-aix.h-t $(srcdir)/iconv_open-aix.h
-iconv_open-hpux.h: iconv_open-hpux.gperf
+$(srcdir)/iconv_open-hpux.h: $(srcdir)/iconv_open-hpux.gperf
$(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-hpux.gperf > $(srcdir)/iconv_open-hpux.h-t && \
mv $(srcdir)/iconv_open-hpux.h-t $(srcdir)/iconv_open-hpux.h
-iconv_open-irix.h: iconv_open-irix.gperf
+$(srcdir)/iconv_open-irix.h: $(srcdir)/iconv_open-irix.gperf
$(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-irix.gperf > $(srcdir)/iconv_open-irix.h-t && \
mv $(srcdir)/iconv_open-irix.h-t $(srcdir)/iconv_open-irix.h
-iconv_open-osf.h: iconv_open-osf.gperf
+$(srcdir)/iconv_open-osf.h: $(srcdir)/iconv_open-osf.gperf
$(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-osf.gperf > $(srcdir)/iconv_open-osf.h-t && \
mv $(srcdir)/iconv_open-osf.h-t $(srcdir)/iconv_open-osf.h
-iconv_open-solaris.h: iconv_open-solaris.gperf
+$(srcdir)/iconv_open-solaris.h: $(srcdir)/iconv_open-solaris.gperf
$(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-solaris.gperf > $(srcdir)/iconv_open-solaris.h-t && \
mv $(srcdir)/iconv_open-solaris.h-t $(srcdir)/iconv_open-solaris.h
-e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \
-e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
-e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \
+ -e 's/@''HAVE_IMAXDIV_T''@/$(HAVE_IMAXDIV_T)/g' \
-e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \
-e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \
-e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \
-e 's/@''GNULIB_NL_LANGINFO''@/$(GNULIB_NL_LANGINFO)/g' \
-e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \
-e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \
+ -e 's|@''HAVE_LANGINFO_ALTMON''@|$(HAVE_LANGINFO_ALTMON)|g' \
-e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \
-e 's|@''HAVE_LANGINFO_YESEXPR''@|$(HAVE_LANGINFO_YESEXPR)|g' \
-e 's|@''HAVE_NL_LANGINFO''@|$(HAVE_NL_LANGINFO)|g' \
@GL_GENERATE_LIMITS_H_FALSE@limits.h: $(top_builddir)/config.status
@GL_GENERATE_LIMITS_H_FALSE@ rm -f $@
-# We need the following in order to install a simple file in $(libdir)
-# which is shared with other installed packages. We use a list of referencing
-# packages so that "make uninstall" will remove the file if and only if it
-# is not used by another installed package.
-# On systems with glibc-2.1 or newer, the file is redundant, therefore we
-# avoid installing it.
-
-all-local: charset.alias ref-add.sed ref-del.sed
-install-exec-local: install-exec-localcharset
-install-exec-localcharset: all-local
- if test $(GLIBC21) = no; then \
- case '$(host_os)' in \
- darwin[56]*) \
- need_charset_alias=true ;; \
- darwin* | cygwin* | mingw* | pw32* | cegcc*) \
- need_charset_alias=false ;; \
- *) \
- need_charset_alias=true ;; \
- esac ; \
- else \
- need_charset_alias=false ; \
- fi ; \
- if $$need_charset_alias; then \
- $(mkinstalldirs) $(DESTDIR)$(libdir) ; \
- fi ; \
- if test -f $(charset_alias); then \
- sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
- $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
- rm -f $(charset_tmp) ; \
- else \
- if $$need_charset_alias; then \
- sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
- $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
- rm -f $(charset_tmp) ; \
- fi ; \
- fi
-
-uninstall-local: uninstall-localcharset
-uninstall-localcharset: all-local
- if test -f $(charset_alias); then \
- sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
- if grep '^# Packages using this file: $$' $(charset_tmp) \
- > /dev/null; then \
- rm -f $(charset_alias); \
- else \
- $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
- fi; \
- rm -f $(charset_tmp); \
- fi
-
-charset.alias: config.charset
- $(AM_V_GEN)rm -f t-$@ $@ && \
- $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ && \
- mv t-$@ $@
-.sin.sed:
- $(AM_V_GEN)rm -f t-$@ $@ && \
- sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ && \
- mv t-$@ $@
-
# We need the following in order to create <locale.h> when the system
# doesn't have one that provides all definitions.
locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \
-e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \
-e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \
+ -e 's/@''GNULIB_LOCALENAME''@/$(GNULIB_LOCALENAME)/g' \
+ -e 's|@''HAVE_NEWLOCALE''@|$(HAVE_NEWLOCALE)|g' \
-e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \
+ -e 's|@''HAVE_FREELOCALE''@|$(HAVE_FREELOCALE)|g' \
-e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \
-e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \
-e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \
+ -e 's|@''REPLACE_NEWLOCALE''@|$(REPLACE_NEWLOCALE)|g' \
-e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \
+ -e 's|@''REPLACE_FREELOCALE''@|$(REPLACE_FREELOCALE)|g' \
-e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \
- -e 's|@''GNULIB_PTHREAD_SIGMASK''@|$(GNULIB_PTHREAD_SIGMASK)|g' \
- -e 's|@''GNULIB_RAISE''@|$(GNULIB_RAISE)|g' \
+ -e 's/@''GNULIB_PTHREAD_SIGMASK''@/$(GNULIB_PTHREAD_SIGMASK)/g' \
+ -e 's/@''GNULIB_RAISE''@/$(GNULIB_RAISE)/g' \
-e 's/@''GNULIB_SIGNAL_H_SIGPIPE''@/$(GNULIB_SIGNAL_H_SIGPIPE)/g' \
-e 's/@''GNULIB_SIGPROCMASK''@/$(GNULIB_SIGPROCMASK)/g' \
-e 's/@''GNULIB_SIGACTION''@/$(GNULIB_SIGACTION)/g' \
-e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \
-e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \
-e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \
+ -e 's/@''GNULIB_REALLOCARRAY''@/$(GNULIB_REALLOCARRAY)/g' \
-e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \
-e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \
-e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \
-e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \
-e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
-e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \
+ -e 's|@''HAVE_DECL_INITSTATE''@|$(HAVE_DECL_INITSTATE)|g' \
-e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
-e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \
-e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \
-e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \
-e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \
-e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \
+ -e 's|@''HAVE_REALLOCARRAY''@|$(HAVE_REALLOCARRAY)|g' \
-e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \
-e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
-e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \
-e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \
+ -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \
-e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
-e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \
-e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \
+ -e 's/@''GNULIB_EXPLICIT_BZERO''@/$(GNULIB_EXPLICIT_BZERO)/g' \
-e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \
-e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \
-e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \
-e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \
-e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \
< $(srcdir)/string.in.h | \
- sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \
+ sed -e 's|@''HAVE_EXPLICIT_BZERO''@|$(HAVE_EXPLICIT_BZERO)|g' \
+ -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \
-e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \
-e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \
-e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \
-e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \
-e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
-e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \
- -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \
-e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \
-e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
- -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
+ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \
-e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \
-e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
- -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
- -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
- -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \
-e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \
-e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \
-e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \
- -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \
+ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
+ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
-e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \
+ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
+ -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \
+ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \
-e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \
- -e 's|@''GNULIB_FFS''@|$(GNULIB_FFS)|g' \
+ -e 's/@''GNULIB_FFS''@/$(GNULIB_FFS)/g' \
-e 's|@''HAVE_FFS''@|$(HAVE_FFS)|g' \
-e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \
-e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \
-e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \
-e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \
-e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \
+ -e 's/@''GNULIB_GETPASS''@/$(GNULIB_GETPASS)/g' \
-e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \
-e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \
-e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \
-e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \
-e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \
-e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \
+ -e 's|@''HAVE_GETPASS''@|$(HAVE_GETPASS)|g' \
-e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \
-e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \
-e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \
-e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
-e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \
-e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \
- -e 's|@''HAVE_TRUNCATE''@|$(HAVE_TRUNCATE)|g' \
-e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \
-e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \
-e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \
-e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \
-e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \
-e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \
+ -e 's|@''HAVE_DECL_TRUNCATE''@|$(HAVE_DECL_TRUNCATE)|g' \
-e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \
-e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
-e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
-e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
-e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \
-e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \
+ -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \
-e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \
-e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \
-e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
-e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \
-e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \
-e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
+ -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \
-e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \
-e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
-e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \
-#if !defined _Noreturn && __STDC_VERSION__ < 201112
-# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
- || 0x5110 <= __SUNPRO_C)
+#ifndef _Noreturn
+# if 201103 <= (defined __cplusplus ? __cplusplus : 0)
+# define _Noreturn [[noreturn]]
+# elif (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
+ || 4 < __GNUC__ + (7 <= __GNUC_MINOR__))
+ /* _Noreturn works as-is. */
+# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C
# define _Noreturn __attribute__ ((__noreturn__))
-# elif 1200 <= _MSC_VER
+# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0)
# define _Noreturn __declspec (noreturn)
# else
# define _Noreturn
/* Memory allocation on the stack.
- Copyright (C) 1995, 1999, 2001-2004, 2006-2017 Free Software Foundation,
+ Copyright (C) 1995, 1999, 2001-2004, 2006-2018 Free Software Foundation,
Inc.
This program is free software; you can redistribute it and/or modify it
You should have received a copy of the GNU General Public
License along with this program; if not, see
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
*/
/* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H
/* Memory allocators such as malloc+free.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
/* Do not use GCC attributes such as __attribute__ ((malloc)) with
the function types pointed at by these members, because these
attributes do not work with pointers to functions. See
- <http://lists.gnu.org/archive/html/bug-gnulib/2011-04/msg00007.html>. */
+ <https://lists.gnu.org/r/bug-gnulib/2011-04/msg00007.html>. */
/* Call ALLOCATE to allocate memory, like 'malloc'. On failure ALLOCATE
should return NULL, though not necessarily set errno. When given
/* anytostr.c -- convert integers to printable strings
- Copyright (C) 2001, 2006, 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2006, 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert */
/* areadlink.c -- readlink wrapper to return the link name in malloc'd storage
Unlike xreadlink and xreadlink_with_size, don't ever call exit.
- Copyright (C) 2001, 2003-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2003-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Jim Meyering <jim@meyering.net>
and Bruno Haible <bruno@clisp.org>. */
/* Read symbolic links without size limitation.
- Copyright (C) 2001, 2003-2004, 2007, 2009-2017 Free Software Foundation,
+ Copyright (C) 2001, 2003-2004, 2007, 2009-2018 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Jim Meyering <jim@meyering.net> */
/* A C macro for declaring that specific arguments must not be NULL.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
that the values passed as arguments n, ..., m must be non-NULL pointers.
/* argmatch.c -- find a match for a string in an array
- Copyright (C) 1990, 1998-1999, 2001-2007, 2009-2017 Free Software
+ Copyright (C) 1990, 1998-1999, 2001-2007, 2009-2018 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by David MacKenzie <djm@ai.mit.edu>
Modified by Akim Demaille <demaille@inf.enst.fr> */
/* argmatch.h -- definitions and prototypes for argmatch.c
- Copyright (C) 1990, 1998-1999, 2001-2002, 2004-2005, 2009-2017 Free Software
+ Copyright (C) 1990, 1998-1999, 2001-2002, 2004-2005, 2009-2018 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by David MacKenzie <djm@ai.mit.edu>
Modified by Akim Demaille <demaille@inf.enst.fr> */
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2017 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2018 Free Software Foundation,
Inc.
This program is free software; you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Run-time assert-like macros.
- Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ Copyright (C) 2014-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
#include <assert.h>
/* Check E's value at runtime, and report an error and abort if not.
- However, do nothng if NDEBUG is defined.
+ However, do nothing if NDEBUG is defined.
Unlike standard 'assert', this macro always compiles E even when NDEBUG
is defined, so as to catch typos and avoid some GCC warnings. */
/* basename.c -- return the last element in a file name
- Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2017 Free Software
+ Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2018 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* basename.c -- return the last element in a file name
- Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2017 Free Software
+ Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2018 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Binary mode I/O.
- Copyright 2017 Free Software Foundation, Inc.
+ Copyright 2017-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Binary mode I/O.
- Copyright (C) 2001, 2003, 2005, 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2003, 2005, 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _BINARY_H
#define _BINARY_H
/* Use a function rather than a macro, to avoid gcc warnings
"warning: statement with no effect". */
BINARY_IO_INLINE int
-__gl_setmode (int fd, int mode)
+__gl_setmode (int fd _GL_UNUSED, int mode _GL_UNUSED)
{
- (void) fd;
- (void) mode;
return O_BINARY;
}
#endif
extern int __gl_setmode_check (int);
#else
BINARY_IO_INLINE int
-__gl_setmode_check (int fd) { return 0; }
+__gl_setmode_check (int fd _GL_UNUSED) { return 0; }
#endif
/* Set FD's mode to MODE, which should be either O_TEXT or O_BINARY.
/* bitrotate.h - Rotate bits in integers
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Simon Josefsson <simon@josefsson.org>, 2008. */
/* Convert unibyte character to wide character.
- Copyright (C) 2008, 2010-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008, 2010-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* C++ compatible function declaration macros.
- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ Copyright (C) 2010-2018 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
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _GL_CXXDEFS_H
#define _GL_CXXDEFS_H
_GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
# define _GL_CXXALIASWARN_1(func,namespace) \
_GL_CXXALIASWARN_2 (func, namespace)
-/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
+/* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
we enable the warning only when not optimizing. */
# if !__OPTIMIZE__
# define _GL_CXXALIASWARN_2(func,namespace) \
GNULIB_NAMESPACE)
# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
_GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
-/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
+/* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
we enable the warning only when not optimizing. */
# if !__OPTIMIZE__
# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
<ctype.h> functions' behaviour depends on the current locale set via
setlocale.
- Copyright (C) 2000-2003, 2006, 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2000-2003, 2006, 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with this program; if not, see <http://www.gnu.org/licenses/>. */
+along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef C_CTYPE_H
#define C_CTYPE_H
/* Stack overflow handling.
- Copyright (C) 2002, 2004, 2006, 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2006, 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
static char const * volatile program_error_message;
static char const * volatile stack_overflow_message;
+#if ((HAVE_LIBSIGSEGV && ! HAVE_XSI_STACK_OVERFLOW_HEURISTIC) \
+ || (HAVE_SIGALTSTACK && HAVE_DECL_SIGALTSTACK \
+ && HAVE_STACK_OVERFLOW_HANDLING))
+
/* Output an error message, then exit with status EXIT_FAILURE if it
appears to have been a stack overflow, or with a core dump
otherwise. This function is async-signal-safe. */
raise (signo);
abort ();
}
+#endif
#if (HAVE_SIGALTSTACK && HAVE_DECL_SIGALTSTACK \
&& HAVE_STACK_OVERFLOW_HANDLING) || HAVE_LIBSIGSEGV
/* Stack overflow handling.
- Copyright (C) 2002, 2004, 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Set up ACTION so that it is invoked on C stack overflow and on other,
/* Case-insensitive string comparison functions in C locale.
- Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2017 Free Software
+ Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2018 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef C_STRCASE_H
#define C_STRCASE_H
/* c-strcasecmp.c -- case insensitive string comparator in C locale
- Copyright (C) 1998-1999, 2005-2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1998-1999, 2005-2006, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Optimized case-insensitive string comparison in C locale.
- Copyright (C) 2001-2002, 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2007, 2009-2018 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
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>. */
/* c-strncasecmp.c -- case insensitive string comparator in C locale
- Copyright (C) 1998-1999, 2005-2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1998-1999, 2005-2006, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Read symbolic links into a buffer without size limitation, relative to fd.
- Copyright (C) 2001, 2003-2004, 2007, 2009-2017 Free Software Foundation,
+ Copyright (C) 2001, 2003-2004, 2007, 2009-2018 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */
/* Read symbolic links into a buffer without size limitation, relative to fd.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */
--- /dev/null
+/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public
+ License as published by the Free Software Foundation; either
+ version 3 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_CDEFS_H
+#define _SYS_CDEFS_H 1
+
+/* We are almost always included from features.h. */
+#ifndef _FEATURES_H
+# include <features.h>
+#endif
+
+/* The GNU libc does not support any K&R compilers or the traditional mode
+ of ISO C compilers anymore. Check for some of the combinations not
+ anymore supported. */
+#if defined __GNUC__ && !defined __STDC__
+# error "You need a ISO C conforming compiler to use the glibc headers"
+#endif
+
+/* Some user header file might have defined this before. */
+#undef __P
+#undef __PMT
+
+#ifdef __GNUC__
+
+/* All functions, except those with callbacks or those that
+ synchronize memory, are leaf functions. */
+# if __GNUC_PREREQ (4, 6) && !defined _LIBC
+# define __LEAF , __leaf__
+# define __LEAF_ATTR __attribute__ ((__leaf__))
+# else
+# define __LEAF
+# define __LEAF_ATTR
+# endif
+
+/* GCC can always grok prototypes. For C++ programs we add throw()
+ to help it optimize the function calls. But this works only with
+ gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
+ as non-throwing using a function attribute since programs can use
+ the -fexceptions options for C code as well. */
+# if !defined __cplusplus && __GNUC_PREREQ (3, 3)
+# define __THROW __attribute__ ((__nothrow__ __LEAF))
+# define __THROWNL __attribute__ ((__nothrow__))
+# define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct
+# define __NTHNL(fct) __attribute__ ((__nothrow__)) fct
+# else
+# if defined __cplusplus && __GNUC_PREREQ (2,8)
+# define __THROW throw ()
+# define __THROWNL throw ()
+# define __NTH(fct) __LEAF_ATTR fct throw ()
+# define __NTHNL(fct) fct throw ()
+# else
+# define __THROW
+# define __THROWNL
+# define __NTH(fct) fct
+# define __NTHNL(fct) fct
+# endif
+# endif
+
+#else /* Not GCC. */
+
+# if (defined __cplusplus \
+ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
+# define __inline inline
+# else
+# define __inline /* No inline functions. */
+# endif
+
+# define __THROW
+# define __THROWNL
+# define __NTH(fct) fct
+
+#endif /* GCC. */
+
+/* Compilers that are not clang may object to
+ #if defined __clang__ && __has_extension(...)
+ even though they do not need to evaluate the right-hand side of the &&. */
+#if defined __clang__ && defined __has_extension
+# define __glibc_clang_has_extension(ext) __has_extension (ext)
+#else
+# define __glibc_clang_has_extension(ext) 0
+#endif
+
+/* These two macros are not used in glibc anymore. They are kept here
+ only because some other projects expect the macros to be defined. */
+#define __P(args) args
+#define __PMT(args) args
+
+/* For these things, GCC behaves the ANSI way normally,
+ and the non-ANSI way under -traditional. */
+
+#define __CONCAT(x,y) x ## y
+#define __STRING(x) #x
+
+/* This is not a typedef so `const __ptr_t' does the right thing. */
+#define __ptr_t void *
+
+
+/* C++ needs to know that types and declarations are C, not C++. */
+#ifdef __cplusplus
+# define __BEGIN_DECLS extern "C" {
+# define __END_DECLS }
+#else
+# define __BEGIN_DECLS
+# define __END_DECLS
+#endif
+
+
+/* Fortify support. */
+#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
+#define __bos0(ptr) __builtin_object_size (ptr, 0)
+
+#if __GNUC_PREREQ (4,3)
+# define __warndecl(name, msg) \
+ extern void name (void) __attribute__((__warning__ (msg)))
+# define __warnattr(msg) __attribute__((__warning__ (msg)))
+# define __errordecl(name, msg) \
+ extern void name (void) __attribute__((__error__ (msg)))
+#else
+# define __warndecl(name, msg) extern void name (void)
+# define __warnattr(msg)
+# define __errordecl(name, msg) extern void name (void)
+#endif
+
+/* Support for flexible arrays.
+ Headers that should use flexible arrays only if they're "real"
+ (e.g. only if they won't affect sizeof()) should test
+ #if __glibc_c99_flexarr_available. */
+#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L && !defined __HP_cc
+# define __flexarr []
+# define __glibc_c99_flexarr_available 1
+#elif __GNUC_PREREQ (2,97)
+/* GCC 2.97 supports C99 flexible array members as an extension,
+ even when in C89 mode or compiling C++ (any version). */
+# define __flexarr []
+# define __glibc_c99_flexarr_available 1
+#elif defined __GNUC__
+/* Pre-2.97 GCC did not support C99 flexible arrays but did have
+ an equivalent extension with slightly different notation. */
+# define __flexarr [0]
+# define __glibc_c99_flexarr_available 1
+#else
+/* Some other non-C99 compiler. Approximate with [1]. */
+# define __flexarr [1]
+# define __glibc_c99_flexarr_available 0
+#endif
+
+
+/* __asm__ ("xyz") is used throughout the headers to rename functions
+ at the assembly language level. This is wrapped by the __REDIRECT
+ macro, in order to support compilers that can do this some other
+ way. When compilers don't support asm-names at all, we have to do
+ preprocessor tricks instead (which don't have exactly the right
+ semantics, but it's the best we can do).
+
+ Example:
+ int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); */
+
+#if defined __GNUC__ && __GNUC__ >= 2
+
+# define __REDIRECT(name, proto, alias) name proto __asm__ (__ASMNAME (#alias))
+# ifdef __cplusplus
+# define __REDIRECT_NTH(name, proto, alias) \
+ name proto __THROW __asm__ (__ASMNAME (#alias))
+# define __REDIRECT_NTHNL(name, proto, alias) \
+ name proto __THROWNL __asm__ (__ASMNAME (#alias))
+# else
+# define __REDIRECT_NTH(name, proto, alias) \
+ name proto __asm__ (__ASMNAME (#alias)) __THROW
+# define __REDIRECT_NTHNL(name, proto, alias) \
+ name proto __asm__ (__ASMNAME (#alias)) __THROWNL
+# endif
+# define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname)
+# define __ASMNAME2(prefix, cname) __STRING (prefix) cname
+
+/*
+#elif __SOME_OTHER_COMPILER__
+
+# define __REDIRECT(name, proto, alias) name proto; \
+ _Pragma("let " #name " = " #alias)
+*/
+#endif
+
+/* GCC has various useful declarations that can be made with the
+ `__attribute__' syntax. All of the ways we use this do fine if
+ they are omitted for compilers that don't understand it. */
+#if !defined __GNUC__ || __GNUC__ < 2
+# define __attribute__(xyz) /* Ignore */
+#endif
+
+/* At some point during the gcc 2.96 development the `malloc' attribute
+ for functions was introduced. We don't want to use it unconditionally
+ (although this would be possible) since it generates warnings. */
+#if __GNUC_PREREQ (2,96)
+# define __attribute_malloc__ __attribute__ ((__malloc__))
+#else
+# define __attribute_malloc__ /* Ignore */
+#endif
+
+/* Tell the compiler which arguments to an allocation function
+ indicate the size of the allocation. */
+#if __GNUC_PREREQ (4, 3)
+# define __attribute_alloc_size__(params) \
+ __attribute__ ((__alloc_size__ params))
+#else
+# define __attribute_alloc_size__(params) /* Ignore. */
+#endif
+
+/* At some point during the gcc 2.96 development the `pure' attribute
+ for functions was introduced. We don't want to use it unconditionally
+ (although this would be possible) since it generates warnings. */
+#if __GNUC_PREREQ (2,96)
+# define __attribute_pure__ __attribute__ ((__pure__))
+#else
+# define __attribute_pure__ /* Ignore */
+#endif
+
+/* This declaration tells the compiler that the value is constant. */
+#if __GNUC_PREREQ (2,5)
+# define __attribute_const__ __attribute__ ((__const__))
+#else
+# define __attribute_const__ /* Ignore */
+#endif
+
+/* At some point during the gcc 3.1 development the `used' attribute
+ for functions was introduced. We don't want to use it unconditionally
+ (although this would be possible) since it generates warnings. */
+#if __GNUC_PREREQ (3,1)
+# define __attribute_used__ __attribute__ ((__used__))
+# define __attribute_noinline__ __attribute__ ((__noinline__))
+#else
+# define __attribute_used__ __attribute__ ((__unused__))
+# define __attribute_noinline__ /* Ignore */
+#endif
+
+/* Since version 3.2, gcc allows marking deprecated functions. */
+#if __GNUC_PREREQ (3,2)
+# define __attribute_deprecated__ __attribute__ ((__deprecated__))
+#else
+# define __attribute_deprecated__ /* Ignore */
+#endif
+
+/* Since version 4.5, gcc also allows one to specify the message printed
+ when a deprecated function is used. clang claims to be gcc 4.2, but
+ may also support this feature. */
+#if __GNUC_PREREQ (4,5) || \
+ __glibc_clang_has_extension (__attribute_deprecated_with_message__)
+# define __attribute_deprecated_msg__(msg) \
+ __attribute__ ((__deprecated__ (msg)))
+#else
+# define __attribute_deprecated_msg__(msg) __attribute_deprecated__
+#endif
+
+/* At some point during the gcc 2.8 development the `format_arg' attribute
+ for functions was introduced. We don't want to use it unconditionally
+ (although this would be possible) since it generates warnings.
+ If several `format_arg' attributes are given for the same function, in
+ gcc-3.0 and older, all but the last one are ignored. In newer gccs,
+ all designated arguments are considered. */
+#if __GNUC_PREREQ (2,8)
+# define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x)))
+#else
+# define __attribute_format_arg__(x) /* Ignore */
+#endif
+
+/* At some point during the gcc 2.97 development the `strfmon' format
+ attribute for functions was introduced. We don't want to use it
+ unconditionally (although this would be possible) since it
+ generates warnings. */
+#if __GNUC_PREREQ (2,97)
+# define __attribute_format_strfmon__(a,b) \
+ __attribute__ ((__format__ (__strfmon__, a, b)))
+#else
+# define __attribute_format_strfmon__(a,b) /* Ignore */
+#endif
+
+/* The nonnull function attribute marks pointer parameters that
+ must not be NULL. Do not define __nonnull if it is already defined,
+ for portability when this file is used in Gnulib. */
+#ifndef __nonnull
+# if __GNUC_PREREQ (3,3)
+# define __nonnull(params) __attribute__ ((__nonnull__ params))
+# else
+# define __nonnull(params)
+# endif
+#endif
+
+/* If fortification mode, we warn about unused results of certain
+ function calls which can lead to problems. */
+#if __GNUC_PREREQ (3,4)
+# define __attribute_warn_unused_result__ \
+ __attribute__ ((__warn_unused_result__))
+# if defined __USE_FORTIFY_LEVEL && __USE_FORTIFY_LEVEL > 0
+# define __wur __attribute_warn_unused_result__
+# endif
+#else
+# define __attribute_warn_unused_result__ /* empty */
+#endif
+#ifndef __wur
+# define __wur /* Ignore */
+#endif
+
+/* Forces a function to be always inlined. */
+#if __GNUC_PREREQ (3,2)
+/* The Linux kernel defines __always_inline in stddef.h (283d7573), and
+ it conflicts with this definition. Therefore undefine it first to
+ allow either header to be included first. */
+# undef __always_inline
+# define __always_inline __inline __attribute__ ((__always_inline__))
+#else
+# undef __always_inline
+# define __always_inline __inline
+#endif
+
+/* Associate error messages with the source location of the call site rather
+ than with the source location inside the function. */
+#if __GNUC_PREREQ (4,3)
+# define __attribute_artificial__ __attribute__ ((__artificial__))
+#else
+# define __attribute_artificial__ /* Ignore */
+#endif
+
+/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+ inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
+ or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+ older than 4.3 may define these macros and still not guarantee GNU inlining
+ semantics.
+
+ clang++ identifies itself as gcc-4.2, but has support for GNU inlining
+ semantics, that can be checked fot by using the __GNUC_STDC_INLINE_ and
+ __GNUC_GNU_INLINE__ macro definitions. */
+#if (!defined __cplusplus || __GNUC_PREREQ (4,3) \
+ || (defined __clang__ && (defined __GNUC_STDC_INLINE__ \
+ || defined __GNUC_GNU_INLINE__)))
+# if defined __GNUC_STDC_INLINE__ || defined __cplusplus
+# define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
+# define __extern_always_inline \
+ extern __always_inline __attribute__ ((__gnu_inline__))
+# else
+# define __extern_inline extern __inline
+# define __extern_always_inline extern __always_inline
+# endif
+#endif
+
+#ifdef __extern_always_inline
+# define __fortify_function __extern_always_inline __attribute_artificial__
+#endif
+
+/* GCC 4.3 and above allow passing all anonymous arguments of an
+ __extern_always_inline function to some other vararg function. */
+#if __GNUC_PREREQ (4,3)
+# define __va_arg_pack() __builtin_va_arg_pack ()
+# define __va_arg_pack_len() __builtin_va_arg_pack_len ()
+#endif
+
+/* It is possible to compile containing GCC extensions even if GCC is
+ run in pedantic mode if the uses are carefully marked using the
+ `__extension__' keyword. But this is not generally available before
+ version 2.8. */
+#if !__GNUC_PREREQ (2,8)
+# define __extension__ /* Ignore */
+#endif
+
+/* __restrict is known in EGCS 1.2 and above. */
+#if !__GNUC_PREREQ (2,92)
+# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
+# define __restrict restrict
+# else
+# define __restrict /* Ignore */
+# endif
+#endif
+
+/* ISO C99 also allows to declare arrays as non-overlapping. The syntax is
+ array_name[restrict]
+ GCC 3.1 supports this. */
+#if __GNUC_PREREQ (3,1) && !defined __GNUG__
+# define __restrict_arr __restrict
+#else
+# ifdef __GNUC__
+# define __restrict_arr /* Not supported in old GCC. */
+# else
+# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
+# define __restrict_arr restrict
+# else
+/* Some other non-C99 compiler. */
+# define __restrict_arr /* Not supported. */
+# endif
+# endif
+#endif
+
+#if __GNUC__ >= 3
+# define __glibc_unlikely(cond) __builtin_expect ((cond), 0)
+# define __glibc_likely(cond) __builtin_expect ((cond), 1)
+#else
+# define __glibc_unlikely(cond) (cond)
+# define __glibc_likely(cond) (cond)
+#endif
+
+#ifdef __has_attribute
+# define __glibc_has_attribute(attr) __has_attribute (attr)
+#else
+# define __glibc_has_attribute(attr) 0
+#endif
+
+#if (!defined _Noreturn \
+ && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \
+ && !__GNUC_PREREQ (4,7))
+# if __GNUC_PREREQ (2,8)
+# define _Noreturn __attribute__ ((__noreturn__))
+# else
+# define _Noreturn
+# endif
+#endif
+
+#if __GNUC_PREREQ (8, 0)
+/* Describes a char array whose address can safely be passed as the first
+ argument to strncpy and strncat, as the char array is not necessarily
+ a NUL-terminated string. */
+# define __attribute_nonstring__ __attribute__ ((__nonstring__))
+#else
+# define __attribute_nonstring__
+#endif
+
+#if (!defined _Static_assert && !defined __cplusplus \
+ && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \
+ && (!__GNUC_PREREQ (4, 6) || defined __STRICT_ANSI__))
+# define _Static_assert(expr, diagnostic) \
+ extern int (*__Static_assert_function (void)) \
+ [!!sizeof (struct { int __error_if_negative: (expr) ? 2 : -1; })]
+#endif
+
+/* The #ifndef lets Gnulib avoid including these on non-glibc
+ platforms, where the includes typically do not exist. */
+#ifndef __WORDSIZE
+# include <bits/wordsize.h>
+# include <bits/long-double.h>
+#endif
+
+#if defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH
+# define __LDBL_COMPAT 1
+# ifdef __REDIRECT
+# define __LDBL_REDIR1(name, proto, alias) __REDIRECT (name, proto, alias)
+# define __LDBL_REDIR(name, proto) \
+ __LDBL_REDIR1 (name, proto, __nldbl_##name)
+# define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias)
+# define __LDBL_REDIR_NTH(name, proto) \
+ __LDBL_REDIR1_NTH (name, proto, __nldbl_##name)
+# define __LDBL_REDIR1_DECL(name, alias) \
+ extern __typeof (name) name __asm (__ASMNAME (#alias));
+# define __LDBL_REDIR_DECL(name) \
+ extern __typeof (name) name __asm (__ASMNAME ("__nldbl_" #name));
+# define __REDIRECT_LDBL(name, proto, alias) \
+ __LDBL_REDIR1 (name, proto, __nldbl_##alias)
+# define __REDIRECT_NTH_LDBL(name, proto, alias) \
+ __LDBL_REDIR1_NTH (name, proto, __nldbl_##alias)
+# endif
+#endif
+#if !defined __LDBL_COMPAT || !defined __REDIRECT
+# define __LDBL_REDIR1(name, proto, alias) name proto
+# define __LDBL_REDIR(name, proto) name proto
+# define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW
+# define __LDBL_REDIR_NTH(name, proto) name proto __THROW
+# define __LDBL_REDIR_DECL(name)
+# ifdef __REDIRECT
+# define __REDIRECT_LDBL(name, proto, alias) __REDIRECT (name, proto, alias)
+# define __REDIRECT_NTH_LDBL(name, proto, alias) \
+ __REDIRECT_NTH (name, proto, alias)
+# endif
+#endif
+
+/* __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
+ intended for use in preprocessor macros.
+
+ Note: MESSAGE must be a _single_ string; concatenation of string
+ literals is not supported. */
+#if __GNUC_PREREQ (4,8) || __glibc_clang_prereq (3,5)
+# define __glibc_macro_warning1(message) _Pragma (#message)
+# define __glibc_macro_warning(message) \
+ __glibc_macro_warning1 (GCC warning message)
+#else
+# define __glibc_macro_warning(msg)
+#endif
+
+/* Generic selection (ISO C11) is a C-only feature, available in GCC
+ since version 4.9. Previous versions do not provide generic
+ selection, even though they might set __STDC_VERSION__ to 201112L,
+ when in -std=c11 mode. Thus, we must check for !defined __GNUC__
+ when testing __STDC_VERSION__ for generic selection support.
+ On the other hand, Clang also defines __GNUC__, so a clang-specific
+ check is required to enable the use of generic selection. */
+#if !defined __cplusplus \
+ && (__GNUC_PREREQ (4, 9) \
+ || __glibc_clang_has_extension (c_generic_selections) \
+ || (!defined __GNUC__ && defined __STDC_VERSION__ \
+ && __STDC_VERSION__ >= 201112L))
+# define __HAVE_GENERIC_SELECTION 1
+#else
+# define __HAVE_GENERIC_SELECTION 0
+#endif
+
+#endif /* sys/cdefs.h */
--- /dev/null
+/* cloexec.c - set or clear the close-on-exec descriptor flag
+
+ Copyright (C) 1991, 2004-2006, 2009-2018 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+ The code is taken from glibc/manual/llio.texi */
+
+#include <config.h>
+
+#include "cloexec.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+/* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true,
+ or clear the flag if VALUE is false.
+ Return 0 on success, or -1 on error with 'errno' set.
+
+ Note that on MingW, this function does NOT protect DESC from being
+ inherited into spawned children. Instead, either use dup_cloexec
+ followed by closing the original DESC, or use interfaces such as
+ open or pipe2 that accept flags like O_CLOEXEC to create DESC
+ non-inheritable in the first place. */
+
+int
+set_cloexec_flag (int desc, bool value)
+{
+#ifdef F_SETFD
+
+ int flags = fcntl (desc, F_GETFD, 0);
+
+ if (0 <= flags)
+ {
+ int newflags = (value ? flags | FD_CLOEXEC : flags & ~FD_CLOEXEC);
+
+ if (flags == newflags
+ || fcntl (desc, F_SETFD, newflags) != -1)
+ return 0;
+ }
+
+ return -1;
+
+#else /* !F_SETFD */
+
+ /* Use dup2 to reject invalid file descriptors; the cloexec flag
+ will be unaffected. */
+ if (desc < 0)
+ {
+ errno = EBADF;
+ return -1;
+ }
+ if (dup2 (desc, desc) < 0)
+ /* errno is EBADF here. */
+ return -1;
+
+ /* There is nothing we can do on this kind of platform. Punt. */
+ return 0;
+#endif /* !F_SETFD */
+}
+
+
+/* Duplicates a file handle FD, while marking the copy to be closed
+ prior to exec or spawn. Returns -1 and sets errno if FD could not
+ be duplicated. */
+
+int
+dup_cloexec (int fd)
+{
+ return fcntl (fd, F_DUPFD_CLOEXEC, 0);
+}
--- /dev/null
+/* cloexec.c - set or clear the close-on-exec descriptor flag
+
+ Copyright (C) 2004, 2009-2018 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+*/
+
+#include <stdbool.h>
+
+/* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true,
+ or clear the flag if VALUE is false.
+ Return 0 on success, or -1 on error with 'errno' set.
+
+ Note that on MingW, this function does NOT protect DESC from being
+ inherited into spawned children. Instead, either use dup_cloexec
+ followed by closing the original DESC, or use interfaces such as
+ open or pipe2 that accept flags like O_CLOEXEC to create DESC
+ non-inheritable in the first place. */
+
+int set_cloexec_flag (int desc, bool value);
+
+/* Duplicates a file handle FD, while marking the copy to be closed
+ prior to exec or spawn. Returns -1 and sets errno if FD could not
+ be duplicated. */
+
+int dup_cloexec (int fd);
/* close replacement.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Buffer primitives for comparison operations.
- Copyright (C) 1993, 1995, 1998, 2001-2002, 2006, 2009-2013, 2015-2017 Free
+ Copyright (C) 1993, 1995, 1998, 2001-2002, 2006, 2009-2013, 2015-2018 Free
Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
/* Buffer primitives for comparison operations.
- Copyright (C) 2002, 2009-2013, 2015-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2009-2013, 2015-2018 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
+++ /dev/null
-#! /bin/sh
-# Output a system dependent table of character encoding aliases.
-#
-# Copyright (C) 2000-2004, 2006-2017 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, see <http://www.gnu.org/licenses/>.
-#
-# The table consists of lines of the form
-# ALIAS CANONICAL
-#
-# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)".
-# ALIAS is compared in a case sensitive way.
-#
-# CANONICAL is the GNU canonical name for this character encoding.
-# It must be an encoding supported by libiconv. Support by GNU libc is
-# also desirable. CANONICAL is case insensitive. Usually an upper case
-# MIME charset name is preferred.
-# The current list of GNU canonical charset names is as follows.
-#
-# name MIME? used by which systems
-# (darwin = Mac OS X, woe32 = native Windows)
-#
-# ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin cygwin
-# ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
-# ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
-# ISO-8859-3 Y glibc solaris cygwin
-# ISO-8859-4 Y osf solaris freebsd netbsd openbsd darwin
-# ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
-# ISO-8859-6 Y glibc aix hpux solaris cygwin
-# ISO-8859-7 Y glibc aix hpux irix osf solaris netbsd openbsd darwin cygwin
-# ISO-8859-8 Y glibc aix hpux osf solaris cygwin
-# ISO-8859-9 Y glibc aix hpux irix osf solaris darwin cygwin
-# ISO-8859-13 glibc netbsd openbsd darwin cygwin
-# ISO-8859-14 glibc cygwin
-# ISO-8859-15 glibc aix osf solaris freebsd netbsd openbsd darwin cygwin
-# KOI8-R Y glibc solaris freebsd netbsd openbsd darwin
-# KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin
-# KOI8-T glibc
-# CP437 dos
-# CP775 dos
-# CP850 aix osf dos
-# CP852 dos
-# CP855 dos
-# CP856 aix
-# CP857 dos
-# CP861 dos
-# CP862 dos
-# CP864 dos
-# CP865 dos
-# CP866 freebsd netbsd openbsd darwin dos
-# CP869 dos
-# CP874 woe32 dos
-# CP922 aix
-# CP932 aix cygwin woe32 dos
-# CP943 aix
-# CP949 osf darwin woe32 dos
-# CP950 woe32 dos
-# CP1046 aix
-# CP1124 aix
-# CP1125 dos
-# CP1129 aix
-# CP1131 darwin
-# CP1250 woe32
-# CP1251 glibc solaris netbsd openbsd darwin cygwin woe32
-# CP1252 aix woe32
-# CP1253 woe32
-# CP1254 woe32
-# CP1255 glibc woe32
-# CP1256 woe32
-# CP1257 woe32
-# GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin
-# EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin
-# EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin
-# EUC-TW glibc aix hpux irix osf solaris netbsd
-# BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin
-# BIG5-HKSCS glibc solaris darwin
-# GBK glibc aix osf solaris darwin cygwin woe32 dos
-# GB18030 glibc solaris netbsd darwin
-# SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin
-# JOHAB glibc solaris woe32
-# TIS-620 glibc aix hpux osf solaris cygwin
-# VISCII Y glibc
-# TCVN5712-1 glibc
-# ARMSCII-8 glibc darwin
-# GEORGIAN-PS glibc cygwin
-# PT154 glibc
-# HP-ROMAN8 hpux
-# HP-ARABIC8 hpux
-# HP-GREEK8 hpux
-# HP-HEBREW8 hpux
-# HP-TURKISH8 hpux
-# HP-KANA8 hpux
-# DEC-KANJI osf
-# DEC-HANYU osf
-# UTF-8 Y glibc aix hpux osf solaris netbsd darwin cygwin
-#
-# Note: Names which are not marked as being a MIME name should not be used in
-# Internet protocols for information interchange (mail, news, etc.).
-#
-# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications
-# must understand both names and treat them as equivalent.
-#
-# The first argument passed to this file is the canonical host specification,
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or
-# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-
-host="$1"
-os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'`
-echo "# This file contains a table of character encoding aliases,"
-echo "# suitable for operating system '${os}'."
-echo "# It was automatically generated from config.charset."
-# List of references, updated during installation:
-echo "# Packages using this file: "
-case "$os" in
- linux-gnulibc1*)
- # Linux libc5 doesn't have nl_langinfo(CODESET); therefore
- # localcharset.c falls back to using the full locale name
- # from the environment variables.
- echo "C ASCII"
- echo "POSIX ASCII"
- for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \
- en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \
- en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \
- es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \
- et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \
- fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \
- it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \
- sv_FI sv_SE; do
- echo "$l ISO-8859-1"
- echo "$l.iso-8859-1 ISO-8859-1"
- echo "$l.iso-8859-15 ISO-8859-15"
- echo "$l.iso-8859-15@euro ISO-8859-15"
- echo "$l@euro ISO-8859-15"
- echo "$l.cp-437 CP437"
- echo "$l.cp-850 CP850"
- echo "$l.cp-1252 CP1252"
- echo "$l.cp-1252@euro CP1252"
- #echo "$l.atari-st ATARI-ST" # not a commonly used encoding
- echo "$l.utf-8 UTF-8"
- echo "$l.utf-8@euro UTF-8"
- done
- for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \
- sl_SI sr sr_CS sr_YU; do
- echo "$l ISO-8859-2"
- echo "$l.iso-8859-2 ISO-8859-2"
- echo "$l.cp-852 CP852"
- echo "$l.cp-1250 CP1250"
- echo "$l.utf-8 UTF-8"
- done
- for l in mk mk_MK ru ru_RU; do
- echo "$l ISO-8859-5"
- echo "$l.iso-8859-5 ISO-8859-5"
- echo "$l.koi8-r KOI8-R"
- echo "$l.cp-866 CP866"
- echo "$l.cp-1251 CP1251"
- echo "$l.utf-8 UTF-8"
- done
- for l in ar ar_SA; do
- echo "$l ISO-8859-6"
- echo "$l.iso-8859-6 ISO-8859-6"
- echo "$l.cp-864 CP864"
- #echo "$l.cp-868 CP868" # not a commonly used encoding
- echo "$l.cp-1256 CP1256"
- echo "$l.utf-8 UTF-8"
- done
- for l in el el_GR gr gr_GR; do
- echo "$l ISO-8859-7"
- echo "$l.iso-8859-7 ISO-8859-7"
- echo "$l.cp-869 CP869"
- echo "$l.cp-1253 CP1253"
- echo "$l.cp-1253@euro CP1253"
- echo "$l.utf-8 UTF-8"
- echo "$l.utf-8@euro UTF-8"
- done
- for l in he he_IL iw iw_IL; do
- echo "$l ISO-8859-8"
- echo "$l.iso-8859-8 ISO-8859-8"
- echo "$l.cp-862 CP862"
- echo "$l.cp-1255 CP1255"
- echo "$l.utf-8 UTF-8"
- done
- for l in tr tr_TR; do
- echo "$l ISO-8859-9"
- echo "$l.iso-8859-9 ISO-8859-9"
- echo "$l.cp-857 CP857"
- echo "$l.cp-1254 CP1254"
- echo "$l.utf-8 UTF-8"
- done
- for l in lt lt_LT lv lv_LV; do
- #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name
- echo "$l ISO-8859-13"
- done
- for l in ru_UA uk uk_UA; do
- echo "$l KOI8-U"
- done
- for l in zh zh_CN; do
- #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name
- echo "$l GB2312"
- done
- for l in ja ja_JP ja_JP.EUC; do
- echo "$l EUC-JP"
- done
- for l in ko ko_KR; do
- echo "$l EUC-KR"
- done
- for l in th th_TH; do
- echo "$l TIS-620"
- done
- for l in fa fa_IR; do
- #echo "$l ISIRI-3342" # a broken encoding
- echo "$l.utf-8 UTF-8"
- done
- ;;
- linux* | *-gnu*)
- # With glibc-2.1 or newer, we don't need any canonicalization,
- # because glibc has iconv and both glibc and libiconv support all
- # GNU canonical names directly. Therefore, the Makefile does not
- # need to install the alias file at all.
- # The following applies only to glibc-2.0.x and older libcs.
- echo "ISO_646.IRV:1983 ASCII"
- ;;
- aix*)
- echo "ISO8859-1 ISO-8859-1"
- echo "ISO8859-2 ISO-8859-2"
- echo "ISO8859-5 ISO-8859-5"
- echo "ISO8859-6 ISO-8859-6"
- echo "ISO8859-7 ISO-8859-7"
- echo "ISO8859-8 ISO-8859-8"
- echo "ISO8859-9 ISO-8859-9"
- echo "ISO8859-15 ISO-8859-15"
- echo "IBM-850 CP850"
- echo "IBM-856 CP856"
- echo "IBM-921 ISO-8859-13"
- echo "IBM-922 CP922"
- echo "IBM-932 CP932"
- echo "IBM-943 CP943"
- echo "IBM-1046 CP1046"
- echo "IBM-1124 CP1124"
- echo "IBM-1129 CP1129"
- echo "IBM-1252 CP1252"
- echo "IBM-eucCN GB2312"
- echo "IBM-eucJP EUC-JP"
- echo "IBM-eucKR EUC-KR"
- echo "IBM-eucTW EUC-TW"
- echo "big5 BIG5"
- echo "GBK GBK"
- echo "TIS-620 TIS-620"
- echo "UTF-8 UTF-8"
- ;;
- hpux*)
- echo "iso88591 ISO-8859-1"
- echo "iso88592 ISO-8859-2"
- echo "iso88595 ISO-8859-5"
- echo "iso88596 ISO-8859-6"
- echo "iso88597 ISO-8859-7"
- echo "iso88598 ISO-8859-8"
- echo "iso88599 ISO-8859-9"
- echo "iso885915 ISO-8859-15"
- echo "roman8 HP-ROMAN8"
- echo "arabic8 HP-ARABIC8"
- echo "greek8 HP-GREEK8"
- echo "hebrew8 HP-HEBREW8"
- echo "turkish8 HP-TURKISH8"
- echo "kana8 HP-KANA8"
- echo "tis620 TIS-620"
- echo "big5 BIG5"
- echo "eucJP EUC-JP"
- echo "eucKR EUC-KR"
- echo "eucTW EUC-TW"
- echo "hp15CN GB2312"
- #echo "ccdc ?" # what is this?
- echo "SJIS SHIFT_JIS"
- echo "utf8 UTF-8"
- ;;
- irix*)
- echo "ISO8859-1 ISO-8859-1"
- echo "ISO8859-2 ISO-8859-2"
- echo "ISO8859-5 ISO-8859-5"
- echo "ISO8859-7 ISO-8859-7"
- echo "ISO8859-9 ISO-8859-9"
- echo "eucCN GB2312"
- echo "eucJP EUC-JP"
- echo "eucKR EUC-KR"
- echo "eucTW EUC-TW"
- ;;
- osf*)
- echo "ISO8859-1 ISO-8859-1"
- echo "ISO8859-2 ISO-8859-2"
- echo "ISO8859-4 ISO-8859-4"
- echo "ISO8859-5 ISO-8859-5"
- echo "ISO8859-7 ISO-8859-7"
- echo "ISO8859-8 ISO-8859-8"
- echo "ISO8859-9 ISO-8859-9"
- echo "ISO8859-15 ISO-8859-15"
- echo "cp850 CP850"
- echo "big5 BIG5"
- echo "dechanyu DEC-HANYU"
- echo "dechanzi GB2312"
- echo "deckanji DEC-KANJI"
- echo "deckorean EUC-KR"
- echo "eucJP EUC-JP"
- echo "eucKR EUC-KR"
- echo "eucTW EUC-TW"
- echo "GBK GBK"
- echo "KSC5601 CP949"
- echo "sdeckanji EUC-JP"
- echo "SJIS SHIFT_JIS"
- echo "TACTIS TIS-620"
- echo "UTF-8 UTF-8"
- ;;
- solaris*)
- echo "646 ASCII"
- echo "ISO8859-1 ISO-8859-1"
- echo "ISO8859-2 ISO-8859-2"
- echo "ISO8859-3 ISO-8859-3"
- echo "ISO8859-4 ISO-8859-4"
- echo "ISO8859-5 ISO-8859-5"
- echo "ISO8859-6 ISO-8859-6"
- echo "ISO8859-7 ISO-8859-7"
- echo "ISO8859-8 ISO-8859-8"
- echo "ISO8859-9 ISO-8859-9"
- echo "ISO8859-15 ISO-8859-15"
- echo "koi8-r KOI8-R"
- echo "ansi-1251 CP1251"
- echo "BIG5 BIG5"
- echo "Big5-HKSCS BIG5-HKSCS"
- echo "gb2312 GB2312"
- echo "GBK GBK"
- echo "GB18030 GB18030"
- echo "cns11643 EUC-TW"
- echo "5601 EUC-KR"
- echo "ko_KR.johap92 JOHAB"
- echo "eucJP EUC-JP"
- echo "PCK SHIFT_JIS"
- echo "TIS620.2533 TIS-620"
- #echo "sun_eu_greek ?" # what is this?
- echo "UTF-8 UTF-8"
- ;;
- freebsd*)
- # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
- # localcharset.c falls back to using the full locale name
- # from the environment variables.
- echo "C ASCII"
- echo "US-ASCII ASCII"
- for l in la_LN lt_LN; do
- echo "$l.ASCII ASCII"
- done
- for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
- fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \
- lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do
- echo "$l.ISO_8859-1 ISO-8859-1"
- echo "$l.DIS_8859-15 ISO-8859-15"
- done
- for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do
- echo "$l.ISO_8859-2 ISO-8859-2"
- done
- for l in la_LN lt_LT; do
- echo "$l.ISO_8859-4 ISO-8859-4"
- done
- for l in ru_RU ru_SU; do
- echo "$l.KOI8-R KOI8-R"
- echo "$l.ISO_8859-5 ISO-8859-5"
- echo "$l.CP866 CP866"
- done
- echo "uk_UA.KOI8-U KOI8-U"
- echo "zh_TW.BIG5 BIG5"
- echo "zh_TW.Big5 BIG5"
- echo "zh_CN.EUC GB2312"
- echo "ja_JP.EUC EUC-JP"
- echo "ja_JP.SJIS SHIFT_JIS"
- echo "ja_JP.Shift_JIS SHIFT_JIS"
- echo "ko_KR.EUC EUC-KR"
- ;;
- netbsd*)
- echo "646 ASCII"
- echo "ISO8859-1 ISO-8859-1"
- echo "ISO8859-2 ISO-8859-2"
- echo "ISO8859-4 ISO-8859-4"
- echo "ISO8859-5 ISO-8859-5"
- echo "ISO8859-7 ISO-8859-7"
- echo "ISO8859-13 ISO-8859-13"
- echo "ISO8859-15 ISO-8859-15"
- echo "eucCN GB2312"
- echo "eucJP EUC-JP"
- echo "eucKR EUC-KR"
- echo "eucTW EUC-TW"
- echo "BIG5 BIG5"
- echo "SJIS SHIFT_JIS"
- ;;
- openbsd*)
- echo "646 ASCII"
- echo "ISO8859-1 ISO-8859-1"
- echo "ISO8859-2 ISO-8859-2"
- echo "ISO8859-4 ISO-8859-4"
- echo "ISO8859-5 ISO-8859-5"
- echo "ISO8859-7 ISO-8859-7"
- echo "ISO8859-13 ISO-8859-13"
- echo "ISO8859-15 ISO-8859-15"
- ;;
- darwin[56]*)
- # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore
- # localcharset.c falls back to using the full locale name
- # from the environment variables.
- echo "C ASCII"
- for l in en_AU en_CA en_GB en_US la_LN; do
- echo "$l.US-ASCII ASCII"
- done
- for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
- fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \
- nl_NL no_NO pt_PT sv_SE; do
- echo "$l ISO-8859-1"
- echo "$l.ISO8859-1 ISO-8859-1"
- echo "$l.ISO8859-15 ISO-8859-15"
- done
- for l in la_LN; do
- echo "$l.ISO8859-1 ISO-8859-1"
- echo "$l.ISO8859-15 ISO-8859-15"
- done
- for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do
- echo "$l.ISO8859-2 ISO-8859-2"
- done
- for l in la_LN lt_LT; do
- echo "$l.ISO8859-4 ISO-8859-4"
- done
- for l in ru_RU; do
- echo "$l.KOI8-R KOI8-R"
- echo "$l.ISO8859-5 ISO-8859-5"
- echo "$l.CP866 CP866"
- done
- for l in bg_BG; do
- echo "$l.CP1251 CP1251"
- done
- echo "uk_UA.KOI8-U KOI8-U"
- echo "zh_TW.BIG5 BIG5"
- echo "zh_TW.Big5 BIG5"
- echo "zh_CN.EUC GB2312"
- echo "ja_JP.EUC EUC-JP"
- echo "ja_JP.SJIS SHIFT_JIS"
- echo "ko_KR.EUC EUC-KR"
- ;;
- darwin*)
- # Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value is
- # useless:
- # - It returns the empty string when LANG is set to a locale of the
- # form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8
- # LC_CTYPE file.
- # - The environment variables LANG, LC_CTYPE, LC_ALL are not set by
- # the system; nl_langinfo(CODESET) returns "US-ASCII" in this case.
- # - The documentation says:
- # "... all code that calls BSD system routines should ensure
- # that the const *char parameters of these routines are in UTF-8
- # encoding. All BSD system functions expect their string
- # parameters to be in UTF-8 encoding and nothing else."
- # It also says
- # "An additional caveat is that string parameters for files,
- # paths, and other file-system entities must be in canonical
- # UTF-8. In a canonical UTF-8 Unicode string, all decomposable
- # characters are decomposed ..."
- # but this is not true: You can pass non-decomposed UTF-8 strings
- # to file system functions, and it is the OS which will convert
- # them to decomposed UTF-8 before accessing the file system.
- # - The Apple Terminal application displays UTF-8 by default.
- # - However, other applications are free to use different encodings:
- # - xterm uses ISO-8859-1 by default.
- # - TextEdit uses MacRoman by default.
- # We prefer UTF-8 over decomposed UTF-8-MAC because one should
- # minimize the use of decomposed Unicode. Unfortunately, through the
- # Darwin file system, decomposed UTF-8 strings are leaked into user
- # space nevertheless.
- # Then there are also the locales with encodings other than US-ASCII
- # and UTF-8. These locales can be occasionally useful to users (e.g.
- # when grepping through ISO-8859-1 encoded text files), when all their
- # file names are in US-ASCII.
- echo "ISO8859-1 ISO-8859-1"
- echo "ISO8859-2 ISO-8859-2"
- echo "ISO8859-4 ISO-8859-4"
- echo "ISO8859-5 ISO-8859-5"
- echo "ISO8859-7 ISO-8859-7"
- echo "ISO8859-9 ISO-8859-9"
- echo "ISO8859-13 ISO-8859-13"
- echo "ISO8859-15 ISO-8859-15"
- echo "KOI8-R KOI8-R"
- echo "KOI8-U KOI8-U"
- echo "CP866 CP866"
- echo "CP949 CP949"
- echo "CP1131 CP1131"
- echo "CP1251 CP1251"
- echo "eucCN GB2312"
- echo "GB2312 GB2312"
- echo "eucJP EUC-JP"
- echo "eucKR EUC-KR"
- echo "Big5 BIG5"
- echo "Big5HKSCS BIG5-HKSCS"
- echo "GBK GBK"
- echo "GB18030 GB18030"
- echo "SJIS SHIFT_JIS"
- echo "ARMSCII-8 ARMSCII-8"
- echo "PT154 PT154"
- #echo "ISCII-DEV ?"
- echo "* UTF-8"
- ;;
- beos* | haiku*)
- # BeOS and Haiku have a single locale, and it has UTF-8 encoding.
- echo "* UTF-8"
- ;;
- msdosdjgpp*)
- # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore
- # localcharset.c falls back to using the full locale name
- # from the environment variables.
- echo "#"
- echo "# The encodings given here may not all be correct."
- echo "# If you find that the encoding given for your language and"
- echo "# country is not the one your DOS machine actually uses, just"
- echo "# correct it in this file, and send a mail to"
- echo "# Juan Manuel Guerrero <juan.guerrero@gmx.de>"
- echo "# and Bruno Haible <bruno@clisp.org>."
- echo "#"
- echo "C ASCII"
- # ISO-8859-1 languages
- echo "ca CP850"
- echo "ca_ES CP850"
- echo "da CP865" # not CP850 ??
- echo "da_DK CP865" # not CP850 ??
- echo "de CP850"
- echo "de_AT CP850"
- echo "de_CH CP850"
- echo "de_DE CP850"
- echo "en CP850"
- echo "en_AU CP850" # not CP437 ??
- echo "en_CA CP850"
- echo "en_GB CP850"
- echo "en_NZ CP437"
- echo "en_US CP437"
- echo "en_ZA CP850" # not CP437 ??
- echo "es CP850"
- echo "es_AR CP850"
- echo "es_BO CP850"
- echo "es_CL CP850"
- echo "es_CO CP850"
- echo "es_CR CP850"
- echo "es_CU CP850"
- echo "es_DO CP850"
- echo "es_EC CP850"
- echo "es_ES CP850"
- echo "es_GT CP850"
- echo "es_HN CP850"
- echo "es_MX CP850"
- echo "es_NI CP850"
- echo "es_PA CP850"
- echo "es_PY CP850"
- echo "es_PE CP850"
- echo "es_SV CP850"
- echo "es_UY CP850"
- echo "es_VE CP850"
- echo "et CP850"
- echo "et_EE CP850"
- echo "eu CP850"
- echo "eu_ES CP850"
- echo "fi CP850"
- echo "fi_FI CP850"
- echo "fr CP850"
- echo "fr_BE CP850"
- echo "fr_CA CP850"
- echo "fr_CH CP850"
- echo "fr_FR CP850"
- echo "ga CP850"
- echo "ga_IE CP850"
- echo "gd CP850"
- echo "gd_GB CP850"
- echo "gl CP850"
- echo "gl_ES CP850"
- echo "id CP850" # not CP437 ??
- echo "id_ID CP850" # not CP437 ??
- echo "is CP861" # not CP850 ??
- echo "is_IS CP861" # not CP850 ??
- echo "it CP850"
- echo "it_CH CP850"
- echo "it_IT CP850"
- echo "lt CP775"
- echo "lt_LT CP775"
- echo "lv CP775"
- echo "lv_LV CP775"
- echo "nb CP865" # not CP850 ??
- echo "nb_NO CP865" # not CP850 ??
- echo "nl CP850"
- echo "nl_BE CP850"
- echo "nl_NL CP850"
- echo "nn CP865" # not CP850 ??
- echo "nn_NO CP865" # not CP850 ??
- echo "no CP865" # not CP850 ??
- echo "no_NO CP865" # not CP850 ??
- echo "pt CP850"
- echo "pt_BR CP850"
- echo "pt_PT CP850"
- echo "sv CP850"
- echo "sv_SE CP850"
- # ISO-8859-2 languages
- echo "cs CP852"
- echo "cs_CZ CP852"
- echo "hr CP852"
- echo "hr_HR CP852"
- echo "hu CP852"
- echo "hu_HU CP852"
- echo "pl CP852"
- echo "pl_PL CP852"
- echo "ro CP852"
- echo "ro_RO CP852"
- echo "sk CP852"
- echo "sk_SK CP852"
- echo "sl CP852"
- echo "sl_SI CP852"
- echo "sq CP852"
- echo "sq_AL CP852"
- echo "sr CP852" # CP852 or CP866 or CP855 ??
- echo "sr_CS CP852" # CP852 or CP866 or CP855 ??
- echo "sr_YU CP852" # CP852 or CP866 or CP855 ??
- # ISO-8859-3 languages
- echo "mt CP850"
- echo "mt_MT CP850"
- # ISO-8859-5 languages
- echo "be CP866"
- echo "be_BE CP866"
- echo "bg CP866" # not CP855 ??
- echo "bg_BG CP866" # not CP855 ??
- echo "mk CP866" # not CP855 ??
- echo "mk_MK CP866" # not CP855 ??
- echo "ru CP866"
- echo "ru_RU CP866"
- echo "uk CP1125"
- echo "uk_UA CP1125"
- # ISO-8859-6 languages
- echo "ar CP864"
- echo "ar_AE CP864"
- echo "ar_DZ CP864"
- echo "ar_EG CP864"
- echo "ar_IQ CP864"
- echo "ar_IR CP864"
- echo "ar_JO CP864"
- echo "ar_KW CP864"
- echo "ar_MA CP864"
- echo "ar_OM CP864"
- echo "ar_QA CP864"
- echo "ar_SA CP864"
- echo "ar_SY CP864"
- # ISO-8859-7 languages
- echo "el CP869"
- echo "el_GR CP869"
- # ISO-8859-8 languages
- echo "he CP862"
- echo "he_IL CP862"
- # ISO-8859-9 languages
- echo "tr CP857"
- echo "tr_TR CP857"
- # Japanese
- echo "ja CP932"
- echo "ja_JP CP932"
- # Chinese
- echo "zh_CN GBK"
- echo "zh_TW CP950" # not CP938 ??
- # Korean
- echo "kr CP949" # not CP934 ??
- echo "kr_KR CP949" # not CP934 ??
- # Thai
- echo "th CP874"
- echo "th_TH CP874"
- # Other
- echo "eo CP850"
- echo "eo_EO CP850"
- ;;
-esac
MSVC and with C++ compilers. */
#undef FLEXIBLE_ARRAY_MEMBER
+/* Define to 1 if mkdir mistakenly creates a directory given with a trailing
+ dot component. */
+#undef FUNC_MKDIR_DOT_BUG
+
/* Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string. */
#undef FUNC_NL_LANGINFO_YESEXPR_WORKS
#undef GNULIB_FILENAMECAT
/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module fnmatch-gnu shall be considered present. */
+#undef GNULIB_FNMATCH_GNU
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
whether the gnulib module freopen-safer shall be considered present. */
#undef GNULIB_FREOPEN_SAFER
/* Define to 1 when the gnulib module btowc should be tested. */
#undef GNULIB_TEST_BTOWC
+/* Define to 1 when the gnulib module cloexec should be tested. */
+#undef GNULIB_TEST_CLOEXEC
+
/* Define to 1 when the gnulib module close should be tested. */
#undef GNULIB_TEST_CLOSE
/* Define to 1 when the gnulib module fdopen should be tested. */
#undef GNULIB_TEST_FDOPEN
+/* Define to 1 when the gnulib module fnmatch should be tested. */
+#undef GNULIB_TEST_FNMATCH
+
/* Define to 1 when the gnulib module freopen should be tested. */
#undef GNULIB_TEST_FREOPEN
/* Define to 1 when the gnulib module readlink should be tested. */
#undef GNULIB_TEST_READLINK
-/* Define to 1 when the gnulib module secure_getenv should be tested. */
-#undef GNULIB_TEST_SECURE_GETENV
-
/* Define to 1 when the gnulib module select should be tested. */
#undef GNULIB_TEST_SELECT
/* Define to 1 if you have the <features.h> header file. */
#undef HAVE_FEATURES_H
+/* Define to 1 if you have the `fnmatch' function. */
+#undef HAVE_FNMATCH
+
+/* Define to 1 if you have the <fnmatch.h> header file. */
+#undef HAVE_FNMATCH_H
+
/* Define to 1 if you have the `fork' function. */
#undef HAVE_FORK
/* Define to 1 if you have the `getdtablesize' function. */
#undef HAVE_GETDTABLESIZE
-/* Define to 1 if you have the `getegid' function. */
-#undef HAVE_GETEGID
-
-/* Define to 1 if you have the `geteuid' function. */
-#undef HAVE_GETEUID
-
/* Define to 1 if you have the `getexecname' function. */
#undef HAVE_GETEXECNAME
-/* Define to 1 if you have the `getgid' function. */
-#undef HAVE_GETGID
-
/* Define to 1 if you have the <getopt.h> header file. */
#undef HAVE_GETOPT_H
/* Define to 1 if you have the `getopt_long_only' function. */
#undef HAVE_GETOPT_LONG_ONLY
-/* Define to 1 if you have the `getpagesize' function. */
-#undef HAVE_GETPAGESIZE
-
/* Define to 1 if you have the `getprogname' function. */
#undef HAVE_GETPROGNAME
/* Define to 1 if you have the `gettimeofday' function. */
#undef HAVE_GETTIMEOFDAY
-/* Define to 1 if you have the `getuid' function. */
-#undef HAVE_GETUID
-
/* Define if you have the iconv() function and it works. */
#undef HAVE_ICONV
/* Define to 1 if you have the `isblank' function. */
#undef HAVE_ISBLANK
-/* Define to 1 if you have the `issetugid' function. */
-#undef HAVE_ISSETUGID
-
/* Define to 1 if you have the `iswblank' function. */
#undef HAVE_ISWBLANK
/* Define to 1 if you have the <limits.h> header file. */
#undef HAVE_LIMITS_H
+/* Define if localtime-like functions can loop forever on extreme arguments.
+ */
+#undef HAVE_LOCALTIME_INFLOOP_BUG
+
/* Define to 1 if you have the `localtime_r' function. */
#undef HAVE_LOCALTIME_R
concept. */
#undef HAVE_MSVC_INVALID_PARAMETER_HANDLER
-/* Define to 1 if you have the `nanotime' function. */
-#undef HAVE_NANOTIME
-
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
#undef HAVE_NDIR_H
/* Define to 1 if you have the `rawmemchr' function. */
#undef HAVE_RAWMEMCHR
-/* Define to 1 if accept is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_ACCEPT
-
-/* Define to 1 if accept4 is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_ACCEPT4
-
-/* Define to 1 if atoll is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_ATOLL
-
-/* Define to 1 if bind is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_BIND
-
-/* Define to 1 if btowc is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_BTOWC
-
-/* Define to 1 if canonicalize_file_name is declared even after undefining
- macros. */
-#undef HAVE_RAW_DECL_CANONICALIZE_FILE_NAME
-
-/* Define to 1 if chdir is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_CHDIR
-
-/* Define to 1 if chown is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_CHOWN
-
-/* Define to 1 if connect is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_CONNECT
-
-/* Define to 1 if dprintf is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_DPRINTF
-
-/* Define to 1 if dup is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_DUP
-
-/* Define to 1 if dup2 is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_DUP2
-
-/* Define to 1 if dup3 is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_DUP3
-
-/* Define to 1 if duplocale is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_DUPLOCALE
-
-/* Define to 1 if endusershell is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_ENDUSERSHELL
-
-/* Define to 1 if environ is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_ENVIRON
-
-/* Define to 1 if euidaccess is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_EUIDACCESS
-
-/* Define to 1 if faccessat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FACCESSAT
-
-/* Define to 1 if fchdir is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FCHDIR
-
-/* Define to 1 if fchmodat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FCHMODAT
-
-/* Define to 1 if fchownat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FCHOWNAT
-
-/* Define to 1 if fcntl is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FCNTL
-
-/* Define to 1 if fdatasync is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FDATASYNC
-
-/* Define to 1 if ffs is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FFS
-
-/* Define to 1 if ffsl is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FFSL
-
-/* Define to 1 if ffsll is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FFSLL
-
-/* Define to 1 if fpurge is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FPURGE
-
-/* Define to 1 if fseeko is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FSEEKO
-
-/* Define to 1 if fstat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FSTAT
-
-/* Define to 1 if fstatat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FSTATAT
-
-/* Define to 1 if fsync is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FSYNC
-
-/* Define to 1 if ftello is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FTELLO
-
-/* Define to 1 if ftruncate is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FTRUNCATE
-
-/* Define to 1 if futimens is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_FUTIMENS
-
-/* Define to 1 if getcwd is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETCWD
-
-/* Define to 1 if getdelim is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETDELIM
-
-/* Define to 1 if getdomainname is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETDOMAINNAME
-
-/* Define to 1 if getdtablesize is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETDTABLESIZE
-
-/* Define to 1 if getgroups is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETGROUPS
-
-/* Define to 1 if gethostname is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETHOSTNAME
-
-/* Define to 1 if getline is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETLINE
-
-/* Define to 1 if getloadavg is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETLOADAVG
-
-/* Define to 1 if getlogin is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETLOGIN
-
-/* Define to 1 if getlogin_r is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETLOGIN_R
-
-/* Define to 1 if getpagesize is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETPAGESIZE
-
-/* Define to 1 if getpeername is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETPEERNAME
-
-/* Define to 1 if gets is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETS
-
-/* Define to 1 if getsockname is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETSOCKNAME
-
-/* Define to 1 if getsockopt is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETSOCKOPT
-
-/* Define to 1 if getsubopt is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETSUBOPT
-
-/* Define to 1 if gettimeofday is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETTIMEOFDAY
-
-/* Define to 1 if getusershell is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GETUSERSHELL
-
-/* Define to 1 if grantpt is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GRANTPT
-
-/* Define to 1 if group_member is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_GROUP_MEMBER
-
-/* Define to 1 if imaxabs is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_IMAXABS
-
-/* Define to 1 if imaxdiv is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_IMAXDIV
-
-/* Define to 1 if inet_ntop is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_INET_NTOP
-
-/* Define to 1 if inet_pton is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_INET_PTON
-
-/* Define to 1 if initstate is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_INITSTATE
-
-/* Define to 1 if initstate_r is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_INITSTATE_R
-
-/* Define to 1 if ioctl is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_IOCTL
-
-/* Define to 1 if isatty is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_ISATTY
-
-/* Define to 1 if isblank is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_ISBLANK
-
-/* Define to 1 if iswctype is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_ISWCTYPE
-
-/* Define to 1 if lchmod is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_LCHMOD
-
-/* Define to 1 if lchown is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_LCHOWN
-
-/* Define to 1 if link is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_LINK
-
-/* Define to 1 if linkat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_LINKAT
-
-/* Define to 1 if listen is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_LISTEN
-
-/* Define to 1 if lseek is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_LSEEK
-
-/* Define to 1 if lstat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_LSTAT
-
-/* Define to 1 if mbrlen is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MBRLEN
-
-/* Define to 1 if mbrtowc is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MBRTOWC
-
-/* Define to 1 if mbsinit is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MBSINIT
-
-/* Define to 1 if mbsnrtowcs is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MBSNRTOWCS
-
-/* Define to 1 if mbsrtowcs is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MBSRTOWCS
-
-/* Define to 1 if memmem is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MEMMEM
-
-/* Define to 1 if mempcpy is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MEMPCPY
-
-/* Define to 1 if memrchr is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MEMRCHR
-
-/* Define to 1 if mkdirat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MKDIRAT
-
-/* Define to 1 if mkdtemp is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MKDTEMP
-
-/* Define to 1 if mkfifo is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MKFIFO
-
-/* Define to 1 if mkfifoat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MKFIFOAT
-
-/* Define to 1 if mknod is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MKNOD
-
-/* Define to 1 if mknodat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MKNODAT
-
-/* Define to 1 if mkostemp is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MKOSTEMP
-
-/* Define to 1 if mkostemps is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MKOSTEMPS
-
-/* Define to 1 if mkstemp is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MKSTEMP
-
-/* Define to 1 if mkstemps is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_MKSTEMPS
-
-/* Define to 1 if nl_langinfo is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_NL_LANGINFO
-
-/* Define to 1 if openat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_OPENAT
-
-/* Define to 1 if pclose is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_PCLOSE
-
-/* Define to 1 if pipe is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_PIPE
-
-/* Define to 1 if pipe2 is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_PIPE2
-
-/* Define to 1 if popen is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_POPEN
-
-/* Define to 1 if posix_openpt is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_POSIX_OPENPT
-
-/* Define to 1 if pread is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_PREAD
-
-/* Define to 1 if pselect is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_PSELECT
-
-/* Define to 1 if pthread_sigmask is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_PTHREAD_SIGMASK
-
-/* Define to 1 if ptsname is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_PTSNAME
-
-/* Define to 1 if ptsname_r is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_PTSNAME_R
-
-/* Define to 1 if pwrite is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_PWRITE
-
-/* Define to 1 if qsort_r is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_QSORT_R
-
-/* Define to 1 if random is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_RANDOM
-
-/* Define to 1 if random_r is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_RANDOM_R
-
-/* Define to 1 if rawmemchr is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_RAWMEMCHR
-
-/* Define to 1 if readlink is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_READLINK
-
-/* Define to 1 if readlinkat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_READLINKAT
-
-/* Define to 1 if realpath is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_REALPATH
-
-/* Define to 1 if recv is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_RECV
-
-/* Define to 1 if recvfrom is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_RECVFROM
-
-/* Define to 1 if renameat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_RENAMEAT
-
-/* Define to 1 if rmdir is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_RMDIR
-
-/* Define to 1 if rpmatch is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_RPMATCH
-
-/* Define to 1 if secure_getenv is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SECURE_GETENV
-
-/* Define to 1 if select is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SELECT
-
-/* Define to 1 if send is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SEND
-
-/* Define to 1 if sendto is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SENDTO
-
-/* Define to 1 if setenv is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SETENV
-
-/* Define to 1 if sethostname is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SETHOSTNAME
-
-/* Define to 1 if setlocale is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SETLOCALE
-
-/* Define to 1 if setsockopt is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SETSOCKOPT
-
-/* Define to 1 if setstate is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SETSTATE
-
-/* Define to 1 if setstate_r is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SETSTATE_R
-
-/* Define to 1 if setusershell is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SETUSERSHELL
-
-/* Define to 1 if shutdown is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SHUTDOWN
-
-/* Define to 1 if sigaction is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SIGACTION
-
-/* Define to 1 if sigaddset is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SIGADDSET
-
-/* Define to 1 if sigdelset is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SIGDELSET
-
-/* Define to 1 if sigemptyset is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SIGEMPTYSET
-
-/* Define to 1 if sigfillset is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SIGFILLSET
-
-/* Define to 1 if sigismember is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SIGISMEMBER
-
-/* Define to 1 if sigpending is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SIGPENDING
-
-/* Define to 1 if sigprocmask is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SIGPROCMASK
-
-/* Define to 1 if sleep is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SLEEP
-
-/* Define to 1 if snprintf is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SNPRINTF
-
-/* Define to 1 if socket is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SOCKET
-
-/* Define to 1 if srandom is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SRANDOM
-
-/* Define to 1 if srandom_r is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SRANDOM_R
-
-/* Define to 1 if stat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STAT
-
-/* Define to 1 if stpcpy is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STPCPY
-
-/* Define to 1 if stpncpy is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STPNCPY
-
-/* Define to 1 if strcasecmp is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRCASECMP
-
-/* Define to 1 if strcasestr is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRCASESTR
-
-/* Define to 1 if strchrnul is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRCHRNUL
-
-/* Define to 1 if strdup is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRDUP
-
-/* Define to 1 if strerror_r is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRERROR_R
-
-/* Define to 1 if strncasecmp is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRNCASECMP
-
-/* Define to 1 if strncat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRNCAT
-
-/* Define to 1 if strndup is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRNDUP
-
-/* Define to 1 if strnlen is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRNLEN
-
-/* Define to 1 if strpbrk is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRPBRK
-
-/* Define to 1 if strsep is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRSEP
-
-/* Define to 1 if strsignal is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRSIGNAL
-
-/* Define to 1 if strtod is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRTOD
-
-/* Define to 1 if strtoimax is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRTOIMAX
-
-/* Define to 1 if strtok_r is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRTOK_R
-
-/* Define to 1 if strtoll is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRTOLL
-
-/* Define to 1 if strtoull is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRTOULL
-
-/* Define to 1 if strtoumax is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRTOUMAX
-
-/* Define to 1 if strverscmp is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_STRVERSCMP
-
-/* Define to 1 if symlink is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SYMLINK
-
-/* Define to 1 if symlinkat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_SYMLINKAT
-
-/* Define to 1 if tmpfile is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_TMPFILE
-
-/* Define to 1 if towctrans is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_TOWCTRANS
-
-/* Define to 1 if truncate is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_TRUNCATE
-
-/* Define to 1 if ttyname_r is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_TTYNAME_R
-
-/* Define to 1 if unlink is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_UNLINK
-
-/* Define to 1 if unlinkat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_UNLINKAT
-
-/* Define to 1 if unlockpt is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_UNLOCKPT
-
-/* Define to 1 if unsetenv is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_UNSETENV
-
-/* Define to 1 if usleep is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_USLEEP
-
-/* Define to 1 if utimensat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_UTIMENSAT
-
-/* Define to 1 if vdprintf is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_VDPRINTF
-
-/* Define to 1 if vsnprintf is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_VSNPRINTF
-
-/* Define to 1 if waitpid is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WAITPID
-
-/* Define to 1 if wcpcpy is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCPCPY
-
-/* Define to 1 if wcpncpy is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCPNCPY
-
-/* Define to 1 if wcrtomb is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCRTOMB
-
-/* Define to 1 if wcscasecmp is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSCASECMP
-
-/* Define to 1 if wcscat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSCAT
-
-/* Define to 1 if wcschr is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSCHR
-
-/* Define to 1 if wcscmp is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSCMP
-
-/* Define to 1 if wcscoll is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSCOLL
-
-/* Define to 1 if wcscpy is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSCPY
-
-/* Define to 1 if wcscspn is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSCSPN
-
-/* Define to 1 if wcsdup is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSDUP
-
-/* Define to 1 if wcsftime is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSFTIME
-
-/* Define to 1 if wcslen is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSLEN
-
-/* Define to 1 if wcsncasecmp is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSNCASECMP
-
-/* Define to 1 if wcsncat is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSNCAT
-
-/* Define to 1 if wcsncmp is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSNCMP
-
-/* Define to 1 if wcsncpy is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSNCPY
-
-/* Define to 1 if wcsnlen is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSNLEN
-
-/* Define to 1 if wcsnrtombs is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSNRTOMBS
-
-/* Define to 1 if wcspbrk is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSPBRK
-
-/* Define to 1 if wcsrchr is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSRCHR
-
-/* Define to 1 if wcsrtombs is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSRTOMBS
-
-/* Define to 1 if wcsspn is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSSPN
-
-/* Define to 1 if wcsstr is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSSTR
-
-/* Define to 1 if wcstok is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSTOK
-
-/* Define to 1 if wcswidth is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSWIDTH
-
-/* Define to 1 if wcsxfrm is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCSXFRM
-
-/* Define to 1 if wctob is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCTOB
-
-/* Define to 1 if wctrans is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCTRANS
-
-/* Define to 1 if wctype is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCTYPE
-
-/* Define to 1 if wcwidth is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WCWIDTH
-
-/* Define to 1 if wmemchr is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WMEMCHR
-
-/* Define to 1 if wmemcmp is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WMEMCMP
-
-/* Define to 1 if wmemcpy is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WMEMCPY
-
-/* Define to 1 if wmemmove is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WMEMMOVE
-
-/* Define to 1 if wmemset is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_WMEMSET
-
-/* Define to 1 if _Exit is declared even after undefining macros. */
-#undef HAVE_RAW_DECL__EXIT
-
/* Define to 1 if you have the `readlink' function. */
#undef HAVE_READLINK
/* Define to 1 if you have the <search.h> header file. */
#undef HAVE_SEARCH_H
-/* Define to 1 if you have the `secure_getenv' function. */
-#undef HAVE_SECURE_GETENV
-
/* Define to 1 if you have the `setdtablesize' function. */
#undef HAVE_SETDTABLESIZE
#endif
-/* Define to 1 if you have the `__secure_getenv' function. */
-#undef HAVE___SECURE_GETENV
+/* Define to 1 if the compiler supports the keyword '__inline'. */
+#undef HAVE___INLINE
/* Define to 1 if you have the `__xpg_strerror_r' function. */
#undef HAVE___XPG_STRERROR_R
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
#endif
+/* Enable NetBSD extensions on NetBSD. */
+#ifndef _NETBSD_SOURCE
+# undef _NETBSD_SOURCE
+#endif
+/* Enable OpenBSD extensions on NetBSD. */
+#ifndef _OPENBSD_SOURCE
+# undef _OPENBSD_SOURCE
+#endif
/* Enable threading extensions on Solaris. */
#ifndef _POSIX_PTHREAD_SEMANTICS
# undef _POSIX_PTHREAD_SEMANTICS
#ifndef _XOPEN_SOURCE
# undef _XOPEN_SOURCE
#endif
+/* Enable X/Open compliant socket functions that do not require linking
+ with -lxnet on HP-UX 11.11. */
+#ifndef _HPUX_ALT_XOPEN_SOCKET_API
+# undef _HPUX_ALT_XOPEN_SOCKET_API
+#endif
/* Enable general extensions on Solaris. */
#ifndef __EXTENSIONS__
# undef __EXTENSIONS__
#undef _NETBSD_SOURCE
/* The _Noreturn keyword of C11. */
-#if ! (defined _Noreturn \
- || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
-# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
- || 0x5110 <= __SUNPRO_C)
+#ifndef _Noreturn
+# if 201103 <= (defined __cplusplus ? __cplusplus : 0)
+# define _Noreturn [[noreturn]]
+# elif (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
+ || 4 < __GNUC__ + (7 <= __GNUC_MINOR__))
+ /* _Noreturn works as-is. */
+# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C
# define _Noreturn __attribute__ ((__noreturn__))
-# elif defined _MSC_VER && 1200 <= _MSC_VER
+# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0)
# define _Noreturn __declspec (noreturn)
# else
# define _Noreturn
/* Define if you want regoff_t to be at least as wide POSIX requires. */
#undef _REGEX_LARGE_OFFSETS
+/* For standard stat data types on VMS. */
+#undef _USE_STD_STAT
+
/* Define to rpl_ if the getopt replacement functions and variables should be
used. */
#undef __GETOPT_PREFIX
/* Please see the Gnulib manual for how to use these macros.
Suppress extern inline with HP-UX cc, as it appears to be broken; see
- <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>.
+ <https://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>.
Suppress extern inline with Sun C in standards-conformance mode, as it
mishandles inline functions that call each other. E.g., for 'inline void f
if isdigit is mistakenly implemented via a static inline function,
a program containing an extern inline function that calls isdigit
may not work since the C standard prohibits extern inline functions
- from calling static functions. This bug is known to occur on:
+ from calling static functions (ISO C 99 section 6.7.4.(3).
+ This bug is known to occur on:
OS X 10.8 and earlier; see:
- http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html
+ https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html
DragonFly; see
http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log
FreeBSD; see:
- http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html
+ https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html
OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
- for clang but remains for g++; see <http://trac.macports.org/ticket/41033>.
- Assume DragonFly and FreeBSD will be similar. */
+ for clang but remains for g++; see <https://trac.macports.org/ticket/41033>.
+ Assume DragonFly and FreeBSD will be similar.
+
+ GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+ inline semantics, unless -fgnu89-inline is used. It defines a macro
+ __GNUC_STDC_INLINE__ to indicate this situation or a macro
+ __GNUC_GNU_INLINE__ to indicate the opposite situation.
+ GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline
+ semantics but warns, unless -fgnu89-inline is used:
+ warning: C99 inline functions are not supported; using GNU89
+ warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
+ It defines a macro __GNUC_GNU_INLINE__ to indicate this situation.
+ */
#if (((defined __APPLE__ && defined __MACH__) \
|| defined __DragonFly__ || defined __FreeBSD__) \
&& (defined __header_inline \
# define _GL_INLINE_HEADER_END
#endif
-/* Define to a replacement function name for fnmatch(). */
-#undef fnmatch
-
/* Define to `int' if <sys/types.h> doesn't define. */
#undef gid_t
# define _GL_ATTRIBUTE_CONST /* empty */
#endif
+/* The __malloc__ attribute was added in gcc 3. */
+#if 3 <= __GNUC__
+# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
+#else
+# define _GL_ATTRIBUTE_MALLOC /* empty */
+#endif
+
/* Define as a macro for copying va_list variables. */
#undef va_copy
/* A substitute for ISO C99 <ctype.h>, for platforms on which it is incomplete.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible. */
/* Analyze differences between two vectors.
- Copyright (C) 1988-1989, 1992-1995, 2001-2004, 2006-2017 Free Software
+ Copyright (C) 1988-1989, 1992-1995, 2001-2004, 2006-2018 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* The basic idea is to consider two vectors as similar if, when
continue;
#ifdef USE_HEURISTIC
+ bool heuristic = ctxt->heuristic;
+#else
+ bool heuristic = false;
+#endif
+
/* Heuristic: check occasionally for a diagonal that has made lots
of progress compared with the edit distance. If we have any
such, find the one that has made the most progress and return it
With this heuristic, for vectors with a constant small density
of changes, the algorithm is linear in the vector size. */
- if (200 < c && big_snake && ctxt->heuristic)
+ if (200 < c && big_snake && heuristic)
{
{
OFFSET best = 0;
}
}
}
-#endif /* USE_HEURISTIC */
/* Heuristic: if we've gone well beyond the call of duty, give up
and report halfway between our best results so far. */
/* dirname.c -- return all but the last element in a file name
- Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2017 Free Software
+ Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2018 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* dirname.c -- return all but the last element in a file name
- Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2017 Free Software
+ Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2018 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Take file names apart into directory and base names.
- Copyright (C) 1998, 2001, 2003-2006, 2009-2017 Free Software Foundation,
+ Copyright (C) 1998, 2001, 2003-2006, 2009-2018 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef DIRNAME_H_
# define DIRNAME_H_ 1
#endif
# if GNULIB_DIRNAME
-char *base_name (char const *file);
+char *base_name (char const *file) _GL_ATTRIBUTE_MALLOC;
char *dir_name (char const *file);
# endif
/* File names on MS-DOS/Windows systems.
- Copyright (C) 2000-2001, 2004-2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2000-2001, 2004-2006, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
From Paul Eggert and Jim Meyering. */
#ifndef _DOSNAME_H
#define _DOSNAME_H
-#if (defined _WIN32 || defined __WIN32__ || \
- defined __MSDOS__ || defined __CYGWIN__ || \
- defined __EMX__ || defined __DJGPP__)
+#if (defined _WIN32 || defined __CYGWIN__ \
+ || defined __EMX__ || defined __MSDOS__ || defined __DJGPP__)
/* This internal macro assumes ASCII, but all hosts that support drive
letters use ASCII. */
# define _IS_DRIVE_LETTER(C) (((unsigned int) (C) | ('a' - 'A')) - 'a' \
/* Duplicate an open file descriptor to a specified file descriptor.
- Copyright (C) 1999, 2004-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2004-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* written by Paul Eggert */
# undef dup2
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
/* Get declarations of the native Windows API functions. */
# define WIN32_LEAN_AND_MEAN
}
/* Wine 1.0.1 return 0 when desired_fd is negative but not -1:
- http://bugs.winehq.org/show_bug.cgi?id=21289 */
+ https://bugs.winehq.org/show_bug.cgi?id=21289 */
if (desired_fd < 0)
{
errno = EBADF;
/* A POSIX-like <errno.h>.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _@GUARD_PREFIX@_ERRNO_H
/* On native Windows platforms, many macros are not defined. */
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
/* These are the same values as defined by MSVC 10, for interoperability. */
interoperability. */
# define EOWNERDEAD 58
# define ENOTRECOVERABLE 59
-# elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# elif defined _WIN32 && ! defined __CYGWIN__
/* We have a conflict here: pthreads-win32 defines these values
differently than MSVC 10. It's hairy to decide which one to use. */
# if defined __MINGW32__ && !defined USE_WINDOWS_THREADS
/* Error handler for noninteractive utilities
- Copyright (C) 1990-1998, 2000-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1990-1998, 2000-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */
# include <fcntl.h>
# include <unistd.h>
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
/* Get declarations of the native Windows API functions. */
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
static int
is_open (int fd)
{
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
/* On native Windows: The initial state of unassigned standard file
descriptors is that they are open but point to an INVALID_HANDLE_VALUE.
There is no fcntl, and the gnulib replacement fcntl does not support
else
#endif
vfprintf (stderr, message, args);
- va_end (args);
++error_message_count;
if (errnum)
va_start (args, message);
error_tail (status, errnum, message, args);
+ va_end (args);
#ifdef _LIBC
_IO_funlockfile (stderr);
va_start (args, message);
error_tail (status, errnum, message, args);
+ va_end (args);
#ifdef _LIBC
_IO_funlockfile (stderr);
/* Declaration for error-reporting function
- Copyright (C) 1995-1997, 2003, 2006, 2008-2017 Free Software Foundation,
+ Copyright (C) 1995-1997, 2003, 2006, 2008-2018 Free Software Foundation,
Inc.
This file is part of the GNU C Library.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _ERROR_H
#define _ERROR_H 1
/* exclude.c -- exclude file names
- Copyright (C) 1992-1994, 1997, 1999-2007, 2009-2017 Free Software
+ Copyright (C) 1992-1994, 1997, 1999-2007, 2009-2018 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert <eggert@twinsun.com>
and Sergey Poznyakoff <gray@gnu.org>.
{
switch (*str++)
{
- case '.':
- case '{':
- case '}':
- case '(':
- case ')':
- if (options & EXCLUDE_REGEX)
- return true;
- break;
+ case '.':
+ case '{':
+ case '}':
+ case '(':
+ case ')':
+ if (options & EXCLUDE_REGEX)
+ return true;
+ break;
case '\\':
- if (options & EXCLUDE_REGEX)
- continue;
- else
- str += ! (options & FNM_NOESCAPE) && *str;
+ if (options & EXCLUDE_REGEX)
+ continue;
+ else
+ str += ! (options & FNM_NOESCAPE) && *str;
break;
case '+': case '@': case '!':
{
case exclude_pattern:
for (i = 0; i < seg->v.pat.exclude_count; i++)
- {
- if (seg->v.pat.exclude[i].options & EXCLUDE_REGEX)
- regfree (&seg->v.pat.exclude[i].v.re);
- }
+ {
+ if (seg->v.pat.exclude[i].options & EXCLUDE_REGEX)
+ regfree (&seg->v.pat.exclude[i].v.re);
+ }
free (seg->v.pat.exclude);
break;
if (! (options & EXCLUDE_ANCHORED))
for (p = f; *p && ! matched; p++)
if (*p == '/' && p[1] != '/')
- matched = ((*matcher) (pattern, p + 1, options) == 0);
+ matched = ((*matcher) (pattern, p + 1, options) == 0);
return matched;
}
&& fnmatch_pattern_has_wildcards (pattern, options))
{
if (! (ex->head && ex->head->type == exclude_pattern
- && ((ex->head->options & EXCLUDE_INCLUDE)
- == (options & EXCLUDE_INCLUDE))))
- new_exclude_segment (ex, exclude_pattern, options);
+ && ((ex->head->options & EXCLUDE_INCLUDE)
+ == (options & EXCLUDE_INCLUDE))))
+ new_exclude_segment (ex, exclude_pattern, options);
seg = ex->head;
patopts->options = options;
if (options & EXCLUDE_REGEX)
- {
- int rc;
- int cflags = REG_NOSUB|REG_EXTENDED|
- ((options & FNM_CASEFOLD) ? REG_ICASE : 0);
-
- if (options & FNM_LEADING_DIR)
- {
- char *tmp;
- size_t len = strlen (pattern);
-
- while (len > 0 && ISSLASH (pattern[len-1]))
- --len;
-
- if (len == 0)
- rc = 1;
- else
- {
- tmp = xmalloc (len + 7);
- memcpy (tmp, pattern, len);
- strcpy (tmp + len, "(/.*)?");
- rc = regcomp (&patopts->v.re, tmp, cflags);
- free (tmp);
- }
- }
- else
- rc = regcomp (&patopts->v.re, pattern, cflags);
-
- if (rc)
- {
- pat->exclude_count--;
- return;
- }
- }
+ {
+ int rc;
+ int cflags = REG_NOSUB|REG_EXTENDED|
+ ((options & FNM_CASEFOLD) ? REG_ICASE : 0);
+
+ if (options & FNM_LEADING_DIR)
+ {
+ char *tmp;
+ size_t len = strlen (pattern);
+
+ while (len > 0 && ISSLASH (pattern[len-1]))
+ --len;
+
+ if (len == 0)
+ rc = 1;
+ else
+ {
+ tmp = xmalloc (len + 7);
+ memcpy (tmp, pattern, len);
+ strcpy (tmp + len, "(/.*)?");
+ rc = regcomp (&patopts->v.re, tmp, cflags);
+ free (tmp);
+ }
+ }
+ else
+ rc = regcomp (&patopts->v.re, pattern, cflags);
+
+ if (rc)
+ {
+ pat->exclude_count--;
+ return;
+ }
+ }
else
- {
- if (options & EXCLUDE_ALLOC)
- {
- pattern = xstrdup (pattern);
- exclude_add_pattern_buffer (ex, (char*) pattern);
- }
- patopts->v.pattern = pattern;
- }
+ {
+ if (options & EXCLUDE_ALLOC)
+ {
+ pattern = xstrdup (pattern);
+ exclude_add_pattern_buffer (ex, (char*) pattern);
+ }
+ patopts->v.pattern = pattern;
+ }
}
else
{
int
add_exclude_fp (void (*add_func) (struct exclude *, char const *, int, void *),
- struct exclude *ex, FILE *fp, int options,
- char line_end,
- void *data)
+ struct exclude *ex, FILE *fp, int options,
+ char line_end,
+ void *data)
{
char *buf = NULL;
char *p;
int
add_exclude_file (void (*add_func) (struct exclude *, char const *, int),
- struct exclude *ex, char const *file_name, int options,
- char line_end)
+ struct exclude *ex, char const *file_name, int options,
+ char line_end)
{
bool use_stdin = file_name[0] == '-' && !file_name[1];
FILE *in;
/* exclude.h -- declarations for excluding file names
- Copyright (C) 1992-1994, 1997, 1999, 2001-2003, 2005-2006, 2009-2017 Free
+ Copyright (C) 1992-1994, 1997, 1999, 2001-2003, 2005-2006, 2009-2018 Free
Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _GL_EXCLUDE_H
#define _GL_EXCLUDE_H 1
bool fnmatch_pattern_has_wildcards (const char *, int) _GL_ATTRIBUTE_PURE;
-struct exclude *new_exclude (void);
+struct exclude *new_exclude (void) _GL_ATTRIBUTE_MALLOC;
void free_exclude (struct exclude *);
void add_exclude (struct exclude *, char const *, int);
int add_exclude_file (void (*) (struct exclude *, char const *, int),
struct exclude *, char const *, int, char);
int add_exclude_fp (void (*) (struct exclude *, char const *, int, void *),
- struct exclude *, FILE *, int, char, void *);
+ struct exclude *, FILE *, int, char, void *);
bool excluded_file_name (struct exclude const *, char const *);
void exclude_add_pattern_buffer (struct exclude *ex, char *buf);
bool exclude_fnmatch (char const *, char const *, int);
/* Failure exit status
- Copyright (C) 2002-2003, 2005-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002-2003, 2005-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Failure exit status
- Copyright (C) 2002, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
extern int volatile exit_failure;
/* Provide file descriptor control.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>. */
#include <stdarg.h>
#include <unistd.h>
-#if !HAVE_FCNTL
-# define rpl_fcntl fcntl
+#ifdef __KLIBC__
+# define INCL_DOS
+# include <os2.h>
#endif
-#undef fcntl
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
/* Get declarations of the native Windows API functions. */
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
}
#endif /* W32 */
+/* Forward declarations, because we '#undef fcntl' in the middle of this
+ compilation unit. */
+/* Our implementation of fcntl (fd, F_DUPFD, target). */
+static int rpl_fcntl_DUPFD (int fd, int target);
+/* Our implementation of fcntl (fd, F_DUPFD_CLOEXEC, target). */
+static int rpl_fcntl_DUPFD_CLOEXEC (int fd, int target);
#ifdef __KLIBC__
-
-# define INCL_DOS
-# include <os2.h>
-
-static int
-klibc_fcntl (int fd, int action, /* arg */...)
-{
- va_list arg_ptr;
- int arg;
- struct stat sbuf;
- int result = -1;
-
- va_start (arg_ptr, action);
- arg = va_arg (arg_ptr, int);
- result = fcntl (fd, action, arg);
- /* EPERM for F_DUPFD, ENOTSUP for others */
- if (result == -1 && (errno == EPERM || errno == ENOTSUP)
- && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode))
- {
- ULONG ulMode;
-
- switch (action)
- {
- case F_DUPFD:
- /* Find available fd */
- while (fcntl (arg, F_GETFL) != -1 || errno != EBADF)
- arg++;
-
- result = dup2 (fd, arg);
- break;
-
- /* Using underlying APIs is right ? */
- case F_GETFD:
- if (DosQueryFHState (fd, &ulMode))
- break;
-
- result = (ulMode & OPEN_FLAGS_NOINHERIT) ? FD_CLOEXEC : 0;
- break;
-
- case F_SETFD:
- if (arg & ~FD_CLOEXEC)
- break;
-
- if (DosQueryFHState (fd, &ulMode))
- break;
-
- if (arg & FD_CLOEXEC)
- ulMode |= OPEN_FLAGS_NOINHERIT;
- else
- ulMode &= ~OPEN_FLAGS_NOINHERIT;
-
- /* Filter supported flags. */
- ulMode &= (OPEN_FLAGS_WRITE_THROUGH | OPEN_FLAGS_FAIL_ON_ERROR
- | OPEN_FLAGS_NO_CACHE | OPEN_FLAGS_NOINHERIT);
-
- if (DosSetFHState (fd, ulMode))
- break;
-
- result = 0;
- break;
-
- case F_GETFL:
- result = 0;
- break;
-
- case F_SETFL:
- if (arg != 0)
- break;
-
- result = 0;
- break;
-
- default :
- errno = EINVAL;
- break;
- }
- }
-
- va_end (arg_ptr);
-
- return result;
-}
-
-# define fcntl klibc_fcntl
+/* Adds support for fcntl on directories. */
+static int klibc_fcntl (int fd, int action, /* arg */...);
#endif
+
/* Perform the specified ACTION on the file descriptor FD, possibly
using the argument ARG further described below. This replacement
handles the following actions, and forwards all others on to the
return -1 and set errno. */
int
-rpl_fcntl (int fd, int action, /* arg */...)
+fcntl (int fd, int action, /* arg */...)
+#undef fcntl
+#ifdef __KLIBC__
+# define fcntl klibc_fcntl
+#endif
{
va_list arg;
int result = -1;
va_start (arg, action);
switch (action)
{
-
-#if !HAVE_FCNTL
case F_DUPFD:
{
int target = va_arg (arg, int);
- result = dupfd (fd, target, 0);
+ result = rpl_fcntl_DUPFD (fd, target);
break;
}
-#elif FCNTL_DUPFD_BUGGY || REPLACE_FCHDIR
- case F_DUPFD:
- {
- int target = va_arg (arg, int);
- /* Detect invalid target; needed for cygwin 1.5.x. */
- if (target < 0 || getdtablesize () <= target)
- errno = EINVAL;
- else
- {
- /* Haiku alpha 2 loses fd flags on original. */
- int flags = fcntl (fd, F_GETFD);
- if (flags < 0)
- {
- result = -1;
- break;
- }
- result = fcntl (fd, action, target);
- if (0 <= result && fcntl (fd, F_SETFD, flags) == -1)
- {
- int saved_errno = errno;
- close (result);
- result = -1;
- errno = saved_errno;
- }
-# if REPLACE_FCHDIR
- if (0 <= result)
- result = _gl_register_dup (fd, result);
-# endif
- }
- break;
- } /* F_DUPFD */
-#endif /* FCNTL_DUPFD_BUGGY || REPLACE_FCHDIR */
case F_DUPFD_CLOEXEC:
{
int target = va_arg (arg, int);
-
-#if !HAVE_FCNTL
- result = dupfd (fd, target, O_CLOEXEC);
- break;
-#else /* HAVE_FCNTL */
- /* Try the system call first, if the headers claim it exists
- (that is, if GNULIB_defined_F_DUPFD_CLOEXEC is 0), since we
- may be running with a glibc that has the macro but with an
- older kernel that does not support it. Cache the
- information on whether the system call really works, but
- avoid caching failure if the corresponding F_DUPFD fails
- for any reason. 0 = unknown, 1 = yes, -1 = no. */
- static int have_dupfd_cloexec = GNULIB_defined_F_DUPFD_CLOEXEC ? -1 : 0;
- if (0 <= have_dupfd_cloexec)
- {
- result = fcntl (fd, action, target);
- if (0 <= result || errno != EINVAL)
- {
- have_dupfd_cloexec = 1;
-# if REPLACE_FCHDIR
- if (0 <= result)
- result = _gl_register_dup (fd, result);
-# endif
- }
- else
- {
- result = rpl_fcntl (fd, F_DUPFD, target);
- if (result < 0)
- break;
- have_dupfd_cloexec = -1;
- }
- }
- else
- result = rpl_fcntl (fd, F_DUPFD, target);
- if (0 <= result && have_dupfd_cloexec == -1)
- {
- int flags = fcntl (result, F_GETFD);
- if (flags < 0 || fcntl (result, F_SETFD, flags | FD_CLOEXEC) == -1)
- {
- int saved_errno = errno;
- close (result);
- errno = saved_errno;
- result = -1;
- }
- }
+ result = rpl_fcntl_DUPFD_CLOEXEC (fd, target);
break;
-#endif /* HAVE_FCNTL */
- } /* F_DUPFD_CLOEXEC */
+ }
#if !HAVE_FCNTL
case F_GETFD:
{
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
HANDLE handle = (HANDLE) _get_osfhandle (fd);
DWORD flags;
if (handle == INVALID_HANDLE_VALUE
default:
{
#if HAVE_FCNTL
- void *p = va_arg (arg, void *);
- result = fcntl (fd, action, p);
+ switch (action)
+ {
+ #ifdef F_BARRIERFSYNC /* macOS */
+ case F_BARRIERFSYNC:
+ #endif
+ #ifdef F_CHKCLEAN /* macOS */
+ case F_CHKCLEAN:
+ #endif
+ #ifdef F_CLOSEM /* NetBSD, HP-UX */
+ case F_CLOSEM:
+ #endif
+ #ifdef F_FLUSH_DATA /* macOS */
+ case F_FLUSH_DATA:
+ #endif
+ #ifdef F_FREEZE_FS /* macOS */
+ case F_FREEZE_FS:
+ #endif
+ #ifdef F_FULLFSYNC /* macOS */
+ case F_FULLFSYNC:
+ #endif
+ #ifdef F_GETCONFINED /* macOS */
+ case F_GETCONFINED:
+ #endif
+ #ifdef F_GETDEFAULTPROTLEVEL /* macOS */
+ case F_GETDEFAULTPROTLEVEL:
+ #endif
+ #ifdef F_GETFD /* POSIX */
+ case F_GETFD:
+ #endif
+ #ifdef F_GETFL /* POSIX */
+ case F_GETFL:
+ #endif
+ #ifdef F_GETLEASE /* Linux */
+ case F_GETLEASE:
+ #endif
+ #ifdef F_GETNOSIGPIPE /* macOS */
+ case F_GETNOSIGPIPE:
+ #endif
+ #ifdef F_GETOWN /* POSIX */
+ case F_GETOWN:
+ #endif
+ #ifdef F_GETPIPE_SZ /* Linux */
+ case F_GETPIPE_SZ:
+ #endif
+ #ifdef F_GETPROTECTIONCLASS /* macOS */
+ case F_GETPROTECTIONCLASS:
+ #endif
+ #ifdef F_GETPROTECTIONLEVEL /* macOS */
+ case F_GETPROTECTIONLEVEL:
+ #endif
+ #ifdef F_GET_SEALS /* Linux */
+ case F_GET_SEALS:
+ #endif
+ #ifdef F_GETSIG /* Linux */
+ case F_GETSIG:
+ #endif
+ #ifdef F_MAXFD /* NetBSD */
+ case F_MAXFD:
+ #endif
+ #ifdef F_RECYCLE /* macOS */
+ case F_RECYCLE:
+ #endif
+ #ifdef F_SETFIFOENH /* HP-UX */
+ case F_SETFIFOENH:
+ #endif
+ #ifdef F_THAW_FS /* macOS */
+ case F_THAW_FS:
+ #endif
+ /* These actions take no argument. */
+ result = fcntl (fd, action);
+ break;
+
+ #ifdef F_ADD_SEALS /* Linux */
+ case F_ADD_SEALS:
+ #endif
+ #ifdef F_BADFD /* Solaris */
+ case F_BADFD:
+ #endif
+ #ifdef F_CHECK_OPENEVT /* macOS */
+ case F_CHECK_OPENEVT:
+ #endif
+ #ifdef F_DUP2FD /* FreeBSD, AIX, Solaris */
+ case F_DUP2FD:
+ #endif
+ #ifdef F_DUP2FD_CLOEXEC /* FreeBSD, Solaris */
+ case F_DUP2FD_CLOEXEC:
+ #endif
+ #ifdef F_DUP2FD_CLOFORK /* Solaris */
+ case F_DUP2FD_CLOFORK:
+ #endif
+ #ifdef F_DUPFD /* POSIX */
+ case F_DUPFD:
+ #endif
+ #ifdef F_DUPFD_CLOEXEC /* POSIX */
+ case F_DUPFD_CLOEXEC:
+ #endif
+ #ifdef F_DUPFD_CLOFORK /* Solaris */
+ case F_DUPFD_CLOFORK:
+ #endif
+ #ifdef F_GETXFL /* Solaris */
+ case F_GETXFL:
+ #endif
+ #ifdef F_GLOBAL_NOCACHE /* macOS */
+ case F_GLOBAL_NOCACHE:
+ #endif
+ #ifdef F_MAKECOMPRESSED /* macOS */
+ case F_MAKECOMPRESSED:
+ #endif
+ #ifdef F_MOVEDATAEXTENTS /* macOS */
+ case F_MOVEDATAEXTENTS:
+ #endif
+ #ifdef F_NOCACHE /* macOS */
+ case F_NOCACHE:
+ #endif
+ #ifdef F_NODIRECT /* macOS */
+ case F_NODIRECT:
+ #endif
+ #ifdef F_NOTIFY /* Linux */
+ case F_NOTIFY:
+ #endif
+ #ifdef F_OPLKACK /* IRIX */
+ case F_OPLKACK:
+ #endif
+ #ifdef F_OPLKREG /* IRIX */
+ case F_OPLKREG:
+ #endif
+ #ifdef F_RDAHEAD /* macOS */
+ case F_RDAHEAD:
+ #endif
+ #ifdef F_SETBACKINGSTORE /* macOS */
+ case F_SETBACKINGSTORE:
+ #endif
+ #ifdef F_SETCONFINED /* macOS */
+ case F_SETCONFINED:
+ #endif
+ #ifdef F_SETFD /* POSIX */
+ case F_SETFD:
+ #endif
+ #ifdef F_SETFL /* POSIX */
+ case F_SETFL:
+ #endif
+ #ifdef F_SETLEASE /* Linux */
+ case F_SETLEASE:
+ #endif
+ #ifdef F_SETNOSIGPIPE /* macOS */
+ case F_SETNOSIGPIPE:
+ #endif
+ #ifdef F_SETOWN /* POSIX */
+ case F_SETOWN:
+ #endif
+ #ifdef F_SETPIPE_SZ /* Linux */
+ case F_SETPIPE_SZ:
+ #endif
+ #ifdef F_SETPROTECTIONCLASS /* macOS */
+ case F_SETPROTECTIONCLASS:
+ #endif
+ #ifdef F_SETSIG /* Linux */
+ case F_SETSIG:
+ #endif
+ #ifdef F_SINGLE_WRITER /* macOS */
+ case F_SINGLE_WRITER:
+ #endif
+ /* These actions take an 'int' argument. */
+ {
+ int x = va_arg (arg, int);
+ result = fcntl (fd, action, x);
+ }
+ break;
+
+ default:
+ /* Other actions take a pointer argument. */
+ {
+ void *p = va_arg (arg, void *);
+ result = fcntl (fd, action, p);
+ }
+ break;
+ }
#else
errno = EINVAL;
#endif
va_end (arg);
return result;
}
+
+static int
+rpl_fcntl_DUPFD (int fd, int target)
+{
+ int result;
+#if !HAVE_FCNTL
+ result = dupfd (fd, target, 0);
+#elif FCNTL_DUPFD_BUGGY || REPLACE_FCHDIR
+ /* Detect invalid target; needed for cygwin 1.5.x. */
+ if (target < 0 || getdtablesize () <= target)
+ {
+ result = -1;
+ errno = EINVAL;
+ }
+ else
+ {
+ /* Haiku alpha 2 loses fd flags on original. */
+ int flags = fcntl (fd, F_GETFD);
+ if (flags < 0)
+ result = -1;
+ else
+ {
+ result = fcntl (fd, F_DUPFD, target);
+ if (0 <= result && fcntl (fd, F_SETFD, flags) == -1)
+ {
+ int saved_errno = errno;
+ close (result);
+ result = -1;
+ errno = saved_errno;
+ }
+# if REPLACE_FCHDIR
+ if (0 <= result)
+ result = _gl_register_dup (fd, result);
+# endif
+ }
+ }
+#else
+ result = fcntl (fd, F_DUPFD, target);
+#endif
+ return result;
+}
+
+static int
+rpl_fcntl_DUPFD_CLOEXEC (int fd, int target)
+{
+ int result;
+#if !HAVE_FCNTL
+ result = dupfd (fd, target, O_CLOEXEC);
+#else /* HAVE_FCNTL */
+# if defined __HAIKU__
+ /* On Haiku, the system fcntl (fd, F_DUPFD_CLOEXEC, target) sets
+ the FD_CLOEXEC flag on fd, not on target. Therefore avoid the
+ system fcntl in this case. */
+# define have_dupfd_cloexec -1
+# else
+ /* Try the system call first, if the headers claim it exists
+ (that is, if GNULIB_defined_F_DUPFD_CLOEXEC is 0), since we
+ may be running with a glibc that has the macro but with an
+ older kernel that does not support it. Cache the
+ information on whether the system call really works, but
+ avoid caching failure if the corresponding F_DUPFD fails
+ for any reason. 0 = unknown, 1 = yes, -1 = no. */
+ static int have_dupfd_cloexec = GNULIB_defined_F_DUPFD_CLOEXEC ? -1 : 0;
+ if (0 <= have_dupfd_cloexec)
+ {
+ result = fcntl (fd, F_DUPFD_CLOEXEC, target);
+ if (0 <= result || errno != EINVAL)
+ {
+ have_dupfd_cloexec = 1;
+# if REPLACE_FCHDIR
+ if (0 <= result)
+ result = _gl_register_dup (fd, result);
+# endif
+ }
+ else
+ {
+ result = rpl_fcntl_DUPFD (fd, target);
+ if (result >= 0)
+ have_dupfd_cloexec = -1;
+ }
+ }
+ else
+# endif
+ result = rpl_fcntl_DUPFD (fd, target);
+ if (0 <= result && have_dupfd_cloexec == -1)
+ {
+ int flags = fcntl (result, F_GETFD);
+ if (flags < 0 || fcntl (result, F_SETFD, flags | FD_CLOEXEC) == -1)
+ {
+ int saved_errno = errno;
+ close (result);
+ errno = saved_errno;
+ result = -1;
+ }
+ }
+#endif /* HAVE_FCNTL */
+ return result;
+}
+
+#undef fcntl
+
+#ifdef __KLIBC__
+
+static int
+klibc_fcntl (int fd, int action, /* arg */...);
+{
+ va_list arg_ptr;
+ int arg;
+ struct stat sbuf;
+ int result;
+
+ va_start (arg_ptr, action);
+ arg = va_arg (arg_ptr, int);
+ result = fcntl (fd, action, arg);
+ /* EPERM for F_DUPFD, ENOTSUP for others */
+ if (result == -1 && (errno == EPERM || errno == ENOTSUP)
+ && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode))
+ {
+ ULONG ulMode;
+
+ switch (action)
+ {
+ case F_DUPFD:
+ /* Find available fd */
+ while (fcntl (arg, F_GETFL) != -1 || errno != EBADF)
+ arg++;
+
+ result = dup2 (fd, arg);
+ break;
+
+ /* Using underlying APIs is right ? */
+ case F_GETFD:
+ if (DosQueryFHState (fd, &ulMode))
+ break;
+
+ result = (ulMode & OPEN_FLAGS_NOINHERIT) ? FD_CLOEXEC : 0;
+ break;
+
+ case F_SETFD:
+ if (arg & ~FD_CLOEXEC)
+ break;
+
+ if (DosQueryFHState (fd, &ulMode))
+ break;
+
+ if (arg & FD_CLOEXEC)
+ ulMode |= OPEN_FLAGS_NOINHERIT;
+ else
+ ulMode &= ~OPEN_FLAGS_NOINHERIT;
+
+ /* Filter supported flags. */
+ ulMode &= (OPEN_FLAGS_WRITE_THROUGH | OPEN_FLAGS_FAIL_ON_ERROR
+ | OPEN_FLAGS_NO_CACHE | OPEN_FLAGS_NOINHERIT);
+
+ if (DosSetFHState (fd, ulMode))
+ break;
+
+ result = 0;
+ break;
+
+ case F_GETFL:
+ result = 0;
+ break;
+
+ case F_SETFL:
+ if (arg != 0)
+ break;
+
+ result = 0;
+ break;
+
+ default:
+ errno = EINVAL;
+ break;
+ }
+ }
+
+ va_end (arg_ptr);
+
+ return result;
+}
+
+#endif
/* Like <fcntl.h>, but with non-working flags defined to 0.
- Copyright (C) 2006-2017 Free Software Foundation, Inc.
+ Copyright (C) 2006-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* written by Paul Eggert */
/* Native Windows platforms declare open(), creat() in <io.h>. */
#if (@GNULIB_OPEN@ || defined GNULIB_POSIXCHECK) \
- && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+ && (defined _WIN32 && ! defined __CYGWIN__)
# include <io.h>
#endif
#endif
#ifndef O_CLOEXEC
-# define O_CLOEXEC 0
+# define O_CLOEXEC 0x40000000 /* Try to not collide with system O_* flags. */
+# define GNULIB_defined_O_CLOEXEC 1
+#else
+# define GNULIB_defined_O_CLOEXEC 0
#endif
#ifndef O_DIRECT
-/* Hook for making making file descriptor functions close(), ioctl() extensible.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Hook for making file descriptor functions close(), ioctl() extensible.
+ Copyright (C) 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This program is free software: you can redistribute it and/or modify it
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
-/* Hook for making making file descriptor functions close(), ioctl() extensible.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Hook for making file descriptor functions close(), ioctl() extensible.
+ Copyright (C) 2009-2018 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
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef FD_HOOK_H
/* Return a string describing the type of a file.
- Copyright (C) 1993-1994, 2001-2002, 2004-2006, 2009-2017 Free Software
+ Copyright (C) 1993-1994, 2001-2002, 2004-2006, 2009-2018 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
/* Return a string describing the type of a file.
- Copyright (C) 1993-1994, 2001-2002, 2004-2005, 2009-2017 Free Software
+ Copyright (C) 1993-1994, 2001-2002, 2004-2005, 2009-2018 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert and Jim Meyering. */
/* Basic filename support macros.
- Copyright (C) 2001-2004, 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2004, 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _FILENAME_H
#define _FILENAME_H
it may be concatenated to a directory pathname.
IS_PATH_WITH_DIR(P) tests whether P contains a directory specification.
*/
-#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
+#if defined _WIN32 || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
/* Native Windows, Cygwin, OS/2, DOS */
# define ISSLASH(C) ((C) == '/' || (C) == '\\')
# define HAS_DEVICE(P) \
/* Concatenate two arbitrary file names.
- Copyright (C) 1996-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1996-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Jim Meyering. */
# define mempcpy(D, S, N) ((void *) ((char *) memcpy (D, S, N) + (N)))
#endif
-/* Return the longest suffix of F that is a relative file name.
- If it has no such suffix, return the empty string. */
-
-static char const * _GL_ATTRIBUTE_PURE
-longest_relative_suffix (char const *f)
-{
- for (f += FILE_SYSTEM_PREFIX_LEN (f); ISSLASH (*f); f++)
- continue;
- return f;
-}
-
-/* Concatenate two file name components, DIR and ABASE, in
+/* Concatenate two file name components, DIR and BASE, in
newly-allocated storage and return the result.
The resulting file name F is such that the commands "ls F" and "(cd
- DIR; ls BASE)" refer to the same file, where BASE is ABASE with any
- file system prefixes and leading separators removed.
- Arrange for a directory separator if necessary between DIR and BASE
- in the result, removing any redundant separators.
+ DIR; ls ./BASE)" refer to the same file. If necessary, put
+ a separator between DIR and BASE in the result. Typically this
+ separator is "/", but in rare cases it might be ".".
In any case, if BASE_IN_RESULT is non-NULL, set
- *BASE_IN_RESULT to point to the copy of ABASE in the returned
- concatenation. However, if ABASE begins with more than one slash,
- set *BASE_IN_RESULT to point to the sole corresponding slash that
- is copied into the result buffer.
+ *BASE_IN_RESULT to point to the copy of BASE at the end of the
+ returned concatenation.
Return NULL if malloc fails. */
char *
-mfile_name_concat (char const *dir, char const *abase, char **base_in_result)
+mfile_name_concat (char const *dir, char const *base, char **base_in_result)
{
char const *dirbase = last_component (dir);
size_t dirbaselen = base_len (dirbase);
size_t dirlen = dirbase - dir + dirbaselen;
- size_t needs_separator = (dirbaselen && ! ISSLASH (dirbase[dirbaselen - 1]));
-
- char const *base = longest_relative_suffix (abase);
size_t baselen = strlen (base);
-
- char *p_concat = malloc (dirlen + needs_separator + baselen + 1);
+ char sep = '\0';
+ if (dirbaselen)
+ {
+ /* DIR is not a file system root, so separate with / if needed. */
+ if (! ISSLASH (dir[dirlen - 1]) && ! ISSLASH (*base))
+ sep = '/';
+ }
+ else if (ISSLASH (*base))
+ {
+ /* DIR is a file system root and BASE begins with a slash, so
+ separate with ".". For example, if DIR is "/" and BASE is
+ "/foo" then return "/./foo", as "//foo" would be wrong on
+ some POSIX systems. A fancier algorithm could omit "." in
+ some cases but is not worth the trouble. */
+ sep = '.';
+ }
+
+ char *p_concat = malloc (dirlen + (sep != '\0') + baselen + 1);
char *p;
if (p_concat == NULL)
return NULL;
p = mempcpy (p_concat, dir, dirlen);
- *p = DIRECTORY_SEPARATOR;
- p += needs_separator;
+ *p = sep;
+ p += sep != '\0';
if (base_in_result)
- *base_in_result = p - IS_ABSOLUTE_FILE_NAME (abase);
+ *base_in_result = p;
p = mempcpy (p, base, baselen);
*p = '\0';
/* Concatenate two arbitrary file names.
- Copyright (C) 1996-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1996-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Jim Meyering. */
"memory exhausted" condition and exit. */
char *
-file_name_concat (char const *dir, char const *abase, char **base_in_result)
+file_name_concat (char const *dir, char const *base, char **base_in_result)
{
- char *p = mfile_name_concat (dir, abase, base_in_result);
+ char *p = mfile_name_concat (dir, base, base_in_result);
if (p == NULL)
xalloc_die ();
return p;
/* Concatenate two arbitrary file names.
- Copyright (C) 1996-1997, 2003, 2005, 2007, 2009-2017 Free Software
+ Copyright (C) 1996-1997, 2003, 2005, 2007, 2009-2018 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Jim Meyering. */
/* Sizes of structs with flexible array members.
- Copyright 2016-2017 Free Software Foundation, Inc.
+ Copyright 2016-2018 Free Software Foundation, Inc.
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
+ This file is part of the GNU C Library.
- This program is distributed in the hope that it will be useful,
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public
+ License as published by the Free Software Foundation; either
+ version 3 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
+ You should have received a copy of the GNU General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>.
Written by Paul Eggert. */
/* Supplemental information about the floating-point formats.
- Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This program is free software; you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _FLOATPLUS_H
#define _FLOATPLUS_H
/* Auxiliary definitions for <float.h>.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* A correct <float.h>.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _@GUARD_PREFIX@_FLOAT_H
/* On FreeBSD/x86 6.4, the 'long double' type really has only 53 bits of
precision in the compiler but 64 bits of precision at runtime. See
- <http://lists.gnu.org/archive/html/bug-gnulib/2008-07/msg00063.html>. */
-#if defined __i386__ && defined __FreeBSD__
+ <https://lists.gnu.org/r/bug-gnulib/2008-07/msg00063.html>. */
+#if defined __i386__ && (defined __FreeBSD__ || defined __DragonFly__)
/* Number of mantissa units, in base FLT_RADIX. */
# undef LDBL_MANT_DIG
# define LDBL_MANT_DIG 64
# define LDBL_MAX_EXP 16384
/* Minimum positive normalized number. */
# undef LDBL_MIN
-# define LDBL_MIN 3.3621031431120935E-4932L /* = 0x1p-16382L */
+# define LDBL_MIN 3.362103143112093506262677817321752E-4932L /* = 0x1p-16382L */
/* Maximum representable finite number. */
# undef LDBL_MAX
/* LDBL_MAX is represented as { 0xFFFFFFFF, 0xFFFFFFFF, 32766 }.
-/* Copyright (C) 1991-1993, 1996-2007, 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1991-1993, 1996-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _LIBC
# include <config.h>
-/* Copyright (C) 1991-1993, 1996-1999, 2001-2003, 2005, 2007, 2009-2017 Free
+/* Substitute for and wrapper around <fnmatch.h>.
+ Copyright (C) 1991-1993, 1996-1999, 2001-2003, 2005, 2007, 2009-2018 Free
Software Foundation, Inc.
This file is part of the GNU C Library.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
-#ifndef _FNMATCH_H
-#define _FNMATCH_H 1
+#ifndef _@GUARD_PREFIX@_FNMATCH_H
-/* The definition of _GL_ARG_NONNULL is copied here. */
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
-#ifdef __cplusplus
-extern "C" {
+/* The include_next requires a split double-inclusion guard. */
+#if @HAVE_FNMATCH_H@ && !@REPLACE_FNMATCH@
+# @INCLUDE_NEXT@ @NEXT_FNMATCH_H@
#endif
+#ifndef _@GUARD_PREFIX@_FNMATCH_H
+#define _@GUARD_PREFIX@_FNMATCH_H
+
+/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
+
+/* The definition of _GL_ARG_NONNULL is copied here. */
+
+/* The definition of _GL_WARN_ON_USE is copied here. */
+
+#if !@HAVE_FNMATCH_H@ || @REPLACE_FNMATCH@
+
/* We #undef these before defining them because some losing systems
(HP-UX A.08.07 for example) define these in <unistd.h>. */
#undef FNM_PATHNAME
# define FNM_NOSYS (-1)
#endif
+#endif
+
+
+#if @GNULIB_FNMATCH@
/* Match NAME against the file name pattern PATTERN,
returning zero if it matches, FNM_NOMATCH if not. */
-extern int fnmatch (const char *__pattern, const char *__name,
- int __flags)
- _GL_ARG_NONNULL ((1, 2));
-
-#ifdef __cplusplus
-}
+# if @REPLACE_FNMATCH@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# define fnmatch rpl_fnmatch
+# endif
+_GL_FUNCDECL_RPL (fnmatch, int,
+ (const char *pattern, const char *name, int flags)
+ _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (fnmatch, int,
+ (const char *pattern, const char *name, int flags));
+# else
+# if !@HAVE_FNMATCH@
+_GL_FUNCDECL_SYS (fnmatch, int,
+ (const char *pattern, const char *name, int flags)
+ _GL_ARG_NONNULL ((1, 2)));
+# endif
+_GL_CXXALIAS_SYS (fnmatch, int,
+ (const char *pattern, const char *name, int flags));
+# endif
+# if !GNULIB_FNMATCH_GNU
+_GL_CXXALIASWARN (fnmatch);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef fnmatch
+# if HAVE_RAW_DECL_FNMATCH
+_GL_WARN_ON_USE (fnmatch,
+ "fnmatch does not portably work - "
+ "use gnulib module fnmatch for portability or gnulib module fnmatch-gnu for a glibc compatible implementation");
+# endif
#endif
-#endif /* fnmatch.h */
+
+#endif /* _@GUARD_PREFIX@_FNMATCH_H */
+#endif /* _@GUARD_PREFIX@_FNMATCH_H */
-/* Copyright (C) 1991-1993, 1996-2006, 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1991-1993, 1996-2006, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* Match STRING against the file name pattern PATTERN, returning zero if
it matches, nonzero if not. */
/* Invoke freopen, but avoid some glitches.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake. */
/* Open a stream to a file.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
rpl_freopen (const char *filename, const char *mode, FILE *stream)
{
FILE *result;
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
char const *null_device = "NUL";
if (filename && strcmp (filename, "/dev/null") == 0)
filename = null_device;
/* fstat() replacement.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* If the user's config.h happens to include <sys/stat.h>, let it include only
the system's <sys/stat.h> here, so that orig_fstat doesn't recurse to
#include <sys/stat.h>
#undef __need_system_sys_stat_h
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
# define WINDOWS_NATIVE
#endif
above. */
#include "sys/stat.h"
+#include "stat-time.h"
+
#include <errno.h>
#include <unistd.h>
#ifdef WINDOWS_NATIVE
/* Fill the fields ourselves, because the original fstat function returns
values for st_atime, st_mtime, st_ctime that depend on the current time
zone. See
- <https://lists.gnu.org/archive/html/bug-gnulib/2017-04/msg00134.html> */
+ <https://lists.gnu.org/r/bug-gnulib/2017-04/msg00134.html> */
HANDLE h = (HANDLE) _get_osfhandle (fd);
if (h == INVALID_HANDLE_VALUE)
}
return _gl_fstat_by_handle (h, NULL, buf);
#else
- return orig_fstat (fd, buf);
+ return stat_time_normalize (orig_fstat (fd, buf), buf);
#endif
}
-/* getdtablesize() function for platforms that don't have it.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+/* getdtablesize() function: Return maximum possible file descriptor value + 1.
+ Copyright (C) 2008-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Specification. */
#include <unistd.h>
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
# include <stdio.h>
/* getopt-on-non-glibc compatibility macros.
- Copyright (C) 1989-2017 Free Software Foundation, Inc.
+ Copyright (C) 1989-2018 Free Software Foundation, Inc.
This file is part of gnulib.
Unlike most of the getopt implementation, it is NOT shared
with the GNU C Library.
- gnulib is free software; you can redistribute it and/or modify it
+ This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 3 of
the License, or (at your option) any later version.
- gnulib is distributed in the hope that it will be useful, but
+ This file is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public
License along with gnulib; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GETOPT_CDEFS_H
#define _GETOPT_CDEFS_H 1
/* Declarations for getopt (basic, portable features only).
- Copyright (C) 1989-2017 Free Software Foundation, Inc.
+ Copyright (C) 1989-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library and is also part of gnulib.
Patches to this file should be submitted to both projects.
You should have received a copy of the GNU General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GETOPT_CORE_H
#define _GETOPT_CORE_H 1
/* Declarations for getopt (GNU extensions).
- Copyright (C) 1989-2017 Free Software Foundation, Inc.
+ Copyright (C) 1989-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library and is also part of gnulib.
Patches to this file should be submitted to both projects.
You should have received a copy of the GNU General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GETOPT_EXT_H
#define _GETOPT_EXT_H 1
/* getopt (basic, portable features) gnulib wrapper header.
- Copyright (C) 1989-2017 Free Software Foundation, Inc.
+ Copyright (C) 1989-2018 Free Software Foundation, Inc.
This file is part of gnulib.
Unlike most of the getopt implementation, it is NOT shared
with the GNU C Library.
- gnulib is free software; you can redistribute it and/or modify it
+ This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 3 of
the License, or (at your option) any later version.
- gnulib is distributed in the hope that it will be useful, but
+ This file is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public
License along with gnulib; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GETOPT_PFX_CORE_H
#define _GETOPT_PFX_CORE_H 1
# define opterr __GETOPT_ID (opterr)
# define optind __GETOPT_ID (optind)
# define optopt __GETOPT_ID (optopt)
+
+/* The system's getopt.h may have already included getopt-core.h to
+ declare the unprefixed identifiers. Undef _GETOPT_CORE_H so that
+ getopt-core.h declares them with prefixes. */
+# undef _GETOPT_CORE_H
#endif
#include <getopt-core.h>
/* getopt (GNU extensions) gnulib wrapper header.
- Copyright (C) 1989-2017 Free Software Foundation, Inc.
+ Copyright (C) 1989-2018 Free Software Foundation, Inc.
This file is part of gnulib.
Unlike most of the getopt implementation, it is NOT shared
with the GNU C Library.
- gnulib is free software; you can redistribute it and/or modify it
+ This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 3 of
the License, or (at your option) any later version.
- gnulib is distributed in the hope that it will be useful, but
+ This file is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public
License along with gnulib; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GETOPT_PFX_EXT_H
#define _GETOPT_PFX_EXT_H 1
# define getopt_long_only __GETOPT_ID (getopt_long_only)
# define option __GETOPT_ID (option)
# define _getopt_internal __GETOPT_ID (getopt_internal)
+
+/* The system's getopt.h may have already included getopt-ext.h to
+ declare the unprefixed identifiers. Undef _GETOPT_EXT_H so that
+ getopt-ext.h declares them with prefixes. */
+# undef _GETOPT_EXT_H
#endif
/* Standalone applications get correct prototypes for getopt_long and
/* Getopt for GNU.
- Copyright (C) 1987-2017 Free Software Foundation, Inc.
+ Copyright (C) 1987-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library and is also part of gnulib.
Patches to this file should be submitted to both projects.
You should have received a copy of the GNU General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
\f
#ifndef _LIBC
# include <config.h>
/* When used standalone, flockfile and funlockfile might not be
available. */
# if (!defined _POSIX_THREAD_SAFE_FUNCTIONS \
- || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
+ || (defined _WIN32 && ! defined __CYGWIN__))
# define flockfile(fp) /* nop */
# define funlockfile(fp) /* nop */
# endif
/* Declarations for getopt.
- Copyright (C) 1989-2017 Free Software Foundation, Inc.
+ Copyright (C) 1989-2018 Free Software Foundation, Inc.
This file is part of gnulib.
Unlike most of the getopt implementation, it is NOT shared
with the GNU C Library, which supplies a different version of
this file.
- gnulib is free software; you can redistribute it and/or modify it
+ This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 3 of
the License, or (at your option) any later version.
- gnulib is distributed in the hope that it will be useful, but
+ This file is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public
- License along with gnulib; if not, see <http://www.gnu.org/licenses/>. */
+ License along with gnulib; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _@GUARD_PREFIX@_GETOPT_H
/* getopt_long and getopt_long_only entry points for GNU getopt.
- Copyright (C) 1987-2017 Free Software Foundation, Inc.
+ Copyright (C) 1987-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library and is also part of gnulib.
Patches to this file should be submitted to both projects.
You should have received a copy of the GNU General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
\f
#ifndef _LIBC
# include <config.h>
/* Internal declarations for getopt.
- Copyright (C) 1989-2017 Free Software Foundation, Inc.
+ Copyright (C) 1989-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library and is also part of gnulib.
Patches to this file should be submitted to both projects.
You should have received a copy of the GNU General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GETOPT_INT_H
#define _GETOPT_INT_H 1
/* Program name management.
- Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ Copyright (C) 2016-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* https://www.gnu.org/software/libc/manual/html_node/Error-Messages.html */
return last_component (program_invocation_name);
# elif HAVE_GETEXECNAME /* Solaris */
- /* http://docs.oracle.com/cd/E19253-01/816-5168/6mbb3hrb1/index.html */
+ /* https://docs.oracle.com/cd/E19253-01/816-5168/6mbb3hrb1/index.html */
const char *p = getexecname ();
if (!p)
p = "?";
const char *p = __argv && __argv[0] ? __argv[0] : "?";
return last_component (p);
# elif HAVE_VAR___PROGNAME /* OpenBSD, QNX */
- /* http://man.openbsd.org/style.9 */
+ /* https://man.openbsd.org/style.9 */
/* http://www.qnx.de/developers/docs/6.5.0/index.jsp?topic=%2Fcom.qnx.doc.neutrino_lib_ref%2Fp%2F__progname.html */
/* Be careful to declare this only when we absolutely need it
(OpenBSD 5.1), rather than when it's available. Otherwise,
return p && p[0] ? p : "?";
# elif _AIX /* AIX */
/* Idea by Bastien ROUCARIÈS,
- http://lists.gnu.org/archive/html/bug-gnulib/2010-12/msg00095.html
- Reference: http://
- ibm.biz/knowctr#ssw_aix_53/com.ibm.aix.basetechref/doc/basetrf1/getprocs.htm
+ https://lists.gnu.org/r/bug-gnulib/2010-12/msg00095.html
+ Reference: https://www.ibm.com/support/knowledgecenter/en/ssw_aix_61/com.ibm.aix.basetrf1/getprocs.htm
*/
static char *p;
static int first = 1;
first = 0;
pid_t pid = getpid ();
struct pst_status status;
- p = (0 < pstat_getproc (&status, sizeof status, 0, pid)
- ? strdup (status.pst_ucomm)
- : NULL);
+ if (pstat_getproc (&status, sizeof status, 0, pid) > 0)
+ {
+ char *ucomm = status.pst_ucomm;
+ char *cmd = status.pst_cmd;
+ if (strlen (ucomm) < PST_UCOMMLEN - 1)
+ p = ucomm;
+ else
+ {
+ /* ucomm is truncated to length PST_UCOMMLEN - 1.
+ Look at cmd instead. */
+ char *space = strchr (cmd, ' ');
+ if (space != NULL)
+ *space = '\0';
+ p = strrchr (cmd, '/');
+ if (p != NULL)
+ p++;
+ else
+ p = cmd;
+ if (strlen (p) > PST_UCOMMLEN - 1
+ && memcmp (p, ucomm, PST_UCOMMLEN - 1) == 0)
+ /* p is less truncated than ucomm. */
+ ;
+ else
+ p = ucomm;
+ }
+ p = strdup (p);
+ }
+ else
+ {
+# if !defined __LP64__
+ /* Support for 32-bit programs running in 64-bit HP-UX.
+ The documented way to do this is to use the same source code
+ as above, but in a compilation unit where '#define _PSTAT64 1'
+ is in effect. I prefer a single compilation unit; the struct
+ size and the offsets are not going to change. */
+ char status64[1216];
+ if (__pstat_getproc64 (status64, sizeof status64, 0, pid) > 0)
+ {
+ char *ucomm = status64 + 288;
+ char *cmd = status64 + 168;
+ if (strlen (ucomm) < PST_UCOMMLEN - 1)
+ p = ucomm;
+ else
+ {
+ /* ucomm is truncated to length PST_UCOMMLEN - 1.
+ Look at cmd instead. */
+ char *space = strchr (cmd, ' ');
+ if (space != NULL)
+ *space = '\0';
+ p = strrchr (cmd, '/');
+ if (p != NULL)
+ p++;
+ else
+ p = cmd;
+ if (strlen (p) > PST_UCOMMLEN - 1
+ && memcmp (p, ucomm, PST_UCOMMLEN - 1) == 0)
+ /* p is less truncated than ucomm. */
+ ;
+ else
+ p = ucomm;
+ }
+ p = strdup (p);
+ }
+ else
+# endif
+ p = NULL;
+ }
if (!p)
p = "?";
}
if (ioctl_ok)
{
char *name = buf.pr_fname;
- char *namesize = sizeof buf.pr_fname;
+ size_t namesize = sizeof buf.pr_fname;
char *namenul = memchr (name, '\0', namesize);
size_t namelen = namenul ? namenul - name : namesize;
char *namecopy = malloc (namelen + 1);
}
#endif
+
+/*
+ * Hey Emacs!
+ * Local Variables:
+ * coding: utf-8
+ * End:
+ */
/* Program name management.
- Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ Copyright (C) 2016-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _GL_GETPROGNAME_H
#define _GL_GETPROGNAME_H
/* Convenience header for conditional use of GNU <libintl.h>.
- Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2017 Free Software
+ Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2018 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _LIBGETTEXT_H
#define _LIBGETTEXT_H 1
#include <string.h>
#if (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \
- /* || __STDC_VERSION__ >= 199901L */ )
+ /* || (__STDC_VERSION__ == 199901L && !defined __HP_cc)
+ || (__STDC_VERSION__ >= 201112L && !defined __STDC_NO_VLA__) */ )
# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1
#else
# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0
/* gettime -- get the system clock
- Copyright (C) 2002, 2004-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
void
gettime (struct timespec *ts)
{
-#if HAVE_NANOTIME
- nanotime (ts);
+#if defined CLOCK_REALTIME && HAVE_CLOCK_GETTIME
+ clock_gettime (CLOCK_REALTIME, ts);
#else
+ struct timeval tv;
+ gettimeofday (&tv, NULL);
+ ts->tv_sec = tv.tv_sec;
+ ts->tv_nsec = tv.tv_usec * 1000;
+#endif
+}
-# if defined CLOCK_REALTIME && HAVE_CLOCK_GETTIME
- if (clock_gettime (CLOCK_REALTIME, ts) == 0)
- return;
-# endif
-
- {
- struct timeval tv;
- gettimeofday (&tv, NULL);
- ts->tv_sec = tv.tv_sec;
- ts->tv_nsec = tv.tv_usec * 1000;
- }
+/* Return the current system time as a struct timespec. */
-#endif
+struct timespec
+current_timespec (void)
+{
+ struct timespec ts;
+ gettime (&ts);
+ return ts;
}
/* Provide gettimeofday for systems that don't have it or for which it's broken.
- Copyright (C) 2001-2003, 2005-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2005-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* written by Jim Meyering */
#include <time.h>
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
# define WINDOWS_NATIVE
# include <windows.h>
#endif
#ifdef WINDOWS_NATIVE
+/* Avoid warnings from gcc -Wcast-function-type. */
+# define GetProcAddress \
+ (void *) GetProcAddress
+
/* GetSystemTimePreciseAsFileTime was introduced only in Windows 8. */
typedef void (WINAPI * GetSystemTimePreciseAsFileTimeFuncType) (FILETIME *lpTime);
static GetSystemTimePreciseAsFileTimeFuncType GetSystemTimePreciseAsFileTimeFunc = NULL;
if (kernel32 != NULL)
{
GetSystemTimePreciseAsFileTimeFunc =
- (GetSystemTimePreciseAsFileTimeFuncType) GetProcAddress (kernel32, "GetSystemTimePreciseAsFileTime");
+ (GetSystemTimePreciseAsFileTimeFuncType) GetProcAddress (kernel32, "GetSystemTimePreciseAsFileTime");
}
initialized = TRUE;
}
## DO NOT EDIT! GENERATED AUTOMATICALLY!
## Process this file with automake to produce Makefile.in.
-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
+# Copyright (C) 2002-2018 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this file. If not, see <http://www.gnu.org/licenses/>.
+# along with this file. If not, see <https://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License,
# this file may be distributed as part of a program that
# the same distribution terms as the rest of that program.
#
# Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --local-dir=gl --lib=libdiffutils --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=gnulib-tests --aux-dir=build-aux --with-tests --avoid=localename --avoid=lock --makefile-name=gnulib.mk --no-conditional-dependencies --no-libtool --macro-prefix=gl announce-gen argmatch binary-io c-stack config-h diffseq dirname do-release-commit-and-tag dup2 error exclude exitfail extensions fcntl fdl file-type filenamecat fnmatch-gnu getopt gettext-h gettime git-version-gen gitlog-to-changelog gnu-make gnu-web-doc-update gnumakefile gnupload hard-locale inttostr inttypes isblank largefile lstat maintainer-makefile manywarnings mbrtowc mkstemp mktime progname propername rawmemchr readme-release regex sh-quote signal stat stat-macros stat-time stdint strcase strftime strptime strtoumax sys_wait system-quote unistd unlocked-io update-copyright vararrays verify version-etc version-etc-fsf wcwidth xalloc xfreopen xreadlink xstrtoumax xvasprintf
+# Reproduce by:
+# gnulib-tool --import --local-dir=gl \
+# --lib=libdiffutils \
+# --source-base=lib \
+# --m4-base=m4 \
+# --doc-base=doc \
+# --tests-base=gnulib-tests \
+# --aux-dir=build-aux \
+# --with-tests \
+# --makefile-name=gnulib.mk \
+# --no-conditional-dependencies \
+# --no-libtool \
+# --macro-prefix=gl \
+# --avoid=localename \
+# --avoid=lock \
+# announce-gen \
+# argmatch \
+# binary-io \
+# c-stack \
+# config-h \
+# diffseq \
+# dirname \
+# do-release-commit-and-tag \
+# dup2 \
+# error \
+# exclude \
+# exitfail \
+# extensions \
+# fcntl \
+# fdl \
+# file-type \
+# filenamecat \
+# fnmatch-gnu \
+# getopt \
+# gettext-h \
+# gettime \
+# git-version-gen \
+# gitlog-to-changelog \
+# gnu-make \
+# gnu-web-doc-update \
+# gnumakefile \
+# gnupload \
+# hard-locale \
+# inttostr \
+# inttypes \
+# isblank \
+# largefile \
+# lstat \
+# maintainer-makefile \
+# manywarnings \
+# mbrtowc \
+# mkstemp \
+# mktime \
+# progname \
+# propername \
+# rawmemchr \
+# readme-release \
+# regex \
+# sh-quote \
+# signal \
+# stat \
+# stat-macros \
+# stat-time \
+# stdint \
+# strcase \
+# strftime \
+# strptime \
+# strtoumax \
+# sys_wait \
+# system-quote \
+# unistd \
+# unlocked-io \
+# update-copyright \
+# vararrays \
+# verify \
+# version-etc \
+# version-etc-fsf \
+# wcwidth \
+# xalloc \
+# xfreopen \
+# xreadlink \
+# xstrtoumax \
+# xvasprintf
MOSTLYCLEANFILES += core *.stackdump
## end gnulib module careadlinkat
-## begin gnulib module close
+## begin gnulib module cloexec
+libdiffutils_a_SOURCES += cloexec.c
-EXTRA_DIST += close.c
+EXTRA_DIST += cloexec.h
-EXTRA_libdiffutils_a_SOURCES += close.c
+## end gnulib module cloexec
-## end gnulib module close
+## begin gnulib module close
-## begin gnulib module configmake
-# Listed in the same order as the GNU makefile conventions, and
-# provided by autoconf 2.59c+ or 2.70.
-# The Automake-defined pkg* macros are appended, in the order
-# listed in the Automake 1.10a+ documentation.
-configmake.h: Makefile
- $(AM_V_GEN)rm -f $@-t && \
- { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- echo '#define PREFIX "$(prefix)"'; \
- echo '#define EXEC_PREFIX "$(exec_prefix)"'; \
- echo '#define BINDIR "$(bindir)"'; \
- echo '#define SBINDIR "$(sbindir)"'; \
- echo '#define LIBEXECDIR "$(libexecdir)"'; \
- echo '#define DATAROOTDIR "$(datarootdir)"'; \
- echo '#define DATADIR "$(datadir)"'; \
- echo '#define SYSCONFDIR "$(sysconfdir)"'; \
- echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
- echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
- echo '#define RUNSTATEDIR "$(runstatedir)"'; \
- echo '#define INCLUDEDIR "$(includedir)"'; \
- echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
- echo '#define DOCDIR "$(docdir)"'; \
- echo '#define INFODIR "$(infodir)"'; \
- echo '#define HTMLDIR "$(htmldir)"'; \
- echo '#define DVIDIR "$(dvidir)"'; \
- echo '#define PDFDIR "$(pdfdir)"'; \
- echo '#define PSDIR "$(psdir)"'; \
- echo '#define LIBDIR "$(libdir)"'; \
- echo '#define LISPDIR "$(lispdir)"'; \
- echo '#define LOCALEDIR "$(localedir)"'; \
- echo '#define MANDIR "$(mandir)"'; \
- echo '#define MANEXT "$(manext)"'; \
- echo '#define PKGDATADIR "$(pkgdatadir)"'; \
- echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \
- echo '#define PKGLIBDIR "$(pkglibdir)"'; \
- echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
- } | sed '/""/d' > $@-t && \
- mv -f $@-t $@
+EXTRA_DIST += close.c
-BUILT_SOURCES += configmake.h
-CLEANFILES += configmake.h configmake.h-t
+EXTRA_libdiffutils_a_SOURCES += close.c
-## end gnulib module configmake
+## end gnulib module close
## begin gnulib module ctype
## begin gnulib module fnmatch
+
+EXTRA_DIST += fnmatch.c fnmatch_loop.c
+
+EXTRA_libdiffutils_a_SOURCES += fnmatch.c fnmatch_loop.c
+
+## end gnulib module fnmatch
+
+## begin gnulib module fnmatch-h
+
BUILT_SOURCES += $(FNMATCH_H)
-# We need the following in order to create <fnmatch.h> when the system
-# doesn't have one that supports the required API.
+# We need the following in order to create <fnmatch.h>.
if GL_GENERATE_FNMATCH_H
-fnmatch.h: fnmatch.in.h $(top_builddir)/config.status $(ARG_NONNULL_H)
+fnmatch.h: fnmatch.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
$(AM_V_GEN)rm -f $@-t $@ && \
- { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''HAVE_FNMATCH_H''@|$(HAVE_FNMATCH_H)|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_FNMATCH_H''@|$(NEXT_FNMATCH_H)|g' \
+ -e 's/@''GNULIB_FNMATCH''@/$(GNULIB_FNMATCH)/g' \
+ -e 's|@''HAVE_FNMATCH''@|$(HAVE_FNMATCH)|g' \
+ -e 's|@''REPLACE_FNMATCH''@|$(REPLACE_FNMATCH)|g' \
+ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
< $(srcdir)/fnmatch.in.h; \
} > $@-t && \
- mv -f $@-t $@
+ mv $@-t $@
else
fnmatch.h: $(top_builddir)/config.status
rm -f $@
endif
MOSTLYCLEANFILES += fnmatch.h fnmatch.h-t
-EXTRA_DIST += fnmatch.c fnmatch.in.h fnmatch_loop.c
+EXTRA_DIST += fnmatch.in.h
-EXTRA_libdiffutils_a_SOURCES += fnmatch.c fnmatch_loop.c
-
-## end gnulib module fnmatch
+## end gnulib module fnmatch-h
## begin gnulib module freopen
# We need the following in order to create <getopt.h> when the system
# doesn't have one that works with the given compiler.
-getopt.h: getopt.in.h $(top_builddir)/config.status
+getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H)
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
sed -e 's|@''GUARD_PREFIX''@|GL|g' \
## begin gnulib module iconv_open
-iconv_open-aix.h: iconv_open-aix.gperf
+$(srcdir)/iconv_open-aix.h: $(srcdir)/iconv_open-aix.gperf
$(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-aix.gperf > $(srcdir)/iconv_open-aix.h-t && \
mv $(srcdir)/iconv_open-aix.h-t $(srcdir)/iconv_open-aix.h
-iconv_open-hpux.h: iconv_open-hpux.gperf
+$(srcdir)/iconv_open-hpux.h: $(srcdir)/iconv_open-hpux.gperf
$(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-hpux.gperf > $(srcdir)/iconv_open-hpux.h-t && \
mv $(srcdir)/iconv_open-hpux.h-t $(srcdir)/iconv_open-hpux.h
-iconv_open-irix.h: iconv_open-irix.gperf
+$(srcdir)/iconv_open-irix.h: $(srcdir)/iconv_open-irix.gperf
$(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-irix.gperf > $(srcdir)/iconv_open-irix.h-t && \
mv $(srcdir)/iconv_open-irix.h-t $(srcdir)/iconv_open-irix.h
-iconv_open-osf.h: iconv_open-osf.gperf
+$(srcdir)/iconv_open-osf.h: $(srcdir)/iconv_open-osf.gperf
$(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-osf.gperf > $(srcdir)/iconv_open-osf.h-t && \
mv $(srcdir)/iconv_open-osf.h-t $(srcdir)/iconv_open-osf.h
-iconv_open-solaris.h: iconv_open-solaris.gperf
+$(srcdir)/iconv_open-solaris.h: $(srcdir)/iconv_open-solaris.gperf
$(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-solaris.gperf > $(srcdir)/iconv_open-solaris.h-t && \
mv $(srcdir)/iconv_open-solaris.h-t $(srcdir)/iconv_open-solaris.h
BUILT_SOURCES += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h
-e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \
-e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
-e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \
+ -e 's/@''HAVE_IMAXDIV_T''@/$(HAVE_IMAXDIV_T)/g' \
-e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \
-e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \
-e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \
-e 's/@''GNULIB_NL_LANGINFO''@/$(GNULIB_NL_LANGINFO)/g' \
-e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \
-e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \
+ -e 's|@''HAVE_LANGINFO_ALTMON''@|$(HAVE_LANGINFO_ALTMON)|g' \
-e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \
-e 's|@''HAVE_LANGINFO_YESEXPR''@|$(HAVE_LANGINFO_YESEXPR)|g' \
-e 's|@''HAVE_NL_LANGINFO''@|$(HAVE_NL_LANGINFO)|g' \
## end gnulib module langinfo
+## begin gnulib module libc-config
+
+
+EXTRA_DIST += cdefs.h libc-config.h
+
+## end gnulib module libc-config
+
## begin gnulib module limits-h
BUILT_SOURCES += $(LIMITS_H)
## begin gnulib module localcharset
-libdiffutils_a_SOURCES += localcharset.h localcharset.c
-
-# We need the following in order to install a simple file in $(libdir)
-# which is shared with other installed packages. We use a list of referencing
-# packages so that "make uninstall" will remove the file if and only if it
-# is not used by another installed package.
-# On systems with glibc-2.1 or newer, the file is redundant, therefore we
-# avoid installing it.
-
-all-local: charset.alias ref-add.sed ref-del.sed
-
-charset_alias = $(DESTDIR)$(libdir)/charset.alias
-charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
-install-exec-local: install-exec-localcharset
-install-exec-localcharset: all-local
- if test $(GLIBC21) = no; then \
- case '$(host_os)' in \
- darwin[56]*) \
- need_charset_alias=true ;; \
- darwin* | cygwin* | mingw* | pw32* | cegcc*) \
- need_charset_alias=false ;; \
- *) \
- need_charset_alias=true ;; \
- esac ; \
- else \
- need_charset_alias=false ; \
- fi ; \
- if $$need_charset_alias; then \
- $(mkinstalldirs) $(DESTDIR)$(libdir) ; \
- fi ; \
- if test -f $(charset_alias); then \
- sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
- $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
- rm -f $(charset_tmp) ; \
- else \
- if $$need_charset_alias; then \
- sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
- $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
- rm -f $(charset_tmp) ; \
- fi ; \
- fi
-
-uninstall-local: uninstall-localcharset
-uninstall-localcharset: all-local
- if test -f $(charset_alias); then \
- sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
- if grep '^# Packages using this file: $$' $(charset_tmp) \
- > /dev/null; then \
- rm -f $(charset_alias); \
- else \
- $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
- fi; \
- rm -f $(charset_tmp); \
- fi
+libdiffutils_a_SOURCES += localcharset.c
-charset.alias: config.charset
- $(AM_V_GEN)rm -f t-$@ $@ && \
- $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ && \
- mv t-$@ $@
-
-SUFFIXES += .sed .sin
-.sin.sed:
- $(AM_V_GEN)rm -f t-$@ $@ && \
- sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ && \
- mv t-$@ $@
-
-CLEANFILES += charset.alias ref-add.sed ref-del.sed
-
-EXTRA_DIST += config.charset ref-add.sin ref-del.sin
+EXTRA_DIST += localcharset.h
## end gnulib module localcharset
-e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \
-e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \
-e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \
+ -e 's/@''GNULIB_LOCALENAME''@/$(GNULIB_LOCALENAME)/g' \
+ -e 's|@''HAVE_NEWLOCALE''@|$(HAVE_NEWLOCALE)|g' \
-e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \
+ -e 's|@''HAVE_FREELOCALE''@|$(HAVE_FREELOCALE)|g' \
-e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \
-e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \
-e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \
+ -e 's|@''REPLACE_NEWLOCALE''@|$(REPLACE_NEWLOCALE)|g' \
-e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \
+ -e 's|@''REPLACE_FREELOCALE''@|$(REPLACE_FREELOCALE)|g' \
-e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
libdiffutils_a_SOURCES += malloca.c
-EXTRA_DIST += malloca.h malloca.valgrind
+EXTRA_DIST += malloca.h
## end gnulib module malloca
## end gnulib module minmax
+## begin gnulib module mkdir
+
+
+EXTRA_DIST += mkdir.c
+
+EXTRA_libdiffutils_a_SOURCES += mkdir.c
+
+## end gnulib module mkdir
+
## begin gnulib module mkstemp
## end gnulib module nl_langinfo
+## begin gnulib module nstrftime
+
+libdiffutils_a_SOURCES += nstrftime.c
+
+EXTRA_DIST += strftime.h
+
+## end gnulib module nstrftime
+
## begin gnulib module open
## end gnulib module regex
-## begin gnulib module secure_getenv
-
-
-EXTRA_DIST += secure_getenv.c
-
-EXTRA_libdiffutils_a_SOURCES += secure_getenv.c
-
-## end gnulib module secure_getenv
-
## begin gnulib module setenv
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \
- -e 's|@''GNULIB_PTHREAD_SIGMASK''@|$(GNULIB_PTHREAD_SIGMASK)|g' \
- -e 's|@''GNULIB_RAISE''@|$(GNULIB_RAISE)|g' \
+ -e 's/@''GNULIB_PTHREAD_SIGMASK''@/$(GNULIB_PTHREAD_SIGMASK)/g' \
+ -e 's/@''GNULIB_RAISE''@/$(GNULIB_RAISE)/g' \
-e 's/@''GNULIB_SIGNAL_H_SIGPIPE''@/$(GNULIB_SIGNAL_H_SIGPIPE)/g' \
-e 's/@''GNULIB_SIGPROCMASK''@/$(GNULIB_SIGPROCMASK)/g' \
-e 's/@''GNULIB_SIGACTION''@/$(GNULIB_SIGACTION)/g' \
-e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \
-e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \
-e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \
+ -e 's/@''GNULIB_REALLOCARRAY''@/$(GNULIB_REALLOCARRAY)/g' \
-e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \
-e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \
-e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \
-e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \
-e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
-e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \
+ -e 's|@''HAVE_DECL_INITSTATE''@|$(HAVE_DECL_INITSTATE)|g' \
-e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
-e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \
-e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \
-e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \
-e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \
-e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \
+ -e 's|@''HAVE_REALLOCARRAY''@|$(HAVE_REALLOCARRAY)|g' \
-e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \
-e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
-e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \
-e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \
+ -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \
-e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
-e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \
-e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \
## end gnulib module strerror-override
-## begin gnulib module strftime
-
-libdiffutils_a_SOURCES += strftime.c
-
-EXTRA_DIST += strftime.h
-
-## end gnulib module strftime
-
## begin gnulib module striconv
libdiffutils_a_SOURCES += striconv.h striconv.c
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \
+ -e 's/@''GNULIB_EXPLICIT_BZERO''@/$(GNULIB_EXPLICIT_BZERO)/g' \
-e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \
-e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \
-e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \
-e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \
-e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \
< $(srcdir)/string.in.h | \
- sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \
+ sed -e 's|@''HAVE_EXPLICIT_BZERO''@|$(HAVE_EXPLICIT_BZERO)|g' \
+ -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \
-e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \
-e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \
-e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \
-e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \
-e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
-e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \
- -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \
-e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \
-e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
- -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
+ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \
-e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \
-e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
- -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
- -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
- -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \
-e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \
-e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \
-e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \
- -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \
+ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
+ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
-e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \
+ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
+ -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \
+ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \
-e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \
- -e 's|@''GNULIB_FFS''@|$(GNULIB_FFS)|g' \
+ -e 's/@''GNULIB_FFS''@/$(GNULIB_FFS)/g' \
-e 's|@''HAVE_FFS''@|$(HAVE_FFS)|g' \
-e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \
-e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \
-e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \
-e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \
-e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \
+ -e 's/@''GNULIB_GETPASS''@/$(GNULIB_GETPASS)/g' \
-e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \
-e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \
-e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \
-e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \
-e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \
-e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \
+ -e 's|@''HAVE_GETPASS''@|$(HAVE_GETPASS)|g' \
-e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \
-e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \
-e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \
-e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
-e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \
-e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \
- -e 's|@''HAVE_TRUNCATE''@|$(HAVE_TRUNCATE)|g' \
-e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \
-e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \
-e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \
-e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \
-e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \
-e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \
+ -e 's|@''HAVE_DECL_TRUNCATE''@|$(HAVE_DECL_TRUNCATE)|g' \
-e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \
-e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
-e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
-e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
-e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \
-e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \
+ -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \
-e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \
-e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \
-e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
-e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \
-e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \
-e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
+ -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \
-e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \
-e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
-e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \
/* hard-locale.c -- Determine whether a locale is hard.
- Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2017 Free Software
+ Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2018 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Determine whether a locale is hard.
- Copyright (C) 1999, 2003-2004, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2003-2004, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef HARD_LOCALE_H_
# define HARD_LOCALE_H_ 1
/* hash - hashing table processing.
- Copyright (C) 1998-2004, 2006-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1998-2004, 2006-2007, 2009-2018 Free Software Foundation, Inc.
Written by Jim Meyering, 1992.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* A generic hash table package. */
/* hash - hashing table processing.
- Copyright (C) 1998-1999, 2001, 2003, 2009-2017 Free Software Foundation,
+ Copyright (C) 1998-1999, 2001, 2003, 2009-2018 Free Software Foundation,
Inc.
Written by Jim Meyering <meyering@ascend.com>, 1998.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* A generic hash table package. */
/* Character set conversion.
- Copyright (C) 1999-2001, 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1999-2001, 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* A GNU-like <iconv.h>.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _@GUARD_PREFIX@_ICONV_H
(const char *tocode, const char *fromcode));
# endif
_GL_CXXALIASWARN (iconv_open);
+#elif defined GNULIB_POSIXCHECK
+# undef iconv_open
+# if HAVE_RAW_DECL_ICONV_OPEN
+_GL_WARN_ON_USE (iconv_open, "iconv_open is not working correctly everywhere - "
+ "use gnulib module iconv for portability");
+# endif
#endif
#if @REPLACE_ICONV_UTF@
# ifndef ICONV_CONST
# define ICONV_CONST @ICONV_CONST@
# endif
+#elif defined GNULIB_POSIXCHECK
+# undef iconv
+# if HAVE_RAW_DECL_ICONV
+_GL_WARN_ON_USE (iconv, "iconv is not working correctly everywhere - "
+ "use gnulib module iconv for portability");
+# endif
#endif
#if @GNULIB_ICONV@
/* Character set conversion.
- Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
-/* ANSI-C code produced by gperf version 3.0.4 */
+/* ANSI-C code produced by gperf version 3.1 */
/* Command-line: gperf -m 10 ./iconv_open-aix.gperf */
/* Computed positions: -k'4,$' */
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
#endif
#line 1 "./iconv_open-aix.gperf"
#endif
#endif
static unsigned int
-mapping_hash (register const char *str, register unsigned int len)
+mapping_hash (register const char *str, register size_t len)
{
static const unsigned char asso_values[] =
{
{
{-1}, {-1}, {-1}, {-1}, {-1}, {-1},
#line 43 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "IBM-eucTW"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str6, "IBM-eucTW"},
#line 42 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "IBM-eucKR"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str7, "IBM-eucKR"},
#line 25 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "IBM-852"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str8, "IBM-852"},
#line 41 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "IBM-eucJP"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str9, "IBM-eucJP"},
#line 14 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-2"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-2"},
#line 27 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "IBM-857"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str11, "IBM-857"},
#line 24 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "IBM-850"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str12, "IBM-850"},
#line 19 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-7"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-7"},
#line 33 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "IBM-932"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str14, "IBM-932"},
#line 40 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "IBM-eucCN"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, "IBM-eucCN"},
#line 44 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "big5"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str16, "big5"},
#line 23 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "IBM-437"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, "IBM-437"},
{-1},
#line 17 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-5"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-5"},
#line 22 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "ISO8859-15"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str20, "ISO8859-15"},
#line 15 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "ISO8859-3"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str21, "ISO8859-3"},
#line 31 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "IBM-921"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str22, "IBM-921"},
#line 35 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "IBM-1046"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str23, "IBM-1046"},
#line 20 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str24, "ISO8859-8"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str24, "ISO8859-8"},
#line 26 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str25, "IBM-856"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str25, "IBM-856"},
#line 37 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, "IBM-1125"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str26, "IBM-1125"},
#line 18 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, "ISO8859-6"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str27, "ISO8859-6"},
#line 29 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str28, "IBM-865"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str28, "IBM-865"},
#line 32 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str29, "IBM-922"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str29, "IBM-922"},
#line 39 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, "IBM-1252"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str30, "IBM-1252"},
#line 21 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str31, "ISO8859-9"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str31, "ISO8859-9"},
{-1},
#line 34 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, "IBM-943"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str33, "IBM-943"},
#line 16 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, "ISO8859-4"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str34, "ISO8859-4"},
#line 13 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str35, "ISO8859-1"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str35, "ISO8859-1"},
{-1}, {-1},
#line 38 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, "IBM-1129"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str38, "IBM-1129"},
{-1},
#line 30 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str40, "IBM-869"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str40, "IBM-869"},
#line 36 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, "IBM-1124"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str41, "IBM-1124"},
{-1}, {-1},
#line 28 "./iconv_open-aix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str44, "IBM-861"}
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str44, "IBM-861"}
};
-#ifdef __GNUC__
-__inline
-#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
-__attribute__ ((__gnu_inline__))
-#endif
-#endif
const struct mapping *
-mapping_lookup (register const char *str, register unsigned int len)
+mapping_lookup (register const char *str, register size_t len)
{
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
{
- register int key = mapping_hash (str, len);
+ register unsigned int key = mapping_hash (str, len);
- if (key <= MAX_HASH_VALUE && key >= 0)
+ if (key <= MAX_HASH_VALUE)
{
register int o = mappings[key].standard_name;
if (o >= 0)
-/* ANSI-C code produced by gperf version 3.0.4 */
+/* ANSI-C code produced by gperf version 3.1 */
/* Command-line: gperf -m 10 ./iconv_open-hpux.gperf */
/* Computed positions: -k'4,$' */
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
#endif
#line 1 "./iconv_open-hpux.gperf"
#endif
#endif
static unsigned int
-mapping_hash (register const char *str, register unsigned int len)
+mapping_hash (register const char *str, register size_t len)
{
static const unsigned char asso_values[] =
{
{
{-1}, {-1}, {-1}, {-1}, {-1}, {-1},
#line 40 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "cp1256"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str6, "cp1256"},
#line 34 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "cp1250"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str7, "cp1250"},
#line 35 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "cp1251"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str8, "cp1251"},
#line 23 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "cp850"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str9, "cp850"},
#line 49 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "tis620"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str10, "tis620"},
#line 38 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "cp1254"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str11, "cp1254"},
#line 16 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "iso88596"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str12, "iso88596"},
#line 53 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "eucTW"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str13, "eucTW"},
#line 13 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "iso88591"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str14, "iso88591"},
#line 19 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "iso88599"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, "iso88599"},
#line 39 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "cp1255"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str16, "cp1255"},
#line 54 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "big5"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, "big5"},
#line 25 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, "cp855"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str18, "cp855"},
#line 41 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "cp1257"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, "cp1257"},
#line 52 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "eucKR"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str20, "eucKR"},
#line 26 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "cp857"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str21, "cp857"},
#line 15 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "iso88595"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str22, "iso88595"},
#line 20 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "iso885915"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str23, "iso885915"},
#line 31 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str24, "cp866"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str24, "cp866"},
#line 17 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str25, "iso88597"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str25, "iso88597"},
#line 27 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, "cp861"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str26, "cp861"},
#line 32 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, "cp869"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str27, "cp869"},
#line 33 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str28, "cp874"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str28, "cp874"},
#line 29 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str29, "cp864"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str29, "cp864"},
#line 36 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, "cp1252"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str30, "cp1252"},
#line 21 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str31, "cp437"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str31, "cp437"},
#line 24 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str32, "cp852"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str32, "cp852"},
#line 22 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, "cp775"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str33, "cp775"},
#line 30 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, "cp865"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str34, "cp865"},
#line 51 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str35, "eucJP"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str35, "eucJP"},
#line 14 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str36, "iso88592"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str36, "iso88592"},
#line 55 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str37, "sjis"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str37, "sjis"},
#line 42 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, "cp1258"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str38, "cp1258"},
#line 56 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str39, "utf8"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str39, "utf8"},
#line 48 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str40, "kana8"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str40, "kana8"},
#line 43 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, "roman8"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str41, "roman8"},
#line 46 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str42, "hebrew8"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str42, "hebrew8"},
#line 50 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str43, "hp15CN"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str43, "hp15CN"},
#line 18 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str44, "iso88598"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str44, "iso88598"},
#line 47 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str45, "turkish8"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str45, "turkish8"},
#line 45 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str46, "greek8"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str46, "greek8"},
#line 44 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str47, "arabic8"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str47, "arabic8"},
#line 28 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str48, "cp862"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str48, "cp862"},
#line 37 "./iconv_open-hpux.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str49, "cp1253"}
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str49, "cp1253"}
};
-#ifdef __GNUC__
-__inline
-#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
-__attribute__ ((__gnu_inline__))
-#endif
-#endif
const struct mapping *
-mapping_lookup (register const char *str, register unsigned int len)
+mapping_lookup (register const char *str, register size_t len)
{
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
{
- register int key = mapping_hash (str, len);
+ register unsigned int key = mapping_hash (str, len);
- if (key <= MAX_HASH_VALUE && key >= 0)
+ if (key <= MAX_HASH_VALUE)
{
register int o = mappings[key].standard_name;
if (o >= 0)
-/* ANSI-C code produced by gperf version 3.0.4 */
+/* ANSI-C code produced by gperf version 3.1 */
/* Command-line: gperf -m 10 ./iconv_open-irix.gperf */
/* Computed positions: -k'1,$' */
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
#endif
#line 1 "./iconv_open-irix.gperf"
#endif
#endif
static unsigned int
-mapping_hash (register const char *str, register unsigned int len)
+mapping_hash (register const char *str, register size_t len)
{
static const unsigned char asso_values[] =
{
{
{-1}, {-1}, {-1}, {-1}, {-1},
#line 24 "./iconv_open-irix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str5, "DOS855"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str5, "DOS855"},
#line 29 "./iconv_open-irix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "eucTW"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str6, "eucTW"},
#line 28 "./iconv_open-irix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "eucKR"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str7, "eucKR"},
#line 25 "./iconv_open-irix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "WIN1251"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str8, "WIN1251"},
#line 30 "./iconv_open-irix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "sjis"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str9, "sjis"},
#line 17 "./iconv_open-irix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-5"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-5"},
#line 22 "./iconv_open-irix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "ISO8859-15"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str11, "ISO8859-15"},
#line 13 "./iconv_open-irix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-1"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-1"},
#line 27 "./iconv_open-irix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "eucJP"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str13, "eucJP"},
#line 23 "./iconv_open-irix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "KOI8"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str14, "KOI8"},
#line 14 "./iconv_open-irix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "ISO8859-2"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, "ISO8859-2"},
#line 26 "./iconv_open-irix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "eucCN"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str16, "eucCN"},
#line 21 "./iconv_open-irix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "ISO8859-9"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, "ISO8859-9"},
#line 20 "./iconv_open-irix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, "ISO8859-8"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str18, "ISO8859-8"},
#line 19 "./iconv_open-irix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-7"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-7"},
#line 18 "./iconv_open-irix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "ISO8859-6"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str20, "ISO8859-6"},
#line 16 "./iconv_open-irix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "ISO8859-4"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str21, "ISO8859-4"},
#line 15 "./iconv_open-irix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "ISO8859-3"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str22, "ISO8859-3"},
#line 31 "./iconv_open-irix.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "TIS620"}
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str23, "TIS620"}
};
-#ifdef __GNUC__
-__inline
-#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
-__attribute__ ((__gnu_inline__))
-#endif
-#endif
const struct mapping *
-mapping_lookup (register const char *str, register unsigned int len)
+mapping_lookup (register const char *str, register size_t len)
{
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
{
- register int key = mapping_hash (str, len);
+ register unsigned int key = mapping_hash (str, len);
- if (key <= MAX_HASH_VALUE && key >= 0)
+ if (key <= MAX_HASH_VALUE)
{
register int o = mappings[key].standard_name;
if (o >= 0)
-/* ANSI-C code produced by gperf version 3.0.4 */
+/* ANSI-C code produced by gperf version 3.1 */
/* Command-line: gperf -m 10 ./iconv_open-osf.gperf */
/* Computed positions: -k'4,$' */
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
#endif
#line 1 "./iconv_open-osf.gperf"
#endif
#endif
static unsigned int
-mapping_hash (register const char *str, register unsigned int len)
+mapping_hash (register const char *str, register size_t len)
{
static const unsigned char asso_values[] =
{
{
{-1}, {-1}, {-1}, {-1}, {-1}, {-1},
#line 41 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "cp1255"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str6, "cp1255"},
#line 24 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "cp775"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str7, "cp775"},
#line 36 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "cp1250"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str8, "cp1250"},
#line 47 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "eucTW"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str9, "eucTW"},
#line 46 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "eucKR"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str10, "eucKR"},
#line 50 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "TACTIS"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str11, "TACTIS"},
#line 17 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-5"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-5"},
#line 22 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-15"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-15"},
#line 48 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "big5"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str14, "big5"},
#line 27 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "cp855"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, "cp855"},
#line 44 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "cp1258"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str16, "cp1258"},
#line 25 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "cp850"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, "cp850"},
#line 31 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, "cp865"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str18, "cp865"},
#line 45 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "eucJP"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, "eucJP"},
#line 43 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "cp1257"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str20, "cp1257"},
#line 42 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "cp1256"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str21, "cp1256"},
#line 20 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "ISO8859-8"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str22, "ISO8859-8"},
#line 49 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "SJIS"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str23, "SJIS"},
{-1},
#line 21 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str25, "ISO8859-9"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str25, "ISO8859-9"},
#line 19 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, "ISO8859-7"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str26, "ISO8859-7"},
#line 18 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, "ISO8859-6"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str27, "ISO8859-6"},
{-1},
#line 28 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str29, "cp857"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str29, "cp857"},
#line 38 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, "cp1252"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str30, "cp1252"},
#line 33 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str31, "cp869"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str31, "cp869"},
#line 35 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str32, "KSC5601"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str32, "KSC5601"},
#line 32 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, "cp866"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str33, "cp866"},
#line 23 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, "cp437"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str34, "cp437"},
#line 37 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str35, "cp1251"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str35, "cp1251"},
#line 14 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str36, "ISO8859-2"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str36, "ISO8859-2"},
#line 40 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str37, "cp1254"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str37, "cp1254"},
#line 34 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, "cp874"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str38, "cp874"},
#line 26 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str39, "cp852"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str39, "cp852"},
#line 39 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str40, "cp1253"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str40, "cp1253"},
#line 13 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, "ISO8859-1"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str41, "ISO8859-1"},
#line 30 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str42, "cp862"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str42, "cp862"},
#line 16 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str43, "ISO8859-4"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str43, "ISO8859-4"},
{-1}, {-1},
#line 15 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str46, "ISO8859-3"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str46, "ISO8859-3"},
#line 29 "./iconv_open-osf.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str47, "cp861"}
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str47, "cp861"}
};
-#ifdef __GNUC__
-__inline
-#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
-__attribute__ ((__gnu_inline__))
-#endif
-#endif
const struct mapping *
-mapping_lookup (register const char *str, register unsigned int len)
+mapping_lookup (register const char *str, register size_t len)
{
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
{
- register int key = mapping_hash (str, len);
+ register unsigned int key = mapping_hash (str, len);
- if (key <= MAX_HASH_VALUE && key >= 0)
+ if (key <= MAX_HASH_VALUE)
{
register int o = mappings[key].standard_name;
if (o >= 0)
-/* ANSI-C code produced by gperf version 3.0.4 */
+/* ANSI-C code produced by gperf version 3.1 */
/* Command-line: gperf -m 10 ./iconv_open-solaris.gperf */
/* Computed positions: -k'10' */
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
#endif
#line 1 "./iconv_open-solaris.gperf"
#endif
#endif
static unsigned int
-mapping_hash (register const char *str, register unsigned int len)
+mapping_hash (register const char *str, register size_t len)
{
static const unsigned char asso_values[] =
{
20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20
};
- register int hval = len;
+ register unsigned int hval = len;
switch (hval)
{
{
{-1}, {-1}, {-1}, {-1}, {-1},
#line 19 "./iconv_open-solaris.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str5, "646"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str5, "646"},
#line 30 "./iconv_open-solaris.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "ansi-1251"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str6, "ansi-1251"},
#line 18 "./iconv_open-solaris.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str7},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str7},
{-1}, {-1},
#line 20 "./iconv_open-solaris.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-1"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-1"},
#line 29 "./iconv_open-solaris.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "ISO8859-15"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str11, "ISO8859-15"},
#line 28 "./iconv_open-solaris.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-9"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-9"},
#line 27 "./iconv_open-solaris.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-8"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-8"},
#line 26 "./iconv_open-solaris.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "ISO8859-7"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str14, "ISO8859-7"},
#line 25 "./iconv_open-solaris.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "ISO8859-6"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, "ISO8859-6"},
#line 24 "./iconv_open-solaris.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "ISO8859-5"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str16, "ISO8859-5"},
#line 23 "./iconv_open-solaris.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "ISO8859-4"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, "ISO8859-4"},
#line 22 "./iconv_open-solaris.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, "ISO8859-3"},
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str18, "ISO8859-3"},
#line 21 "./iconv_open-solaris.gperf"
- {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-2"}
+ {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-2"}
};
-#ifdef __GNUC__
-__inline
-#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
-__attribute__ ((__gnu_inline__))
-#endif
-#endif
const struct mapping *
-mapping_lookup (register const char *str, register unsigned int len)
+mapping_lookup (register const char *str, register size_t len)
{
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
{
- register int key = mapping_hash (str, len);
+ register unsigned int key = mapping_hash (str, len);
- if (key <= MAX_HASH_VALUE && key >= 0)
+ if (key <= MAX_HASH_VALUE)
{
register int o = mappings[key].standard_name;
if (o >= 0)
/* Character set conversion.
- Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* ignore a function return without a compiler warning. -*- coding: utf-8 -*-
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Jim Meyering, Eric Blake and Pádraig Brady. */
/* intprops.h -- properties of integer types
- Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
#include <limits.h>
-/* Return a value with the common real type of E and V and the value of V. */
-#define _GL_INT_CONVERT(e, v) (0 * (e) + (v))
+/* Return a value with the common real type of E and V and the value of V.
+ Do not evaluate E. */
+#define _GL_INT_CONVERT(e, v) ((1 ? 0 : (e)) + (v))
/* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see
- <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00406.html>. */
-#define _GL_INT_NEGATE_CONVERT(e, v) (0 * (e) - (v))
+ <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00406.html>. */
+#define _GL_INT_NEGATE_CONVERT(e, v) ((1 ? 0 : (e)) - (v))
/* The extra casts in the following macros work around compiler bugs,
e.g., in Cray C 5.0.3.0. */
#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
/* Return 1 if the real expression E, after promotion, has a
- signed or floating type. */
+ signed or floating type. Do not evaluate E. */
#define EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0)
/* Minimum and maximum values for integer types and expressions. */
/* The width in bits of the integer type or expression T.
+ Do not evaluate T.
Padding bits are not supported; this is checked at compile-time below. */
#define TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT)
: ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1)))
/* The maximum and minimum values for the type of the expression E,
- after integer promotion. E should not have side effects. */
+ after integer promotion. E is not evaluated. */
#define _GL_INT_MINIMUM(e) \
(EXPR_SIGNED (e) \
? ~ _GL_SIGNED_INT_MAXIMUM (e) \
/* Return 1 if A * B would overflow in [MIN,MAX] arithmetic.
See above for restrictions. Avoid && and || as they tickle
bugs in Sun C 5.11 2010/08/13 and other compilers; see
- <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00401.html>. */
+ <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00401.html>. */
#define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max) \
((b) < 0 \
? ((a) < 0 \
: (max) >> (b) < (a))
/* True if __builtin_add_overflow (A, B, P) works when P is non-null. */
-#define _GL_HAS_BUILTIN_OVERFLOW (5 <= __GNUC__)
+#if 5 <= __GNUC__ && !defined __ICC
+# define _GL_HAS_BUILTIN_OVERFLOW 1
+#else
+# define _GL_HAS_BUILTIN_OVERFLOW 0
+#endif
/* True if __builtin_add_overflow_p (A, B, C) works. */
#define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__)
Arguments should be free of side effects. */
#define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow) \
op_result_overflow (a, b, \
- _GL_INT_MINIMUM (0 * (b) + (a)), \
- _GL_INT_MAXIMUM (0 * (b) + (a)))
+ _GL_INT_MINIMUM (_GL_INT_CONVERT (a, b)), \
+ _GL_INT_MAXIMUM (_GL_INT_CONVERT (a, b)))
/* Store the low-order bits of A + B, A - B, A * B, respectively, into *R.
Return 1 if the result overflows. See above for restrictions. */
implementation-defined result or signal for values outside T's
range. However, code that works around this theoretical problem
runs afoul of a compiler bug in Oracle Studio 12.3 x86. See:
- http://lists.gnu.org/archive/html/bug-gnulib/2017-04/msg00049.html
+ https://lists.gnu.org/r/bug-gnulib/2017-04/msg00049.html
As the compiler bug is real, don't try to work around the
theoretical problem. */
/* inttostr.h -- convert integers to printable strings
- Copyright (C) 2001-2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2006, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert */
-/* Copyright (C) 2006-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
Written by Paul Eggert, Bruno Haible, Derek Price.
This file is part of gnulib.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/*
* ISO C 99 <inttypes.h> for platforms that lack it.
/* Get CHAR_BIT. */
#include <limits.h>
/* On mingw, __USE_MINGW_ANSI_STDIO only works if <stdio.h> is also included */
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
# include <stdio.h>
#endif
#endif
#if @GNULIB_IMAXDIV@
-# if !@HAVE_DECL_IMAXDIV@
+# if !@HAVE_IMAXDIV_T@
# if !GNULIB_defined_imaxdiv_t
typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t;
# define GNULIB_defined_imaxdiv_t 1
# endif
+# endif
+# if !@HAVE_DECL_IMAXDIV@
extern imaxdiv_t imaxdiv (intmax_t, intmax_t);
# endif
#elif defined GNULIB_POSIXCHECK
/* Test whether a character is a blank.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test wide character for being blank.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Replacement for 'int' to 'long double' conversion routine.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Substitute for and wrapper around <langinfo.h>.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/*
* POSIX <langinfo.h> for platforms that lack it or have an incomplete one.
# define MON_10 (MON_1 + 9)
# define MON_11 (MON_1 + 10)
# define MON_12 (MON_1 + 11)
+# define ALTMON_1 10200
+# define ALTMON_2 (ALTMON_1 + 1)
+# define ALTMON_3 (ALTMON_1 + 2)
+# define ALTMON_4 (ALTMON_1 + 3)
+# define ALTMON_5 (ALTMON_1 + 4)
+# define ALTMON_6 (ALTMON_1 + 5)
+# define ALTMON_7 (ALTMON_1 + 6)
+# define ALTMON_8 (ALTMON_1 + 7)
+# define ALTMON_9 (ALTMON_1 + 8)
+# define ALTMON_10 (ALTMON_1 + 9)
+# define ALTMON_11 (ALTMON_1 + 10)
+# define ALTMON_12 (ALTMON_1 + 11)
# define ABMON_1 10035
# define ABMON_2 (ABMON_1 + 1)
# define ABMON_3 (ABMON_1 + 2)
# define GNULIB_defined_T_FMT_AMPM 1
# endif
+# if !@HAVE_LANGINFO_ALTMON@
+# define ALTMON_1 10200
+# define ALTMON_2 (ALTMON_1 + 1)
+# define ALTMON_3 (ALTMON_1 + 2)
+# define ALTMON_4 (ALTMON_1 + 3)
+# define ALTMON_5 (ALTMON_1 + 4)
+# define ALTMON_6 (ALTMON_1 + 5)
+# define ALTMON_7 (ALTMON_1 + 6)
+# define ALTMON_8 (ALTMON_1 + 7)
+# define ALTMON_9 (ALTMON_1 + 8)
+# define ALTMON_10 (ALTMON_1 + 9)
+# define ALTMON_11 (ALTMON_1 + 10)
+# define ALTMON_12 (ALTMON_1 + 11)
+# define GNULIB_defined_ALTMON 1
+# endif
+
# if !@HAVE_LANGINFO_ERA@
# define ERA 10047
# define ERA_D_FMT 10048
--- /dev/null
+/* System definitions for code taken from the GNU C Library
+
+ Copyright 2017-2018 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public
+ License as published by the Free Software Foundation; either
+ version 3 of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* Written by Paul Eggert. */
+
+/* This is intended to be a good-enough substitute for glibc system
+ macros like those defined in <sys/cdefs.h>, so that Gnulib code
+ shared with glibc can do this as the first #include:
+
+ #ifndef _LIBC
+ # include <libc-config.h>
+ #endif
+
+ When compiled as part of glibc this is a no-op; when compiled as
+ part of Gnulib this includes Gnulib's <config.h> and defines macros
+ that glibc library code would normally assume. */
+
+#include <config.h>
+
+/* On glibc this includes <features.h> and <sys/cdefs.h> and #defines
+ _FEATURES_H, __WORDSIZE, and __set_errno. On FreeBSD 11 it
+ includes <sys/cdefs.h> which defines __nonnull. Elsewhere it
+ is harmless. */
+#include <errno.h>
+
+/* From glibc <errno.h>. */
+#ifndef __set_errno
+# define __set_errno(val) (errno = (val))
+#endif
+
+/* From glibc <features.h>. */
+
+#ifndef __GNUC_PREREQ
+# if defined __GNUC__ && defined __GNUC_MINOR__
+# define __GNUC_PREREQ(maj, min) ((maj) < __GNUC__ + ((min) <= __GNUC_MINOR__))
+# else
+# define __GNUC_PREREQ(maj, min) 0
+# endif
+#endif
+
+#ifndef __glibc_clang_prereq
+# if defined __clang_major__ && defined __clang_minor__
+# define __glibc_clang_prereq(maj, min) \
+ ((maj) < __clang_major__ + ((min) <= __clang_minor__))
+# else
+# define __glibc_clang_prereq(maj, min) 0
+# endif
+#endif
+
+
+/* Prepare to include <cdefs.h>, which is our copy of glibc
+ <sys/cdefs.h>. */
+
+/* Define _FEATURES_H so that <cdefs.h> does not include <features.h>. */
+#ifndef _FEATURES_H
+# define _FEATURES_H 1
+#endif
+/* Define __WORDSIZE so that <cdefs.h> does not attempt to include
+ nonexistent files. Make it a syntax error, since Gnulib does not
+ use __WORDSIZE now, and if Gnulib uses it later the syntax error
+ will let us know that __WORDSIZE needs configuring. */
+#ifndef __WORDSIZE
+# define __WORDSIZE %%%
+#endif
+/* Undef the macros unconditionally defined by our copy of glibc
+ <sys/cdefs.h>, so that they do not clash with any system-defined
+ versions. */
+#undef _SYS_CDEFS_H
+#undef __ASMNAME
+#undef __ASMNAME2
+#undef __BEGIN_DECLS
+#undef __CONCAT
+#undef __END_DECLS
+#undef __HAVE_GENERIC_SELECTION
+#undef __LDBL_COMPAT
+#undef __LDBL_REDIR
+#undef __LDBL_REDIR1
+#undef __LDBL_REDIR1_DECL
+#undef __LDBL_REDIR1_NTH
+#undef __LDBL_REDIR_DECL
+#undef __LDBL_REDIR_NTH
+#undef __LEAF
+#undef __LEAF_ATTR
+#undef __NTH
+#undef __NTHNL
+#undef __P
+#undef __PMT
+#undef __REDIRECT
+#undef __REDIRECT_LDBL
+#undef __REDIRECT_NTH
+#undef __REDIRECT_NTHNL
+#undef __REDIRECT_NTH_LDBL
+#undef __STRING
+#undef __THROW
+#undef __THROWNL
+#undef __always_inline
+#undef __attribute__
+#undef __attribute_alloc_size__
+#undef __attribute_artificial__
+#undef __attribute_const__
+#undef __attribute_deprecated__
+#undef __attribute_deprecated_msg__
+#undef __attribute_format_arg__
+#undef __attribute_format_strfmon__
+#undef __attribute_malloc__
+#undef __attribute_noinline__
+#undef __attribute_nonstring__
+#undef __attribute_pure__
+#undef __attribute_used__
+#undef __attribute_warn_unused_result__
+#undef __bos
+#undef __bos0
+#undef __errordecl
+#undef __extension__
+#undef __extern_always_inline
+#undef __extern_inline
+#undef __flexarr
+#undef __fortify_function
+#undef __glibc_c99_flexarr_available
+#undef __glibc_clang_has_extension
+#undef __glibc_likely
+#undef __glibc_macro_warning
+#undef __glibc_macro_warning1
+#undef __glibc_unlikely
+#undef __inline
+#undef __ptr_t
+#undef __restrict
+#undef __restrict_arr
+#undef __va_arg_pack
+#undef __va_arg_pack_len
+#undef __warnattr
+#undef __warndecl
+
+/* Include our copy of glibc <sys/cdefs.h>. */
+#include <cdefs.h>
+
+/* <cdefs.h> __inline is too pessimistic for non-GCC. */
+#undef __inline
+#ifndef HAVE___INLINE
+# if 199901 <= __STDC_VERSION__ || defined inline
+# define __inline inline
+# else
+# define __inline
+# endif
+#endif
+
+
+/* A substitute for glibc <libc-symbols.h>, good enough for Gnulib. */
+#define attribute_hidden
+#define libc_hidden_proto(name, ...)
+#define libc_hidden_def(name)
+#define libc_hidden_weak(name)
+#define libc_hidden_ver(local, name)
+#define strong_alias(name, aliasname)
+#define weak_alias(name, aliasname)
+
+/* A substitute for glibc <shlib-compat.h>, good enough for Gnulib. */
+#define SHLIB_COMPAT(lib, introduced, obsoleted) 0
+#define versioned_symbol(lib, local, symbol, version)
/* A GNU-like <limits.h>.
- Copyright 2016-2017 Free Software Foundation, Inc.
+ Copyright 2016-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _@GUARD_PREFIX@_LIMITS_H
#ifndef _@GUARD_PREFIX@_LIMITS_H
#define _@GUARD_PREFIX@_LIMITS_H
-/* For HP-UX 11.31. */
-#if defined LONG_LONG_MIN && !defined LLONG_MIN
-# define LLONG_MIN LONG_LONG_MIN
+#ifndef LLONG_MIN
+# if defined LONG_LONG_MIN /* HP-UX 11.31 */
+# define LLONG_MIN LONG_LONG_MIN
+# elif defined LONGLONG_MIN /* IRIX 6.5 */
+# define LLONG_MIN LONGLONG_MIN
+# elif defined __GNUC__
+# define LLONG_MIN (- __LONG_LONG_MAX__ - 1LL)
+# endif
#endif
-#if defined LONG_LONG_MAX && !defined LLONG_MAX
-# define LLONG_MAX LONG_LONG_MAX
+#ifndef LLONG_MAX
+# if defined LONG_LONG_MAX /* HP-UX 11.31 */
+# define LLONG_MAX LONG_LONG_MAX
+# elif defined LONGLONG_MAX /* IRIX 6.5 */
+# define LLONG_MAX LONGLONG_MAX
+# elif defined __GNUC__
+# define LLONG_MAX __LONG_LONG_MAX__
+# endif
#endif
-#if defined ULONG_LONG_MAX && !defined ULLONG_MAX
-# define ULLONG_MAX ULONG_LONG_MAX
+#ifndef ULLONG_MAX
+# if defined ULONG_LONG_MAX /* HP-UX 11.31 */
+# define ULLONG_MAX ULONG_LONG_MAX
+# elif defined ULONGLONG_MAX /* IRIX 6.5 */
+# define ULLONG_MAX ULONGLONG_MAX
+# elif defined __GNUC__
+# define ULLONG_MAX (__LONG_LONG_MAX__ * 2ULL + 1ULL)
+# endif
#endif
/* The number of usable bits in an unsigned or signed integer type
#define _GL_COB8(n) (_GL_COB4 ((n) >> 4) + _GL_COB4 (n))
#define _GL_COB4(n) (!!((n) & 8) + !!((n) & 4) + !!((n) & 2) + !!((n) & 1))
+#ifndef WORD_BIT
+/* Assume 'int' is 32 bits wide. */
+# define WORD_BIT 32
+#endif
+#ifndef LONG_BIT
+/* Assume 'long' is 32 or 64 bits wide. */
+# if LONG_MAX == INT_MAX
+# define LONG_BIT 32
+# else
+# define LONG_BIT 64
+# endif
+#endif
+
/* Macros specified by ISO/IEC TS 18661-1:2014. */
#if (! defined ULLONG_WIDTH \
/* Determine a canonical name for the current locale's character encoding.
- Copyright (C) 2000-2006, 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2000-2006, 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>. */
/* Specification. */
#include "localcharset.h"
-#include <fcntl.h>
#include <stddef.h>
#include <stdio.h>
#include <string.h>
# define DARWIN7 /* Darwin 7 or newer, i.e. Mac OS X 10.3 or newer */
#endif
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+#if defined _WIN32 && !defined __CYGWIN__
# define WINDOWS_NATIVE
# include <locale.h>
#endif
#endif
#if !defined WINDOWS_NATIVE
-# include <unistd.h>
# if HAVE_LANGINFO_CODESET
# include <langinfo.h>
# else
-# if 0 /* see comment below */
+# if 0 /* see comment regarding use of setlocale(), below */
# include <locale.h>
# endif
# endif
# include <xlocale.h>
#endif
-#if ENABLE_RELOCATABLE
-# include "relocatable.h"
-#else
-# define relocate(pathname) (pathname)
-# define relocate2(pathname,allocatedp) (*(allocatedp) = NULL, (pathname))
-#endif
-
-/* Get LIBDIR. */
-#ifndef LIBDIR
-# include "configmake.h"
-#endif
-
-/* Define O_NOFOLLOW to 0 on platforms where it does not exist. */
-#ifndef O_NOFOLLOW
-# define O_NOFOLLOW 0
-#endif
-
-#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
- /* Native Windows, Cygwin, OS/2, DOS */
-# define ISSLASH(C) ((C) == '/' || (C) == '\\')
-#endif
-#ifndef DIRECTORY_SEPARATOR
-# define DIRECTORY_SEPARATOR '/'
-#endif
+#if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2
-#ifndef ISSLASH
-# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
-#endif
+/* On these platforms, we use a mapping from non-canonical encoding name
+ to GNU canonical encoding name. */
-#if HAVE_DECL_GETC_UNLOCKED
-# undef getc
-# define getc getc_unlocked
-#endif
+/* With glibc-2.1 or newer, we don't need any canonicalization,
+ because glibc has iconv and both glibc and libiconv support all
+ GNU canonical names directly. */
+# if !((defined __GNU_LIBRARY__ && __GLIBC__ >= 2) || defined __UCLIBC__)
-/* The following static variable is declared 'volatile' to avoid a
- possible multithread problem in the function get_charset_aliases. If we
- are running in a threaded environment, and if two threads initialize
- 'charset_aliases' simultaneously, both will produce the same value,
- and everything will be ok if the two assignments to 'charset_aliases'
- are atomic. But I don't know what will happen if the two assignments mix. */
-#if __STDC__ != 1
-# define volatile /* empty */
-#endif
-/* Pointer to the contents of the charset.alias file, if it has already been
- read, else NULL. Its format is:
- ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */
-static const char * volatile charset_aliases;
-
-/* Return a pointer to the contents of the charset.alias file. */
-static const char *
-get_charset_aliases (void)
+struct table_entry
{
- const char *cp;
-
- cp = charset_aliases;
- if (cp == NULL)
- {
-#if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__ || defined OS2)
- char *malloc_dir = NULL;
- const char *dir;
- const char *base = "charset.alias";
- char *file_name;
-
- /* Make it possible to override the charset.alias location. This is
- necessary for running the testsuite before "make install". */
- dir = getenv ("CHARSETALIASDIR");
- if (dir == NULL || dir[0] == '\0')
- dir = relocate2 (LIBDIR, &malloc_dir);
-
- /* Concatenate dir and base into freshly allocated file_name. */
- {
- size_t dir_len = strlen (dir);
- size_t base_len = strlen (base);
- int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1]));
- file_name = (char *) malloc (dir_len + add_slash + base_len + 1);
- if (file_name != NULL)
- {
- memcpy (file_name, dir, dir_len);
- if (add_slash)
- file_name[dir_len] = DIRECTORY_SEPARATOR;
- memcpy (file_name + dir_len + add_slash, base, base_len + 1);
- }
- }
-
- free (malloc_dir);
-
- if (file_name == NULL)
- /* Out of memory. Treat the file as empty. */
- cp = "";
- else
- {
- int fd;
-
- /* Open the file. Reject symbolic links on platforms that support
- O_NOFOLLOW. This is a security feature. Without it, an attacker
- could retrieve parts of the contents (namely, the tail of the
- first line that starts with "* ") of an arbitrary file by placing
- a symbolic link to that file under the name "charset.alias" in
- some writable directory and defining the environment variable
- CHARSETALIASDIR to point to that directory. */
- fd = open (file_name,
- O_RDONLY | (HAVE_WORKING_O_NOFOLLOW ? O_NOFOLLOW : 0));
- if (fd < 0)
- /* File not found. Treat it as empty. */
- cp = "";
- else
- {
- FILE *fp;
-
- fp = fdopen (fd, "r");
- if (fp == NULL)
- {
- /* Out of memory. Treat the file as empty. */
- close (fd);
- cp = "";
- }
- else
- {
- /* Parse the file's contents. */
- char *res_ptr = NULL;
- size_t res_size = 0;
-
- for (;;)
- {
- int c;
- char buf1[50+1];
- char buf2[50+1];
- size_t l1, l2;
- char *old_res_ptr;
-
- c = getc (fp);
- if (c == EOF)
- break;
- if (c == '\n' || c == ' ' || c == '\t')
- continue;
- if (c == '#')
- {
- /* Skip comment, to end of line. */
- do
- c = getc (fp);
- while (!(c == EOF || c == '\n'));
- if (c == EOF)
- break;
- continue;
- }
- ungetc (c, fp);
- if (fscanf (fp, "%50s %50s", buf1, buf2) < 2)
- break;
- l1 = strlen (buf1);
- l2 = strlen (buf2);
- old_res_ptr = res_ptr;
- if (res_size == 0)
- {
- res_size = l1 + 1 + l2 + 1;
- res_ptr = (char *) malloc (res_size + 1);
- }
- else
- {
- res_size += l1 + 1 + l2 + 1;
- res_ptr = (char *) realloc (res_ptr, res_size + 1);
- }
- if (res_ptr == NULL)
- {
- /* Out of memory. */
- res_size = 0;
- free (old_res_ptr);
- break;
- }
- strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
- strcpy (res_ptr + res_size - (l2 + 1), buf2);
- }
- fclose (fp);
- if (res_size == 0)
- cp = "";
- else
- {
- *(res_ptr + res_size) = '\0';
- cp = res_ptr;
- }
- }
- }
+ const char alias[11+1];
+ const char canonical[11+1];
+};
+
+/* Table of platform-dependent mappings, sorted in ascending order. */
+static const struct table_entry alias_table[] =
+ {
+# if defined __FreeBSD__ /* FreeBSD */
+ /*{ "ARMSCII-8", "ARMSCII-8" },*/
+ { "Big5", "BIG5" },
+ { "C", "ASCII" },
+ /*{ "CP1131", "CP1131" },*/
+ /*{ "CP1251", "CP1251" },*/
+ /*{ "CP866", "CP866" },*/
+ /*{ "GB18030", "GB18030" },*/
+ /*{ "GB2312", "GB2312" },*/
+ /*{ "GBK", "GBK" },*/
+ /*{ "ISCII-DEV", "?" },*/
+ { "ISO8859-1", "ISO-8859-1" },
+ { "ISO8859-13", "ISO-8859-13" },
+ { "ISO8859-15", "ISO-8859-15" },
+ { "ISO8859-2", "ISO-8859-2" },
+ { "ISO8859-5", "ISO-8859-5" },
+ { "ISO8859-7", "ISO-8859-7" },
+ { "ISO8859-9", "ISO-8859-9" },
+ /*{ "KOI8-R", "KOI8-R" },*/
+ /*{ "KOI8-U", "KOI8-U" },*/
+ { "SJIS", "SHIFT_JIS" },
+ { "US-ASCII", "ASCII" },
+ { "eucCN", "GB2312" },
+ { "eucJP", "EUC-JP" },
+ { "eucKR", "EUC-KR" }
+# define alias_table_defined
+# endif
+# if defined __NetBSD__ /* NetBSD */
+ { "646", "ASCII" },
+ /*{ "ARMSCII-8", "ARMSCII-8" },*/
+ /*{ "BIG5", "BIG5" },*/
+ { "Big5-HKSCS", "BIG5-HKSCS" },
+ /*{ "CP1251", "CP1251" },*/
+ /*{ "CP866", "CP866" },*/
+ /*{ "GB18030", "GB18030" },*/
+ /*{ "GB2312", "GB2312" },*/
+ { "ISO8859-1", "ISO-8859-1" },
+ { "ISO8859-13", "ISO-8859-13" },
+ { "ISO8859-15", "ISO-8859-15" },
+ { "ISO8859-2", "ISO-8859-2" },
+ { "ISO8859-4", "ISO-8859-4" },
+ { "ISO8859-5", "ISO-8859-5" },
+ { "ISO8859-7", "ISO-8859-7" },
+ /*{ "KOI8-R", "KOI8-R" },*/
+ /*{ "KOI8-U", "KOI8-U" },*/
+ /*{ "PT154", "PT154" },*/
+ { "SJIS", "SHIFT_JIS" },
+ { "eucCN", "GB2312" },
+ { "eucJP", "EUC-JP" },
+ { "eucKR", "EUC-KR" },
+ { "eucTW", "EUC-TW" }
+# define alias_table_defined
+# endif
+# if defined __OpenBSD__ /* OpenBSD */
+ { "646", "ASCII" },
+ { "ISO8859-1", "ISO-8859-1" },
+ { "ISO8859-13", "ISO-8859-13" },
+ { "ISO8859-15", "ISO-8859-15" },
+ { "ISO8859-2", "ISO-8859-2" },
+ { "ISO8859-4", "ISO-8859-4" },
+ { "ISO8859-5", "ISO-8859-5" },
+ { "ISO8859-7", "ISO-8859-7" }
+# define alias_table_defined
+# endif
+# if defined __APPLE__ && defined __MACH__ /* Mac OS X */
+ /* Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value is
+ useless:
+ - It returns the empty string when LANG is set to a locale of the
+ form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8
+ LC_CTYPE file.
+ - The environment variables LANG, LC_CTYPE, LC_ALL are not set by
+ the system; nl_langinfo(CODESET) returns "US-ASCII" in this case.
+ - The documentation says:
+ "... all code that calls BSD system routines should ensure
+ that the const *char parameters of these routines are in UTF-8
+ encoding. All BSD system functions expect their string
+ parameters to be in UTF-8 encoding and nothing else."
+ It also says
+ "An additional caveat is that string parameters for files,
+ paths, and other file-system entities must be in canonical
+ UTF-8. In a canonical UTF-8 Unicode string, all decomposable
+ characters are decomposed ..."
+ but this is not true: You can pass non-decomposed UTF-8 strings
+ to file system functions, and it is the OS which will convert
+ them to decomposed UTF-8 before accessing the file system.
+ - The Apple Terminal application displays UTF-8 by default.
+ - However, other applications are free to use different encodings:
+ - xterm uses ISO-8859-1 by default.
+ - TextEdit uses MacRoman by default.
+ We prefer UTF-8 over decomposed UTF-8-MAC because one should
+ minimize the use of decomposed Unicode. Unfortunately, through the
+ Darwin file system, decomposed UTF-8 strings are leaked into user
+ space nevertheless.
+ Then there are also the locales with encodings other than US-ASCII
+ and UTF-8. These locales can be occasionally useful to users (e.g.
+ when grepping through ISO-8859-1 encoded text files), when all their
+ file names are in US-ASCII.
+ */
+ { "ARMSCII-8", "ARMSCII-8" },
+ { "Big5", "BIG5" },
+ { "Big5HKSCS", "BIG5-HKSCS" },
+ { "CP1131", "CP1131" },
+ { "CP1251", "CP1251" },
+ { "CP866", "CP866" },
+ { "CP949", "CP949" },
+ { "GB18030", "GB18030" },
+ { "GB2312", "GB2312" },
+ { "GBK", "GBK" },
+ /*{ "ISCII-DEV", "?" },*/
+ { "ISO8859-1", "ISO-8859-1" },
+ { "ISO8859-13", "ISO-8859-13" },
+ { "ISO8859-15", "ISO-8859-15" },
+ { "ISO8859-2", "ISO-8859-2" },
+ { "ISO8859-4", "ISO-8859-4" },
+ { "ISO8859-5", "ISO-8859-5" },
+ { "ISO8859-7", "ISO-8859-7" },
+ { "ISO8859-9", "ISO-8859-9" },
+ { "KOI8-R", "KOI8-R" },
+ { "KOI8-U", "KOI8-U" },
+ { "PT154", "PT154" },
+ { "SJIS", "SHIFT_JIS" },
+ { "eucCN", "GB2312" },
+ { "eucJP", "EUC-JP" },
+ { "eucKR", "EUC-KR" }
+# define alias_table_defined
+# endif
+# if defined _AIX /* AIX */
+ /*{ "GBK", "GBK" },*/
+ { "IBM-1046", "CP1046" },
+ { "IBM-1124", "CP1124" },
+ { "IBM-1129", "CP1129" },
+ { "IBM-1252", "CP1252" },
+ { "IBM-850", "CP850" },
+ { "IBM-856", "CP856" },
+ { "IBM-921", "ISO-8859-13" },
+ { "IBM-922", "CP922" },
+ { "IBM-932", "CP932" },
+ { "IBM-943", "CP943" },
+ { "IBM-eucCN", "GB2312" },
+ { "IBM-eucJP", "EUC-JP" },
+ { "IBM-eucKR", "EUC-KR" },
+ { "IBM-eucTW", "EUC-TW" },
+ { "ISO8859-1", "ISO-8859-1" },
+ { "ISO8859-15", "ISO-8859-15" },
+ { "ISO8859-2", "ISO-8859-2" },
+ { "ISO8859-5", "ISO-8859-5" },
+ { "ISO8859-6", "ISO-8859-6" },
+ { "ISO8859-7", "ISO-8859-7" },
+ { "ISO8859-8", "ISO-8859-8" },
+ { "ISO8859-9", "ISO-8859-9" },
+ { "TIS-620", "TIS-620" },
+ /*{ "UTF-8", "UTF-8" },*/
+ { "big5", "BIG5" }
+# define alias_table_defined
+# endif
+# if defined __hpux /* HP-UX */
+ { "SJIS", "SHIFT_JIS" },
+ { "arabic8", "HP-ARABIC8" },
+ { "big5", "BIG5" },
+ { "cp1251", "CP1251" },
+ { "eucJP", "EUC-JP" },
+ { "eucKR", "EUC-KR" },
+ { "eucTW", "EUC-TW" },
+ { "gb18030", "GB18030" },
+ { "greek8", "HP-GREEK8" },
+ { "hebrew8", "HP-HEBREW8" },
+ { "hkbig5", "BIG5-HKSCS" },
+ { "hp15CN", "GB2312" },
+ { "iso88591", "ISO-8859-1" },
+ { "iso885913", "ISO-8859-13" },
+ { "iso885915", "ISO-8859-15" },
+ { "iso88592", "ISO-8859-2" },
+ { "iso88594", "ISO-8859-4" },
+ { "iso88595", "ISO-8859-5" },
+ { "iso88596", "ISO-8859-6" },
+ { "iso88597", "ISO-8859-7" },
+ { "iso88598", "ISO-8859-8" },
+ { "iso88599", "ISO-8859-9" },
+ { "kana8", "HP-KANA8" },
+ { "koi8r", "KOI8-R" },
+ { "roman8", "HP-ROMAN8" },
+ { "tis620", "TIS-620" },
+ { "turkish8", "HP-TURKISH8" },
+ { "utf8", "UTF-8" }
+# define alias_table_defined
+# endif
+# if defined __sgi /* IRIX */
+ { "ISO8859-1", "ISO-8859-1" },
+ { "ISO8859-15", "ISO-8859-15" },
+ { "ISO8859-2", "ISO-8859-2" },
+ { "ISO8859-5", "ISO-8859-5" },
+ { "ISO8859-7", "ISO-8859-7" },
+ { "ISO8859-9", "ISO-8859-9" },
+ { "eucCN", "GB2312" },
+ { "eucJP", "EUC-JP" },
+ { "eucKR", "EUC-KR" },
+ { "eucTW", "EUC-TW" }
+# define alias_table_defined
+# endif
+# if defined __osf__ /* OSF/1 */
+ /*{ "GBK", "GBK" },*/
+ { "ISO8859-1", "ISO-8859-1" },
+ { "ISO8859-15", "ISO-8859-15" },
+ { "ISO8859-2", "ISO-8859-2" },
+ { "ISO8859-4", "ISO-8859-4" },
+ { "ISO8859-5", "ISO-8859-5" },
+ { "ISO8859-7", "ISO-8859-7" },
+ { "ISO8859-8", "ISO-8859-8" },
+ { "ISO8859-9", "ISO-8859-9" },
+ { "KSC5601", "CP949" },
+ { "SJIS", "SHIFT_JIS" },
+ { "TACTIS", "TIS-620" },
+ /*{ "UTF-8", "UTF-8" },*/
+ { "big5", "BIG5" },
+ { "cp850", "CP850" },
+ { "dechanyu", "DEC-HANYU" },
+ { "dechanzi", "GB2312" },
+ { "deckanji", "DEC-KANJI" },
+ { "deckorean", "EUC-KR" },
+ { "eucJP", "EUC-JP" },
+ { "eucKR", "EUC-KR" },
+ { "eucTW", "EUC-TW" },
+ { "sdeckanji", "EUC-JP" }
+# define alias_table_defined
+# endif
+# if defined __sun /* Solaris */
+ { "5601", "EUC-KR" },
+ { "646", "ASCII" },
+ /*{ "BIG5", "BIG5" },*/
+ { "Big5-HKSCS", "BIG5-HKSCS" },
+ { "GB18030", "GB18030" },
+ /*{ "GBK", "GBK" },*/
+ { "ISO8859-1", "ISO-8859-1" },
+ { "ISO8859-11", "TIS-620" },
+ { "ISO8859-13", "ISO-8859-13" },
+ { "ISO8859-15", "ISO-8859-15" },
+ { "ISO8859-2", "ISO-8859-2" },
+ { "ISO8859-3", "ISO-8859-3" },
+ { "ISO8859-4", "ISO-8859-4" },
+ { "ISO8859-5", "ISO-8859-5" },
+ { "ISO8859-6", "ISO-8859-6" },
+ { "ISO8859-7", "ISO-8859-7" },
+ { "ISO8859-8", "ISO-8859-8" },
+ { "ISO8859-9", "ISO-8859-9" },
+ { "PCK", "SHIFT_JIS" },
+ { "TIS620.2533", "TIS-620" },
+ /*{ "UTF-8", "UTF-8" },*/
+ { "ansi-1251", "CP1251" },
+ { "cns11643", "EUC-TW" },
+ { "eucJP", "EUC-JP" },
+ { "gb2312", "GB2312" },
+ { "koi8-r", "KOI8-R" }
+# define alias_table_defined
+# endif
+# if defined __minix /* Minix */
+ { "646", "ASCII" }
+# define alias_table_defined
+# endif
+# if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Windows */
+ { "CP1361", "JOHAB" },
+ { "CP20127", "ASCII" },
+ { "CP20866", "KOI8-R" },
+ { "CP20936", "GB2312" },
+ { "CP21866", "KOI8-RU" },
+ { "CP28591", "ISO-8859-1" },
+ { "CP28592", "ISO-8859-2" },
+ { "CP28593", "ISO-8859-3" },
+ { "CP28594", "ISO-8859-4" },
+ { "CP28595", "ISO-8859-5" },
+ { "CP28596", "ISO-8859-6" },
+ { "CP28597", "ISO-8859-7" },
+ { "CP28598", "ISO-8859-8" },
+ { "CP28599", "ISO-8859-9" },
+ { "CP28605", "ISO-8859-15" },
+ { "CP38598", "ISO-8859-8" },
+ { "CP51932", "EUC-JP" },
+ { "CP51936", "GB2312" },
+ { "CP51949", "EUC-KR" },
+ { "CP51950", "EUC-TW" },
+ { "CP54936", "GB18030" },
+ { "CP65001", "UTF-8" },
+ { "CP936", "GBK" }
+# define alias_table_defined
+# endif
+# if defined OS2 /* OS/2 */
+ /* The list of encodings is taken from "List of OS/2 Codepages"
+ by Alex Taylor:
+ <http://altsan.org/os2/toolkits/uls/index.html#codepages>.
+ See also "IBM Globalization - Code page identifiers":
+ <https://www-01.ibm.com/software/globalization/cp/cp_cpgid.html>. */
+ { "CP1089", "ISO-8859-6" },
+ { "CP1208", "UTF-8" },
+ { "CP1381", "GB2312" },
+ { "CP1386", "GBK" },
+ { "CP3372", "EUC-JP" },
+ { "CP813", "ISO-8859-7" },
+ { "CP819", "ISO-8859-1" },
+ { "CP878", "KOI8-R" },
+ { "CP912", "ISO-8859-2" },
+ { "CP913", "ISO-8859-3" },
+ { "CP914", "ISO-8859-4" },
+ { "CP915", "ISO-8859-5" },
+ { "CP916", "ISO-8859-8" },
+ { "CP920", "ISO-8859-9" },
+ { "CP921", "ISO-8859-13" },
+ { "CP923", "ISO-8859-15" },
+ { "CP954", "EUC-JP" },
+ { "CP964", "EUC-TW" },
+ { "CP970", "EUC-KR" }
+# define alias_table_defined
+# endif
+# if defined VMS /* OpenVMS */
+ /* The list of encodings is taken from the OpenVMS 7.3-1 documentation
+ "Compaq C Run-Time Library Reference Manual for OpenVMS systems"
+ section 10.7 "Handling Different Character Sets". */
+ { "DECHANYU", "DEC-HANYU" },
+ { "DECHANZI", "GB2312" },
+ { "DECKANJI", "DEC-KANJI" },
+ { "DECKOREAN", "EUC-KR" },
+ { "ISO8859-1", "ISO-8859-1" },
+ { "ISO8859-2", "ISO-8859-2" },
+ { "ISO8859-5", "ISO-8859-5" },
+ { "ISO8859-7", "ISO-8859-7" },
+ { "ISO8859-8", "ISO-8859-8" },
+ { "ISO8859-9", "ISO-8859-9" },
+ { "SDECKANJI", "EUC-JP" },
+ { "SJIS", "SHIFT_JIS" },
+ { "eucJP", "EUC-JP" },
+ { "eucTW", "EUC-TW" }
+# define alias_table_defined
+# endif
+# ifndef alias_table_defined
+ /* Just a dummy entry, to avoid a C syntax error. */
+ { "", "" }
+# endif
+ };
- free (file_name);
- }
+# endif
#else
-# if defined DARWIN7
- /* To avoid the trouble of installing a file that is shared by many
- GNU packages -- many packaging systems have problems with this --,
- simply inline the aliases here. */
- cp = "ISO8859-1" "\0" "ISO-8859-1" "\0"
- "ISO8859-2" "\0" "ISO-8859-2" "\0"
- "ISO8859-4" "\0" "ISO-8859-4" "\0"
- "ISO8859-5" "\0" "ISO-8859-5" "\0"
- "ISO8859-7" "\0" "ISO-8859-7" "\0"
- "ISO8859-9" "\0" "ISO-8859-9" "\0"
- "ISO8859-13" "\0" "ISO-8859-13" "\0"
- "ISO8859-15" "\0" "ISO-8859-15" "\0"
- "KOI8-R" "\0" "KOI8-R" "\0"
- "KOI8-U" "\0" "KOI8-U" "\0"
- "CP866" "\0" "CP866" "\0"
- "CP949" "\0" "CP949" "\0"
- "CP1131" "\0" "CP1131" "\0"
- "CP1251" "\0" "CP1251" "\0"
- "eucCN" "\0" "GB2312" "\0"
- "GB2312" "\0" "GB2312" "\0"
- "eucJP" "\0" "EUC-JP" "\0"
- "eucKR" "\0" "EUC-KR" "\0"
- "Big5" "\0" "BIG5" "\0"
- "Big5HKSCS" "\0" "BIG5-HKSCS" "\0"
- "GBK" "\0" "GBK" "\0"
- "GB18030" "\0" "GB18030" "\0"
- "SJIS" "\0" "SHIFT_JIS" "\0"
- "ARMSCII-8" "\0" "ARMSCII-8" "\0"
- "PT154" "\0" "PT154" "\0"
- /*"ISCII-DEV" "\0" "?" "\0"*/
- "*" "\0" "UTF-8" "\0";
-# endif
+/* On these platforms, we use a mapping from locale name to GNU canonical
+ encoding name. */
-# if defined VMS
- /* To avoid the troubles of an extra file charset.alias_vms in the
- sources of many GNU packages, simply inline the aliases here. */
- /* The list of encodings is taken from the OpenVMS 7.3-1 documentation
- "Compaq C Run-Time Library Reference Manual for OpenVMS systems"
- section 10.7 "Handling Different Character Sets". */
- cp = "ISO8859-1" "\0" "ISO-8859-1" "\0"
- "ISO8859-2" "\0" "ISO-8859-2" "\0"
- "ISO8859-5" "\0" "ISO-8859-5" "\0"
- "ISO8859-7" "\0" "ISO-8859-7" "\0"
- "ISO8859-8" "\0" "ISO-8859-8" "\0"
- "ISO8859-9" "\0" "ISO-8859-9" "\0"
- /* Japanese */
- "eucJP" "\0" "EUC-JP" "\0"
- "SJIS" "\0" "SHIFT_JIS" "\0"
- "DECKANJI" "\0" "DEC-KANJI" "\0"
- "SDECKANJI" "\0" "EUC-JP" "\0"
- /* Chinese */
- "eucTW" "\0" "EUC-TW" "\0"
- "DECHANYU" "\0" "DEC-HANYU" "\0"
- "DECHANZI" "\0" "GB2312" "\0"
- /* Korean */
- "DECKOREAN" "\0" "EUC-KR" "\0";
+struct table_entry
+{
+ const char locale[17+1];
+ const char canonical[11+1];
+};
+
+/* Table of platform-dependent mappings, sorted in ascending order. */
+static const struct table_entry locale_table[] =
+ {
+# if defined __FreeBSD__ /* FreeBSD 4.2 */
+ { "cs_CZ.ISO_8859-2", "ISO-8859-2" },
+ { "da_DK.DIS_8859-15", "ISO-8859-15" },
+ { "da_DK.ISO_8859-1", "ISO-8859-1" },
+ { "de_AT.DIS_8859-15", "ISO-8859-15" },
+ { "de_AT.ISO_8859-1", "ISO-8859-1" },
+ { "de_CH.DIS_8859-15", "ISO-8859-15" },
+ { "de_CH.ISO_8859-1", "ISO-8859-1" },
+ { "de_DE.DIS_8859-15", "ISO-8859-15" },
+ { "de_DE.ISO_8859-1", "ISO-8859-1" },
+ { "en_AU.DIS_8859-15", "ISO-8859-15" },
+ { "en_AU.ISO_8859-1", "ISO-8859-1" },
+ { "en_CA.DIS_8859-15", "ISO-8859-15" },
+ { "en_CA.ISO_8859-1", "ISO-8859-1" },
+ { "en_GB.DIS_8859-15", "ISO-8859-15" },
+ { "en_GB.ISO_8859-1", "ISO-8859-1" },
+ { "en_US.DIS_8859-15", "ISO-8859-15" },
+ { "en_US.ISO_8859-1", "ISO-8859-1" },
+ { "es_ES.DIS_8859-15", "ISO-8859-15" },
+ { "es_ES.ISO_8859-1", "ISO-8859-1" },
+ { "fi_FI.DIS_8859-15", "ISO-8859-15" },
+ { "fi_FI.ISO_8859-1", "ISO-8859-1" },
+ { "fr_BE.DIS_8859-15", "ISO-8859-15" },
+ { "fr_BE.ISO_8859-1", "ISO-8859-1" },
+ { "fr_CA.DIS_8859-15", "ISO-8859-15" },
+ { "fr_CA.ISO_8859-1", "ISO-8859-1" },
+ { "fr_CH.DIS_8859-15", "ISO-8859-15" },
+ { "fr_CH.ISO_8859-1", "ISO-8859-1" },
+ { "fr_FR.DIS_8859-15", "ISO-8859-15" },
+ { "fr_FR.ISO_8859-1", "ISO-8859-1" },
+ { "hr_HR.ISO_8859-2", "ISO-8859-2" },
+ { "hu_HU.ISO_8859-2", "ISO-8859-2" },
+ { "is_IS.DIS_8859-15", "ISO-8859-15" },
+ { "is_IS.ISO_8859-1", "ISO-8859-1" },
+ { "it_CH.DIS_8859-15", "ISO-8859-15" },
+ { "it_CH.ISO_8859-1", "ISO-8859-1" },
+ { "it_IT.DIS_8859-15", "ISO-8859-15" },
+ { "it_IT.ISO_8859-1", "ISO-8859-1" },
+ { "ja_JP.EUC", "EUC-JP" },
+ { "ja_JP.SJIS", "SHIFT_JIS" },
+ { "ja_JP.Shift_JIS", "SHIFT_JIS" },
+ { "ko_KR.EUC", "EUC-KR" },
+ { "la_LN.ASCII", "ASCII" },
+ { "la_LN.DIS_8859-15", "ISO-8859-15" },
+ { "la_LN.ISO_8859-1", "ISO-8859-1" },
+ { "la_LN.ISO_8859-2", "ISO-8859-2" },
+ { "la_LN.ISO_8859-4", "ISO-8859-4" },
+ { "lt_LN.ASCII", "ASCII" },
+ { "lt_LN.DIS_8859-15", "ISO-8859-15" },
+ { "lt_LN.ISO_8859-1", "ISO-8859-1" },
+ { "lt_LN.ISO_8859-2", "ISO-8859-2" },
+ { "lt_LT.ISO_8859-4", "ISO-8859-4" },
+ { "nl_BE.DIS_8859-15", "ISO-8859-15" },
+ { "nl_BE.ISO_8859-1", "ISO-8859-1" },
+ { "nl_NL.DIS_8859-15", "ISO-8859-15" },
+ { "nl_NL.ISO_8859-1", "ISO-8859-1" },
+ { "no_NO.DIS_8859-15", "ISO-8859-15" },
+ { "no_NO.ISO_8859-1", "ISO-8859-1" },
+ { "pl_PL.ISO_8859-2", "ISO-8859-2" },
+ { "pt_PT.DIS_8859-15", "ISO-8859-15" },
+ { "pt_PT.ISO_8859-1", "ISO-8859-1" },
+ { "ru_RU.CP866", "CP866" },
+ { "ru_RU.ISO_8859-5", "ISO-8859-5" },
+ { "ru_RU.KOI8-R", "KOI8-R" },
+ { "ru_SU.CP866", "CP866" },
+ { "ru_SU.ISO_8859-5", "ISO-8859-5" },
+ { "ru_SU.KOI8-R", "KOI8-R" },
+ { "sl_SI.ISO_8859-2", "ISO-8859-2" },
+ { "sv_SE.DIS_8859-15", "ISO-8859-15" },
+ { "sv_SE.ISO_8859-1", "ISO-8859-1" },
+ { "uk_UA.KOI8-U", "KOI8-U" },
+ { "zh_CN.EUC", "GB2312" },
+ { "zh_TW.BIG5", "BIG5" },
+ { "zh_TW.Big5", "BIG5" }
+# define locale_table_defined
# endif
-
-# if defined WINDOWS_NATIVE || defined __CYGWIN__
- /* To avoid the troubles of installing a separate file in the same
- directory as the DLL and of retrieving the DLL's directory at
- runtime, simply inline the aliases here. */
-
- cp = "CP936" "\0" "GBK" "\0"
- "CP1361" "\0" "JOHAB" "\0"
- "CP20127" "\0" "ASCII" "\0"
- "CP20866" "\0" "KOI8-R" "\0"
- "CP20936" "\0" "GB2312" "\0"
- "CP21866" "\0" "KOI8-RU" "\0"
- "CP28591" "\0" "ISO-8859-1" "\0"
- "CP28592" "\0" "ISO-8859-2" "\0"
- "CP28593" "\0" "ISO-8859-3" "\0"
- "CP28594" "\0" "ISO-8859-4" "\0"
- "CP28595" "\0" "ISO-8859-5" "\0"
- "CP28596" "\0" "ISO-8859-6" "\0"
- "CP28597" "\0" "ISO-8859-7" "\0"
- "CP28598" "\0" "ISO-8859-8" "\0"
- "CP28599" "\0" "ISO-8859-9" "\0"
- "CP28605" "\0" "ISO-8859-15" "\0"
- "CP38598" "\0" "ISO-8859-8" "\0"
- "CP51932" "\0" "EUC-JP" "\0"
- "CP51936" "\0" "GB2312" "\0"
- "CP51949" "\0" "EUC-KR" "\0"
- "CP51950" "\0" "EUC-TW" "\0"
- "CP54936" "\0" "GB18030" "\0"
- "CP65001" "\0" "UTF-8" "\0";
+# if defined __DJGPP__ /* DOS / DJGPP 2.03 */
+ /* The encodings given here may not all be correct.
+ If you find that the encoding given for your language and
+ country is not the one your DOS machine actually uses, just
+ correct it in this file, and send a mail to
+ Juan Manuel Guerrero <juan.guerrero@gmx.de>
+ and <bug-gnulib@gnu.org>. */
+ { "C", "ASCII" },
+ { "ar", "CP864" },
+ { "ar_AE", "CP864" },
+ { "ar_DZ", "CP864" },
+ { "ar_EG", "CP864" },
+ { "ar_IQ", "CP864" },
+ { "ar_IR", "CP864" },
+ { "ar_JO", "CP864" },
+ { "ar_KW", "CP864" },
+ { "ar_MA", "CP864" },
+ { "ar_OM", "CP864" },
+ { "ar_QA", "CP864" },
+ { "ar_SA", "CP864" },
+ { "ar_SY", "CP864" },
+ { "be", "CP866" },
+ { "be_BE", "CP866" },
+ { "bg", "CP866" }, /* not CP855 ?? */
+ { "bg_BG", "CP866" }, /* not CP855 ?? */
+ { "ca", "CP850" },
+ { "ca_ES", "CP850" },
+ { "cs", "CP852" },
+ { "cs_CZ", "CP852" },
+ { "da", "CP865" }, /* not CP850 ?? */
+ { "da_DK", "CP865" }, /* not CP850 ?? */
+ { "de", "CP850" },
+ { "de_AT", "CP850" },
+ { "de_CH", "CP850" },
+ { "de_DE", "CP850" },
+ { "el", "CP869" },
+ { "el_GR", "CP869" },
+ { "en", "CP850" },
+ { "en_AU", "CP850" }, /* not CP437 ?? */
+ { "en_CA", "CP850" },
+ { "en_GB", "CP850" },
+ { "en_NZ", "CP437" },
+ { "en_US", "CP437" },
+ { "en_ZA", "CP850" }, /* not CP437 ?? */
+ { "eo", "CP850" },
+ { "eo_EO", "CP850" },
+ { "es", "CP850" },
+ { "es_AR", "CP850" },
+ { "es_BO", "CP850" },
+ { "es_CL", "CP850" },
+ { "es_CO", "CP850" },
+ { "es_CR", "CP850" },
+ { "es_CU", "CP850" },
+ { "es_DO", "CP850" },
+ { "es_EC", "CP850" },
+ { "es_ES", "CP850" },
+ { "es_GT", "CP850" },
+ { "es_HN", "CP850" },
+ { "es_MX", "CP850" },
+ { "es_NI", "CP850" },
+ { "es_PA", "CP850" },
+ { "es_PE", "CP850" },
+ { "es_PY", "CP850" },
+ { "es_SV", "CP850" },
+ { "es_UY", "CP850" },
+ { "es_VE", "CP850" },
+ { "et", "CP850" },
+ { "et_EE", "CP850" },
+ { "eu", "CP850" },
+ { "eu_ES", "CP850" },
+ { "fi", "CP850" },
+ { "fi_FI", "CP850" },
+ { "fr", "CP850" },
+ { "fr_BE", "CP850" },
+ { "fr_CA", "CP850" },
+ { "fr_CH", "CP850" },
+ { "fr_FR", "CP850" },
+ { "ga", "CP850" },
+ { "ga_IE", "CP850" },
+ { "gd", "CP850" },
+ { "gd_GB", "CP850" },
+ { "gl", "CP850" },
+ { "gl_ES", "CP850" },
+ { "he", "CP862" },
+ { "he_IL", "CP862" },
+ { "hr", "CP852" },
+ { "hr_HR", "CP852" },
+ { "hu", "CP852" },
+ { "hu_HU", "CP852" },
+ { "id", "CP850" }, /* not CP437 ?? */
+ { "id_ID", "CP850" }, /* not CP437 ?? */
+ { "is", "CP861" }, /* not CP850 ?? */
+ { "is_IS", "CP861" }, /* not CP850 ?? */
+ { "it", "CP850" },
+ { "it_CH", "CP850" },
+ { "it_IT", "CP850" },
+ { "ja", "CP932" },
+ { "ja_JP", "CP932" },
+ { "kr", "CP949" }, /* not CP934 ?? */
+ { "kr_KR", "CP949" }, /* not CP934 ?? */
+ { "lt", "CP775" },
+ { "lt_LT", "CP775" },
+ { "lv", "CP775" },
+ { "lv_LV", "CP775" },
+ { "mk", "CP866" }, /* not CP855 ?? */
+ { "mk_MK", "CP866" }, /* not CP855 ?? */
+ { "mt", "CP850" },
+ { "mt_MT", "CP850" },
+ { "nb", "CP865" }, /* not CP850 ?? */
+ { "nb_NO", "CP865" }, /* not CP850 ?? */
+ { "nl", "CP850" },
+ { "nl_BE", "CP850" },
+ { "nl_NL", "CP850" },
+ { "nn", "CP865" }, /* not CP850 ?? */
+ { "nn_NO", "CP865" }, /* not CP850 ?? */
+ { "no", "CP865" }, /* not CP850 ?? */
+ { "no_NO", "CP865" }, /* not CP850 ?? */
+ { "pl", "CP852" },
+ { "pl_PL", "CP852" },
+ { "pt", "CP850" },
+ { "pt_BR", "CP850" },
+ { "pt_PT", "CP850" },
+ { "ro", "CP852" },
+ { "ro_RO", "CP852" },
+ { "ru", "CP866" },
+ { "ru_RU", "CP866" },
+ { "sk", "CP852" },
+ { "sk_SK", "CP852" },
+ { "sl", "CP852" },
+ { "sl_SI", "CP852" },
+ { "sq", "CP852" },
+ { "sq_AL", "CP852" },
+ { "sr", "CP852" }, /* CP852 or CP866 or CP855 ?? */
+ { "sr_CS", "CP852" }, /* CP852 or CP866 or CP855 ?? */
+ { "sr_YU", "CP852" }, /* CP852 or CP866 or CP855 ?? */
+ { "sv", "CP850" },
+ { "sv_SE", "CP850" },
+ { "th", "CP874" },
+ { "th_TH", "CP874" },
+ { "tr", "CP857" },
+ { "tr_TR", "CP857" },
+ { "uk", "CP1125" },
+ { "uk_UA", "CP1125" },
+ { "zh_CN", "GBK" },
+ { "zh_TW", "CP950" } /* not CP938 ?? */
+# define locale_table_defined
# endif
-# if defined OS2
- /* To avoid the troubles of installing a separate file in the same
- directory as the DLL and of retrieving the DLL's directory at
- runtime, simply inline the aliases here. */
-
- /* The list of encodings is taken from "List of OS/2 Codepages"
- by Alex Taylor:
- <http://altsan.org/os2/toolkits/uls/index.html#codepages>.
- See also "IBM Globalization - Code page identifiers":
- <http://www-01.ibm.com/software/globalization/cp/cp_cpgid.html>. */
- cp = "CP813" "\0" "ISO-8859-7" "\0"
- "CP878" "\0" "KOI8-R" "\0"
- "CP819" "\0" "ISO-8859-1" "\0"
- "CP912" "\0" "ISO-8859-2" "\0"
- "CP913" "\0" "ISO-8859-3" "\0"
- "CP914" "\0" "ISO-8859-4" "\0"
- "CP915" "\0" "ISO-8859-5" "\0"
- "CP916" "\0" "ISO-8859-8" "\0"
- "CP920" "\0" "ISO-8859-9" "\0"
- "CP921" "\0" "ISO-8859-13" "\0"
- "CP923" "\0" "ISO-8859-15" "\0"
- "CP954" "\0" "EUC-JP" "\0"
- "CP964" "\0" "EUC-TW" "\0"
- "CP970" "\0" "EUC-KR" "\0"
- "CP1089" "\0" "ISO-8859-6" "\0"
- "CP1208" "\0" "UTF-8" "\0"
- "CP1381" "\0" "GB2312" "\0"
- "CP1386" "\0" "GBK" "\0"
- "CP3372" "\0" "EUC-JP" "\0";
+# ifndef locale_table_defined
+ /* Just a dummy entry, to avoid a C syntax error. */
+ { "", "" }
# endif
-#endif
+ };
- charset_aliases = cp;
- }
+#endif
- return cp;
-}
/* Determine the current locale's character encoding, and canonicalize it
- into one of the canonical names listed in config.charset.
+ into one of the canonical names listed in localcharset.h.
The result must not be freed; it is statically allocated.
If the canonical name cannot be determined, the result is a non-canonical
name. */
locale_charset (void)
{
const char *codeset;
- const char *aliases;
-#if !(defined WINDOWS_NATIVE || defined OS2)
+#if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2
# if HAVE_LANGINFO_CODESET
}
# endif
-# else
-
- /* On old systems which lack it, use setlocale or getenv. */
- const char *locale = NULL;
-
- /* But most old systems don't have a complete set of locales. Some
- (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't
- use setlocale here; it would return "C" when it doesn't support the
- locale name the user has set. */
-# if 0
- locale = setlocale (LC_CTYPE, NULL);
-# endif
- if (locale == NULL || locale[0] == '\0')
- {
- locale = getenv ("LC_ALL");
- if (locale == NULL || locale[0] == '\0')
- {
- locale = getenv ("LC_CTYPE");
- if (locale == NULL || locale[0] == '\0')
- locale = getenv ("LANG");
- }
- }
-
- /* On some old systems, one used to set locale = "iso8859_1". On others,
- you set it to "language_COUNTRY.charset". In any case, we resolve it
- through the charset.alias file. */
- codeset = locale;
-
-# endif
+ if (codeset == NULL)
+ /* The canonical name cannot be determined. */
+ codeset = "";
-#elif defined WINDOWS_NATIVE
+# elif defined WINDOWS_NATIVE
static char buf[2 + 10 + 1];
}
codeset = buf;
-#elif defined OS2
+# elif defined OS2
const char *locale;
static char buf[2 + 10 + 1];
}
}
-#endif
+# else
- if (codeset == NULL)
- /* The canonical name cannot be determined. */
- codeset = "";
+# error "Add code for other platforms here."
- /* Resolve alias. */
- for (aliases = get_charset_aliases ();
- *aliases != '\0';
- aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
- if (strcmp (codeset, aliases) == 0
- || (aliases[0] == '*' && aliases[1] == '\0'))
+# endif
+
+ /* Resolve alias. */
+ {
+# ifdef alias_table_defined
+ /* On some platforms, UTF-8 locales are the most frequently used ones.
+ Speed up the common case and slow down the less common cases by
+ testing for this case first. */
+# if defined __OpenBSD__ || (defined __APPLE__ && defined __MACH__) || defined __sun || defined __CYGWIN__
+ if (strcmp (codeset, "UTF-8") == 0)
+ goto done_table_lookup;
+ else
+# endif
{
- codeset = aliases + strlen (aliases) + 1;
- break;
+ const struct table_entry * const table = alias_table;
+ size_t const table_size =
+ sizeof (alias_table) / sizeof (struct table_entry);
+ /* The table is sorted. Perform a binary search. */
+ size_t hi = table_size;
+ size_t lo = 0;
+ while (lo < hi)
+ {
+ /* Invariant:
+ for i < lo, strcmp (table[i].alias, codeset) < 0,
+ for i >= hi, strcmp (table[i].alias, codeset) > 0. */
+ size_t mid = (hi + lo) >> 1; /* >= lo, < hi */
+ int cmp = strcmp (table[mid].alias, codeset);
+ if (cmp < 0)
+ lo = mid + 1;
+ else if (cmp > 0)
+ hi = mid;
+ else
+ {
+ /* Found an i with
+ strcmp (table[i].alias, codeset) == 0. */
+ codeset = table[mid].canonical;
+ goto done_table_lookup;
+ }
+ }
}
+ if (0)
+ done_table_lookup: ;
+ else
+# endif
+ {
+ /* Did not find it in the table. */
+ /* On Mac OS X, all modern locales use the UTF-8 encoding.
+ BeOS and Haiku have a single locale, and it has UTF-8 encoding. */
+# if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined __HAIKU__
+ codeset = "UTF-8";
+# else
+ /* Don't return an empty string. GNU libc and GNU libiconv interpret
+ the empty string as denoting "the locale's character encoding",
+ thus GNU libiconv would call this function a second time. */
+ if (codeset[0] == '\0')
+ codeset = "ASCII";
+# endif
+ }
+ }
- /* Don't return an empty string. GNU libc and GNU libiconv interpret
- the empty string as denoting "the locale's character encoding",
- thus GNU libiconv would call this function a second time. */
- if (codeset[0] == '\0')
- codeset = "ASCII";
+#else
+
+ /* On old systems which lack it, use setlocale or getenv. */
+ const char *locale = NULL;
+
+ /* But most old systems don't have a complete set of locales. Some
+ (like DJGPP) have only the C locale. Therefore we don't use setlocale
+ here; it would return "C" when it doesn't support the locale name the
+ user has set. */
+# if 0
+ locale = setlocale (LC_CTYPE, NULL);
+# endif
+ if (locale == NULL || locale[0] == '\0')
+ {
+ locale = getenv ("LC_ALL");
+ if (locale == NULL || locale[0] == '\0')
+ {
+ locale = getenv ("LC_CTYPE");
+ if (locale == NULL || locale[0] == '\0')
+ locale = getenv ("LANG");
+ if (locale == NULL)
+ locale = "";
+ }
+ }
+
+ /* Map locale name to canonical encoding name. */
+ {
+# ifdef locale_table_defined
+ const struct table_entry * const table = locale_table;
+ size_t const table_size =
+ sizeof (locale_table) / sizeof (struct table_entry);
+ /* The table is sorted. Perform a binary search. */
+ size_t hi = table_size;
+ size_t lo = 0;
+ while (lo < hi)
+ {
+ /* Invariant:
+ for i < lo, strcmp (table[i].locale, locale) < 0,
+ for i >= hi, strcmp (table[i].locale, locale) > 0. */
+ size_t mid = (hi + lo) >> 1; /* >= lo, < hi */
+ int cmp = strcmp (table[mid].locale, locale);
+ if (cmp < 0)
+ lo = mid + 1;
+ else if (cmp > 0)
+ hi = mid;
+ else
+ {
+ /* Found an i with
+ strcmp (table[i].locale, locale) == 0. */
+ codeset = table[mid].canonical;
+ goto done_table_lookup;
+ }
+ }
+ if (0)
+ done_table_lookup: ;
+ else
+# endif
+ {
+ /* Did not find it in the table. */
+ /* On Mac OS X, all modern locales use the UTF-8 encoding.
+ BeOS and Haiku have a single locale, and it has UTF-8 encoding. */
+# if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined __HAIKU__
+ codeset = "UTF-8";
+# else
+ /* The canonical name cannot be determined. */
+ /* Don't return an empty string. GNU libc and GNU libiconv interpret
+ the empty string as denoting "the locale's character encoding",
+ thus GNU libiconv would call this function a second time. */
+ codeset = "ASCII";
+# endif
+ }
+ }
+
+#endif
#ifdef DARWIN7
/* Mac OS X sets MB_CUR_MAX to 1 when LC_ALL=C, and "UTF-8"
/* Determine a canonical name for the current locale's character encoding.
- Copyright (C) 2000-2003, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2000-2003, 2009-2018 Free Software Foundation, Inc.
This file is part of the GNU CHARSET Library.
This program is free software; you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _LOCALCHARSET_H
#define _LOCALCHARSET_H
/* Determine the current locale's character encoding, and canonicalize it
- into one of the canonical names listed in config.charset.
+ into one of the canonical names listed below.
The result must not be freed; it is statically allocated.
If the canonical name cannot be determined, the result is a non-canonical
name. */
extern const char * locale_charset (void);
+/* About GNU canonical names for character encodings:
+
+ Every canonical name must be supported by GNU libiconv. Support by GNU libc
+ is also desirable.
+
+ The name is case insensitive. Usually an upper case MIME charset name is
+ preferred.
+
+ The current list of these GNU canonical names is:
+
+ name MIME? used by which systems
+ (darwin = Mac OS X, windows = native Windows)
+
+ ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin minix cygwin
+ ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
+ ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
+ ISO-8859-3 Y glibc solaris cygwin
+ ISO-8859-4 Y hpux osf solaris freebsd netbsd openbsd darwin
+ ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
+ ISO-8859-6 Y glibc aix hpux solaris cygwin
+ ISO-8859-7 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
+ ISO-8859-8 Y glibc aix hpux osf solaris cygwin
+ ISO-8859-9 Y glibc aix hpux irix osf solaris freebsd darwin cygwin
+ ISO-8859-13 glibc hpux solaris freebsd netbsd openbsd darwin cygwin
+ ISO-8859-14 glibc cygwin
+ ISO-8859-15 glibc aix irix osf solaris freebsd netbsd openbsd darwin cygwin
+ KOI8-R Y glibc hpux solaris freebsd netbsd openbsd darwin
+ KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin
+ KOI8-T glibc
+ CP437 dos
+ CP775 dos
+ CP850 aix osf dos
+ CP852 dos
+ CP855 dos
+ CP856 aix
+ CP857 dos
+ CP861 dos
+ CP862 dos
+ CP864 dos
+ CP865 dos
+ CP866 freebsd netbsd openbsd darwin dos
+ CP869 dos
+ CP874 windows dos
+ CP922 aix
+ CP932 aix cygwin windows dos
+ CP943 aix
+ CP949 osf darwin windows dos
+ CP950 windows dos
+ CP1046 aix
+ CP1124 aix
+ CP1125 dos
+ CP1129 aix
+ CP1131 freebsd darwin
+ CP1250 windows
+ CP1251 glibc hpux solaris freebsd netbsd openbsd darwin cygwin windows
+ CP1252 aix windows
+ CP1253 windows
+ CP1254 windows
+ CP1255 glibc windows
+ CP1256 windows
+ CP1257 windows
+ GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin cygwin
+ EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin
+ EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin
+ EUC-TW glibc aix hpux irix osf solaris netbsd
+ BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin
+ BIG5-HKSCS glibc hpux solaris netbsd darwin
+ GBK glibc aix osf solaris freebsd darwin cygwin windows dos
+ GB18030 glibc hpux solaris freebsd netbsd darwin
+ SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin
+ JOHAB glibc solaris windows
+ TIS-620 glibc aix hpux osf solaris cygwin
+ VISCII Y glibc
+ TCVN5712-1 glibc
+ ARMSCII-8 glibc freebsd netbsd darwin
+ GEORGIAN-PS glibc cygwin
+ PT154 glibc netbsd cygwin
+ HP-ROMAN8 hpux
+ HP-ARABIC8 hpux
+ HP-GREEK8 hpux
+ HP-HEBREW8 hpux
+ HP-TURKISH8 hpux
+ HP-KANA8 hpux
+ DEC-KANJI osf
+ DEC-HANYU osf
+ UTF-8 Y glibc aix hpux osf solaris netbsd darwin cygwin
+
+ Note: Names which are not marked as being a MIME name should not be used in
+ Internet protocols for information interchange (mail, news, etc.).
+
+ Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications
+ must understand both names and treat them as equivalent.
+ */
+
#ifdef __cplusplus
}
/* A POSIX <locale.h>.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
@PRAGMA_COLUMNS@
-#ifdef _GL_ALREADY_INCLUDING_LOCALE_H
+#if (defined _WIN32 && !defined __CYGWIN__ && defined __need_locale_t) \
+ || defined _GL_ALREADY_INCLUDING_LOCALE_H
-/* Special invocation conventions to handle Solaris header files
- (through Solaris 10) when combined with gettext's libintl.h. */
+/* Special invocation convention:
+ - Inside mingw header files,
+ - To handle Solaris header files (through Solaris 10) when combined
+ with gettext's libintl.h. */
#@INCLUDE_NEXT@ @NEXT_LOCALE_H@
# endif
#endif
-#if @GNULIB_DUPLOCALE@
+#if /*@GNULIB_NEWLOCALE@ ||*/ (@GNULIB_LOCALENAME@ && @HAVE_NEWLOCALE@)
+# if @REPLACE_NEWLOCALE@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef newlocale
+# define newlocale rpl_newlocale
+# define GNULIB_defined_newlocale 1
+# endif
+_GL_FUNCDECL_RPL (newlocale, locale_t,
+ (int category_mask, const char *name, locale_t base)
+ _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (newlocale, locale_t,
+ (int category_mask, const char *name, locale_t base));
+# else
+# if @HAVE_NEWLOCALE@
+_GL_CXXALIAS_SYS (newlocale, locale_t,
+ (int category_mask, const char *name, locale_t base));
+# endif
+# endif
+# if @HAVE_NEWLOCALE@
+_GL_CXXALIASWARN (newlocale);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef newlocale
+# if HAVE_RAW_DECL_NEWLOCALE
+_GL_WARN_ON_USE (newlocale, "newlocale is not portable");
+# endif
+#endif
+
+#if @GNULIB_DUPLOCALE@ || (@GNULIB_LOCALENAME@ && @HAVE_DUPLOCALE@)
# if @REPLACE_DUPLOCALE@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef duplocale
# define duplocale rpl_duplocale
+# define GNULIB_defined_duplocale 1
# endif
_GL_FUNCDECL_RPL (duplocale, locale_t, (locale_t locale) _GL_ARG_NONNULL ((1)));
_GL_CXXALIAS_RPL (duplocale, locale_t, (locale_t locale));
# endif
#endif
+#if /*@GNULIB_FREELOCALE@ ||*/ (@GNULIB_LOCALENAME@ && @HAVE_FREELOCALE@)
+# if @REPLACE_FREELOCALE@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef freelocale
+# define freelocale rpl_freelocale
+# define GNULIB_defined_freelocale 1
+# endif
+_GL_FUNCDECL_RPL (freelocale, void, (locale_t locale) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (freelocale, void, (locale_t locale));
+# else
+# if @HAVE_FREELOCALE@
+_GL_CXXALIAS_SYS (freelocale, void, (locale_t locale));
+# endif
+# endif
+# if @HAVE_FREELOCALE@
+_GL_CXXALIASWARN (freelocale);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef freelocale
+# if HAVE_RAW_DECL_FREELOCALE
+_GL_WARN_ON_USE (freelocale, "freelocale is not portable");
+# endif
+#endif
+
#endif /* _@GUARD_PREFIX@_LOCALE_H */
-#endif /* ! _GL_ALREADY_INCLUDING_LOCALE_H */
#endif /* _@GUARD_PREFIX@_LOCALE_H */
+#endif /* !(__need_locale_t || _GL_ALREADY_INCLUDING_LOCALE_H) */
/* Query locale dependent information for formatting numbers.
- Copyright (C) 2012-2017 Free Software Foundation, Inc.
+ Copyright (C) 2012-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Provide access to the last buffer returned by localtime() or gmtime().
- Copyright (C) 2001-2003, 2005-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2005-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* written by Jim Meyering */
struct tm *
rpl_localtime (time_t const *timep)
+#undef localtime
{
struct tm *tm = localtime (timep);
/* Same as above, since gmtime and localtime use the same buffer. */
struct tm *
rpl_gmtime (time_t const *timep)
+#undef gmtime
{
struct tm *tm = gmtime (timep);
/* Provide access to the last buffer returned by localtime() or gmtime().
- Copyright (C) 2001-2003, 2005-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2005-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* written by Jim Meyering */
/* Work around a bug of lstat on some systems
- Copyright (C) 1997-2006, 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 1997-2006, 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* written by Jim Meyering */
above. */
# include "sys/stat.h"
+# include "stat-time.h"
+
# include <string.h>
# include <errno.h>
int
rpl_lstat (const char *file, struct stat *sbuf)
{
- size_t len;
- int lstat_result = orig_lstat (file, sbuf);
-
- if (lstat_result != 0)
- return lstat_result;
+ int result = orig_lstat (file, sbuf);
/* This replacement file can blindly check against '/' rather than
using the ISSLASH macro, because all platforms with '\\' either
lack symlinks (mingw) or have working lstat (cygwin) and thus do
not compile this file. 0 len should have already been filtered
out above, with a failure return of ENOENT. */
- len = strlen (file);
- if (file[len - 1] != '/' || S_ISDIR (sbuf->st_mode))
- return 0;
-
- /* At this point, a trailing slash is only permitted on
- symlink-to-dir; but it should have found information on the
- directory, not the symlink. Call stat() to get info about the
- link's referent. Our replacement stat guarantees valid results,
- even if the symlink is not pointing to a directory. */
- if (!S_ISLNK (sbuf->st_mode))
+ if (result == 0)
{
- errno = ENOTDIR;
- return -1;
+ if (S_ISDIR (sbuf->st_mode) || file[strlen (file) - 1] != '/')
+ result = stat_time_normalize (result, sbuf);
+ else
+ {
+ /* At this point, a trailing slash is permitted only on
+ symlink-to-dir; but it should have found information on the
+ directory, not the symlink. Call 'stat' to get info about the
+ link's referent. Our replacement stat guarantees valid results,
+ even if the symlink is not pointing to a directory. */
+ if (!S_ISLNK (sbuf->st_mode))
+ {
+ errno = ENOTDIR;
+ return -1;
+ }
+ result = stat (file, sbuf);
+ }
}
- return stat (file, sbuf);
+ return result;
}
#endif /* HAVE_LSTAT */
/* malloc() function that is glibc compatible.
- Copyright (C) 1997-1998, 2006-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1997-1998, 2006-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* written by Jim Meyering and Bruno Haible */
/* Safe automatic memory allocation.
- Copyright (C) 2003, 2006-2007, 2009-2017 Free Software Foundation, Inc.
- Written by Bruno Haible <bruno@clisp.org>, 2003.
+ Copyright (C) 2003, 2006-2007, 2009-2018 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2003, 2018.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#define _GL_USE_STDLIB_ALLOC 1
#include <config.h>
/* Specification. */
#include "malloca.h"
-#include <stdint.h>
-
#include "verify.h"
/* The speed critical point in this file is freea() applied to an alloca()
result: it must be fast, to match the speed of alloca(). The speed of
mmalloca() and freea() in the other case are not critical, because they
- are only invoked for big memory sizes. */
-
-#if HAVE_ALLOCA
-
-/* Store the mmalloca() results in a hash table. This is needed to reliably
- distinguish a mmalloca() result and an alloca() result.
-
- Although it is possible that the same pointer is returned by alloca() and
- by mmalloca() at different times in the same application, it does not lead
- to a bug in freea(), because:
- - Before a pointer returned by alloca() can point into malloc()ed memory,
- the function must return, and once this has happened the programmer must
- not call freea() on it anyway.
- - Before a pointer returned by mmalloca() can point into the stack, it
- must be freed. The only function that can free it is freea(), and
- when freea() frees it, it also removes it from the hash table. */
-
-#define MAGIC_NUMBER 0x1415fb4a
-#define MAGIC_SIZE sizeof (int)
-/* This is how the header info would look like without any alignment
- considerations. */
-struct preliminary_header { void *next; int magic; };
-/* But the header's size must be a multiple of sa_alignment_max. */
-#define HEADER_SIZE \
- (((sizeof (struct preliminary_header) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max)
-union header {
- void *next;
- struct {
- char room[HEADER_SIZE - MAGIC_SIZE];
- int word;
- } magic;
-};
-verify (HEADER_SIZE == sizeof (union header));
-/* We make the hash table quite big, so that during lookups the probability
- of empty hash buckets is quite high. There is no need to make the hash
- table resizable, because when the hash table gets filled so much that the
- lookup becomes slow, it means that the application has memory leaks. */
-#define HASH_TABLE_SIZE 257
-static void * mmalloca_results[HASH_TABLE_SIZE];
-
-#endif
+ are only invoked for big memory sizes.
+ Here we use a bit in the address as an indicator, an idea by Ondřej Bílka.
+ malloca() can return three types of pointers:
+ - Pointers ≡ 0 mod 2*sa_alignment_max come from stack allocation.
+ - Pointers ≡ sa_alignment_max mod 2*sa_alignment_max come from heap
+ allocation.
+ - NULL comes from a failed heap allocation. */
+
+/* Type for holding very small pointer differences. */
+typedef unsigned char small_t;
+/* Verify that it is wide enough. */
+verify (2 * sa_alignment_max - 1 <= (small_t) -1);
void *
mmalloca (size_t n)
{
#if HAVE_ALLOCA
- /* Allocate one more word, that serves as an indicator for malloc()ed
- memory, so that freea() of an alloca() result is fast. */
- size_t nplus = n + HEADER_SIZE;
+ /* Allocate one more word, used to determine the address to pass to freea(),
+ and room for the alignment ≡ sa_alignment_max mod 2*sa_alignment_max. */
+ size_t nplus = n + sizeof (small_t) + 2 * sa_alignment_max - 1;
if (nplus >= n)
{
- void *p = malloc (nplus);
+ char *mem = (char *) malloc (nplus);
- if (p != NULL)
+ if (mem != NULL)
{
- size_t slot;
- union header *h = p;
-
- p = h + 1;
-
- /* Put a magic number into the indicator word. */
- h->magic.word = MAGIC_NUMBER;
-
- /* Enter p into the hash table. */
- slot = (uintptr_t) p % HASH_TABLE_SIZE;
- h->next = mmalloca_results[slot];
- mmalloca_results[slot] = p;
-
+ char *p =
+ (char *)((((uintptr_t)mem + sizeof (small_t) + sa_alignment_max - 1)
+ & ~(uintptr_t)(2 * sa_alignment_max - 1))
+ + sa_alignment_max);
+ /* Here p >= mem + sizeof (small_t),
+ and p <= mem + sizeof (small_t) + 2 * sa_alignment_max - 1
+ hence p + n <= mem + nplus.
+ So, the memory range [p, p+n) lies in the allocated memory range
+ [mem, mem + nplus). */
+ ((small_t *) p)[-1] = p - mem;
+ /* p ≡ sa_alignment_max mod 2*sa_alignment_max. */
return p;
}
}
void
freea (void *p)
{
- /* mmalloca() may have returned NULL. */
- if (p != NULL)
+ /* Check argument. */
+ if ((uintptr_t) p & (sa_alignment_max - 1))
{
- /* Attempt to quickly distinguish the mmalloca() result - which has
- a magic indicator word - and the alloca() result - which has an
- uninitialized indicator word. It is for this test that sa_increment
- additional bytes are allocated in the alloca() case. */
- if (((int *) p)[-1] == MAGIC_NUMBER)
- {
- /* Looks like a mmalloca() result. To see whether it really is one,
- perform a lookup in the hash table. */
- size_t slot = (uintptr_t) p % HASH_TABLE_SIZE;
- void **chain = &mmalloca_results[slot];
- for (; *chain != NULL;)
- {
- union header *h = p;
- if (*chain == p)
- {
- /* Found it. Remove it from the hash table and free it. */
- union header *p_begin = h - 1;
- *chain = p_begin->next;
- free (p_begin);
- return;
- }
- h = *chain;
- chain = &h[-1].next;
- }
- }
- /* At this point, we know it was not a mmalloca() result. */
+ /* p was not the result of a malloca() call. Invalid argument. */
+ abort ();
+ }
+ /* Determine whether p was a non-NULL pointer returned by mmalloca(). */
+ if ((uintptr_t) p & sa_alignment_max)
+ {
+ void *mem = (char *) p - ((small_t *) p)[-1];
+ free (mem);
}
}
#endif
+
+/*
+ * Hey Emacs!
+ * Local Variables:
+ * coding: utf-8
+ * End:
+ */
/* Safe automatic memory allocation.
- Copyright (C) 2003-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2003-2007, 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2003.
This program is free software; you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _MALLOCA_H
#define _MALLOCA_H
the function returns. Upon failure, it returns NULL. */
#if HAVE_ALLOCA
# define malloca(N) \
- ((N) < 4032 - sa_increment \
- ? (void *) ((char *) alloca ((N) + sa_increment) + sa_increment) \
+ ((N) < 4032 - (2 * sa_alignment_max - 1) \
+ ? (void *) (((uintptr_t) (char *) alloca ((N) + 2 * sa_alignment_max - 1) \
+ + (2 * sa_alignment_max - 1)) \
+ & ~(uintptr_t)(2 * sa_alignment_max - 1)) \
: mmalloca (N))
#else
# define malloca(N) \
| (sa_alignment_longlong - 1)
#endif
| (sa_alignment_longdouble - 1)
- ) + 1,
-/* The increment that guarantees room for a magic word must be >= sizeof (int)
- and a multiple of sa_alignment_max. */
- sa_increment = ((sizeof (int) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max
+ ) + 1
};
#endif /* _MALLOCA_H */
+++ /dev/null
-# Suppress a valgrind message about use of uninitialized memory in freea().
-# This use is OK because it provides only a speedup.
-{
- freea
- Memcheck:Cond
- fun:freea
-}
-/* Copyright (C) 2001, 2006, 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2006, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Multibyte character data type.
- Copyright (C) 2001, 2005-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>. */
/* Iterating through multibyte strings: macros for multi-byte encodings.
- Copyright (C) 2001, 2005, 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005, 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>. */
/* Convert multibyte character to wide character.
- Copyright (C) 1999-2002, 2005-2017 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2005-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
# include "streq.h"
# include "verify.h"
-#ifndef FALLTHROUGH
-# if __GNUC__ < 7
-# define FALLTHROUGH ((void) 0)
-# else
-# define FALLTHROUGH __attribute__ ((__fallthrough__))
+# ifndef FALLTHROUGH
+# if __GNUC__ < 7
+# define FALLTHROUGH ((void) 0)
+# else
+# define FALLTHROUGH __attribute__ ((__fallthrough__))
+# endif
# endif
+
+/* Returns a classification of special values of the encoding of the current
+ locale. */
+typedef enum {
+ enc_other, /* other */
+ enc_utf8, /* UTF-8 */
+ enc_eucjp, /* EUC-JP */
+ enc_94, /* EUC-KR, GB2312, BIG5 */
+ enc_euctw, /* EUC-TW */
+ enc_gb18030, /* GB18030 */
+ enc_sjis /* SJIS */
+} enc_t;
+static inline enc_t
+locale_enc (void)
+{
+ const char *encoding = locale_charset ();
+ if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0))
+ return enc_utf8;
+ if (STREQ_OPT (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0))
+ return enc_eucjp;
+ if (STREQ_OPT (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
+ || STREQ_OPT (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0)
+ || STREQ_OPT (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0))
+ return enc_94;
+ if (STREQ_OPT (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0))
+ return enc_euctw;
+ if (STREQ_OPT (encoding, "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0))
+ return enc_gb18030;
+ if (STREQ_OPT (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0))
+ return enc_sjis;
+ return enc_other;
+}
+
+#if GNULIB_WCHAR_SINGLE
+/* When we know that the locale does not change, provide a speedup by
+ caching the value of locale_enc. */
+static int cached_locale_enc = -1;
+static inline enc_t
+locale_enc_cached (void)
+{
+ if (cached_locale_enc < 0)
+ cached_locale_enc = locale_enc ();
+ return cached_locale_enc;
+}
+#else
+/* By default, don't make assumptions, hence no caching. */
+# define locale_enc_cached locale_enc
#endif
verify (sizeof (mbstate_t) >= 4);
/* Here m > 0. */
# if __GLIBC__ || defined __UCLIBC__
- /* Work around bug <http://sourceware.org/bugzilla/show_bug.cgi?id=9674> */
+ /* Work around bug <https://sourceware.org/bugzilla/show_bug.cgi?id=9674> */
mbtowc (NULL, NULL, 0);
# endif
{
if (m >= 4 || m >= MB_CUR_MAX)
goto invalid;
/* Here MB_CUR_MAX > 1 and 0 < m < 4. */
- {
- const char *encoding = locale_charset ();
-
- if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0))
+ switch (locale_enc_cached ())
+ {
+ case enc_utf8: /* UTF-8 */
{
/* Cf. unistr/u8-mblen.c. */
unsigned char c = (unsigned char) p[0];
/* As a reference for this code, you can use the GNU libiconv
implementation. Look for uses of the RET_TOOFEW macro. */
- if (STREQ_OPT (encoding,
- "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0))
+ case enc_eucjp: /* EUC-JP */
{
if (m == 1)
{
}
goto invalid;
}
- if (STREQ_OPT (encoding,
- "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
- || STREQ_OPT (encoding,
- "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0)
- || STREQ_OPT (encoding,
- "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0))
+
+ case enc_94: /* EUC-KR, GB2312, BIG5 */
{
if (m == 1)
{
}
goto invalid;
}
- if (STREQ_OPT (encoding,
- "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0))
+
+ case enc_euctw: /* EUC-TW */
{
if (m == 1)
{
}
goto invalid;
}
- if (STREQ_OPT (encoding,
- "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0))
+
+ case enc_gb18030: /* GB18030 */
{
if (m == 1)
{
}
goto invalid;
}
- if (STREQ_OPT (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0))
+
+ case enc_sjis: /* SJIS */
{
if (m == 1)
{
goto invalid;
}
- /* An unknown multibyte encoding. */
- goto incomplete;
- }
+ default:
+ /* An unknown multibyte encoding. */
+ goto incomplete;
+ }
incomplete:
{
/* Case-insensitive string comparison function.
- Copyright (C) 1998-1999, 2005-2017 Free Software Foundation, Inc.
+ Copyright (C) 1998-1999, 2005-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2005,
based on earlier glibc code.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Test for initial conversion state.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
int
mbsinit (const mbstate_t *ps)
{
-# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* Native Windows. */
# ifdef __MINGW32__
/* On mingw, 'mbstate_t' is defined as 'int'. */
/* Counting the multibyte characters in a string.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Convert string to wide string.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
size_t
mbsrtowcs (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps)
/* Convert string to wide string.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
mbstate_t _gl_mbsrtowcs_state
/* The state must initially be in the "initial state"; so, zero-initialize it.
On most systems, putting it into BSS is sufficient. Not so on Mac OS X 10.3,
- see <http://lists.gnu.org/archive/html/bug-gnulib/2009-01/msg00329.html>.
+ see <https://lists.gnu.org/r/bug-gnulib/2009-01/msg00329.html>.
When it needs an initializer, use 0 or {0} as initializer? 0 only works
when mbstate_t is a scalar type (such as when gnulib defines it, or on
AIX, IRIX, mingw). {0} works as an initializer in all cases: for a struct
/* Convert string to wide string.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Searching in a string. -*- coding: utf-8 -*-
- Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ Copyright (C) 2005-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2005.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
#include "str-kmp.h"
/* Knuth-Morris-Pratt algorithm.
- See http://en.wikipedia.org/wiki/Knuth-Morris-Pratt_algorithm
+ See https://en.wikipedia.org/wiki/Knuth-Morris-Pratt_algorithm
Return a boolean indicating success:
Return true and set *RESULTP if the search was completed.
Return false if it was aborted because not enough memory was available. */
/* Convert multibyte character to wide character.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* We don't need a static internal state, because the encoding is not state
dependent, and when mbrtowc returns (size_t)(-2). we throw the result
/* Convert multibyte character to wide character.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Iterating through multibyte strings: macros for multi-byte encodings.
- Copyright (C) 2001, 2005, 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005, 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>. */
-/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2017
+/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2018
Free Software Foundation, Inc.
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>. */
+along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _LIBC
# include <config.h>
/* MIN, MAX macros.
- Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2017 Free Software
+ Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2018 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _MINMAX_H
#define _MINMAX_H
--- /dev/null
+/* On some systems, mkdir ("foo/", 0700) fails because of the trailing
+ slash. On those systems, this wrapper removes the trailing slash.
+
+ Copyright (C) 2001, 2003, 2006, 2008-2018 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* written by Jim Meyering */
+
+#include <config.h>
+
+/* Specification. */
+#include <sys/stat.h>
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "dirname.h"
+
+/* Disable the definition of mkdir to rpl_mkdir (from the <sys/stat.h>
+ substitute) in this file. Otherwise, we'd get an endless recursion. */
+#undef mkdir
+
+/* mingw's _mkdir() function has 1 argument, but we pass 2 arguments.
+ Additionally, it declares _mkdir (and depending on compile flags, an
+ alias mkdir), only in the nonstandard includes <direct.h> and <io.h>,
+ which are included in the <sys/stat.h> override. */
+#if defined _WIN32 && ! defined __CYGWIN__
+# define mkdir(name,mode) _mkdir (name)
+# define maybe_unused _GL_UNUSED
+#else
+# define maybe_unused /* empty */
+#endif
+
+/* This function is required at least for NetBSD 1.5.2. */
+
+int
+rpl_mkdir (char const *dir, mode_t mode maybe_unused)
+{
+ int ret_val;
+ char *tmp_dir;
+ size_t len = strlen (dir);
+
+ if (len && dir[len - 1] == '/')
+ {
+ tmp_dir = strdup (dir);
+ if (!tmp_dir)
+ {
+ /* Rather than rely on strdup-posix, we set errno ourselves. */
+ errno = ENOMEM;
+ return -1;
+ }
+ strip_trailing_slashes (tmp_dir);
+ }
+ else
+ {
+ tmp_dir = (char *) dir;
+ }
+#if FUNC_MKDIR_DOT_BUG
+ /* Additionally, cygwin 1.5 mistakenly creates a directory "d/./". */
+ {
+ char *last = last_component (tmp_dir);
+ if (*last == '.' && (last[1] == '\0'
+ || (last[1] == '.' && last[2] == '\0')))
+ {
+ struct stat st;
+ if (stat (tmp_dir, &st) == 0)
+ errno = EEXIST;
+ return -1;
+ }
+ }
+#endif /* FUNC_MKDIR_DOT_BUG */
+
+ ret_val = mkdir (tmp_dir, mode);
+
+ if (tmp_dir != dir)
+ free (tmp_dir);
+
+ return ret_val;
+}
-/* Copyright (C) 1998-1999, 2001, 2005-2007, 2009-2017 Free Software
+/* Copyright (C) 1998-1999, 2001, 2005-2007, 2009-2018 Free Software
Foundation, Inc.
This file is derived from the one in the GNU C Library.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#if !_LIBC
# include <config.h>
/* mktime variant that also uses an offset guess
- Copyright 2016-2017 Free Software Foundation, Inc.
+ Copyright 2016-2018 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
You should have received a copy of the GNU General Public
License along with this program; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
time_t mktime_internal (struct tm *,
struct tm * (*) (time_t const *, struct tm *),
mktime_offset_t *);
+
+/* Although glibc source code uses leading underscores, Gnulib wants
+ ordinary names.
+
+ Portable standalone applications should supply a <time.h> that
+ declares a POSIX-compliant localtime_r, for the benefit of older
+ implementations that lack localtime_r or have a nonstandard one.
+ Similarly for gmtime_r. See the gnulib time_r module for one way
+ to implement this. */
+
+#undef __gmtime_r
+#undef __localtime_r
+#define __gmtime_r gmtime_r
+#define __localtime_r localtime_r
+
+#define __mktime_internal mktime_internal
/* Convert a 'struct tm' to a time_t value.
- Copyright (C) 1993-2017 Free Software Foundation, Inc.
+ Copyright (C) 1993-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Eggert <eggert@twinsun.com>.
You should have received a copy of the GNU General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* Define this to 1 to have a standalone program to test this implementation of
- mktime. */
-#ifndef DEBUG_MKTIME
-# define DEBUG_MKTIME 0
-#endif
+ <https://www.gnu.org/licenses/>. */
/* The following macros influence what gets defined when this file is compiled:
Macro/expression Which gnulib module This compilation unit
should define
+ _LIBC (glibc proper) mktime
+
NEED_MKTIME_WORKING mktime rpl_mktime
|| NEED_MKTIME_WINDOWS
NEED_MKTIME_INTERNAL mktime-internal mktime_internal
-
- DEBUG_MKTIME (defined manually) my_mktime, main
*/
-#if !defined _LIBC && !DEBUG_MKTIME
-# include <config.h>
+#ifndef _LIBC
+# include <libc-config.h>
#endif
/* Assume that leap seconds are possible, unless told otherwise.
#include <time.h>
+#include <errno.h>
#include <limits.h>
#include <stdbool.h>
+#include <stdlib.h>
+#include <string.h>
#include <intprops.h>
#include <verify.h>
-#if DEBUG_MKTIME
-# include <stdio.h>
-# include <stdlib.h>
-# include <string.h>
-/* Make it work even if the system's libc has its own mktime routine. */
-# undef mktime
-# define mktime my_mktime
+#ifndef NEED_MKTIME_INTERNAL
+# define NEED_MKTIME_INTERNAL 0
+#endif
+#ifndef NEED_MKTIME_WINDOWS
+# define NEED_MKTIME_WINDOWS 0
+#endif
+#ifndef NEED_MKTIME_WORKING
+# define NEED_MKTIME_WORKING 0
#endif
-#if NEED_MKTIME_WINDOWS /* on native Windows */
-# include <stdlib.h>
-# include <string.h>
+#include "mktime-internal.h"
+
+#if !defined _LIBC && (NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS)
+static void
+my_tzset (void)
+{
+# if NEED_MKTIME_WINDOWS
+ /* Rectify the value of the environment variable TZ.
+ There are four possible kinds of such values:
+ - Traditional US time zone names, e.g. "PST8PDT". Syntax: see
+ <https://msdn.microsoft.com/en-us/library/90s5c885.aspx>
+ - Time zone names based on geography, that contain one or more
+ slashes, e.g. "Europe/Moscow".
+ - Time zone names based on geography, without slashes, e.g.
+ "Singapore".
+ - Time zone names that contain explicit DST rules. Syntax: see
+ <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03>
+ The Microsoft CRT understands only the first kind. It produces incorrect
+ results if the value of TZ is of the other kinds.
+ But in a Cygwin environment, /etc/profile.d/tzset.sh sets TZ to a value
+ of the second kind for most geographies, or of the first kind in a few
+ other geographies. If it is of the second kind, neutralize it. For the
+ Microsoft CRT, an absent or empty TZ means the time zone that the user
+ has set in the Windows Control Panel.
+ If the value of TZ is of the third or fourth kind -- Cygwin programs
+ understand these syntaxes as well --, it does not matter whether we
+ neutralize it or not, since these values occur only when a Cygwin user
+ has set TZ explicitly; this case is 1. rare and 2. under the user's
+ responsibility. */
+ const char *tz = getenv ("TZ");
+ if (tz != NULL && strchr (tz, '/') != NULL)
+ _putenv ("TZ=");
+# elif HAVE_TZSET
+ tzset ();
+# endif
+}
+# undef __tzset
+# define __tzset() my_tzset ()
#endif
-#if NEED_MKTIME_WORKING || NEED_MKTIME_INTERNAL || DEBUG_MKTIME
+#if defined _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_INTERNAL
/* A signed type that can represent an integer number of years
- multiplied by three times the number of seconds in a year. It is
+ multiplied by four times the number of seconds in a year. It is
needed when converting a tm_year value times the number of seconds
- in a year. The factor of three comes because these products need
+ in a year. The factor of four comes because these products need
to be subtracted from each other, and sometimes with an offset
- added to them, without worrying about overflow.
+ added to them, and then with another timestamp added, without
+ worrying about overflow.
Much of the code uses long_int to represent time_t values, to
lessen the hassle of dealing with platforms where time_t is
time_t values that mktime can generate even on platforms where
time_t is excessively wide. */
-#if INT_MAX <= LONG_MAX / 3 / 366 / 24 / 60 / 60
+#if INT_MAX <= LONG_MAX / 4 / 366 / 24 / 60 / 60
typedef long int long_int;
#else
typedef long long int long_int;
#endif
-verify (INT_MAX <= TYPE_MAXIMUM (long_int) / 3 / 366 / 24 / 60 / 60);
+verify (INT_MAX <= TYPE_MAXIMUM (long_int) / 4 / 366 / 24 / 60 / 60);
/* Shift A right by B bits portably, by dividing A by 2**B and
truncating towards minus infinity. B should be in the range 0 <= B
};
-#ifdef _LIBC
-typedef time_t mktime_offset_t;
-#else
-/* Portable standalone applications should supply a <time.h> that
- declares a POSIX-compliant localtime_r, for the benefit of older
- implementations that lack localtime_r or have a nonstandard one.
- See the gnulib time_r module for one way to implement this. */
-# undef __localtime_r
-# define __localtime_r localtime_r
-# define __mktime_internal mktime_internal
-# include "mktime-internal.h"
-#endif
-
/* Do the values A and B differ according to the rules for tm_isdst?
A and B differ if one is zero and the other positive. */
static bool
were not adjusted between the timestamps.
The YEAR values uses the same numbering as TP->tm_year. Values
- need not be in the usual range. However, YEAR1 must not overflow
- when multiplied by three times the number of seconds in a year, and
- likewise for YDAY1 and three times the number of seconds in a day. */
+ need not be in the usual range. However, YEAR1 - YEAR0 must not
+ overflow even when multiplied by three times the number of seconds
+ in a year, and likewise for YDAY1 - YDAY0 and three times the
+ number of seconds in a day. */
static long_int
ydhms_diff (long_int year1, long_int yday1, int hour1, int min1, int sec1,
return shr (a, 1) + shr (b, 1) + ((a | b) & 1);
}
-/* Return a time_t value corresponding to (YEAR-YDAY HOUR:MIN:SEC),
- assuming that T corresponds to *TP and that no clock adjustments
- occurred between *TP and the desired time.
- Although T and the returned value are of type long_int,
- they represent time_t values and must be in time_t range.
- If TP is null, return a value not equal to T; this avoids false matches.
+/* Return a long_int value corresponding to (YEAR-YDAY HOUR:MIN:SEC)
+ minus *TP seconds, assuming no clock adjustments occurred between
+ the two timestamps.
+
YEAR and YDAY must not be so large that multiplying them by three times the
number of seconds in a year (or day, respectively) would overflow long_int.
- If the returned value would be out of range, yield the minimal or
- maximal in-range value, except do not yield a value equal to T. */
+ *TP should be in the usual range. */
static long_int
-guess_time_tm (long_int year, long_int yday, int hour, int min, int sec,
- long_int t, const struct tm *tp)
+tm_diff (long_int year, long_int yday, int hour, int min, int sec,
+ struct tm const *tp)
{
- if (tp)
- {
- long_int result;
- long_int d = ydhms_diff (year, yday, hour, min, sec,
- tp->tm_year, tp->tm_yday,
- tp->tm_hour, tp->tm_min, tp->tm_sec);
- if (! INT_ADD_WRAPV (t, d, &result))
- return result;
- }
-
- /* Overflow occurred one way or another. Return the nearest result
- that is actually in range, except don't report a zero difference
- if the actual difference is nonzero, as that would cause a false
- match; and don't oscillate between two values, as that would
- confuse the spring-forward gap detector. */
- return (t < long_int_avg (mktime_min, mktime_max)
- ? (t <= mktime_min + 1 ? t + 1 : mktime_min)
- : (mktime_max - 1 <= t ? t - 1 : mktime_max));
+ return ydhms_diff (year, yday, hour, min, sec,
+ tp->tm_year, tp->tm_yday,
+ tp->tm_hour, tp->tm_min, tp->tm_sec);
}
/* Use CONVERT to convert T to a struct tm value in *TM. T must be in
- range for time_t. Return TM if successful, NULL if T is out of
- range for CONVERT. */
+ range for time_t. Return TM if successful, NULL (setting errno) on
+ failure. */
static struct tm *
convert_time (struct tm *(*convert) (const time_t *, struct tm *),
long_int t, struct tm *tm)
/* Use CONVERT to convert *T to a broken down time in *TP.
If *T is out of range for conversion, adjust it so that
it is the nearest in-range value and then convert that.
- A value is in range if it fits in both time_t and long_int. */
+ A value is in range if it fits in both time_t and long_int.
+ Return TP on success, NULL (setting errno) on failure. */
static struct tm *
ranged_convert (struct tm *(*convert) (const time_t *, struct tm *),
long_int *t, struct tm *tp)
{
- struct tm *r;
- if (*t < mktime_min)
- *t = mktime_min;
- else if (mktime_max < *t)
- *t = mktime_max;
- r = convert_time (convert, *t, tp);
-
- if (!r && *t)
+ long_int t1 = (*t < mktime_min ? mktime_min
+ : *t <= mktime_max ? *t : mktime_max);
+ struct tm *r = convert_time (convert, t1, tp);
+ if (r)
{
- long_int bad = *t;
- long_int ok = 0;
+ *t = t1;
+ return r;
+ }
+ if (errno != EOVERFLOW)
+ return NULL;
- /* BAD is a known unconvertible value, and OK is a known good one.
- Use binary search to narrow the range between BAD and OK until
- they differ by 1. */
- while (true)
- {
- long_int mid = long_int_avg (ok, bad);
- if (mid != ok && mid != bad)
- break;
- r = convert_time (convert, mid, tp);
- if (r)
- ok = mid;
- else
- bad = mid;
- }
+ long_int bad = t1;
+ long_int ok = 0;
+ struct tm oktm; oktm.tm_sec = -1;
- if (!r && ok)
- {
- /* The last conversion attempt failed;
- revert to the most recent successful attempt. */
- r = convert_time (convert, ok, tp);
- }
+ /* BAD is a known out-of-range value, and OK is a known in-range one.
+ Use binary search to narrow the range between BAD and OK until
+ they differ by 1. */
+ while (true)
+ {
+ long_int mid = long_int_avg (ok, bad);
+ if (mid == ok || mid == bad)
+ break;
+ if (convert_time (convert, mid, tp))
+ ok = mid, oktm = *tp;
+ else if (errno != EOVERFLOW)
+ return NULL;
+ else
+ bad = mid;
}
- return r;
+ if (oktm.tm_sec < 0)
+ return NULL;
+ *t = ok;
+ *tp = oktm;
+ return tp;
}
+
/* Convert *TP to a time_t value, inverting
the monotonic and mostly-unit-linear conversion function CONVERT.
Use *OFFSET to keep track of a guess at the offset of the result,
compared to what the result would be for UTC without leap seconds.
If *OFFSET's guess is correct, only one CONVERT call is needed.
+ If successful, set *TP to the canonicalized struct tm;
+ otherwise leave *TP alone, return ((time_t) -1) and set errno.
This function is external because it is used also by timegm.c. */
time_t
__mktime_internal (struct tm *tp,
struct tm *(*convert) (const time_t *, struct tm *),
mktime_offset_t *offset)
{
- long_int t, gt, t0, t1, t2, dt;
struct tm tm;
/* The maximum number of probes (calls to CONVERT) should be enough
int isdst = tp->tm_isdst;
/* 1 if the previous probe was DST. */
- int dst2;
+ int dst2 = 0;
/* Ensure that mon is in range, and set year accordingly. */
int mon_remainder = mon % 12;
long_int lmday = mday;
long_int yday = mon_yday + lmday;
+ mktime_offset_t off = *offset;
int negative_offset_guess;
int sec_requested = sec;
if (LEAP_SECONDS_POSSIBLE)
{
/* Handle out-of-range seconds specially,
- since ydhms_tm_diff assumes every minute has 60 seconds. */
+ since ydhms_diff assumes every minute has 60 seconds. */
if (sec < 0)
sec = 0;
if (59 < sec)
/* Invert CONVERT by probing. First assume the same offset as last
time. */
- INT_SUBTRACT_WRAPV (0, *offset, &negative_offset_guess);
- t0 = ydhms_diff (year, yday, hour, min, sec,
- EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0, negative_offset_guess);
+ INT_SUBTRACT_WRAPV (0, off, &negative_offset_guess);
+ long_int t0 = ydhms_diff (year, yday, hour, min, sec,
+ EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0,
+ negative_offset_guess);
+ long_int t = t0, t1 = t0, t2 = t0;
/* Repeatedly use the error to improve the guess. */
- for (t = t1 = t2 = t0, dst2 = 0;
- (gt = guess_time_tm (year, yday, hour, min, sec, t,
- ranged_convert (convert, &t, &tm)),
- t != gt);
- t1 = t2, t2 = t, t = gt, dst2 = tm.tm_isdst != 0)
- if (t == t1 && t != t2
- && (tm.tm_isdst < 0
- || (isdst < 0
- ? dst2 <= (tm.tm_isdst != 0)
- : (isdst != 0) != (tm.tm_isdst != 0))))
- /* We can't possibly find a match, as we are oscillating
- between two values. The requested time probably falls
- within a spring-forward gap of size GT - T. Follow the common
- practice in this case, which is to return a time that is GT - T
- away from the requested time, preferring a time whose
- tm_isdst differs from the requested value. (If no tm_isdst
- was requested and only one of the two values has a nonzero
- tm_isdst, prefer that value.) In practice, this is more
- useful than returning -1. */
- goto offset_found;
- else if (--remaining_probes == 0)
- return -1;
+ while (true)
+ {
+ if (! ranged_convert (convert, &t, &tm))
+ return -1;
+ long_int dt = tm_diff (year, yday, hour, min, sec, &tm);
+ if (dt == 0)
+ break;
+
+ if (t == t1 && t != t2
+ && (tm.tm_isdst < 0
+ || (isdst < 0
+ ? dst2 <= (tm.tm_isdst != 0)
+ : (isdst != 0) != (tm.tm_isdst != 0))))
+ /* We can't possibly find a match, as we are oscillating
+ between two values. The requested time probably falls
+ within a spring-forward gap of size DT. Follow the common
+ practice in this case, which is to return a time that is DT
+ away from the requested time, preferring a time whose
+ tm_isdst differs from the requested value. (If no tm_isdst
+ was requested and only one of the two values has a nonzero
+ tm_isdst, prefer that value.) In practice, this is more
+ useful than returning -1. */
+ goto offset_found;
+
+ remaining_probes--;
+ if (remaining_probes == 0)
+ {
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
+
+ t1 = t2, t2 = t, t += dt, dst2 = tm.tm_isdst != 0;
+ }
/* We have a match. Check whether tm.tm_isdst has the requested
value, if any. */
if (! INT_ADD_WRAPV (t, delta * direction, &ot))
{
struct tm otm;
- ranged_convert (convert, &ot, &otm);
+ if (! ranged_convert (convert, &ot, &otm))
+ return -1;
if (! isdst_differ (isdst, otm.tm_isdst))
{
/* We found the desired tm_isdst.
Extrapolate back to the desired time. */
- t = guess_time_tm (year, yday, hour, min, sec, ot, &otm);
- ranged_convert (convert, &t, &tm);
- goto offset_found;
+ long_int gt = ot + tm_diff (year, yday, hour, min, sec,
+ &otm);
+ if (mktime_min <= gt && gt <= mktime_max)
+ {
+ if (convert_time (convert, gt, &tm))
+ {
+ t = gt;
+ goto offset_found;
+ }
+ if (errno != EOVERFLOW)
+ return -1;
+ }
}
}
}
+
+ __set_errno (EOVERFLOW);
+ return -1;
}
offset_found:
/* Set *OFFSET to the low-order bits of T - T0 - NEGATIVE_OFFSET_GUESS.
This is just a heuristic to speed up the next mktime call, and
correctness is unaffected if integer overflow occurs here. */
- INT_SUBTRACT_WRAPV (t, t0, &dt);
- INT_SUBTRACT_WRAPV (dt, negative_offset_guess, offset);
+ INT_SUBTRACT_WRAPV (t, t0, offset);
+ INT_SUBTRACT_WRAPV (*offset, negative_offset_guess, offset);
if (LEAP_SECONDS_POSSIBLE && sec_requested != tm.tm_sec)
{
sec_adjustment -= sec;
sec_adjustment += sec_requested;
if (INT_ADD_WRAPV (t, sec_adjustment, &t)
- || ! (mktime_min <= t && t <= mktime_max)
- || ! convert_time (convert, t, &tm))
+ || ! (mktime_min <= t && t <= mktime_max))
+ {
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
+ if (! convert_time (convert, t, &tm))
return -1;
}
return t;
}
-#endif /* NEED_MKTIME_WORKING || NEED_MKTIME_INTERNAL || DEBUG_MKTIME */
+#endif /* _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_INTERNAL */
-#if NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS || DEBUG_MKTIME
-
-# if NEED_MKTIME_WORKING || DEBUG_MKTIME
-static mktime_offset_t localtime_offset;
-# endif
+#if defined _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS
/* Convert *TP to a time_t value. */
time_t
mktime (struct tm *tp)
{
-# if NEED_MKTIME_WINDOWS
- /* Rectify the value of the environment variable TZ.
- There are four possible kinds of such values:
- - Traditional US time zone names, e.g. "PST8PDT". Syntax: see
- <https://msdn.microsoft.com/en-us/library/90s5c885.aspx>
- - Time zone names based on geography, that contain one or more
- slashes, e.g. "Europe/Moscow".
- - Time zone names based on geography, without slashes, e.g.
- "Singapore".
- - Time zone names that contain explicit DST rules. Syntax: see
- <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03>
- The Microsoft CRT understands only the first kind. It produces incorrect
- results if the value of TZ is of the other kinds.
- But in a Cygwin environment, /etc/profile.d/tzset.sh sets TZ to a value
- of the second kind for most geographies, or of the first kind in a few
- other geographies. If it is of the second kind, neutralize it. For the
- Microsoft CRT, an absent or empty TZ means the time zone that the user
- has set in the Windows Control Panel.
- If the value of TZ is of the third or fourth kind -- Cygwin programs
- understand these syntaxes as well --, it does not matter whether we
- neutralize it or not, since these values occur only when a Cygwin user
- has set TZ explicitly; this case is 1. rare and 2. under the user's
- responsibility. */
- const char *tz = getenv ("TZ");
- if (tz != NULL && strchr (tz, '/') != NULL)
- _putenv ("TZ=");
-# endif
-
-# if NEED_MKTIME_WORKING || DEBUG_MKTIME
-# ifdef _LIBC
/* POSIX.1 8.1.1 requires that whenever mktime() is called, the
time zone names contained in the external variable 'tzname' shall
be set as if the tzset() function had been called. */
__tzset ();
-# elif HAVE_TZSET
- tzset ();
-# endif
+# if defined _LIBC || NEED_MKTIME_WORKING
+ static mktime_offset_t localtime_offset;
return __mktime_internal (tp, __localtime_r, &localtime_offset);
# else
# undef mktime
return mktime (tp);
# endif
}
-
-#endif /* NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS || DEBUG_MKTIME */
+#endif /* _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS */
#ifdef weak_alias
weak_alias (mktime, timelocal)
libc_hidden_def (mktime)
libc_hidden_weak (timelocal)
#endif
-\f
-#if DEBUG_MKTIME
-
-static int
-not_equal_tm (const struct tm *a, const struct tm *b)
-{
- return ((a->tm_sec ^ b->tm_sec)
- | (a->tm_min ^ b->tm_min)
- | (a->tm_hour ^ b->tm_hour)
- | (a->tm_mday ^ b->tm_mday)
- | (a->tm_mon ^ b->tm_mon)
- | (a->tm_year ^ b->tm_year)
- | (a->tm_yday ^ b->tm_yday)
- | isdst_differ (a->tm_isdst, b->tm_isdst));
-}
-
-static void
-print_tm (const struct tm *tp)
-{
- if (tp)
- printf ("%04d-%02d-%02d %02d:%02d:%02d yday %03d wday %d isdst %d",
- tp->tm_year + TM_YEAR_BASE, tp->tm_mon + 1, tp->tm_mday,
- tp->tm_hour, tp->tm_min, tp->tm_sec,
- tp->tm_yday, tp->tm_wday, tp->tm_isdst);
- else
- printf ("0");
-}
-
-static int
-check_result (time_t tk, struct tm tmk, time_t tl, const struct tm *lt)
-{
- if (tk != tl || !lt || not_equal_tm (&tmk, lt))
- {
- printf ("mktime (");
- print_tm (lt);
- printf (")\nyields (");
- print_tm (&tmk);
- printf (") == %ld, should be %ld\n", (long int) tk, (long int) tl);
- return 1;
- }
-
- return 0;
-}
-
-int
-main (int argc, char **argv)
-{
- int status = 0;
- struct tm tm, tmk, tml;
- struct tm *lt;
- time_t tk, tl, tl1;
- char trailer;
-
- /* Sanity check, plus call tzset. */
- tl = 0;
- if (! localtime (&tl))
- {
- printf ("localtime (0) fails\n");
- status = 1;
- }
-
- if ((argc == 3 || argc == 4)
- && (sscanf (argv[1], "%d-%d-%d%c",
- &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &trailer)
- == 3)
- && (sscanf (argv[2], "%d:%d:%d%c",
- &tm.tm_hour, &tm.tm_min, &tm.tm_sec, &trailer)
- == 3))
- {
- tm.tm_year -= TM_YEAR_BASE;
- tm.tm_mon--;
- tm.tm_isdst = argc == 3 ? -1 : atoi (argv[3]);
- tmk = tm;
- tl = mktime (&tmk);
- lt = localtime_r (&tl, &tml);
- printf ("mktime returns %ld == ", (long int) tl);
- print_tm (&tmk);
- printf ("\n");
- status = check_result (tl, tmk, tl, lt);
- }
- else if (argc == 4 || (argc == 5 && strcmp (argv[4], "-") == 0))
- {
- time_t from = atol (argv[1]);
- time_t by = atol (argv[2]);
- time_t to = atol (argv[3]);
-
- if (argc == 4)
- for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1)
- {
- lt = localtime_r (&tl, &tml);
- if (lt)
- {
- tmk = tml;
- tk = mktime (&tmk);
- status |= check_result (tk, tmk, tl, &tml);
- }
- else
- {
- printf ("localtime_r (%ld) yields 0\n", (long int) tl);
- status = 1;
- }
- tl1 = tl + by;
- if ((tl1 < tl) != (by < 0))
- break;
- }
- else
- for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1)
- {
- /* Null benchmark. */
- lt = localtime_r (&tl, &tml);
- if (lt)
- {
- tmk = tml;
- tk = tl;
- status |= check_result (tk, tmk, tl, &tml);
- }
- else
- {
- printf ("localtime_r (%ld) yields 0\n", (long int) tl);
- status = 1;
- }
- tl1 = tl + by;
- if ((tl1 < tl) != (by < 0))
- break;
- }
- }
- else
- printf ("Usage:\
-\t%s YYYY-MM-DD HH:MM:SS [ISDST] # Test given time.\n\
-\t%s FROM BY TO # Test values FROM, FROM+BY, ..., TO.\n\
-\t%s FROM BY TO - # Do not test those values (for benchmark).\n",
- argv[0], argv[0], argv[0]);
-
- return status;
-}
-
-#endif /* DEBUG_MKTIME */
-\f
-/*
-Local Variables:
-compile-command: "gcc -DDEBUG_MKTIME -I. -Wall -W -O2 -g mktime.c -o mktime"
-End:
-*/
/* Invalid parameter handler for MSVC runtime libraries.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Invalid parameter handler for MSVC runtime libraries.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _MSVC_INVAL_H
#define _MSVC_INVAL_H
/* Gnulib can define its own status codes, as described in the page
"Raising Software Exceptions" on microsoft.com
- <http://msdn.microsoft.com/en-us/library/het71c37.aspx>.
+ <https://msdn.microsoft.com/en-us/library/het71c37.aspx>.
Our status codes are composed of
- 0xE0000000, mandatory for all user-defined status codes,
- 0x474E550, a API identifier ("GNU"),
# if defined _MSC_VER
/* A compiler that supports __try/__except, as described in the page
"try-except statement" on microsoft.com
- <http://msdn.microsoft.com/en-us/library/s58ftw19.aspx>.
+ <https://msdn.microsoft.com/en-us/library/s58ftw19.aspx>.
With __try/__except, we can use the multithread-safe exception handling. */
# ifdef __cplusplus
/* Wrappers that don't throw invalid parameter notifications
with MSVC runtime libraries.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Wrappers that don't throw invalid parameter notifications
with MSVC runtime libraries.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _MSVC_NOTHROW_H
#define _MSVC_NOTHROW_H
This file defines wrappers that turn such an invalid parameter notification
into an error code. */
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
/* Get original declaration of _get_osfhandle. */
# include <io.h>
/* nl_langinfo() replacement: query locale dependent information.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
#include <locale.h>
#include <string.h>
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
# define WIN32_LEAN_AND_MEAN /* avoid including junk */
# include <windows.h>
# include <stdio.h>
#endif
+#if !REPLACE_NL_LANGINFO || GNULIB_defined_CODESET
/* Return the codeset of the current locale, if this is easily deducible.
Otherwise, return "". */
static char *
}
}
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
/* If setlocale is successful, it returns the number of the
codepage, as a string. Otherwise, fall back on Windows API
GetACP, which returns the locale's codepage as a number (although
else
sprintf (buf + 2, "%u", GetACP ());
codeset = memcpy (buf, "CP", 2);
-#endif
+# endif
return codeset;
}
+#endif
#if REPLACE_NL_LANGINFO
case T_FMT_AMPM:
return (char *) "%I:%M:%S %p";
# endif
+# if GNULIB_defined_ALTMON
+ case ALTMON_1:
+ case ALTMON_2:
+ case ALTMON_3:
+ case ALTMON_4:
+ case ALTMON_5:
+ case ALTMON_6:
+ case ALTMON_7:
+ case ALTMON_8:
+ case ALTMON_9:
+ case ALTMON_10:
+ case ALTMON_11:
+ case ALTMON_12:
+ /* We don't ship the appropriate localizations with gnulib. Therefore,
+ treat ALTMON_i like MON_i. */
+ item = item - ALTMON_1 + MON_1;
+ break;
+# endif
# if GNULIB_defined_ERA
case ERA:
/* The format is not standardized. In glibc it is a sequence of strings
return localeconv () ->decimal_point;
case THOUSEP:
return localeconv () ->thousands_sep;
+# ifdef GROUPING
case GROUPING:
return localeconv () ->grouping;
+# endif
/* nl_langinfo items of the LC_TIME category.
TODO: Really use the locale. */
case D_T_FMT:
return (char *) abdays[item - ABDAY_1];
return nlbuf;
}
- case MON_1:
- case MON_2:
- case MON_3:
- case MON_4:
- case MON_5:
- case MON_6:
- case MON_7:
- case MON_8:
- case MON_9:
- case MON_10:
- case MON_11:
- case MON_12:
- {
- static char const months[][sizeof "September"] = {
- "January", "February", "March", "April", "May", "June", "July",
- "September", "October", "November", "December"
- };
+ {
+ static char const months[][sizeof "September"] = {
+ "January", "February", "March", "April", "May", "June", "July",
+ "September", "October", "November", "December"
+ };
+ case MON_1:
+ case MON_2:
+ case MON_3:
+ case MON_4:
+ case MON_5:
+ case MON_6:
+ case MON_7:
+ case MON_8:
+ case MON_9:
+ case MON_10:
+ case MON_11:
+ case MON_12:
tmm.tm_mon = item - MON_1;
if (!strftime (nlbuf, sizeof nlbuf, "%B", &tmm))
return (char *) months[item - MON_1];
return nlbuf;
- }
+ case ALTMON_1:
+ case ALTMON_2:
+ case ALTMON_3:
+ case ALTMON_4:
+ case ALTMON_5:
+ case ALTMON_6:
+ case ALTMON_7:
+ case ALTMON_8:
+ case ALTMON_9:
+ case ALTMON_10:
+ case ALTMON_11:
+ case ALTMON_12:
+ tmm.tm_mon = item - ALTMON_1;
+ /* The platforms without nl_langinfo() don't support strftime with %OB.
+ We don't even need to try. */
+ #if 0
+ if (!strftime (nlbuf, sizeof nlbuf, "%OB", &tmm))
+ #endif
+ if (!strftime (nlbuf, sizeof nlbuf, "%B", &tmm))
+ return (char *) months[item - ALTMON_1];
+ return nlbuf;
+ }
case ABMON_1:
case ABMON_2:
case ABMON_3:
/* nl_langinfo items of the LC_MONETARY category. */
case CRNCYSTR:
return localeconv () ->currency_symbol;
+# ifdef INT_CURR_SYMBOL
case INT_CURR_SYMBOL:
return localeconv () ->int_curr_symbol;
case MON_DECIMAL_POINT:
return & localeconv () ->p_sign_posn;
case N_SIGN_POSN:
return & localeconv () ->n_sign_posn;
+# endif
/* nl_langinfo items of the LC_MESSAGES category
TODO: Really use the locale. */
case YESEXPR:
-/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2018 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
You should have received a copy of the GNU General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef _LIBC
# define USE_IN_EXTENDED_LOCALE_MODEL 1
# define UCHAR_T unsigned char
# define L_(Str) Str
# define NLW(Sym) Sym
+# define ABALTMON_1 _NL_ABALTMON_1
# define MEMCPY(d, s, n) memcpy (d, s, n)
# define STRLEN(s) strlen (s)
# undef _NL_CURRENT
# define _NL_CURRENT(category, item) \
(current->values[_NL_ITEM_INDEX (item)].string)
-# define LOCALE_PARAM , __locale_t loc
+# define LOCALE_PARAM , locale_t loc
# define LOCALE_ARG , loc
# define HELPER_LOCALE_ARG , current
#else
# define f_month \
((const CHAR_T *) (tp->tm_mon < 0 || tp->tm_mon > 11 \
? "?" : _NL_CURRENT (LC_TIME, NLW(MON_1) + tp->tm_mon)))
+# define a_altmonth \
+ ((const CHAR_T *) (tp->tm_mon < 0 || tp->tm_mon > 11 \
+ ? "?" : _NL_CURRENT (LC_TIME, NLW(ABALTMON_1) + tp->tm_mon)))
+# define f_altmonth \
+ ((const CHAR_T *) (tp->tm_mon < 0 || tp->tm_mon > 11 \
+ ? "?" : _NL_CURRENT (LC_TIME, NLW(ALTMON_1) + tp->tm_mon)))
# define ampm \
((const CHAR_T *) _NL_CURRENT (LC_TIME, tp->tm_hour > 11 \
? NLW(PM_STR) : NLW(AM_STR)))
# define aw_len STRLEN (a_wkday)
# define am_len STRLEN (a_month)
+# define aam_len STRLEN (a_altmonth)
# define ap_len STRLEN (ampm)
#endif
#if HAVE_TZNAME
to_uppcase = true;
to_lowcase = false;
}
- if (modifier != 0)
+ if (modifier == L_('E'))
goto bad_format;
#ifdef _NL_CURRENT
- cpy (am_len, a_month);
+ if (modifier == L_('O'))
+ cpy (aam_len, a_altmonth);
+ else
+ cpy (am_len, a_month);
break;
#else
goto underlying_strftime;
#endif
case L_('B'):
- if (modifier != 0)
+ if (modifier == L_('E'))
goto bad_format;
if (change_case)
{
to_lowcase = false;
}
#ifdef _NL_CURRENT
- cpy (STRLEN (f_month), f_month);
+ if (modifier == L_('O'))
+ cpy (STRLEN (f_altmonth), f_altmonth);
+ else
+ cpy (STRLEN (f_month), f_month);
break;
#else
goto underlying_strftime;
# endif
ltm = *tp;
+ ltm.tm_wday = -1;
lt = mktime_z (tz, <m);
-
- if (lt == (time_t) -1)
- {
- /* mktime returns -1 for errors, but -1 is also a
- valid time_t value. Check whether an error really
- occurred. */
- struct tm tm;
-
- if (! localtime_rz (tz, <, &tm)
- || ((ltm.tm_sec ^ tm.tm_sec)
- | (ltm.tm_min ^ tm.tm_min)
- | (ltm.tm_hour ^ tm.tm_hour)
- | (ltm.tm_mday ^ tm.tm_mday)
- | (ltm.tm_mon ^ tm.tm_mon)
- | (ltm.tm_year ^ tm.tm_year)))
- break;
- }
-
- if (! localtime_rz (0, <, >m))
+ if (ltm.tm_wday < 0 || ! localtime_rz (0, <, >m))
break;
-
diff = tm_diff (<m, >m);
}
#endif
/* Open a descriptor to a file.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
this include because of the preliminary #include <fcntl.h> above. */
#include "fcntl.h"
+#include "cloexec.h"
+
#include <errno.h>
#include <stdarg.h>
#include <string.h>
int
open (const char *filename, int flags, ...)
{
+ /* 0 = unknown, 1 = yes, -1 = no. */
+#if GNULIB_defined_O_CLOEXEC
+ int have_cloexec = -1;
+#else
+ static int have_cloexec;
+#endif
+
mode_t mode;
int fd;
flags &= ~O_NONBLOCK;
#endif
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
if (strcmp (filename, "/dev/null") == 0)
filename = "NUL";
#endif
}
#endif
- fd = orig_open (filename, flags, mode);
+ fd = orig_open (filename,
+ flags & ~(have_cloexec <= 0 ? O_CLOEXEC : 0), mode);
+
+ if (flags & O_CLOEXEC)
+ {
+ if (! have_cloexec)
+ {
+ if (0 <= fd)
+ have_cloexec = 1;
+ else if (errno == EINVAL)
+ {
+ fd = orig_open (filename, flags & ~O_CLOEXEC, mode);
+ have_cloexec = -1;
+ }
+ }
+ if (have_cloexec < 0 && 0 <= fd)
+ set_cloexec_flag (fd, true);
+ }
+
#if REPLACE_FCHDIR
/* Implementing fchdir and fdopendir requires the ability to open a
/* Define PATH_MAX somehow. Requires sys/types.h.
- Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2017 Free Software
+ Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2018 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _PATHMAX_H
# define _PATHMAX_H
# define PATH_MAX 1024
# endif
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
/* The page "Naming Files, Paths, and Namespaces" on msdn.microsoft.com,
section "Maximum Path Length Limitation",
- <http://msdn.microsoft.com/en-us/library/aa365247(v=vs.85).aspx#maxpath>
+ <https://msdn.microsoft.com/en-us/library/aa365247.aspx#maxpath>
explains that the maximum size of a filename, including the terminating
NUL byte, is 260 = 3 + 256 + 1.
This is the same value as
/* Parse arguments from a string and prepend them to an argv.
- Copyright (C) 1999-2002, 2006, 2009-2013, 2015-2017 Free Software
+ Copyright (C) 1999-2002, 2006, 2009-2013, 2015-2018 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
/* Decomposed printf argument list.
- Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2017 Free Software
+ Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2018 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
/* This file can be parametrized with the following macros:
ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions.
/* Decomposed printf argument list.
- Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2017 Free Software
+ Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2018 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _PRINTF_ARGS_H
#define _PRINTF_ARGS_H
/* Formatted output to strings.
- Copyright (C) 1999-2000, 2002-2003, 2006-2017 Free Software Foundation, Inc.
+ Copyright (C) 1999-2000, 2002-2003, 2006-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
/* This file can be parametrized with the following macros:
CHAR_T The element type of the format string.
cp++;
}
#endif
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
/* On native Windows, PRIdMAX is defined as "I64d".
We cannot change it to "lld" because PRIdMAX must also
be understood by the system's printf routines. */
/* Parse printf format string.
- Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2017 Free Software
+ Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2018 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _PRINTF_PARSE_H
#define _PRINTF_PARSE_H
/* Program name management.
- Copyright (C) 2001-2003, 2005-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2005-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Program name management.
- Copyright (C) 2001-2004, 2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2004, 2006, 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _PROGNAME_H
#define _PROGNAME_H
/* Localization of proper names.
- Copyright (C) 2006-2017 Free Software Foundation, Inc.
+ Copyright (C) 2006-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2006.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Without this pragma, gcc 4.7.0 20111124 mistakenly suggests that
the proper_name function might be candidate for attribute 'const' */
/* Localization of proper names. -*- coding: utf-8 -*-
- Copyright (C) 2006, 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2008-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2006.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* INTRODUCTION
/* quote.h - prototypes for quote.c
- Copyright (C) 1998-2001, 2003, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1998-2001, 2003, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef QUOTE_H_
# define QUOTE_H_ 1
/* quotearg.c - quote arguments for output
- Copyright (C) 1998-2002, 2004-2017 Free Software Foundation, Inc.
+ Copyright (C) 1998-2002, 2004-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert <eggert@twinsun.com> */
for your locale.
If you don't know what to put here, please see
- <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+ <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
and use glyphs suitable for your language. */
left_quote = gettext_quote (N_("`"), quoting_style);
right_quote = gettext_quote (N_("'"), quoting_style);
if (quoting_style == shell_always_quoting_style
&& elide_outer_quotes)
goto force_outer_quoting_style;
+ /* fall through */
c_escape:
if (backslash_escapes)
{
if (nslots <= n)
{
bool preallocated = (sv == &slotvec0);
+ int nmax = MIN (INT_MAX, MIN (PTRDIFF_MAX, SIZE_MAX) / sizeof *sv) - 1;
- if (MIN (INT_MAX, MIN (PTRDIFF_MAX, SIZE_MAX) / sizeof *sv) <= n)
+ if (nmax < n)
xalloc_die ();
slotvec = sv = xrealloc (preallocated ? NULL : sv, (n + 1) * sizeof *sv);
{
return quote_n (0, arg);
}
+
+/*
+ * Hey Emacs!
+ * Local Variables:
+ * coding: utf-8
+ * End:
+ */
/* quotearg.h - quote arguments for output
- Copyright (C) 1998-2002, 2004, 2006, 2008-2017 Free Software Foundation,
+ Copyright (C) 1998-2002, 2004, 2006, 2008-2018 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert <eggert@twinsun.com> */
/* Provide a non-threads replacement for the POSIX raise function.
- Copyright (C) 2002-2003, 2005-2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002-2003, 2005-2006, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* written by Jim Meyering and Bruno Haible */
# include "msvc-inval.h"
# endif
-# undef raise
-
# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
-static int
-raise_nothrow (int sig)
-{
- int result;
-
- TRY_MSVC_INVAL
- {
- result = raise (sig);
- }
- CATCH_MSVC_INVAL
- {
- result = -1;
- errno = EINVAL;
- }
- DONE_MSVC_INVAL;
-
- return result;
-}
+/* Forward declaration. */
+static int raise_nothrow (int sig);
# else
# define raise_nothrow raise
# endif
# include <unistd.h>
-# define rpl_raise raise
-
#endif
int
-rpl_raise (int sig)
+raise (int sig)
+#undef raise
{
#if GNULIB_defined_signal_blocking && GNULIB_defined_SIGPIPE
if (sig == SIGPIPE)
return kill (getpid (), sig);
#endif
}
+
+#if HAVE_RAISE && HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static int
+raise_nothrow (int sig)
+{
+ int result;
+
+ TRY_MSVC_INVAL
+ {
+ result = raise (sig);
+ }
+ CATCH_MSVC_INVAL
+ {
+ result = -1;
+ errno = EINVAL;
+ }
+ DONE_MSVC_INVAL;
+
+ return result;
+}
+#endif
/* Searching in a string.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Stub for readlink().
- Copyright (C) 2003-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2003-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
+++ /dev/null
-# Add this package to a list of references stored in a text file.
-#
-# Copyright (C) 2000, 2009-2017 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, see <http://www.gnu.org/licenses/>.
-#
-# Written by Bruno Haible <haible@clisp.cons.org>.
-#
-/^# Packages using this file: / {
- s/# Packages using this file://
- ta
- :a
- s/ @PACKAGE@ / @PACKAGE@ /
- tb
- s/ $/ @PACKAGE@ /
- :b
- s/^/# Packages using this file:/
-}
+++ /dev/null
-# Remove this package from a list of references stored in a text file.
-#
-# Copyright (C) 2000, 2009-2017 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, see <http://www.gnu.org/licenses/>.
-#
-# Written by Bruno Haible <haible@clisp.cons.org>.
-#
-/^# Packages using this file: / {
- s/# Packages using this file://
- s/ @PACKAGE@ / /
- s/^/# Packages using this file:/
-}
/* Extended regular expression matching and search library.
- Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
You should have received a copy of the GNU General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef _LIBC
# include <locale/weight.h>
static Idx fetch_number (re_string_t *input, re_token_t *token,
reg_syntax_t syntax);
static int peek_token (re_token_t *token, re_string_t *input,
- reg_syntax_t syntax) internal_function;
+ reg_syntax_t syntax);
static bin_tree_t *parse (re_string_t *regexp, regex_t *preg,
reg_syntax_t syntax, reg_errcode_t *err);
static bin_tree_t *parse_reg_exp (re_string_t *regexp, regex_t *preg,
/* Try to allocate space for the fastmap. */
preg->fastmap = re_malloc (char, SBC_MAX);
- if (BE (preg->fastmap == NULL, 0))
+ if (__glibc_unlikely (preg->fastmap == NULL))
return REG_ESPACE;
syntax |= (cflags & REG_ICASE) ? RE_ICASE : 0;
ret = REG_EPAREN;
/* We have already checked preg->fastmap != NULL. */
- if (BE (ret == REG_NOERROR, 1))
+ if (__glibc_likely (ret == REG_NOERROR))
/* Compute the fastmap now, since regexec cannot modify the pattern
buffer. This function never fails in this implementation. */
(void) re_compile_fastmap (preg);
return (int) ret;
}
#ifdef _LIBC
+libc_hidden_def (__regcomp)
weak_alias (__regcomp, regcomp)
#endif
{
const char *msg;
size_t msg_size;
+ int nerrcodes = sizeof __re_error_msgid_idx / sizeof __re_error_msgid_idx[0];
- if (BE (errcode < 0
- || errcode >= (int) (sizeof (__re_error_msgid_idx)
- / sizeof (__re_error_msgid_idx[0])), 0))
+ if (__glibc_unlikely (errcode < 0 || errcode >= nerrcodes))
/* Only error codes returned by the rest of the code should be passed
to this routine. If we are given anything else, or if other regex
code generates an invalid error code, then the program has a bug.
msg_size = strlen (msg) + 1; /* Includes the null. */
- if (BE (errbuf_size != 0, 1))
+ if (__glibc_likely (errbuf_size != 0))
{
size_t cpy_size = msg_size;
- if (BE (msg_size > errbuf_size, 0))
+ if (__glibc_unlikely (msg_size > errbuf_size))
{
cpy_size = errbuf_size - 1;
errbuf[cpy_size] = '\0';
regfree (regex_t *preg)
{
re_dfa_t *dfa = preg->buffer;
- if (BE (dfa != NULL, 1))
+ if (__glibc_likely (dfa != NULL))
{
lock_fini (dfa->lock);
free_dfa_content (dfa);
preg->translate = NULL;
}
#ifdef _LIBC
+libc_hidden_def (__regfree)
weak_alias (__regfree, regfree)
#endif
\f
if (re_comp_buf.fastmap == NULL)
{
- re_comp_buf.fastmap = (char *) malloc (SBC_MAX);
+ re_comp_buf.fastmap = re_malloc (char, SBC_MAX);
if (re_comp_buf.fastmap == NULL)
return (char *) gettext (__re_error_msgid
+ __re_error_msgid_idx[(int) REG_ESPACE]);
/* Initialize the dfa. */
dfa = preg->buffer;
- if (BE (preg->allocated < sizeof (re_dfa_t), 0))
+ if (__glibc_unlikely (preg->allocated < sizeof (re_dfa_t)))
{
/* If zero allocated, but buffer is non-null, try to realloc
enough space. This loses if buffer's address is bogus, but
preg->used = sizeof (re_dfa_t);
err = init_dfa (dfa, length);
- if (BE (err == REG_NOERROR && lock_init (dfa->lock) != 0, 0))
+ if (__glibc_unlikely (err == REG_NOERROR && lock_init (dfa->lock) != 0))
err = REG_ESPACE;
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
free_dfa_content (dfa);
preg->buffer = NULL;
err = re_string_construct (®exp, pattern, length, preg->translate,
(syntax & RE_ICASE) != 0, dfa);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_compile_internal_free_return:
free_workarea_compile (preg);
/* Parse the regular expression, and build a structure tree. */
preg->re_nsub = 0;
dfa->str_tree = parse (®exp, preg, syntax, &err);
- if (BE (dfa->str_tree == NULL, 0))
+ if (__glibc_unlikely (dfa->str_tree == NULL))
goto re_compile_internal_free_return;
/* Analyze the tree and create the nfa. */
err = analyze (preg);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto re_compile_internal_free_return;
#ifdef RE_ENABLE_I18N
free_workarea_compile (preg);
re_string_destruct (®exp);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
lock_fini (dfa->lock);
free_dfa_content (dfa);
calculation below, and for similar doubling calculations
elsewhere. And it's <= rather than <, because some of the
doubling calculations add 1 afterwards. */
- if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) / 2 <= pat_len, 0))
+ if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size) / 2
+ <= pat_len))
return REG_ESPACE;
dfa->nodes_alloc = pat_len + 1;
int i, j, ch;
dfa->sb_char = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
- if (BE (dfa->sb_char == NULL, 0))
+ if (__glibc_unlikely (dfa->sb_char == NULL))
return REG_ESPACE;
/* Set the bits corresponding to single byte chars. */
}
#endif
- if (BE (dfa->nodes == NULL || dfa->state_table == NULL, 0))
+ if (__glibc_unlikely (dfa->nodes == NULL || dfa->state_table == NULL))
return REG_ESPACE;
return REG_NOERROR;
}
character used by some operators like "\<", "\>", etc. */
static void
-internal_function
init_word_char (re_dfa_t *dfa)
{
int i = 0;
int j;
int ch = 0;
dfa->word_ops_used = 1;
- if (BE (dfa->map_notascii == 0, 1))
+ if (__glibc_likely (dfa->map_notascii == 0))
{
+ /* Avoid uint32_t and uint64_t as some non-GCC platforms lack
+ them, an issue when this code is used in Gnulib. */
bitset_word_t bits0 = 0x00000000;
bitset_word_t bits1 = 0x03ff0000;
bitset_word_t bits2 = 0x87fffffe;
bitset_word_t bits3 = 0x07fffffe;
if (BITSET_WORD_BITS == 64)
{
+ /* Pacify gcc -Woverflow on 32-bit platformns. */
dfa->word_char[0] = bits1 << 31 << 1 | bits0;
dfa->word_char[1] = bits3 << 31 << 1 | bits2;
i = 2;
goto general_case;
ch = 128;
- if (BE (dfa->is_utf8, 1))
+ if (__glibc_likely (dfa->is_utf8))
{
memset (&dfa->word_char[i], '\0', (SBC_MAX - ch) / 8);
return;
first = dfa->str_tree->first->node_idx;
dfa->init_node = first;
err = re_node_set_init_copy (&init_nodes, dfa->eclosures + first);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
/* The back-references which are in initial states can epsilon transit,
/* It must be the first time to invoke acquire_state. */
dfa->init_state = re_acquire_state_context (&err, dfa, &init_nodes, 0);
/* We don't check ERR here, since the initial state must not be NULL. */
- if (BE (dfa->init_state == NULL, 0))
+ if (__glibc_unlikely (dfa->init_state == NULL))
return err;
if (dfa->init_state->has_constraint)
{
&init_nodes,
CONTEXT_NEWLINE
| CONTEXT_BEGBUF);
- if (BE (dfa->init_state_word == NULL || dfa->init_state_nl == NULL
- || dfa->init_state_begbuf == NULL, 0))
+ if (__glibc_unlikely (dfa->init_state_word == NULL
+ || dfa->init_state_nl == NULL
+ || dfa->init_state_begbuf == NULL))
return err;
}
else
dfa->org_indices = re_malloc (Idx, dfa->nodes_alloc);
dfa->edests = re_malloc (re_node_set, dfa->nodes_alloc);
dfa->eclosures = re_malloc (re_node_set, dfa->nodes_alloc);
- if (BE (dfa->nexts == NULL || dfa->org_indices == NULL || dfa->edests == NULL
- || dfa->eclosures == NULL, 0))
+ if (__glibc_unlikely (dfa->nexts == NULL || dfa->org_indices == NULL
+ || dfa->edests == NULL || dfa->eclosures == NULL))
return REG_ESPACE;
dfa->subexp_map = re_malloc (Idx, preg->re_nsub);
break;
if (i == preg->re_nsub)
{
- free (dfa->subexp_map);
+ re_free (dfa->subexp_map);
dfa->subexp_map = NULL;
}
}
ret = postorder (dfa->str_tree, lower_subexps, preg);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
ret = postorder (dfa->str_tree, calc_first, dfa);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
preorder (dfa->str_tree, calc_next, dfa);
ret = preorder (dfa->str_tree, link_nfa_nodes, dfa);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
ret = calc_eclosure (dfa);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
/* We only need this during the prune_impossible_nodes pass in regexec.c;
|| dfa->nbackref)
{
dfa->inveclosures = re_malloc (re_node_set, dfa->nodes_len);
- if (BE (dfa->inveclosures == NULL, 0))
+ if (__glibc_unlikely (dfa->inveclosures == NULL))
return REG_ESPACE;
ret = calc_inveclosure (dfa);
}
do
{
reg_errcode_t err = fn (extra, node);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
if (node->parent == NULL)
return REG_NOERROR;
for (node = root; ; )
{
reg_errcode_t err = fn (extra, node);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
/* Go to the left node, or up and to the right. */
cls = create_tree (dfa, NULL, NULL, OP_CLOSE_SUBEXP);
tree1 = body ? create_tree (dfa, body, cls, CONCAT) : cls;
tree = create_tree (dfa, op, tree1, CONCAT);
- if (BE (tree == NULL || tree1 == NULL || op == NULL || cls == NULL, 0))
+ if (__glibc_unlikely (tree == NULL || tree1 == NULL
+ || op == NULL || cls == NULL))
{
*err = REG_ESPACE;
return NULL;
{
node->first = node;
node->node_idx = re_dfa_add_node (dfa, node->token);
- if (BE (node->node_idx == -1, 0))
+ if (__glibc_unlikely (node->node_idx == -1))
return REG_ESPACE;
if (node->token.type == ANCHOR)
dfa->nodes[node->node_idx].constraint = node->token.opr.ctx_type;
to their own constraint. */
static reg_errcode_t
-internal_function
duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node,
Idx root_node, unsigned int init_constraint)
{
org_dest = dfa->nexts[org_node];
re_node_set_empty (dfa->edests + clone_node);
clone_dest = duplicate_node (dfa, org_dest, constraint);
- if (BE (clone_dest == -1, 0))
+ if (__glibc_unlikely (clone_dest == -1))
return REG_ESPACE;
dfa->nexts[clone_node] = dfa->nexts[org_node];
ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
}
else if (dfa->edests[org_node].nelem == 0)
if (org_node == root_node && clone_node != org_node)
{
ok = re_node_set_insert (dfa->edests + clone_node, org_dest);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
break;
}
/* In case the node has another constraint, append it. */
constraint |= dfa->nodes[org_node].constraint;
clone_dest = duplicate_node (dfa, org_dest, constraint);
- if (BE (clone_dest == -1, 0))
+ if (__glibc_unlikely (clone_dest == -1))
return REG_ESPACE;
ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
}
else /* dfa->edests[org_node].nelem == 2 */
/* There is no such duplicated node, create a new one. */
reg_errcode_t err;
clone_dest = duplicate_node (dfa, org_dest, constraint);
- if (BE (clone_dest == -1, 0))
+ if (__glibc_unlikely (clone_dest == -1))
return REG_ESPACE;
ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
err = duplicate_node_closure (dfa, org_dest, clone_dest,
root_node, constraint);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
else
/* There is a duplicated node which satisfies the constraint,
use it to avoid infinite loop. */
ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
}
org_dest = dfa->edests[org_node].elems[1];
clone_dest = duplicate_node (dfa, org_dest, constraint);
- if (BE (clone_dest == -1, 0))
+ if (__glibc_unlikely (clone_dest == -1))
return REG_ESPACE;
ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
}
org_node = org_dest;
duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint)
{
Idx dup_idx = re_dfa_add_node (dfa, dfa->nodes[org_idx]);
- if (BE (dup_idx != -1, 1))
+ if (__glibc_likely (dup_idx != -1))
{
dfa->nodes[dup_idx].constraint = constraint;
dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].constraint;
for (idx = 0; idx < dfa->eclosures[src].nelem; ++idx)
{
ok = re_node_set_insert_last (dfa->inveclosures + elems[idx], src);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
}
}
continue;
/* Calculate epsilon closure of 'node_idx'. */
err = calc_eclosure_iter (&eclosure_elem, dfa, node_idx, true);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
if (dfa->eclosures[node_idx].nelem == 0)
bool ok;
bool incomplete = false;
err = re_node_set_alloc (&eclosure, dfa->edests[node].nelem + 1);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
/* This indicates that we are calculating this node now.
{
err = duplicate_node_closure (dfa, node, node, node,
dfa->nodes[node].constraint);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
if (dfa->eclosures[edest].nelem == 0)
{
err = calc_eclosure_iter (&eclosure_elem, dfa, edest, false);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
else
eclosure_elem = dfa->eclosures[edest];
/* Merge the epsilon closure of 'edest'. */
err = re_node_set_merge (&eclosure, &eclosure_elem);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
/* If the epsilon closure of 'edest' is incomplete,
the epsilon closure of this node is also incomplete. */
/* An epsilon closure includes itself. */
ok = re_node_set_insert (&eclosure, node);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
if (incomplete && !root)
dfa->eclosures[node].nelem = 0;
We must not use this function inside bracket expressions. */
static void
-internal_function
fetch_token (re_token_t *result, re_string_t *input, reg_syntax_t syntax)
{
re_string_skip_bytes (input, peek_token (result, input, syntax));
We must not use this function inside bracket expressions. */
static int
-internal_function
peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
{
unsigned char c;
We must not use this function out of bracket expressions. */
static int
-internal_function
peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
{
unsigned char c;
case '.':
token->type = OP_OPEN_COLL_ELEM;
break;
+
case '=':
token->type = OP_OPEN_EQUIV_CLASS;
break;
+
case ':':
if (syntax & RE_CHAR_CLASSES)
{
token->type = OP_OPEN_CHAR_CLASS;
break;
}
- /* else fall through. */
+ FALLTHROUGH;
default:
token->type = CHARACTER;
token->opr.c = c;
dfa->syntax = syntax;
fetch_token (¤t_token, regexp, syntax | RE_CARET_ANCHORS_HERE);
tree = parse_reg_exp (regexp, preg, ¤t_token, syntax, 0, err);
- if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL))
return NULL;
eor = create_tree (dfa, NULL, NULL, END_OF_RE);
if (tree != NULL)
root = create_tree (dfa, tree, eor, CONCAT);
else
root = eor;
- if (BE (eor == NULL || root == NULL, 0))
+ if (__glibc_unlikely (eor == NULL || root == NULL))
{
*err = REG_ESPACE;
return NULL;
bin_tree_t *tree, *branch = NULL;
bitset_word_t initial_bkref_map = dfa->completed_bkref_map;
tree = parse_branch (regexp, preg, token, syntax, nest, err);
- if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL))
return NULL;
while (token->type == OP_ALT)
bitset_word_t accumulated_bkref_map = dfa->completed_bkref_map;
dfa->completed_bkref_map = initial_bkref_map;
branch = parse_branch (regexp, preg, token, syntax, nest, err);
- if (BE (*err != REG_NOERROR && branch == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && branch == NULL))
{
if (tree != NULL)
postorder (tree, free_tree, NULL);
else
branch = NULL;
tree = create_tree (dfa, tree, branch, OP_ALT);
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
{
*err = REG_ESPACE;
return NULL;
bin_tree_t *tree, *expr;
re_dfa_t *dfa = preg->buffer;
tree = parse_expression (regexp, preg, token, syntax, nest, err);
- if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL))
return NULL;
while (token->type != OP_ALT && token->type != END_OF_RE
&& (nest == 0 || token->type != OP_CLOSE_SUBEXP))
{
expr = parse_expression (regexp, preg, token, syntax, nest, err);
- if (BE (*err != REG_NOERROR && expr == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && expr == NULL))
{
if (tree != NULL)
postorder (tree, free_tree, NULL);
{
case CHARACTER:
tree = create_token_tree (dfa, NULL, NULL, token);
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
{
*err = REG_ESPACE;
return NULL;
fetch_token (token, regexp, syntax);
mbc_remain = create_token_tree (dfa, NULL, NULL, token);
tree = create_tree (dfa, tree, mbc_remain, CONCAT);
- if (BE (mbc_remain == NULL || tree == NULL, 0))
+ if (__glibc_unlikely (mbc_remain == NULL || tree == NULL))
{
*err = REG_ESPACE;
return NULL;
}
#endif
break;
+
case OP_OPEN_SUBEXP:
tree = parse_sub_exp (regexp, preg, token, syntax, nest + 1, err);
- if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL))
return NULL;
break;
+
case OP_OPEN_BRACKET:
tree = parse_bracket_exp (regexp, dfa, token, syntax, err);
- if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL))
return NULL;
break;
+
case OP_BACK_REF:
- if (!BE (dfa->completed_bkref_map & (1 << token->opr.idx), 1))
+ if (!__glibc_likely (dfa->completed_bkref_map & (1 << token->opr.idx)))
{
*err = REG_ESUBREG;
return NULL;
}
dfa->used_bkref_map |= 1 << token->opr.idx;
tree = create_token_tree (dfa, NULL, NULL, token);
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
{
*err = REG_ESPACE;
return NULL;
++dfa->nbackref;
dfa->has_mb_node = 1;
break;
+
case OP_OPEN_DUP_NUM:
if (syntax & RE_CONTEXT_INVALID_DUP)
{
*err = REG_BADRPT;
return NULL;
}
- /* FALLTHROUGH */
+ FALLTHROUGH;
case OP_DUP_ASTERISK:
case OP_DUP_PLUS:
case OP_DUP_QUESTION:
fetch_token (token, regexp, syntax);
return parse_expression (regexp, preg, token, syntax, nest, err);
}
- /* else fall through */
+ FALLTHROUGH;
case OP_CLOSE_SUBEXP:
if ((token->type == OP_CLOSE_SUBEXP) &&
!(syntax & RE_UNMATCHED_RIGHT_PAREN_ORD))
*err = REG_ERPAREN;
return NULL;
}
- /* else fall through */
+ FALLTHROUGH;
case OP_CLOSE_DUP_NUM:
/* We treat it as a normal character. */
/* mb_partial and word_char bits should be initialized already
by peek_token. */
tree = create_token_tree (dfa, NULL, NULL, token);
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
{
*err = REG_ESPACE;
return NULL;
}
break;
+
case ANCHOR:
if ((token->opr.ctx_type
& (WORD_DELIM | NOT_WORD_DELIM | WORD_FIRST | WORD_LAST))
}
tree_last = create_token_tree (dfa, NULL, NULL, token);
tree = create_tree (dfa, tree_first, tree_last, OP_ALT);
- if (BE (tree_first == NULL || tree_last == NULL || tree == NULL, 0))
+ if (__glibc_unlikely (tree_first == NULL || tree_last == NULL
+ || tree == NULL))
{
*err = REG_ESPACE;
return NULL;
else
{
tree = create_token_tree (dfa, NULL, NULL, token);
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
{
*err = REG_ESPACE;
return NULL;
it must not be "<ANCHOR(^)><REPEAT(*)>". */
fetch_token (token, regexp, syntax);
return tree;
+
case OP_PERIOD:
tree = create_token_tree (dfa, NULL, NULL, token);
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
{
*err = REG_ESPACE;
return NULL;
if (dfa->mb_cur_max > 1)
dfa->has_mb_node = 1;
break;
+
case OP_WORD:
case OP_NOTWORD:
tree = build_charclass_op (dfa, regexp->trans,
"alnum",
"_",
token->type == OP_NOTWORD, err);
- if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL))
return NULL;
break;
+
case OP_SPACE:
case OP_NOTSPACE:
tree = build_charclass_op (dfa, regexp->trans,
"space",
"",
token->type == OP_NOTSPACE, err);
- if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL))
return NULL;
break;
+
case OP_ALT:
case END_OF_RE:
return NULL;
+
case BACK_SLASH:
*err = REG_EESCAPE;
return NULL;
+
default:
/* Must not happen? */
#ifdef DEBUG
{
bin_tree_t *dup_tree = parse_dup_op (tree, regexp, dfa, token,
syntax, err);
- if (BE (*err != REG_NOERROR && dup_tree == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && dup_tree == NULL))
{
if (tree != NULL)
postorder (tree, free_tree, NULL);
else
{
tree = parse_reg_exp (regexp, preg, token, syntax, nest, err);
- if (BE (*err == REG_NOERROR && token->type != OP_CLOSE_SUBEXP, 0))
+ if (__glibc_unlikely (*err == REG_NOERROR
+ && token->type != OP_CLOSE_SUBEXP))
{
if (tree != NULL)
postorder (tree, free_tree, NULL);
*err = REG_EPAREN;
}
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
return NULL;
}
dfa->completed_bkref_map |= 1 << cur_nsub;
tree = create_tree (dfa, tree, NULL, SUBEXP);
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
{
*err = REG_ESPACE;
return NULL;
return NULL;
}
}
- if (BE (start != -2, 1))
+ if (__glibc_likely (start != -2))
{
/* We treat "{n}" as "{n,n}". */
end = ((token->type == OP_CLOSE_DUP_NUM) ? start
: ((token->type == CHARACTER && token->opr.c == ',')
? fetch_number (regexp, token, syntax) : -2));
}
- if (BE (start == -2 || end == -2, 0))
+ if (__glibc_unlikely (start == -2 || end == -2))
{
/* Invalid sequence. */
- if (BE (!(syntax & RE_INVALID_INTERVAL_ORD), 0))
+ if (__glibc_unlikely (!(syntax & RE_INVALID_INTERVAL_ORD)))
{
if (token->type == END_OF_RE)
*err = REG_EBRACE;
return elem;
}
- if (BE ((end != -1 && start > end)
- || token->type != OP_CLOSE_DUP_NUM, 0))
+ if (__glibc_unlikely ((end != -1 && start > end)
+ || token->type != OP_CLOSE_DUP_NUM))
{
/* First number greater than second. */
*err = REG_BADBR;
return NULL;
}
- if (BE (RE_DUP_MAX < (end == -1 ? start : end), 0))
+ if (__glibc_unlikely (RE_DUP_MAX < (end == -1 ? start : end)))
{
*err = REG_ESIZE;
return NULL;
fetch_token (token, regexp, syntax);
- if (BE (elem == NULL, 0))
+ if (__glibc_unlikely (elem == NULL))
return NULL;
- if (BE (start == 0 && end == 0, 0))
+ if (__glibc_unlikely (start == 0 && end == 0))
{
postorder (elem, free_tree, NULL);
return NULL;
}
/* Extract "<re>{n,m}" to "<re><re>...<re><re>{0,<m-n>}". */
- if (BE (start > 0, 0))
+ if (__glibc_unlikely (start > 0))
{
tree = elem;
for (i = 2; i <= start; ++i)
{
elem = duplicate_tree (elem, dfa);
tree = create_tree (dfa, tree, elem, CONCAT);
- if (BE (elem == NULL || tree == NULL, 0))
+ if (__glibc_unlikely (elem == NULL || tree == NULL))
goto parse_dup_op_espace;
}
/* Duplicate ELEM before it is marked optional. */
elem = duplicate_tree (elem, dfa);
- if (BE (elem == NULL, 0))
+ if (__glibc_unlikely (elem == NULL))
goto parse_dup_op_espace;
old_tree = tree;
}
tree = create_tree (dfa, elem, NULL,
(end == -1 ? OP_DUP_ASTERISK : OP_ALT));
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
goto parse_dup_op_espace;
-/* From gnulib's "intprops.h":
- True if the arithmetic type T is signed. */
-#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
-
/* This loop is actually executed only when end != -1,
to rewrite <re>{0,n} as (<re>(<re>...<re>?)?)?... We have
already created the start+1-th copy. */
{
elem = duplicate_tree (elem, dfa);
tree = create_tree (dfa, tree, elem, CONCAT);
- if (BE (elem == NULL || tree == NULL, 0))
+ if (__glibc_unlikely (elem == NULL || tree == NULL))
goto parse_dup_op_espace;
tree = create_tree (dfa, tree, NULL, OP_ALT);
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
goto parse_dup_op_espace;
}
# ifdef RE_ENABLE_I18N
/* Convert the byte B to the corresponding wide character. In a
- unibyte locale, treat B as itself if it is an encoding error.
- In a multibyte locale, return WEOF if B is an encoding error. */
+ unibyte locale, treat B as itself. In a multibyte locale, return
+ WEOF if B is an encoding error. */
static wint_t
parse_byte (unsigned char b, re_charset_t *mbcset)
{
- wint_t wc = __btowc (b);
- return wc == WEOF && !mbcset ? b : wc;
+ return mbcset == NULL ? b : __btowc (b);
}
-#endif
+# endif
/* Local function for parse_bracket_exp only used in case of NOT _LIBC.
Build the range expression which starts from START_ELEM, and ends
update it. */
static reg_errcode_t
-internal_function
# ifdef RE_ENABLE_I18N
build_range_exp (const reg_syntax_t syntax,
bitset_t sbcset,
{
unsigned int start_ch, end_ch;
/* Equivalence Classes and Character Classes can't be a range start/end. */
- if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS
- || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS,
- 0))
+ if (__glibc_unlikely (start_elem->type == EQUIV_CLASS
+ || start_elem->type == CHAR_CLASS
+ || end_elem->type == EQUIV_CLASS
+ || end_elem->type == CHAR_CLASS))
return REG_ERANGE;
/* We can handle no multi character collating elements without libc
support. */
- if (BE ((start_elem->type == COLL_SYM
- && strlen ((char *) start_elem->opr.name) > 1)
- || (end_elem->type == COLL_SYM
- && strlen ((char *) end_elem->opr.name) > 1), 0))
+ if (__glibc_unlikely ((start_elem->type == COLL_SYM
+ && strlen ((char *) start_elem->opr.name) > 1)
+ || (end_elem->type == COLL_SYM
+ && strlen ((char *) end_elem->opr.name) > 1)))
return REG_ECOLLATE;
# ifdef RE_ENABLE_I18N
? parse_byte (end_ch, mbcset) : end_elem->opr.wch);
if (start_wc == WEOF || end_wc == WEOF)
return REG_ECOLLATE;
- else if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_wc > end_wc, 0))
+ else if (__glibc_unlikely ((syntax & RE_NO_EMPTY_RANGES)
+ && start_wc > end_wc))
return REG_ERANGE;
/* Got valid collation sequence values, add them as a new entry.
if (mbcset)
{
/* Check the space of the arrays. */
- if (BE (*range_alloc == mbcset->nranges, 0))
+ if (__glibc_unlikely (*range_alloc == mbcset->nranges))
{
/* There is not enough space, need realloc. */
wchar_t *new_array_start, *new_array_end;
new_array_end = re_realloc (mbcset->range_ends, wchar_t,
new_nranges);
- if (BE (new_array_start == NULL || new_array_end == NULL, 0))
+ if (__glibc_unlikely (new_array_start == NULL
+ || new_array_end == NULL))
{
re_free (new_array_start);
re_free (new_array_end);
pointer argument since we may update it. */
static reg_errcode_t
-internal_function
# ifdef RE_ENABLE_I18N
build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset,
Idx *coll_sym_alloc, const unsigned char *name)
# endif /* not RE_ENABLE_I18N */
{
size_t name_len = strlen ((const char *) name);
- if (BE (name_len != 1, 0))
+ if (__glibc_unlikely (name_len != 1))
return REG_ECOLLATE;
else
{
/* Equivalence Classes and Character Classes can't be a range
start/end. */
- if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS
- || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS,
- 0))
+ if (__glibc_unlikely (start_elem->type == EQUIV_CLASS
+ || start_elem->type == CHAR_CLASS
+ || end_elem->type == EQUIV_CLASS
+ || end_elem->type == CHAR_CLASS))
return REG_ERANGE;
/* FIXME: Implement rational ranges here, too. */
start_collseq = lookup_collation_sequence_value (start_elem);
end_collseq = lookup_collation_sequence_value (end_elem);
/* Check start/end collation sequence values. */
- if (BE (start_collseq == UINT_MAX || end_collseq == UINT_MAX, 0))
+ if (__glibc_unlikely (start_collseq == UINT_MAX
+ || end_collseq == UINT_MAX))
return REG_ECOLLATE;
- if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_collseq > end_collseq, 0))
+ if (__glibc_unlikely ((syntax & RE_NO_EMPTY_RANGES)
+ && start_collseq > end_collseq))
return REG_ERANGE;
/* Got valid collation sequence values, add them as a new entry.
if (nrules > 0 || dfa->mb_cur_max > 1)
{
/* Check the space of the arrays. */
- if (BE (*range_alloc == mbcset->nranges, 0))
+ if (__glibc_unlikely (*range_alloc == mbcset->nranges))
{
/* There is not enough space, need realloc. */
uint32_t *new_array_start;
new_array_end = re_realloc (mbcset->range_ends, uint32_t,
new_nranges);
- if (BE (new_array_start == NULL || new_array_end == NULL, 0))
+ if (__glibc_unlikely (new_array_start == NULL
+ || new_array_end == NULL))
return REG_ESPACE;
mbcset->range_starts = new_array_start;
/* Got valid collation sequence, add it as a new entry. */
/* Check the space of the arrays. */
- if (BE (*coll_sym_alloc == mbcset->ncoll_syms, 0))
+ if (__glibc_unlikely (*coll_sym_alloc == mbcset->ncoll_syms))
{
/* Not enough, realloc it. */
/* +1 in case of mbcset->ncoll_syms is 0. */
if *alloc == 0. */
int32_t *new_coll_syms = re_realloc (mbcset->coll_syms, int32_t,
new_coll_sym_alloc);
- if (BE (new_coll_syms == NULL, 0))
+ if (__glibc_unlikely (new_coll_syms == NULL))
return REG_ESPACE;
mbcset->coll_syms = new_coll_syms;
*coll_sym_alloc = new_coll_sym_alloc;
}
else
{
- if (BE (name_len != 1, 0))
+ if (__glibc_unlikely (name_len != 1))
return REG_ECOLLATE;
else
{
mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1);
#endif /* RE_ENABLE_I18N */
#ifdef RE_ENABLE_I18N
- if (BE (sbcset == NULL || mbcset == NULL, 0))
+ if (__glibc_unlikely (sbcset == NULL || mbcset == NULL))
#else
- if (BE (sbcset == NULL, 0))
+ if (__glibc_unlikely (sbcset == NULL))
#endif /* RE_ENABLE_I18N */
{
re_free (sbcset);
}
token_len = peek_token_bracket (token, regexp, syntax);
- if (BE (token->type == END_OF_RE, 0))
+ if (__glibc_unlikely (token->type == END_OF_RE))
{
*err = REG_BADPAT;
goto parse_bracket_exp_free_return;
bitset_set (sbcset, '\n');
re_string_skip_bytes (regexp, token_len); /* Skip a token. */
token_len = peek_token_bracket (token, regexp, syntax);
- if (BE (token->type == END_OF_RE, 0))
+ if (__glibc_unlikely (token->type == END_OF_RE))
{
*err = REG_BADPAT;
goto parse_bracket_exp_free_return;
start_elem.type = COLL_SYM;
ret = parse_bracket_element (&start_elem, regexp, token, token_len, dfa,
syntax, first_round);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
{
*err = ret;
goto parse_bracket_exp_free_return;
/* Do not check for ranges if we know they are not allowed. */
if (start_elem.type != CHAR_CLASS && start_elem.type != EQUIV_CLASS)
{
- if (BE (token->type == END_OF_RE, 0))
+ if (__glibc_unlikely (token->type == END_OF_RE))
{
*err = REG_EBRACK;
goto parse_bracket_exp_free_return;
{
re_string_skip_bytes (regexp, token_len); /* Skip '-'. */
token_len2 = peek_token_bracket (&token2, regexp, syntax);
- if (BE (token2.type == END_OF_RE, 0))
+ if (__glibc_unlikely (token2.type == END_OF_RE))
{
*err = REG_EBRACK;
goto parse_bracket_exp_free_return;
end_elem.type = COLL_SYM;
ret = parse_bracket_element (&end_elem, regexp, &token2, token_len2,
dfa, syntax, true);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
{
*err = ret;
goto parse_bracket_exp_free_return;
*err = build_range_exp (syntax, sbcset, &start_elem, &end_elem);
# endif
#endif /* RE_ENABLE_I18N */
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
goto parse_bracket_exp_free_return;
}
else
#ifdef RE_ENABLE_I18N
case MB_CHAR:
/* Check whether the array has enough space. */
- if (BE (mbchar_alloc == mbcset->nmbchars, 0))
+ if (__glibc_unlikely (mbchar_alloc == mbcset->nmbchars))
{
wchar_t *new_mbchars;
/* Not enough, realloc it. */
/* Use realloc since array is NULL if *alloc == 0. */
new_mbchars = re_realloc (mbcset->mbchars, wchar_t,
mbchar_alloc);
- if (BE (new_mbchars == NULL, 0))
+ if (__glibc_unlikely (new_mbchars == NULL))
goto parse_bracket_exp_espace;
mbcset->mbchars = new_mbchars;
}
mbcset, &equiv_class_alloc,
#endif /* RE_ENABLE_I18N */
start_elem.opr.name);
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
goto parse_bracket_exp_free_return;
break;
case COLL_SYM:
mbcset, &coll_sym_alloc,
#endif /* RE_ENABLE_I18N */
start_elem.opr.name);
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
goto parse_bracket_exp_free_return;
break;
case CHAR_CLASS:
#endif /* RE_ENABLE_I18N */
(const char *) start_elem.opr.name,
syntax);
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
goto parse_bracket_exp_free_return;
break;
default:
break;
}
}
- if (BE (token->type == END_OF_RE, 0))
+ if (__glibc_unlikely (token->type == END_OF_RE))
{
*err = REG_EBRACK;
goto parse_bracket_exp_free_return;
br_token.type = COMPLEX_BRACKET;
br_token.opr.mbcset = mbcset;
mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token);
- if (BE (mbc_tree == NULL, 0))
+ if (__glibc_unlikely (mbc_tree == NULL))
goto parse_bracket_exp_espace;
for (sbc_idx = 0; sbc_idx < BITSET_WORDS; ++sbc_idx)
if (sbcset[sbc_idx])
br_token.type = SIMPLE_BRACKET;
br_token.opr.sbcset = sbcset;
work_tree = create_token_tree (dfa, NULL, NULL, &br_token);
- if (BE (work_tree == NULL, 0))
+ if (__glibc_unlikely (work_tree == NULL))
goto parse_bracket_exp_espace;
/* Then join them by ALT node. */
work_tree = create_tree (dfa, work_tree, mbc_tree, OP_ALT);
- if (BE (work_tree == NULL, 0))
+ if (__glibc_unlikely (work_tree == NULL))
goto parse_bracket_exp_espace;
}
else
br_token.type = SIMPLE_BRACKET;
br_token.opr.sbcset = sbcset;
work_tree = create_token_tree (dfa, NULL, NULL, &br_token);
- if (BE (work_tree == NULL, 0))
+ if (__glibc_unlikely (work_tree == NULL))
goto parse_bracket_exp_espace;
}
return work_tree;
if (token->type == OP_OPEN_COLL_ELEM || token->type == OP_OPEN_CHAR_CLASS
|| token->type == OP_OPEN_EQUIV_CLASS)
return parse_bracket_symbol (elem, regexp, token);
- if (BE (token->type == OP_CHARSET_RANGE, 0) && !accept_hyphen)
+ if (__glibc_unlikely (token->type == OP_CHARSET_RANGE) && !accept_hyphen)
{
/* A '-' must only appear as anything but a range indicator before
the closing bracket. Everything else is an error. */
indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE,
_NL_COLLATE_INDIRECTMB);
idx1 = findidx (table, indirect, extra, &cp, -1);
- if (BE (idx1 == 0 || *cp != '\0', 0))
+ if (__glibc_unlikely (idx1 == 0 || *cp != '\0'))
/* This isn't a valid character. */
return REG_ECOLLATE;
continue;
/* Compare only if the length matches and the collation rule
index is the same. */
- if (len == weights[idx2 & 0xffffff] && (idx1 >> 24) == (idx2 >> 24))
- {
- int cnt = 0;
-
- while (cnt <= len &&
- weights[(idx1 & 0xffffff) + 1 + cnt]
- == weights[(idx2 & 0xffffff) + 1 + cnt])
- ++cnt;
-
- if (cnt > len)
- bitset_set (sbcset, ch);
- }
+ if (len == weights[idx2 & 0xffffff] && (idx1 >> 24) == (idx2 >> 24)
+ && memcmp (weights + (idx1 & 0xffffff) + 1,
+ weights + (idx2 & 0xffffff) + 1, len) == 0)
+ bitset_set (sbcset, ch);
}
/* Check whether the array has enough space. */
- if (BE (*equiv_class_alloc == mbcset->nequiv_classes, 0))
+ if (__glibc_unlikely (*equiv_class_alloc == mbcset->nequiv_classes))
{
/* Not enough, realloc it. */
/* +1 in case of mbcset->nequiv_classes is 0. */
int32_t *new_equiv_classes = re_realloc (mbcset->equiv_classes,
int32_t,
new_equiv_class_alloc);
- if (BE (new_equiv_classes == NULL, 0))
+ if (__glibc_unlikely (new_equiv_classes == NULL))
return REG_ESPACE;
mbcset->equiv_classes = new_equiv_classes;
*equiv_class_alloc = new_equiv_class_alloc;
else
#endif /* _LIBC */
{
- if (BE (strlen ((const char *) name) != 1, 0))
+ if (__glibc_unlikely (strlen ((const char *) name) != 1))
return REG_ECOLLATE;
bitset_set (sbcset, *name);
}
#ifdef RE_ENABLE_I18N
/* Check the space of the arrays. */
- if (BE (*char_class_alloc == mbcset->nchar_classes, 0))
+ if (__glibc_unlikely (*char_class_alloc == mbcset->nchar_classes))
{
/* Not enough, realloc it. */
/* +1 in case of mbcset->nchar_classes is 0. */
/* Use realloc since array is NULL if *alloc == 0. */
wctype_t *new_char_classes = re_realloc (mbcset->char_classes, wctype_t,
new_char_class_alloc);
- if (BE (new_char_classes == NULL, 0))
+ if (__glibc_unlikely (new_char_classes == NULL))
return REG_ESPACE;
mbcset->char_classes = new_char_classes;
*char_class_alloc = new_char_class_alloc;
#define BUILD_CHARCLASS_LOOP(ctype_func) \
do { \
- if (BE (trans != NULL, 0)) \
+ if (__glibc_unlikely (trans != NULL)) \
{ \
for (i = 0; i < SBC_MAX; ++i) \
if (ctype_func (i)) \
bin_tree_t *tree;
sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
- if (BE (sbcset == NULL, 0))
+ if (__glibc_unlikely (sbcset == NULL))
{
*err = REG_ESPACE;
return NULL;
}
#ifdef RE_ENABLE_I18N
mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1);
- if (BE (mbcset == NULL, 0))
+ if (__glibc_unlikely (mbcset == NULL))
{
re_free (sbcset);
*err = REG_ESPACE;
#endif /* RE_ENABLE_I18N */
class_name, 0);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
{
re_free (sbcset);
#ifdef RE_ENABLE_I18N
br_token.type = SIMPLE_BRACKET;
br_token.opr.sbcset = sbcset;
tree = create_token_tree (dfa, NULL, NULL, &br_token);
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
goto build_word_op_espace;
#ifdef RE_ENABLE_I18N
br_token.opr.mbcset = mbcset;
dfa->has_mb_node = 1;
mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token);
- if (BE (mbc_tree == NULL, 0))
+ if (__glibc_unlikely (mbc_tree == NULL))
goto build_word_op_espace;
/* Then join them by ALT node. */
tree = create_tree (dfa, tree, mbc_tree, OP_ALT);
- if (BE (mbc_tree != NULL, 1))
+ if (__glibc_likely (mbc_tree != NULL))
return tree;
}
else
{
fetch_token (token, input, syntax);
c = token->opr.c;
- if (BE (token->type == END_OF_RE, 0))
+ if (__glibc_unlikely (token->type == END_OF_RE))
return -2;
if (token->type == OP_CLOSE_DUP_NUM || c == ',')
break;
# ifdef _LIBC
re_free (cset->coll_syms);
re_free (cset->equiv_classes);
+# endif
re_free (cset->range_starts);
re_free (cset->range_ends);
-# endif
re_free (cset->char_classes);
re_free (cset);
}
const re_token_t *token)
{
bin_tree_t *tree;
- if (BE (dfa->str_tree_storage_idx == BIN_TREE_STORAGE_SIZE, 0))
+ if (__glibc_unlikely (dfa->str_tree_storage_idx == BIN_TREE_STORAGE_SIZE))
{
bin_tree_storage_t *storage = re_malloc (bin_tree_storage_t, 1);
/* Extended regular expression matching and search library.
- Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
You should have received a copy of the GNU General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC
-# include <config.h>
+# include <libc-config.h>
# if (__GNUC__ == 4 && 6 <= __GNUC_MINOR__) || 4 < __GNUC__
# pragma GCC diagnostic ignored "-Wsuggest-attribute=pure"
/* Definitions for data structures and routines for the regular
expression library.
- Copyright (C) 1985, 1989-1993, 1995-1998, 2000-2003, 2005-2017 Free Software
- Foundation, Inc.
+ Copyright (C) 1985, 1989-2018 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
You should have received a copy of the GNU General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _REGEX_H
#define _REGEX_H 1
# endif
#endif
-/* GCC 2.95 and later have "__restrict"; C99 compilers have
+/* For plain 'restrict', use glibc's __restrict if defined.
+ Otherwise, GCC 2.95 and later have "__restrict"; C99 compilers have
"restrict", and "configure" may have defined "restrict".
Other compilers use __restrict, __restrict__, and _Restrict, and
'configure' might #define 'restrict' to those words, so pick a
different name. */
#ifndef _Restrict_
-# if 199901L <= __STDC_VERSION__
-# define _Restrict_ restrict
-# elif 2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__)
+# if defined __restrict || 2 < __GNUC__ + (95 <= __GNUC_MINOR__)
# define _Restrict_ __restrict
+# elif 199901L <= __STDC_VERSION__ || defined restrict
+# define _Restrict_ restrict
# else
# define _Restrict_
# endif
#endif
-/* gcc 3.1 and up support the [restrict] syntax. Don't trust
- sys/cdefs.h's definition of __restrict_arr, though, as it
- mishandles gcc -ansi -pedantic. */
+/* For [restrict], use glibc's __restrict_arr if available.
+ Otherwise, GCC 3.1 (not in C++ mode) and C99 support [restrict]. */
#ifndef _Restrict_arr_
-# if ((199901L <= __STDC_VERSION__ \
- || ((3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__)) \
- && !defined __STRICT_ANSI__)) \
- && !defined __GNUG__)
+# ifdef __restrict_arr
+# define _Restrict_arr_ __restrict_arr
+# elif ((199901L <= __STDC_VERSION__ || 3 < __GNUC__ + (1 <= __GNUC_MINOR__)) \
+ && !defined __GNUG__)
# define _Restrict_arr_ _Restrict_
# else
# define _Restrict_arr_
/* Extended regular expression matching and search library.
- Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
You should have received a copy of the GNU General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
static void re_string_construct_common (const char *str, Idx len,
re_string_t *pstr,
RE_TRANSLATE_TYPE trans, bool icase,
- const re_dfa_t *dfa) internal_function;
+ const re_dfa_t *dfa);
static re_dfastate_t *create_ci_newstate (const re_dfa_t *dfa,
const re_node_set *nodes,
- re_hashval_t hash) internal_function;
+ re_hashval_t hash);
static re_dfastate_t *create_cd_newstate (const re_dfa_t *dfa,
const re_node_set *nodes,
unsigned int context,
- re_hashval_t hash) internal_function;
+ re_hashval_t hash);
+static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr,
+ Idx new_buf_len);
+#ifdef RE_ENABLE_I18N
+static void build_wcs_buffer (re_string_t *pstr);
+static reg_errcode_t build_wcs_upper_buffer (re_string_t *pstr);
+#endif /* RE_ENABLE_I18N */
+static void build_upper_buffer (re_string_t *pstr);
+static void re_string_translate_buffer (re_string_t *pstr);
+static unsigned int re_string_context_at (const re_string_t *input, Idx idx,
+ int eflags) __attribute__ ((pure));
\f
/* Functions for string operation. */
re_string_reconstruct before using the object. */
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
re_string_allocate (re_string_t *pstr, const char *str, Idx len, Idx init_len,
RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa)
{
re_string_construct_common (str, len, pstr, trans, icase, dfa);
ret = re_string_realloc_buffers (pstr, init_buf_len);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
pstr->word_char = dfa->word_char;
/* This function allocate the buffers, and initialize them. */
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
re_string_construct (re_string_t *pstr, const char *str, Idx len,
RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa)
{
if (len > 0)
{
ret = re_string_realloc_buffers (pstr, len + 1);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
}
pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str;
while (1)
{
ret = build_wcs_upper_buffer (pstr);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
if (pstr->valid_raw_len >= len)
break;
if (pstr->bufs_len > pstr->valid_len + dfa->mb_cur_max)
break;
ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
}
}
/* Helper functions for re_string_allocate, and re_string_construct. */
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len)
{
#ifdef RE_ENABLE_I18N
/* Avoid overflow in realloc. */
const size_t max_object_size = MAX (sizeof (wint_t), sizeof (Idx));
- if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < new_buf_len, 0))
+ if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size)
+ < new_buf_len))
return REG_ESPACE;
new_wcs = re_realloc (pstr->wcs, wint_t, new_buf_len);
- if (BE (new_wcs == NULL, 0))
+ if (__glibc_unlikely (new_wcs == NULL))
return REG_ESPACE;
pstr->wcs = new_wcs;
if (pstr->offsets != NULL)
{
Idx *new_offsets = re_realloc (pstr->offsets, Idx, new_buf_len);
- if (BE (new_offsets == NULL, 0))
+ if (__glibc_unlikely (new_offsets == NULL))
return REG_ESPACE;
pstr->offsets = new_offsets;
}
{
unsigned char *new_mbs = re_realloc (pstr->mbs, unsigned char,
new_buf_len);
- if (BE (new_mbs == NULL, 0))
+ if (__glibc_unlikely (new_mbs == NULL))
return REG_ESPACE;
pstr->mbs = new_mbs;
}
static void
-internal_function
re_string_construct_common (const char *str, Idx len, re_string_t *pstr,
RE_TRANSLATE_TYPE trans, bool icase,
const re_dfa_t *dfa)
built and starts from PSTR->VALID_LEN. */
static void
-internal_function
build_wcs_buffer (re_string_t *pstr)
{
#ifdef _LIBC
remain_len = end_idx - byte_idx;
prev_st = pstr->cur_state;
/* Apply the translation if we need. */
- if (BE (pstr->trans != NULL, 0))
+ if (__glibc_unlikely (pstr->trans != NULL))
{
int i, ch;
else
p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx;
mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state);
- if (BE (mbclen == (size_t) -1 || mbclen == 0
- || (mbclen == (size_t) -2 && pstr->bufs_len >= pstr->len), 0))
+ if (__glibc_unlikely (mbclen == (size_t) -1 || mbclen == 0
+ || (mbclen == (size_t) -2
+ && pstr->bufs_len >= pstr->len)))
{
/* We treat these cases as a singlebyte character. */
mbclen = 1;
wc = (wchar_t) pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx];
- if (BE (pstr->trans != NULL, 0))
+ if (__glibc_unlikely (pstr->trans != NULL))
wc = pstr->trans[wc];
pstr->cur_state = prev_st;
}
- else if (BE (mbclen == (size_t) -2, 0))
+ else if (__glibc_unlikely (mbclen == (size_t) -2))
{
/* The buffer doesn't have enough space, finish to build. */
pstr->cur_state = prev_st;
but for REG_ICASE. */
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
build_wcs_upper_buffer (re_string_t *pstr)
{
mbstate_t prev_st;
mbclen = __mbrtowc (&wc,
((const char *) pstr->raw_mbs + pstr->raw_mbs_idx
+ byte_idx), remain_len, &pstr->cur_state);
- if (BE (mbclen < (size_t) -2, 1))
+ if (__glibc_likely (0 < mbclen && mbclen < (size_t) -2))
{
wchar_t wcu = __towupper (wc);
if (wcu != wc)
size_t mbcdlen;
mbcdlen = __wcrtomb (buf, wcu, &prev_st);
- if (BE (mbclen == mbcdlen, 1))
+ if (__glibc_likely (mbclen == mbcdlen))
memcpy (pstr->mbs + byte_idx, buf, mbclen);
else
{
pstr->mbs[byte_idx] = ch;
/* And also cast it to wide char. */
pstr->wcs[byte_idx++] = (wchar_t) ch;
- if (BE (mbclen == (size_t) -1, 0))
+ if (__glibc_unlikely (mbclen == (size_t) -1))
pstr->cur_state = prev_st;
}
else
offsets_needed:
remain_len = end_idx - byte_idx;
prev_st = pstr->cur_state;
- if (BE (pstr->trans != NULL, 0))
+ if (__glibc_unlikely (pstr->trans != NULL))
{
int i, ch;
else
p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + src_idx;
mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state);
- if (BE (mbclen < (size_t) -2, 1))
+ if (__glibc_likely (0 < mbclen && mbclen < (size_t) -2))
{
wchar_t wcu = __towupper (wc);
if (wcu != wc)
{
size_t mbcdlen;
- mbcdlen = wcrtomb ((char *) buf, wcu, &prev_st);
- if (BE (mbclen == mbcdlen, 1))
+ mbcdlen = __wcrtomb ((char *) buf, wcu, &prev_st);
+ if (__glibc_likely (mbclen == mbcdlen))
memcpy (pstr->mbs + byte_idx, buf, mbclen);
else if (mbcdlen != (size_t) -1)
{
else
memcpy (pstr->mbs + byte_idx, p, mbclen);
- if (BE (pstr->offsets_needed != 0, 0))
+ if (__glibc_unlikely (pstr->offsets_needed != 0))
{
size_t i;
for (i = 0; i < mbclen; ++i)
/* It is an invalid character or '\0'. Just use the byte. */
int ch = pstr->raw_mbs[pstr->raw_mbs_idx + src_idx];
- if (BE (pstr->trans != NULL, 0))
+ if (__glibc_unlikely (pstr->trans != NULL))
ch = pstr->trans [ch];
pstr->mbs[byte_idx] = ch;
- if (BE (pstr->offsets_needed != 0, 0))
+ if (__glibc_unlikely (pstr->offsets_needed != 0))
pstr->offsets[byte_idx] = src_idx;
++src_idx;
/* And also cast it to wide char. */
pstr->wcs[byte_idx++] = (wchar_t) ch;
- if (BE (mbclen == (size_t) -1, 0))
+ if (__glibc_unlikely (mbclen == (size_t) -1))
pstr->cur_state = prev_st;
}
else
Return the index. */
static Idx
-internal_function
re_string_skip_chars (re_string_t *pstr, Idx new_raw_idx, wint_t *last_wc)
{
mbstate_t prev_st;
prev_st = pstr->cur_state;
mbclen = __mbrtowc (&wc2, (const char *) pstr->raw_mbs + rawbuf_idx,
remain_len, &pstr->cur_state);
- if (BE (mbclen == (size_t) -2 || mbclen == (size_t) -1 || mbclen == 0, 0))
+ if (__glibc_unlikely (mbclen == (size_t) -2 || mbclen == (size_t) -1
+ || mbclen == 0))
{
/* We treat these cases as a single byte character. */
if (mbclen == 0 || remain_len == 0)
This function is used in case of REG_ICASE. */
static void
-internal_function
build_upper_buffer (re_string_t *pstr)
{
Idx char_idx, end_idx;
for (char_idx = pstr->valid_len; char_idx < end_idx; ++char_idx)
{
int ch = pstr->raw_mbs[pstr->raw_mbs_idx + char_idx];
- if (BE (pstr->trans != NULL, 0))
+ if (__glibc_unlikely (pstr->trans != NULL))
ch = pstr->trans[ch];
pstr->mbs[char_idx] = toupper (ch);
}
/* Apply TRANS to the buffer in PSTR. */
static void
-internal_function
re_string_translate_buffer (re_string_t *pstr)
{
Idx buf_idx, end_idx;
convert to upper case in case of REG_ICASE, apply translation. */
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
{
Idx offset;
- if (BE (pstr->raw_mbs_idx <= idx, 0))
+ if (__glibc_unlikely (pstr->raw_mbs_idx <= idx))
offset = idx - pstr->raw_mbs_idx;
else
{
offset = idx;
}
- if (BE (offset != 0, 1))
+ if (__glibc_likely (offset != 0))
{
/* Should the already checked characters be kept? */
- if (BE (offset < pstr->valid_raw_len, 1))
+ if (__glibc_likely (offset < pstr->valid_raw_len))
{
/* Yes, move them to the front of the buffer. */
#ifdef RE_ENABLE_I18N
- if (BE (pstr->offsets_needed, 0))
+ if (__glibc_unlikely (pstr->offsets_needed))
{
Idx low = 0, high = pstr->valid_len, mid;
do
memmove (pstr->wcs, pstr->wcs + offset,
(pstr->valid_len - offset) * sizeof (wint_t));
#endif /* RE_ENABLE_I18N */
- if (BE (pstr->mbs_allocated, 0))
+ if (__glibc_unlikely (pstr->mbs_allocated))
memmove (pstr->mbs, pstr->mbs + offset,
pstr->valid_len - offset);
pstr->valid_len -= offset;
/* No, skip all characters until IDX. */
Idx prev_valid_len = pstr->valid_len;
- if (BE (pstr->offsets_needed, 0))
+ if (__glibc_unlikely (pstr->offsets_needed))
{
pstr->len = pstr->raw_len - idx + offset;
pstr->stop = pstr->raw_stop - idx + offset;
#ifdef _LIBC
/* We know the wchar_t encoding is UCS4, so for the simple
case, ASCII characters, skip the conversion step. */
- if (isascii (*p) && BE (pstr->trans == NULL, 1))
+ if (isascii (*p) && __glibc_likely (pstr->trans == NULL))
{
memset (&pstr->cur_state, '\0', sizeof (mbstate_t));
/* pstr->valid_len = 0; */
size_t mbclen;
const unsigned char *pp = p;
- if (BE (pstr->trans != NULL, 0))
+ if (__glibc_unlikely (pstr->trans != NULL))
{
int i = mlen < 6 ? mlen : 6;
while (--i >= 0)
pstr->tip_context
= re_string_context_at (pstr, prev_valid_len - 1, eflags);
else
- pstr->tip_context = ((BE (pstr->word_ops_used != 0, 0)
+ pstr->tip_context = ((__glibc_unlikely (pstr->word_ops_used != 0)
&& IS_WIDE_WORD_CHAR (wc))
? CONTEXT_WORD
: ((IS_WIDE_NEWLINE (wc)
&& pstr->newline_anchor)
? CONTEXT_NEWLINE : 0));
- if (BE (pstr->valid_len, 0))
+ if (__glibc_unlikely (pstr->valid_len))
{
for (wcs_idx = 0; wcs_idx < pstr->valid_len; ++wcs_idx)
pstr->wcs[wcs_idx] = WEOF;
? CONTEXT_NEWLINE : 0));
}
}
- if (!BE (pstr->mbs_allocated, 0))
+ if (!__glibc_unlikely (pstr->mbs_allocated))
pstr->mbs += offset;
}
pstr->raw_mbs_idx = idx;
if (pstr->icase)
{
reg_errcode_t ret = build_wcs_upper_buffer (pstr);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
}
else
}
else
#endif /* RE_ENABLE_I18N */
- if (BE (pstr->mbs_allocated, 0))
+ if (__glibc_unlikely (pstr->mbs_allocated))
{
if (pstr->icase)
build_upper_buffer (pstr);
}
static unsigned char
-internal_function __attribute__ ((pure))
+__attribute__ ((pure))
re_string_peek_byte_case (const re_string_t *pstr, Idx idx)
{
int ch;
Idx off;
/* Handle the common (easiest) cases first. */
- if (BE (!pstr->mbs_allocated, 1))
+ if (__glibc_likely (!pstr->mbs_allocated))
return re_string_peek_byte (pstr, idx);
#ifdef RE_ENABLE_I18N
}
static unsigned char
-internal_function
re_string_fetch_byte_case (re_string_t *pstr)
{
- if (BE (!pstr->mbs_allocated, 1))
+ if (__glibc_likely (!pstr->mbs_allocated))
return re_string_fetch_byte (pstr);
#ifdef RE_ENABLE_I18N
}
static void
-internal_function
re_string_destruct (re_string_t *pstr)
{
#ifdef RE_ENABLE_I18N
/* Return the context at IDX in INPUT. */
static unsigned int
-internal_function
re_string_context_at (const re_string_t *input, Idx idx, int eflags)
{
int c;
- if (BE (idx < 0, 0))
+ if (__glibc_unlikely (idx < 0))
/* In this case, we use the value stored in input->tip_context,
since we can't know the character in input->mbs[-1] here. */
return input->tip_context;
- if (BE (idx == input->len, 0))
+ if (__glibc_unlikely (idx == input->len))
return ((eflags & REG_NOTEOL) ? CONTEXT_ENDBUF
: CONTEXT_NEWLINE | CONTEXT_ENDBUF);
#ifdef RE_ENABLE_I18N
return input->tip_context;
}
wc = input->wcs[wc_idx];
- if (BE (input->word_ops_used != 0, 0) && IS_WIDE_WORD_CHAR (wc))
+ if (__glibc_unlikely (input->word_ops_used != 0)
+ && IS_WIDE_WORD_CHAR (wc))
return CONTEXT_WORD;
return (IS_WIDE_NEWLINE (wc) && input->newline_anchor
? CONTEXT_NEWLINE : 0);
/* Functions for set operation. */
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
re_node_set_alloc (re_node_set *set, Idx size)
{
set->alloc = size;
set->nelem = 0;
set->elems = re_malloc (Idx, size);
- if (BE (set->elems == NULL, 0) && (MALLOC_0_IS_NONNULL || size != 0))
+ if (__glibc_unlikely (set->elems == NULL)
+ && (MALLOC_0_IS_NONNULL || size != 0))
return REG_ESPACE;
return REG_NOERROR;
}
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
re_node_set_init_1 (re_node_set *set, Idx elem)
{
set->alloc = 1;
set->nelem = 1;
set->elems = re_malloc (Idx, 1);
- if (BE (set->elems == NULL, 0))
+ if (__glibc_unlikely (set->elems == NULL))
{
set->alloc = set->nelem = 0;
return REG_ESPACE;
}
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
re_node_set_init_2 (re_node_set *set, Idx elem1, Idx elem2)
{
set->alloc = 2;
set->elems = re_malloc (Idx, 2);
- if (BE (set->elems == NULL, 0))
+ if (__glibc_unlikely (set->elems == NULL))
return REG_ESPACE;
if (elem1 == elem2)
{
}
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
re_node_set_init_copy (re_node_set *dest, const re_node_set *src)
{
dest->nelem = src->nelem;
{
dest->alloc = dest->nelem;
dest->elems = re_malloc (Idx, dest->alloc);
- if (BE (dest->elems == NULL, 0))
+ if (__glibc_unlikely (dest->elems == NULL))
{
dest->alloc = dest->nelem = 0;
return REG_ESPACE;
Note: We assume dest->elems is NULL, when dest->alloc is 0. */
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1,
const re_node_set *src2)
{
{
Idx new_alloc = src1->nelem + src2->nelem + dest->alloc;
Idx *new_elems = re_realloc (dest->elems, Idx, new_alloc);
- if (BE (new_elems == NULL, 0))
+ if (__glibc_unlikely (new_elems == NULL))
return REG_ESPACE;
dest->elems = new_elems;
dest->alloc = new_alloc;
DEST. Return value indicate the error code or REG_NOERROR if succeeded. */
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
re_node_set_init_union (re_node_set *dest, const re_node_set *src1,
const re_node_set *src2)
{
{
dest->alloc = src1->nelem + src2->nelem;
dest->elems = re_malloc (Idx, dest->alloc);
- if (BE (dest->elems == NULL, 0))
+ if (__glibc_unlikely (dest->elems == NULL))
return REG_ESPACE;
}
else
DEST. Return value indicate the error code or REG_NOERROR if succeeded. */
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
re_node_set_merge (re_node_set *dest, const re_node_set *src)
{
Idx is, id, sbase, delta;
{
Idx new_alloc = 2 * (src->nelem + dest->alloc);
Idx *new_buffer = re_realloc (dest->elems, Idx, new_alloc);
- if (BE (new_buffer == NULL, 0))
+ if (__glibc_unlikely (new_buffer == NULL))
return REG_ESPACE;
dest->elems = new_buffer;
dest->alloc = new_alloc;
}
- if (BE (dest->nelem == 0, 0))
+ if (__glibc_unlikely (dest->nelem == 0))
{
dest->nelem = src->nelem;
memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx));
Return true if successful. */
static bool
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
re_node_set_insert (re_node_set *set, Idx elem)
{
Idx idx;
/* In case the set is empty. */
if (set->alloc == 0)
- return BE (re_node_set_init_1 (set, elem) == REG_NOERROR, 1);
+ return __glibc_likely (re_node_set_init_1 (set, elem) == REG_NOERROR);
- if (BE (set->nelem, 0) == 0)
+ if (__glibc_unlikely (set->nelem) == 0)
{
/* We already guaranteed above that set->alloc != 0. */
set->elems[0] = elem;
Idx *new_elems;
set->alloc = set->alloc * 2;
new_elems = re_realloc (set->elems, Idx, set->alloc);
- if (BE (new_elems == NULL, 0))
+ if (__glibc_unlikely (new_elems == NULL))
return false;
set->elems = new_elems;
}
Return true if successful. */
static bool
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
re_node_set_insert_last (re_node_set *set, Idx elem)
{
/* Realloc if we need. */
Idx *new_elems;
set->alloc = (set->alloc + 1) * 2;
new_elems = re_realloc (set->elems, Idx, set->alloc);
- if (BE (new_elems == NULL, 0))
+ if (__glibc_unlikely (new_elems == NULL))
return false;
set->elems = new_elems;
}
Return true if SET1 and SET2 are equivalent. */
static bool
-internal_function __attribute__ ((pure))
+__attribute__ ((pure))
re_node_set_compare (const re_node_set *set1, const re_node_set *set2)
{
Idx i;
/* Return (idx + 1) if SET contains the element ELEM, return 0 otherwise. */
static Idx
-internal_function __attribute__ ((pure))
+__attribute__ ((pure))
re_node_set_contains (const re_node_set *set, Idx elem)
{
__re_size_t idx, right, mid;
}
static void
-internal_function
re_node_set_remove_at (re_node_set *set, Idx idx)
{
if (idx < 0 || idx >= set->nelem)
Or return -1 if an error occurred. */
static Idx
-internal_function
re_dfa_add_node (re_dfa_t *dfa, re_token_t token)
{
- if (BE (dfa->nodes_len >= dfa->nodes_alloc, 0))
+ if (__glibc_unlikely (dfa->nodes_len >= dfa->nodes_alloc))
{
size_t new_nodes_alloc = dfa->nodes_alloc * 2;
Idx *new_nexts, *new_indices;
const size_t max_object_size = MAX (sizeof (re_token_t),
MAX (sizeof (re_node_set),
sizeof (Idx)));
- if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < new_nodes_alloc, 0))
+ if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size)
+ < new_nodes_alloc))
return -1;
new_nodes = re_realloc (dfa->nodes, re_token_t, new_nodes_alloc);
- if (BE (new_nodes == NULL, 0))
+ if (__glibc_unlikely (new_nodes == NULL))
return -1;
dfa->nodes = new_nodes;
new_nexts = re_realloc (dfa->nexts, Idx, new_nodes_alloc);
new_indices = re_realloc (dfa->org_indices, Idx, new_nodes_alloc);
new_edests = re_realloc (dfa->edests, re_node_set, new_nodes_alloc);
new_eclosures = re_realloc (dfa->eclosures, re_node_set, new_nodes_alloc);
- if (BE (new_nexts == NULL || new_indices == NULL
- || new_edests == NULL || new_eclosures == NULL, 0))
+ if (__glibc_unlikely (new_nexts == NULL || new_indices == NULL
+ || new_edests == NULL || new_eclosures == NULL))
{
re_free (new_nexts);
re_free (new_indices);
}
static re_hashval_t
-internal_function
calc_state_hash (const re_node_set *nodes, unsigned int context)
{
re_hashval_t hash = nodes->nelem + context;
optimization. */
static re_dfastate_t *
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa,
const re_node_set *nodes)
{
/* Suppress bogus uninitialized-variable warnings. */
*err = REG_NOERROR;
#endif
- if (BE (nodes->nelem == 0, 0))
+ if (__glibc_unlikely (nodes->nelem == 0))
{
*err = REG_NOERROR;
return NULL;
/* There are no appropriate state in the dfa, create the new one. */
new_state = create_ci_newstate (dfa, nodes, hash);
- if (BE (new_state == NULL, 0))
+ if (__glibc_unlikely (new_state == NULL))
*err = REG_ESPACE;
return new_state;
optimization. */
static re_dfastate_t *
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa,
const re_node_set *nodes, unsigned int context)
{
}
/* There are no appropriate state in 'dfa', create the new one. */
new_state = create_cd_newstate (dfa, nodes, context, hash);
- if (BE (new_state == NULL, 0))
+ if (__glibc_unlikely (new_state == NULL))
*err = REG_ESPACE;
return new_state;
newstate->hash = hash;
err = re_node_set_alloc (&newstate->non_eps_nodes, newstate->nodes.nelem);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return REG_ESPACE;
for (i = 0; i < newstate->nodes.nelem; i++)
{
}
spot = dfa->state_table + (hash & dfa->state_hash_mask);
- if (BE (spot->alloc <= spot->num, 0))
+ if (__glibc_unlikely (spot->alloc <= spot->num))
{
Idx new_alloc = 2 * spot->num + 2;
re_dfastate_t **new_array = re_realloc (spot->array, re_dfastate_t *,
new_alloc);
- if (BE (new_array == NULL, 0))
+ if (__glibc_unlikely (new_array == NULL))
return REG_ESPACE;
spot->array = new_array;
spot->alloc = new_alloc;
Return the new state if succeeded, otherwise return NULL. */
static re_dfastate_t *
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
re_hashval_t hash)
{
re_dfastate_t *newstate;
newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1);
- if (BE (newstate == NULL, 0))
+ if (__glibc_unlikely (newstate == NULL))
return NULL;
err = re_node_set_init_copy (&newstate->nodes, nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_free (newstate);
return NULL;
newstate->has_constraint = 1;
}
err = register_state (dfa, newstate, hash);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
free_state (newstate);
newstate = NULL;
Return the new state if succeeded, otherwise return NULL. */
static re_dfastate_t *
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
unsigned int context, re_hashval_t hash)
{
re_dfastate_t *newstate;
newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1);
- if (BE (newstate == NULL, 0))
+ if (__glibc_unlikely (newstate == NULL))
return NULL;
err = re_node_set_init_copy (&newstate->nodes, nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_free (newstate);
return NULL;
if (newstate->entrance_nodes == &newstate->nodes)
{
newstate->entrance_nodes = re_malloc (re_node_set, 1);
- if (BE (newstate->entrance_nodes == NULL, 0))
+ if (__glibc_unlikely (newstate->entrance_nodes == NULL))
{
free_state (newstate);
return NULL;
}
}
err = register_state (dfa, newstate, hash);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
free_state (newstate);
newstate = NULL;
/* Extended regular expression matching and search library.
- Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
You should have received a copy of the GNU General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _REGEX_INTERNAL_H
#define _REGEX_INTERNAL_H 1
#include <stdbool.h>
#include <stdint.h>
-#include "intprops.h"
+#include <intprops.h>
#ifdef _LIBC
# include <libc-lock.h>
# define lock_define(name) __libc_lock_define (, name)
# define lock_init(lock) (__libc_lock_init (lock), 0)
-# define lock_fini(lock) 0
+# define lock_fini(lock) ((void) 0)
# define lock_lock(lock) __libc_lock_lock (lock)
# define lock_unlock(lock) __libc_lock_unlock (lock)
#elif defined GNULIB_LOCK && !defined USE_UNLOCKED_IO
# define RE_ENABLE_I18N
#endif
-#define BE(expr, val) __builtin_expect (expr, val)
-
/* Number of ASCII characters. */
#define ASCII_CHARS 0x80
/* Rename to standard API for using out of glibc. */
#ifndef _LIBC
# undef __wctype
+# undef __iswalnum
# undef __iswctype
+# undef __towlower
+# undef __towupper
# define __wctype wctype
# define __iswalnum iswalnum
# define __iswctype iswctype
typedef struct re_dfa_t re_dfa_t;
#ifndef _LIBC
-# define internal_function
# define IS_IN(libc) false
#endif
-static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr,
- Idx new_buf_len)
- internal_function;
-#ifdef RE_ENABLE_I18N
-static void build_wcs_buffer (re_string_t *pstr) internal_function;
-static reg_errcode_t build_wcs_upper_buffer (re_string_t *pstr)
- internal_function;
-#endif /* RE_ENABLE_I18N */
-static void build_upper_buffer (re_string_t *pstr) internal_function;
-static void re_string_translate_buffer (re_string_t *pstr) internal_function;
-static unsigned int re_string_context_at (const re_string_t *input, Idx idx,
- int eflags)
- internal_function __attribute__ ((pure));
-
#define re_string_peek_byte(pstr, offset) \
((pstr)->mbs[(pstr)->cur_idx + offset])
#define re_string_fetch_byte(pstr) \
/* Functions for bitset_t operation. */
-static void
+static inline void
bitset_set (bitset_t set, Idx i)
{
set[i / BITSET_WORD_BITS] |= (bitset_word_t) 1 << i % BITSET_WORD_BITS;
}
-static void
+static inline void
bitset_clear (bitset_t set, Idx i)
{
set[i / BITSET_WORD_BITS] &= ~ ((bitset_word_t) 1 << i % BITSET_WORD_BITS);
}
-static bool
+static inline bool
bitset_contain (const bitset_t set, Idx i)
{
return (set[i / BITSET_WORD_BITS] >> i % BITSET_WORD_BITS) & 1;
}
-static void
+static inline void
bitset_empty (bitset_t set)
{
memset (set, '\0', sizeof (bitset_t));
}
-static void
+static inline void
bitset_set_all (bitset_t set)
{
memset (set, -1, sizeof (bitset_word_t) * (SBC_MAX / BITSET_WORD_BITS));
((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1;
}
-static void
+static inline void
bitset_copy (bitset_t dest, const bitset_t src)
{
memcpy (dest, src, sizeof (bitset_t));
}
-static void __attribute__ ((unused))
+static inline void
bitset_not (bitset_t set)
{
int bitset_i;
& ~set[BITSET_WORDS - 1]);
}
-static void __attribute__ ((unused))
+static inline void
bitset_merge (bitset_t dest, const bitset_t src)
{
int bitset_i;
dest[bitset_i] |= src[bitset_i];
}
-static void __attribute__ ((unused))
+static inline void
bitset_mask (bitset_t dest, const bitset_t src)
{
int bitset_i;
#ifdef RE_ENABLE_I18N
/* Functions for re_string. */
static int
-internal_function __attribute__ ((pure, unused))
+__attribute__ ((pure, unused))
re_string_char_size_at (const re_string_t *pstr, Idx idx)
{
int byte_idx;
}
static wint_t
-internal_function __attribute__ ((pure, unused))
+__attribute__ ((pure, unused))
re_string_wchar_at (const re_string_t *pstr, Idx idx)
{
if (pstr->mb_cur_max == 1)
# endif
static int
-internal_function __attribute__ ((pure, unused))
+__attribute__ ((pure, unused))
re_string_elem_size_at (const re_string_t *pstr, Idx idx)
{
# ifdef _LIBC
# define __attribute_warn_unused_result__ /* empty */
#endif
+#ifndef FALLTHROUGH
+# if __GNUC__ < 7
+# define FALLTHROUGH ((void) 0)
+# else
+# define FALLTHROUGH __attribute__ ((__fallthrough__))
+# endif
+#endif
+
#endif /* _REGEX_INTERNAL_H */
/* Extended regular expression matching and search library.
- Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
You should have received a copy of the GNU General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags,
- Idx n) internal_function;
-static void match_ctx_clean (re_match_context_t *mctx) internal_function;
-static void match_ctx_free (re_match_context_t *cache) internal_function;
+ Idx n);
+static void match_ctx_clean (re_match_context_t *mctx);
+static void match_ctx_free (re_match_context_t *cache);
static reg_errcode_t match_ctx_add_entry (re_match_context_t *cache, Idx node,
- Idx str_idx, Idx from, Idx to)
- internal_function;
-static Idx search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx)
- internal_function;
+ Idx str_idx, Idx from, Idx to);
+static Idx search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx);
static reg_errcode_t match_ctx_add_subtop (re_match_context_t *mctx, Idx node,
- Idx str_idx) internal_function;
+ Idx str_idx);
static re_sub_match_last_t * match_ctx_add_sublast (re_sub_match_top_t *subtop,
- Idx node, Idx str_idx)
- internal_function;
+ Idx node, Idx str_idx);
static void sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts,
re_dfastate_t **limited_sts, Idx last_node,
- Idx last_str_idx)
- internal_function;
+ Idx last_str_idx);
static reg_errcode_t re_search_internal (const regex_t *preg,
const char *string, Idx length,
Idx start, Idx last_start, Idx stop,
size_t nmatch, regmatch_t pmatch[],
- int eflags) internal_function;
+ int eflags);
static regoff_t re_search_2_stub (struct re_pattern_buffer *bufp,
const char *string1, Idx length1,
const char *string2, Idx length2,
Idx start, regoff_t range,
struct re_registers *regs,
- Idx stop, bool ret_len) internal_function;
+ Idx stop, bool ret_len);
static regoff_t re_search_stub (struct re_pattern_buffer *bufp,
const char *string, Idx length, Idx start,
regoff_t range, Idx stop,
struct re_registers *regs,
- bool ret_len) internal_function;
+ bool ret_len);
static unsigned re_copy_regs (struct re_registers *regs, regmatch_t *pmatch,
- Idx nregs, int regs_allocated) internal_function;
-static reg_errcode_t prune_impossible_nodes (re_match_context_t *mctx)
- internal_function;
+ Idx nregs, int regs_allocated);
+static reg_errcode_t prune_impossible_nodes (re_match_context_t *mctx);
static Idx check_matching (re_match_context_t *mctx, bool fl_longest_match,
- Idx *p_match_first) internal_function;
+ Idx *p_match_first);
static Idx check_halt_state_context (const re_match_context_t *mctx,
- const re_dfastate_t *state, Idx idx)
- internal_function;
+ const re_dfastate_t *state, Idx idx);
static void update_regs (const re_dfa_t *dfa, regmatch_t *pmatch,
regmatch_t *prev_idx_match, Idx cur_node,
- Idx cur_idx, Idx nmatch) internal_function;
+ Idx cur_idx, Idx nmatch);
static reg_errcode_t push_fail_stack (struct re_fail_stack_t *fs,
Idx str_idx, Idx dest_node, Idx nregs,
regmatch_t *regs,
- re_node_set *eps_via_nodes)
- internal_function;
+ re_node_set *eps_via_nodes);
static reg_errcode_t set_regs (const regex_t *preg,
const re_match_context_t *mctx,
size_t nmatch, regmatch_t *pmatch,
- bool fl_backtrack) internal_function;
-static reg_errcode_t free_fail_stack_return (struct re_fail_stack_t *fs)
- internal_function;
+ bool fl_backtrack);
+static reg_errcode_t free_fail_stack_return (struct re_fail_stack_t *fs);
#ifdef RE_ENABLE_I18N
static int sift_states_iter_mb (const re_match_context_t *mctx,
re_sift_context_t *sctx,
- Idx node_idx, Idx str_idx, Idx max_str_idx)
- internal_function;
+ Idx node_idx, Idx str_idx, Idx max_str_idx);
#endif /* RE_ENABLE_I18N */
static reg_errcode_t sift_states_backward (const re_match_context_t *mctx,
- re_sift_context_t *sctx)
- internal_function;
+ re_sift_context_t *sctx);
static reg_errcode_t build_sifted_states (const re_match_context_t *mctx,
re_sift_context_t *sctx, Idx str_idx,
- re_node_set *cur_dest)
- internal_function;
+ re_node_set *cur_dest);
static reg_errcode_t update_cur_sifted_state (const re_match_context_t *mctx,
re_sift_context_t *sctx,
Idx str_idx,
- re_node_set *dest_nodes)
- internal_function;
+ re_node_set *dest_nodes);
static reg_errcode_t add_epsilon_src_nodes (const re_dfa_t *dfa,
re_node_set *dest_nodes,
- const re_node_set *candidates)
- internal_function;
+ const re_node_set *candidates);
static bool check_dst_limits (const re_match_context_t *mctx,
const re_node_set *limits,
Idx dst_node, Idx dst_idx, Idx src_node,
- Idx src_idx) internal_function;
+ Idx src_idx);
static int check_dst_limits_calc_pos_1 (const re_match_context_t *mctx,
int boundaries, Idx subexp_idx,
- Idx from_node, Idx bkref_idx)
- internal_function;
+ Idx from_node, Idx bkref_idx);
static int check_dst_limits_calc_pos (const re_match_context_t *mctx,
Idx limit, Idx subexp_idx,
Idx node, Idx str_idx,
- Idx bkref_idx) internal_function;
+ Idx bkref_idx);
static reg_errcode_t check_subexp_limits (const re_dfa_t *dfa,
re_node_set *dest_nodes,
const re_node_set *candidates,
re_node_set *limits,
struct re_backref_cache_entry *bkref_ents,
- Idx str_idx) internal_function;
+ Idx str_idx);
static reg_errcode_t sift_states_bkref (const re_match_context_t *mctx,
re_sift_context_t *sctx,
- Idx str_idx, const re_node_set *candidates)
- internal_function;
+ Idx str_idx, const re_node_set *candidates);
static reg_errcode_t merge_state_array (const re_dfa_t *dfa,
re_dfastate_t **dst,
- re_dfastate_t **src, Idx num)
- internal_function;
+ re_dfastate_t **src, Idx num);
static re_dfastate_t *find_recover_state (reg_errcode_t *err,
- re_match_context_t *mctx) internal_function;
+ re_match_context_t *mctx);
static re_dfastate_t *transit_state (reg_errcode_t *err,
re_match_context_t *mctx,
- re_dfastate_t *state) internal_function;
+ re_dfastate_t *state);
static re_dfastate_t *merge_state_with_log (reg_errcode_t *err,
re_match_context_t *mctx,
- re_dfastate_t *next_state)
- internal_function;
+ re_dfastate_t *next_state);
static reg_errcode_t check_subexp_matching_top (re_match_context_t *mctx,
re_node_set *cur_nodes,
- Idx str_idx) internal_function;
+ Idx str_idx);
#if 0
static re_dfastate_t *transit_state_sb (reg_errcode_t *err,
re_match_context_t *mctx,
- re_dfastate_t *pstate)
- internal_function;
+ re_dfastate_t *pstate);
#endif
#ifdef RE_ENABLE_I18N
static reg_errcode_t transit_state_mb (re_match_context_t *mctx,
- re_dfastate_t *pstate)
- internal_function;
+ re_dfastate_t *pstate);
#endif /* RE_ENABLE_I18N */
static reg_errcode_t transit_state_bkref (re_match_context_t *mctx,
- const re_node_set *nodes)
- internal_function;
+ const re_node_set *nodes);
static reg_errcode_t get_subexp (re_match_context_t *mctx,
- Idx bkref_node, Idx bkref_str_idx)
- internal_function;
+ Idx bkref_node, Idx bkref_str_idx);
static reg_errcode_t get_subexp_sub (re_match_context_t *mctx,
const re_sub_match_top_t *sub_top,
re_sub_match_last_t *sub_last,
- Idx bkref_node, Idx bkref_str)
- internal_function;
+ Idx bkref_node, Idx bkref_str);
static Idx find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes,
- Idx subexp_idx, int type) internal_function;
+ Idx subexp_idx, int type);
static reg_errcode_t check_arrival (re_match_context_t *mctx,
state_array_t *path, Idx top_node,
Idx top_str, Idx last_node, Idx last_str,
- int type) internal_function;
+ int type);
static reg_errcode_t check_arrival_add_next_nodes (re_match_context_t *mctx,
Idx str_idx,
re_node_set *cur_nodes,
- re_node_set *next_nodes)
- internal_function;
+ re_node_set *next_nodes);
static reg_errcode_t check_arrival_expand_ecl (const re_dfa_t *dfa,
re_node_set *cur_nodes,
- Idx ex_subexp, int type)
- internal_function;
+ Idx ex_subexp, int type);
static reg_errcode_t check_arrival_expand_ecl_sub (const re_dfa_t *dfa,
re_node_set *dst_nodes,
Idx target, Idx ex_subexp,
- int type) internal_function;
+ int type);
static reg_errcode_t expand_bkref_cache (re_match_context_t *mctx,
re_node_set *cur_nodes, Idx cur_str,
- Idx subexp_num, int type)
- internal_function;
-static bool build_trtable (const re_dfa_t *dfa,
- re_dfastate_t *state) internal_function;
+ Idx subexp_num, int type);
+static bool build_trtable (const re_dfa_t *dfa, re_dfastate_t *state);
#ifdef RE_ENABLE_I18N
static int check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
- const re_string_t *input, Idx idx)
- internal_function;
+ const re_string_t *input, Idx idx);
# ifdef _LIBC
static unsigned int find_collation_sequence_value (const unsigned char *mbs,
- size_t name_len)
- internal_function;
+ size_t name_len);
# endif /* _LIBC */
#endif /* RE_ENABLE_I18N */
static Idx group_nodes_into_DFAstates (const re_dfa_t *dfa,
const re_dfastate_t *state,
re_node_set *states_node,
- bitset_t *states_ch) internal_function;
+ bitset_t *states_ch);
static bool check_node_accept (const re_match_context_t *mctx,
- const re_token_t *node, Idx idx)
- internal_function;
-static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len)
- internal_function;
+ const re_token_t *node, Idx idx);
+static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len);
\f
/* Entry point for POSIX code. */
}
#ifdef _LIBC
+libc_hidden_def (__regexec)
+
# include <shlib-compat.h>
versioned_symbol (libc, __regexec, regexec, GLIBC_2_3_4);
#endif
static regoff_t
-internal_function
re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1,
Idx length1, const char *string2, Idx length2, Idx start,
regoff_t range, struct re_registers *regs,
Idx len;
char *s = NULL;
- if (BE ((length1 < 0 || length2 < 0 || stop < 0
- || INT_ADD_WRAPV (length1, length2, &len)),
- 0))
+ if (__glibc_unlikely ((length1 < 0 || length2 < 0 || stop < 0
+ || INT_ADD_WRAPV (length1, length2, &len))))
return -2;
/* Concatenate the strings. */
{
s = re_malloc (char, len);
- if (BE (s == NULL, 0))
+ if (__glibc_unlikely (s == NULL))
return -2;
#ifdef _LIBC
memcpy (__mempcpy (s, string1, length1), string2, length2);
otherwise the position of the match is returned. */
static regoff_t
-internal_function
re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length,
Idx start, regoff_t range, Idx stop, struct re_registers *regs,
bool ret_len)
Idx last_start = start + range;
/* Check for out-of-range. */
- if (BE (start < 0 || start > length, 0))
+ if (__glibc_unlikely (start < 0 || start > length))
return -1;
- if (BE (length < last_start || (0 <= range && last_start < start), 0))
+ if (__glibc_unlikely (length < last_start
+ || (0 <= range && last_start < start)))
last_start = length;
- else if (BE (last_start < 0 || (range < 0 && start <= last_start), 0))
+ else if (__glibc_unlikely (last_start < 0
+ || (range < 0 && start <= last_start)))
last_start = 0;
lock_lock (dfa->lock);
if (start < last_start && bufp->fastmap != NULL && !bufp->fastmap_accurate)
re_compile_fastmap (bufp);
- if (BE (bufp->no_sub, 0))
+ if (__glibc_unlikely (bufp->no_sub))
regs = NULL;
/* We need at least 1 register. */
if (regs == NULL)
nregs = 1;
- else if (BE (bufp->regs_allocated == REGS_FIXED
- && regs->num_regs <= bufp->re_nsub, 0))
+ else if (__glibc_unlikely (bufp->regs_allocated == REGS_FIXED
+ && regs->num_regs <= bufp->re_nsub))
{
nregs = regs->num_regs;
- if (BE (nregs < 1, 0))
+ if (__glibc_unlikely (nregs < 1))
{
/* Nothing can be copied to regs. */
regs = NULL;
else
nregs = bufp->re_nsub + 1;
pmatch = re_malloc (regmatch_t, nregs);
- if (BE (pmatch == NULL, 0))
+ if (__glibc_unlikely (pmatch == NULL))
{
rval = -2;
goto out;
/* If caller wants register contents data back, copy them. */
bufp->regs_allocated = re_copy_regs (regs, pmatch, nregs,
bufp->regs_allocated);
- if (BE (bufp->regs_allocated == REGS_UNALLOCATED, 0))
+ if (__glibc_unlikely (bufp->regs_allocated == REGS_UNALLOCATED))
rval = -2;
}
- if (BE (rval == 0, 1))
+ if (__glibc_likely (rval == 0))
{
if (ret_len)
{
}
static unsigned
-internal_function
re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs,
int regs_allocated)
{
if (regs_allocated == REGS_UNALLOCATED)
{ /* No. So allocate them with malloc. */
regs->start = re_malloc (regoff_t, need_regs);
- if (BE (regs->start == NULL, 0))
+ if (__glibc_unlikely (regs->start == NULL))
return REGS_UNALLOCATED;
regs->end = re_malloc (regoff_t, need_regs);
- if (BE (regs->end == NULL, 0))
+ if (__glibc_unlikely (regs->end == NULL))
{
re_free (regs->start);
return REGS_UNALLOCATED;
{ /* Yes. If we need more elements than were already
allocated, reallocate them. If we need fewer, just
leave it alone. */
- if (BE (need_regs > regs->num_regs, 0))
+ if (__glibc_unlikely (need_regs > regs->num_regs))
{
regoff_t *new_start = re_realloc (regs->start, regoff_t, need_regs);
regoff_t *new_end;
- if (BE (new_start == NULL, 0))
+ if (__glibc_unlikely (new_start == NULL))
return REGS_UNALLOCATED;
new_end = re_realloc (regs->end, regoff_t, need_regs);
- if (BE (new_end == NULL, 0))
+ if (__glibc_unlikely (new_end == NULL))
{
re_free (new_start);
return REGS_UNALLOCATED;
(0 <= LAST_START && LAST_START <= LENGTH) */
static reg_errcode_t
-__attribute_warn_unused_result__ internal_function
+__attribute_warn_unused_result__
re_search_internal (const regex_t *preg, const char *string, Idx length,
Idx start, Idx last_start, Idx stop, size_t nmatch,
regmatch_t pmatch[], int eflags)
nmatch -= extra_nmatch;
/* Check if the DFA haven't been compiled. */
- if (BE (preg->used == 0 || dfa->init_state == NULL
- || dfa->init_state_word == NULL || dfa->init_state_nl == NULL
- || dfa->init_state_begbuf == NULL, 0))
+ if (__glibc_unlikely (preg->used == 0 || dfa->init_state == NULL
+ || dfa->init_state_word == NULL
+ || dfa->init_state_nl == NULL
+ || dfa->init_state_begbuf == NULL))
return REG_NOMATCH;
#ifdef DEBUG
err = re_string_allocate (&mctx.input, string, length, dfa->nodes_len + 1,
preg->translate, (preg->syntax & RE_ICASE) != 0,
dfa);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
mctx.input.stop = stop;
mctx.input.raw_stop = stop;
mctx.input.newline_anchor = preg->newline_anchor;
err = match_ctx_init (&mctx, eflags, dfa->nbackref * 2);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
/* We will log all the DFA states through which the dfa pass,
if (nmatch > 1 || dfa->has_mb_node)
{
/* Avoid overflow. */
- if (BE ((MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *))
- <= mctx.input.bufs_len), 0))
+ if (__glibc_unlikely ((MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *))
+ <= mctx.input.bufs_len)))
{
err = REG_ESPACE;
goto free_return;
}
mctx.state_log = re_malloc (re_dfastate_t *, mctx.input.bufs_len + 1);
- if (BE (mctx.state_log == NULL, 0))
+ if (__glibc_unlikely (mctx.state_log == NULL))
{
err = REG_ESPACE;
goto free_return;
case 7:
/* Fastmap with single-byte translation, match forward. */
- while (BE (match_first < right_lim, 1)
+ while (__glibc_likely (match_first < right_lim)
&& !fastmap[t[(unsigned char) string[match_first]]])
++match_first;
goto forward_match_found_start_or_reached_end;
case 6:
/* Fastmap without translation, match forward. */
- while (BE (match_first < right_lim, 1)
+ while (__glibc_likely (match_first < right_lim)
&& !fastmap[(unsigned char) string[match_first]])
++match_first;
forward_match_found_start_or_reached_end:
- if (BE (match_first == right_lim, 0))
+ if (__glibc_unlikely (match_first == right_lim))
{
ch = match_first >= length
? 0 : (unsigned char) string[match_first];
/* If MATCH_FIRST is out of the valid range, reconstruct the
buffers. */
__re_size_t offset = match_first - mctx.input.raw_mbs_idx;
- if (BE (offset >= (__re_size_t) mctx.input.valid_raw_len, 0))
+ if (__glibc_unlikely (offset
+ >= (__re_size_t) mctx.input.valid_raw_len))
{
err = re_string_reconstruct (&mctx.input, match_first,
eflags);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
offset = match_first - mctx.input.raw_mbs_idx;
/* Reconstruct the buffers so that the matcher can assume that
the matching starts from the beginning of the buffer. */
err = re_string_reconstruct (&mctx.input, match_first, eflags);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
#ifdef RE_ENABLE_I18N
start <= last_start ? &match_first : NULL);
if (match_last != -1)
{
- if (BE (match_last == -2, 0))
+ if (__glibc_unlikely (match_last == -2))
{
err = REG_ESPACE;
goto free_return;
err = prune_impossible_nodes (&mctx);
if (err == REG_NOERROR)
break;
- if (BE (err != REG_NOMATCH, 0))
+ if (__glibc_unlikely (err != REG_NOMATCH))
goto free_return;
match_last = -1;
}
{
err = set_regs (preg, &mctx, nmatch, pmatch,
dfa->has_plural_match && dfa->nbackref > 0);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
}
if (pmatch[reg_idx].rm_so != -1)
{
#ifdef RE_ENABLE_I18N
- if (BE (mctx.input.offsets_needed != 0, 0))
+ if (__glibc_unlikely (mctx.input.offsets_needed != 0))
{
pmatch[reg_idx].rm_so =
(pmatch[reg_idx].rm_so == mctx.input.valid_len
}
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
prune_impossible_nodes (re_match_context_t *mctx)
{
const re_dfa_t *const dfa = mctx->dfa;
halt_node = mctx->last_node;
/* Avoid overflow. */
- if (BE (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) <= match_last, 0))
+ if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *))
+ <= match_last))
return REG_ESPACE;
sifted_states = re_malloc (re_dfastate_t *, match_last + 1);
- if (BE (sifted_states == NULL, 0))
+ if (__glibc_unlikely (sifted_states == NULL))
{
ret = REG_ESPACE;
goto free_return;
if (dfa->nbackref)
{
lim_states = re_malloc (re_dfastate_t *, match_last + 1);
- if (BE (lim_states == NULL, 0))
+ if (__glibc_unlikely (lim_states == NULL))
{
ret = REG_ESPACE;
goto free_return;
match_last);
ret = sift_states_backward (mctx, &sctx);
re_node_set_free (&sctx.limits);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
goto free_return;
if (sifted_states[0] != NULL || lim_states[0] != NULL)
break;
match_last + 1);
re_free (lim_states);
lim_states = NULL;
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
goto free_return;
}
else
sift_ctx_init (&sctx, sifted_states, lim_states, halt_node, match_last);
ret = sift_states_backward (mctx, &sctx);
re_node_set_free (&sctx.limits);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
goto free_return;
if (sifted_states[0] == NULL)
{
since initial states may have constraints like "\<", "^", etc.. */
static inline re_dfastate_t *
-__attribute__ ((always_inline)) internal_function
+__attribute__ ((always_inline))
acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx,
Idx idx)
{
index of the buffer. */
static Idx
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
check_matching (re_match_context_t *mctx, bool fl_longest_match,
Idx *p_match_first)
{
err = REG_NOERROR;
cur_state = acquire_init_state_context (&err, mctx, cur_str_idx);
/* An initial state must not be NULL (invalid). */
- if (BE (cur_state == NULL, 0))
+ if (__glibc_unlikely (cur_state == NULL))
{
assert (err == REG_ESPACE);
return -2;
/* Check OP_OPEN_SUBEXP in the initial state in case that we use them
later. E.g. Processing back references. */
- if (BE (dfa->nbackref, 0))
+ if (__glibc_unlikely (dfa->nbackref))
{
at_init_state = false;
err = check_subexp_matching_top (mctx, &cur_state->nodes, 0);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
if (cur_state->has_backref)
{
err = transit_state_bkref (mctx, &cur_state->nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
}
}
/* If the RE accepts NULL string. */
- if (BE (cur_state->halt, 0))
+ if (__glibc_unlikely (cur_state->halt))
{
if (!cur_state->has_constraint
|| check_halt_state_context (mctx, cur_state, cur_str_idx))
re_dfastate_t *old_state = cur_state;
Idx next_char_idx = re_string_cur_idx (&mctx->input) + 1;
- if ((BE (next_char_idx >= mctx->input.bufs_len, 0)
+ if ((__glibc_unlikely (next_char_idx >= mctx->input.bufs_len)
&& mctx->input.bufs_len < mctx->input.len)
- || (BE (next_char_idx >= mctx->input.valid_len, 0)
+ || (__glibc_unlikely (next_char_idx >= mctx->input.valid_len)
&& mctx->input.valid_len < mctx->input.len))
{
err = extend_buffers (mctx, next_char_idx + 1);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
assert (err == REG_ESPACE);
return -2;
/* Reached the invalid state or an error. Try to recover a valid
state using the state log, if available and if we have not
already found a valid (even if not the longest) match. */
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return -2;
if (mctx->state_log == NULL
break;
}
- if (BE (at_init_state, 0))
+ if (__glibc_unlikely (at_init_state))
{
if (old_state == cur_state)
next_start_idx = next_char_idx;
/* Check NODE match the current context. */
static bool
-internal_function
check_halt_node_context (const re_dfa_t *dfa, Idx node, unsigned int context)
{
re_token_type_t type = dfa->nodes[node].type;
match the context, return the node. */
static Idx
-internal_function
check_halt_state_context (const re_match_context_t *mctx,
const re_dfastate_t *state, Idx idx)
{
return -1 in case of errors. */
static Idx
-internal_function
proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs,
Idx *pidx, Idx node, re_node_set *eps_via_nodes,
struct re_fail_stack_t *fs)
re_node_set *edests = &dfa->edests[node];
Idx dest_node;
ok = re_node_set_insert (eps_via_nodes, node);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return -2;
/* Pick up a valid destination, or return -1 if none
is found. */
{
Idx dest_node;
ok = re_node_set_insert (eps_via_nodes, node);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return -2;
dest_node = dfa->edests[node].elems[0];
if (re_node_set_contains (&mctx->state_log[*pidx]->nodes,
}
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node,
Idx nregs, regmatch_t *regs, re_node_set *eps_via_nodes)
{
if (fs->num == fs->alloc)
{
struct re_fail_stack_ent_t *new_array;
- new_array = realloc (fs->stack, (sizeof (struct re_fail_stack_ent_t)
- * fs->alloc * 2));
+ new_array = re_realloc (fs->stack, struct re_fail_stack_ent_t,
+ fs->alloc * 2);
if (new_array == NULL)
return REG_ESPACE;
fs->alloc *= 2;
}
static Idx
-internal_function
pop_fail_stack (struct re_fail_stack_t *fs, Idx *pidx, Idx nregs,
regmatch_t *regs, re_node_set *eps_via_nodes)
{
pmatch[i].rm_so == pmatch[i].rm_eo == -1 for 0 < i < nmatch. */
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch,
regmatch_t *pmatch, bool fl_backtrack)
{
cur_node = proceed_next_node (mctx, nmatch, pmatch, &idx, cur_node,
&eps_via_nodes, fs);
- if (BE (cur_node < 0, 0))
+ if (__glibc_unlikely (cur_node < 0))
{
- if (BE (cur_node == -2, 0))
+ if (__glibc_unlikely (cur_node == -2))
{
re_node_set_free (&eps_via_nodes);
if (prev_idx_match_malloced)
}
static reg_errcode_t
-internal_function
free_fail_stack_return (struct re_fail_stack_t *fs)
{
if (fs)
}
static void
-internal_function
update_regs (const re_dfa_t *dfa, regmatch_t *pmatch,
regmatch_t *prev_idx_match, Idx cur_node, Idx cur_idx, Idx nmatch)
{
((state) != NULL && re_node_set_contains (&(state)->nodes, node))
static reg_errcode_t
-internal_function
sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx)
{
reg_errcode_t err;
/* Build sifted state_log[str_idx]. It has the nodes which can epsilon
transit to the last_node and the last_node itself. */
err = re_node_set_init_1 (&cur_dest, sctx->last_node);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
/* Then check each states in the state_log. */
if (mctx->state_log[str_idx])
{
err = build_sifted_states (mctx, sctx, str_idx, &cur_dest);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
}
- It is in CUR_SRC.
And update state_log. */
err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
}
err = REG_NOERROR;
}
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx,
Idx str_idx, re_node_set *cur_dest)
{
continue;
}
ok = re_node_set_insert (cur_dest, prev_node);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
}
/* Helper functions. */
static reg_errcode_t
-internal_function
clean_state_log_if_needed (re_match_context_t *mctx, Idx next_state_log_idx)
{
Idx top = mctx->state_log_top;
{
reg_errcode_t err;
err = extend_buffers (mctx, next_state_log_idx + 1);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
}
static reg_errcode_t
-internal_function
merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst,
re_dfastate_t **src, Idx num)
{
re_node_set merged_set;
err = re_node_set_init_union (&merged_set, &dst[st_idx]->nodes,
&src[st_idx]->nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
dst[st_idx] = re_acquire_state (&err, dfa, &merged_set);
re_node_set_free (&merged_set);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
}
}
static reg_errcode_t
-internal_function
update_cur_sifted_state (const re_match_context_t *mctx,
re_sift_context_t *sctx, Idx str_idx,
re_node_set *dest_nodes)
/* At first, add the nodes which can epsilon transit to a node in
DEST_NODE. */
err = add_epsilon_src_nodes (dfa, dest_nodes, candidates);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
/* Then, check the limitations in the current sift_context. */
{
err = check_subexp_limits (dfa, dest_nodes, candidates, &sctx->limits,
mctx->bkref_ents, str_idx);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
}
sctx->sifted_states[str_idx] = re_acquire_state (&err, dfa, dest_nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
if (candidates && mctx->state_log[str_idx]->has_backref)
{
err = sift_states_bkref (mctx, sctx, str_idx, candidates);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
return REG_NOERROR;
}
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes,
const re_node_set *candidates)
{
Idx i;
re_dfastate_t *state = re_acquire_state (&err, dfa, dest_nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
if (!state->inveclosure.alloc)
{
err = re_node_set_alloc (&state->inveclosure, dest_nodes->nelem);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return REG_ESPACE;
for (i = 0; i < dest_nodes->nelem; i++)
{
err = re_node_set_merge (&state->inveclosure,
dfa->inveclosures + dest_nodes->elems[i]);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return REG_ESPACE;
}
}
}
static reg_errcode_t
-internal_function
sub_epsilon_src_nodes (const re_dfa_t *dfa, Idx node, re_node_set *dest_nodes,
const re_node_set *candidates)
{
{
err = re_node_set_add_intersect (&except_nodes, candidates,
dfa->inveclosures + cur_node);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&except_nodes);
return err;
}
static bool
-internal_function
check_dst_limits (const re_match_context_t *mctx, const re_node_set *limits,
Idx dst_node, Idx dst_idx, Idx src_node, Idx src_idx)
{
}
static int
-internal_function
check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries,
Idx subexp_idx, Idx from_node, Idx bkref_idx)
{
}
static int
-internal_function
check_dst_limits_calc_pos (const re_match_context_t *mctx, Idx limit,
Idx subexp_idx, Idx from_node, Idx str_idx,
Idx bkref_idx)
which are against limitations from DEST_NODES. */
static reg_errcode_t
-internal_function
check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes,
const re_node_set *candidates, re_node_set *limits,
struct re_backref_cache_entry *bkref_ents, Idx str_idx)
{
err = sub_epsilon_src_nodes (dfa, ops_node, dest_nodes,
candidates);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
Remove it form the current sifted state. */
err = sub_epsilon_src_nodes (dfa, node, dest_nodes,
candidates);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
--node_idx;
}
Remove it form the current sifted state. */
err = sub_epsilon_src_nodes (dfa, node, dest_nodes,
candidates);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
}
}
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx,
Idx str_idx, const re_node_set *candidates)
{
{
local_sctx = *sctx;
err = re_node_set_init_copy (&local_sctx.limits, &sctx->limits);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
}
local_sctx.last_node = node;
local_sctx.last_str_idx = str_idx;
ok = re_node_set_insert (&local_sctx.limits, enabled_idx);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
{
err = REG_ESPACE;
goto free_return;
}
cur_state = local_sctx.sifted_states[str_idx];
err = sift_states_backward (mctx, &local_sctx);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
if (sctx->limited_states != NULL)
{
err = merge_state_array (dfa, sctx->limited_states,
local_sctx.sifted_states,
str_idx + 1);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
}
local_sctx.sifted_states[str_idx] = cur_state;
#ifdef RE_ENABLE_I18N
static int
-internal_function
sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx,
Idx node_idx, Idx str_idx, Idx max_str_idx)
{
update the destination of STATE_LOG. */
static re_dfastate_t *
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
transit_state (reg_errcode_t *err, re_match_context_t *mctx,
re_dfastate_t *state)
{
#ifdef RE_ENABLE_I18N
/* If the current state can accept multibyte. */
- if (BE (state->accept_mb, 0))
+ if (__glibc_unlikely (state->accept_mb))
{
*err = transit_state_mb (mctx, state);
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
return NULL;
}
#endif /* RE_ENABLE_I18N */
for (;;)
{
trtable = state->trtable;
- if (BE (trtable != NULL, 1))
+ if (__glibc_likely (trtable != NULL))
return trtable[ch];
trtable = state->word_trtable;
- if (BE (trtable != NULL, 1))
+ if (__glibc_likely (trtable != NULL))
{
unsigned int context;
context
/* Update the state_log if we need */
static re_dfastate_t *
-internal_function
merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx,
re_dfastate_t *next_state)
{
table_nodes = next_state->entrance_nodes;
*err = re_node_set_init_union (&next_nodes, table_nodes,
log_nodes);
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
return NULL;
}
else
re_node_set_free (&next_nodes);
}
- if (BE (dfa->nbackref, 0) && next_state != NULL)
+ if (__glibc_unlikely (dfa->nbackref) && next_state != NULL)
{
/* Check OP_OPEN_SUBEXP in the current state in case that we use them
later. We must check them here, since the back references in the
next state might use them. */
*err = check_subexp_matching_top (mctx, &next_state->nodes,
cur_idx);
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
return NULL;
/* If the next state has back references. */
if (next_state->has_backref)
{
*err = transit_state_bkref (mctx, &next_state->nodes);
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
return NULL;
next_state = mctx->state_log[cur_idx];
}
multi-byte match, then look in the log for a state
from which to restart matching. */
static re_dfastate_t *
-internal_function
find_recover_state (reg_errcode_t *err, re_match_context_t *mctx)
{
re_dfastate_t *cur_state;
corresponding back references. */
static reg_errcode_t
-internal_function
check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes,
Idx str_idx)
{
& ((bitset_word_t) 1 << dfa->nodes[node].opr.idx)))
{
err = match_ctx_add_subtop (mctx, node, str_idx);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
}
unsigned int context;
*err = re_node_set_alloc (&next_nodes, state->nodes.nelem + 1);
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
return NULL;
for (node_cnt = 0; node_cnt < state->nodes.nelem; ++node_cnt)
{
{
*err = re_node_set_merge (&next_nodes,
dfa->eclosures + dfa->nexts[cur_node]);
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
{
re_node_set_free (&next_nodes);
return NULL;
#ifdef RE_ENABLE_I18N
static reg_errcode_t
-internal_function
transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate)
{
const re_dfa_t *const dfa = mctx->dfa;
mctx->max_mb_elem_len = ((mctx->max_mb_elem_len < naccepted) ? naccepted
: mctx->max_mb_elem_len);
err = clean_state_log_if_needed (mctx, dest_idx);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
#ifdef DEBUG
assert (dfa->nexts[cur_node_idx] != -1);
{
err = re_node_set_init_union (&dest_nodes,
dest_state->entrance_nodes, new_nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
context = re_string_context_at (&mctx->input, dest_idx - 1,
= re_acquire_state_context (&err, dfa, &dest_nodes, context);
if (dest_state != NULL)
re_node_set_free (&dest_nodes);
- if (BE (mctx->state_log[dest_idx] == NULL && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (mctx->state_log[dest_idx] == NULL
+ && err != REG_NOERROR))
return err;
}
return REG_NOERROR;
#endif /* RE_ENABLE_I18N */
static reg_errcode_t
-internal_function
transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes)
{
const re_dfa_t *const dfa = mctx->dfa;
Check the substring which the substring matched. */
bkc_idx = mctx->nbkref_ents;
err = get_subexp (mctx, node_idx, cur_str_idx);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
/* And add the epsilon closures (which is 'new_dest_nodes') of
mctx->state_log[dest_str_idx]
= re_acquire_state_context (&err, dfa, new_dest_nodes,
context);
- if (BE (mctx->state_log[dest_str_idx] == NULL
- && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (mctx->state_log[dest_str_idx] == NULL
+ && err != REG_NOERROR))
goto free_return;
}
else
err = re_node_set_init_union (&dest_nodes,
dest_state->entrance_nodes,
new_dest_nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&dest_nodes);
goto free_return;
mctx->state_log[dest_str_idx]
= re_acquire_state_context (&err, dfa, &dest_nodes, context);
re_node_set_free (&dest_nodes);
- if (BE (mctx->state_log[dest_str_idx] == NULL
- && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (mctx->state_log[dest_str_idx] == NULL
+ && err != REG_NOERROR))
goto free_return;
}
/* We need to check recursively if the backreference can epsilon
{
err = check_subexp_matching_top (mctx, new_dest_nodes,
cur_str_idx);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
err = transit_state_bkref (mctx, new_dest_nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
}
}
delay these checking for prune_impossible_nodes(). */
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx)
{
const re_dfa_t *const dfa = mctx->dfa;
at the back reference? */
if (sl_str_diff > 0)
{
- if (BE (bkref_str_off + sl_str_diff > mctx->input.valid_len, 0))
+ if (__glibc_unlikely (bkref_str_off + sl_str_diff
+ > mctx->input.valid_len))
{
/* Not enough chars for a successful match. */
if (bkref_str_off + sl_str_diff > mctx->input.len)
err = clean_state_log_if_needed (mctx,
bkref_str_off
+ sl_str_diff);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
buf = (const char *) re_string_get_buffer (&mctx->input);
}
if (err == REG_NOMATCH)
continue;
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
at the back reference? */
if (sl_str_off > 0)
{
- if (BE (bkref_str_off >= mctx->input.valid_len, 0))
+ if (__glibc_unlikely (bkref_str_off >= mctx->input.valid_len))
{
/* If we are at the end of the input, we cannot match. */
if (bkref_str_off >= mctx->input.len)
break;
err = extend_buffers (mctx, bkref_str_off + 1);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
buf = (const char *) re_string_get_buffer (&mctx->input);
OP_CLOSE_SUBEXP);
if (err == REG_NOMATCH)
continue;
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
sub_last = match_ctx_add_sublast (sub_top, cls_node, sl_str);
- if (BE (sub_last == NULL, 0))
+ if (__glibc_unlikely (sub_last == NULL))
return REG_ESPACE;
err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node,
bkref_str_idx);
+ buf = (const char *) re_string_get_buffer (&mctx->input);
if (err == REG_NOMATCH)
continue;
+ if (__glibc_unlikely (err != REG_NOERROR))
+ return err;
}
}
return REG_NOERROR;
and SUB_LAST. */
static reg_errcode_t
-internal_function
get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top,
re_sub_match_last_t *sub_last, Idx bkref_node, Idx bkref_str)
{
return err;
err = match_ctx_add_entry (mctx, bkref_node, bkref_str, sub_top->str_idx,
sub_last->str_idx);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
to_idx = bkref_str + sub_last->str_idx - sub_top->str_idx;
return clean_state_log_if_needed (mctx, to_idx);
E.g. RE: (a){2} */
static Idx
-internal_function
find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes,
Idx subexp_idx, int type)
{
Return REG_NOERROR if it can arrive, or REG_NOMATCH otherwise. */
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node,
Idx top_str, Idx last_node, Idx last_str, int type)
{
subexp_num = dfa->nodes[top_node].opr.idx;
/* Extend the buffer if we need. */
- if (BE (path->alloc < last_str + mctx->max_mb_elem_len + 1, 0))
+ if (__glibc_unlikely (path->alloc < last_str + mctx->max_mb_elem_len + 1))
{
re_dfastate_t **new_array;
Idx old_alloc = path->alloc;
Idx incr_alloc = last_str + mctx->max_mb_elem_len + 1;
Idx new_alloc;
- if (BE (IDX_MAX - old_alloc < incr_alloc, 0))
+ if (__glibc_unlikely (IDX_MAX - old_alloc < incr_alloc))
return REG_ESPACE;
new_alloc = old_alloc + incr_alloc;
- if (BE (SIZE_MAX / sizeof (re_dfastate_t *) < new_alloc, 0))
+ if (__glibc_unlikely (SIZE_MAX / sizeof (re_dfastate_t *) < new_alloc))
return REG_ESPACE;
new_array = re_realloc (path->array, re_dfastate_t *, new_alloc);
- if (BE (new_array == NULL, 0))
+ if (__glibc_unlikely (new_array == NULL))
return REG_ESPACE;
path->array = new_array;
path->alloc = new_alloc;
if (str_idx == top_str)
{
err = re_node_set_init_1 (&next_nodes, top_node);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&next_nodes);
return err;
if (cur_state && cur_state->has_backref)
{
err = re_node_set_init_copy (&next_nodes, &cur_state->nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
else
{
err = expand_bkref_cache (mctx, &next_nodes, str_idx,
subexp_num, type);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&next_nodes);
return err;
}
}
cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context);
- if (BE (cur_state == NULL && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (cur_state == NULL && err != REG_NOERROR))
{
re_node_set_free (&next_nodes);
return err;
{
err = re_node_set_merge (&next_nodes,
&mctx->state_log[str_idx + 1]->nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&next_nodes);
return err;
err = check_arrival_add_next_nodes (mctx, str_idx,
&cur_state->non_eps_nodes,
&next_nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&next_nodes);
return err;
if (next_nodes.nelem)
{
err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&next_nodes);
return err;
}
err = expand_bkref_cache (mctx, &next_nodes, str_idx,
subexp_num, type);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&next_nodes);
return err;
}
context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags);
cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context);
- if (BE (cur_state == NULL && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (cur_state == NULL && err != REG_NOERROR))
{
re_node_set_free (&next_nodes);
return err;
Can't we unify them? */
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx,
re_node_set *cur_nodes, re_node_set *next_nodes)
{
if (dest_state)
{
err = re_node_set_merge (&union_set, &dest_state->nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&union_set);
return err;
}
}
ok = re_node_set_insert (&union_set, next_node);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
{
re_node_set_free (&union_set);
return REG_ESPACE;
}
mctx->state_log[next_idx] = re_acquire_state (&err, dfa,
&union_set);
- if (BE (mctx->state_log[next_idx] == NULL
- && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (mctx->state_log[next_idx] == NULL
+ && err != REG_NOERROR))
{
re_node_set_free (&union_set);
return err;
|| check_node_accept (mctx, dfa->nodes + cur_node, str_idx))
{
ok = re_node_set_insert (next_nodes, dfa->nexts[cur_node]);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
{
re_node_set_free (&union_set);
return REG_ESPACE;
*/
static reg_errcode_t
-internal_function
check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes,
Idx ex_subexp, int type)
{
assert (cur_nodes->nelem);
#endif
err = re_node_set_alloc (&new_nodes, cur_nodes->nelem);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
/* Create a new node set NEW_NODES with the nodes which are epsilon
closures of the node in CUR_NODES. */
{
/* There are no problematic nodes, just merge them. */
err = re_node_set_merge (&new_nodes, eclosure);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&new_nodes);
return err;
/* There are problematic nodes, re-calculate incrementally. */
err = check_arrival_expand_ecl_sub (dfa, &new_nodes, cur_node,
ex_subexp, type);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&new_nodes);
return err;
problematic append it to DST_NODES. */
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes,
Idx target, Idx ex_subexp, int type)
{
if (type == OP_CLOSE_SUBEXP)
{
ok = re_node_set_insert (dst_nodes, cur_node);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
}
break;
}
ok = re_node_set_insert (dst_nodes, cur_node);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
if (dfa->edests[cur_node].nelem == 0)
break;
err = check_arrival_expand_ecl_sub (dfa, dst_nodes,
dfa->edests[cur_node].elems[1],
ex_subexp, type);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
cur_node = dfa->edests[cur_node].elems[0];
in MCTX->BKREF_ENTS. */
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes,
Idx cur_str, Idx subexp_num, int type)
{
err2 = check_arrival_expand_ecl (dfa, &new_dests, subexp_num, type);
err3 = re_node_set_merge (cur_nodes, &new_dests);
re_node_set_free (&new_dests);
- if (BE (err != REG_NOERROR || err2 != REG_NOERROR
- || err3 != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR || err2 != REG_NOERROR
+ || err3 != REG_NOERROR))
{
err = (err != REG_NOERROR ? err
: (err2 != REG_NOERROR ? err2 : err3));
err = re_node_set_init_copy (&union_set,
&mctx->state_log[to_idx]->nodes);
ok = re_node_set_insert (&union_set, next_node);
- if (BE (err != REG_NOERROR || ! ok, 0))
+ if (__glibc_unlikely (err != REG_NOERROR || ! ok))
{
re_node_set_free (&union_set);
err = err != REG_NOERROR ? err : REG_ESPACE;
else
{
err = re_node_set_init_1 (&union_set, next_node);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
mctx->state_log[to_idx] = re_acquire_state (&err, dfa, &union_set);
re_node_set_free (&union_set);
- if (BE (mctx->state_log[to_idx] == NULL
- && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (mctx->state_log[to_idx] == NULL
+ && err != REG_NOERROR))
return err;
}
}
Return true if successful. */
static bool
-internal_function
build_trtable (const re_dfa_t *dfa, re_dfastate_t *state)
{
reg_errcode_t err;
else
{
dests_alloc = re_malloc (struct dests_alloc, 1);
- if (BE (dests_alloc == NULL, 0))
+ if (__glibc_unlikely (dests_alloc == NULL))
return false;
dests_node_malloced = true;
}
/* At first, group all nodes belonging to 'state' into several
destinations. */
ndests = group_nodes_into_DFAstates (dfa, state, dests_node, dests_ch);
- if (BE (ndests <= 0, 0))
+ if (__glibc_unlikely (ndests <= 0))
{
if (dests_node_malloced)
- free (dests_alloc);
+ re_free (dests_alloc);
/* Return false in case of an error, true otherwise. */
if (ndests == 0)
{
state->trtable = (re_dfastate_t **)
calloc (sizeof (re_dfastate_t *), SBC_MAX);
- if (BE (state->trtable == NULL, 0))
+ if (__glibc_unlikely (state->trtable == NULL))
return false;
return true;
}
}
err = re_node_set_alloc (&follows, ndests + 1);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto out_free;
/* Avoid arithmetic overflow in size calculation. */
- if (BE ((((SIZE_MAX - (sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX)
- / (3 * sizeof (re_dfastate_t *)))
- < ndests),
- 0))
+ size_t ndests_max
+ = ((SIZE_MAX - (sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX)
+ / (3 * sizeof (re_dfastate_t *)));
+ if (__glibc_unlikely (ndests_max < ndests))
goto out_free;
if (__libc_use_alloca ((sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX
alloca (ndests * 3 * sizeof (re_dfastate_t *));
else
{
- dest_states = (re_dfastate_t **)
- malloc (ndests * 3 * sizeof (re_dfastate_t *));
- if (BE (dest_states == NULL, 0))
+ dest_states = re_malloc (re_dfastate_t *, ndests * 3);
+ if (__glibc_unlikely (dest_states == NULL))
{
out_free:
if (dest_states_malloced)
- free (dest_states);
+ re_free (dest_states);
re_node_set_free (&follows);
for (i = 0; i < ndests; ++i)
re_node_set_free (dests_node + i);
if (dests_node_malloced)
- free (dests_alloc);
+ re_free (dests_alloc);
return false;
}
dest_states_malloced = true;
if (next_node != -1)
{
err = re_node_set_merge (&follows, dfa->eclosures + next_node);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto out_free;
}
}
dest_states[i] = re_acquire_state_context (&err, dfa, &follows, 0);
- if (BE (dest_states[i] == NULL && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (dest_states[i] == NULL && err != REG_NOERROR))
goto out_free;
/* If the new state has context constraint,
build appropriate states for these contexts. */
{
dest_states_word[i] = re_acquire_state_context (&err, dfa, &follows,
CONTEXT_WORD);
- if (BE (dest_states_word[i] == NULL && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (dest_states_word[i] == NULL
+ && err != REG_NOERROR))
goto out_free;
if (dest_states[i] != dest_states_word[i] && dfa->mb_cur_max > 1)
dest_states_nl[i] = re_acquire_state_context (&err, dfa, &follows,
CONTEXT_NEWLINE);
- if (BE (dest_states_nl[i] == NULL && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (dest_states_nl[i] == NULL && err != REG_NOERROR))
goto out_free;
}
else
bitset_merge (acceptable, dests_ch[i]);
}
- if (!BE (need_word_trtable, 0))
+ if (!__glibc_unlikely (need_word_trtable))
{
/* We don't care about whether the following character is a word
character, or we are in a single-byte character set so we can
256-entry transition table. */
trtable = state->trtable =
(re_dfastate_t **) calloc (sizeof (re_dfastate_t *), SBC_MAX);
- if (BE (trtable == NULL, 0))
+ if (__glibc_unlikely (trtable == NULL))
goto out_free;
/* For all characters ch...: */
for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1;
elem;
mask <<= 1, elem >>= 1, ++ch)
- if (BE (elem & 1, 0))
+ if (__glibc_unlikely (elem & 1))
{
/* There must be exactly one destination which accepts
character ch. See group_nodes_into_DFAstates. */
starting at trtable[SBC_MAX]. */
trtable = state->word_trtable =
(re_dfastate_t **) calloc (sizeof (re_dfastate_t *), 2 * SBC_MAX);
- if (BE (trtable == NULL, 0))
+ if (__glibc_unlikely (trtable == NULL))
goto out_free;
/* For all characters ch...: */
for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1;
elem;
mask <<= 1, elem >>= 1, ++ch)
- if (BE (elem & 1, 0))
+ if (__glibc_unlikely (elem & 1))
{
/* There must be exactly one destination which accepts
character ch. See group_nodes_into_DFAstates. */
}
if (dest_states_malloced)
- free (dest_states);
+ re_free (dest_states);
re_node_set_free (&follows);
for (i = 0; i < ndests; ++i)
re_node_set_free (dests_node + i);
if (dests_node_malloced)
- free (dests_alloc);
+ re_free (dests_alloc);
return true;
}
to DEST_CH[i]. This function return the number of destinations. */
static Idx
-internal_function
group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
re_node_set *dests_node, bitset_t *dests_ch)
{
bitset_copy (dests_ch[ndests], remains);
bitset_copy (dests_ch[j], intersec);
err = re_node_set_init_copy (dests_node + ndests, &dests_node[j]);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto error_return;
++ndests;
}
/* Put the position in the current group. */
ok = re_node_set_insert (&dests_node[j], cur_nodes->elems[i]);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
goto error_return;
/* If all characters are consumed, go to next node. */
{
bitset_copy (dests_ch[ndests], accepts);
err = re_node_set_init_1 (dests_node + ndests, cur_nodes->elems[i]);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto error_return;
++ndests;
bitset_empty (accepts);
# endif
static int
-internal_function
check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
const re_string_t *input, Idx str_idx)
{
int char_len, elem_len;
Idx i;
- if (BE (node->type == OP_UTF8_PERIOD, 0))
+ if (__glibc_unlikely (node->type == OP_UTF8_PERIOD))
{
unsigned char c = re_string_byte_at (input, str_idx), d;
- if (BE (c < 0xc2, 1))
+ if (__glibc_likely (c < 0xc2))
return 0;
if (str_idx + 2 > input->len)
indirect = (const int32_t *)
_NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB);
int32_t idx = findidx (table, indirect, extra, &cp, elem_len);
+ int32_t rule = idx >> 24;
+ idx &= 0xffffff;
if (idx > 0)
- for (i = 0; i < cset->nequiv_classes; ++i)
- {
- int32_t equiv_class_idx = cset->equiv_classes[i];
- size_t weight_len = weights[idx & 0xffffff];
- if (weight_len == weights[equiv_class_idx & 0xffffff]
- && (idx >> 24) == (equiv_class_idx >> 24))
- {
- Idx cnt = 0;
-
- idx &= 0xffffff;
- equiv_class_idx &= 0xffffff;
-
- while (cnt <= weight_len
- && (weights[equiv_class_idx + 1 + cnt]
- == weights[idx + 1 + cnt]))
- ++cnt;
- if (cnt > weight_len)
- {
- match_len = elem_len;
- goto check_node_accept_bytes_match;
- }
- }
- }
+ {
+ size_t weight_len = weights[idx];
+ for (i = 0; i < cset->nequiv_classes; ++i)
+ {
+ int32_t equiv_class_idx = cset->equiv_classes[i];
+ int32_t equiv_class_rule = equiv_class_idx >> 24;
+ equiv_class_idx &= 0xffffff;
+ if (weights[equiv_class_idx] == weight_len
+ && equiv_class_rule == rule
+ && memcmp (weights + idx + 1,
+ weights + equiv_class_idx + 1,
+ weight_len) == 0)
+ {
+ match_len = elem_len;
+ goto check_node_accept_bytes_match;
+ }
+ }
+ }
}
}
else
# ifdef _LIBC
static unsigned int
-internal_function
find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len)
{
uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
byte of the INPUT. */
static bool
-internal_function
check_node_accept (const re_match_context_t *mctx, const re_token_t *node,
Idx idx)
{
case OP_UTF8_PERIOD:
if (ch >= ASCII_CHARS)
return false;
- /* FALLTHROUGH */
+ FALLTHROUGH;
#endif
case OP_PERIOD:
if ((ch == '\n' && !(mctx->dfa->syntax & RE_DOT_NEWLINE))
/* Extend the buffers, if the buffers have run out. */
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
extend_buffers (re_match_context_t *mctx, int min_len)
{
reg_errcode_t ret;
re_string_t *pstr = &mctx->input;
/* Avoid overflow. */
- if (BE (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) / 2
- <= pstr->bufs_len, 0))
+ if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) / 2
+ <= pstr->bufs_len))
return REG_ESPACE;
/* Double the lengths of the buffers, but allocate at least MIN_LEN. */
ret = re_string_realloc_buffers (pstr,
MAX (min_len,
MIN (pstr->len, pstr->bufs_len * 2)));
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
if (mctx->state_log != NULL)
does not have the right size. */
re_dfastate_t **new_array = re_realloc (mctx->state_log, re_dfastate_t *,
pstr->bufs_len + 1);
- if (BE (new_array == NULL, 0))
+ if (__glibc_unlikely (new_array == NULL))
return REG_ESPACE;
mctx->state_log = new_array;
}
if (pstr->mb_cur_max > 1)
{
ret = build_wcs_upper_buffer (pstr);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
}
else
/* Initialize MCTX. */
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
match_ctx_init (re_match_context_t *mctx, int eflags, Idx n)
{
mctx->eflags = eflags;
size_t max_object_size =
MAX (sizeof (struct re_backref_cache_entry),
sizeof (re_sub_match_top_t *));
- if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < n, 0))
+ if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size) < n))
return REG_ESPACE;
mctx->bkref_ents = re_malloc (struct re_backref_cache_entry, n);
mctx->sub_tops = re_malloc (re_sub_match_top_t *, n);
- if (BE (mctx->bkref_ents == NULL || mctx->sub_tops == NULL, 0))
+ if (__glibc_unlikely (mctx->bkref_ents == NULL || mctx->sub_tops == NULL))
return REG_ESPACE;
}
/* Already zero-ed by the caller.
of the input, or changes the input string. */
static void
-internal_function
match_ctx_clean (re_match_context_t *mctx)
{
Idx st_idx;
re_free (top->path->array);
re_free (top->path);
}
- free (top);
+ re_free (top);
}
mctx->nsub_tops = 0;
/* Free all the memory associated with MCTX. */
static void
-internal_function
match_ctx_free (re_match_context_t *mctx)
{
/* First, free all the memory associated with MCTX->SUB_TOPS. */
*/
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
match_ctx_add_entry (re_match_context_t *mctx, Idx node, Idx str_idx, Idx from,
Idx to)
{
struct re_backref_cache_entry* new_entry;
new_entry = re_realloc (mctx->bkref_ents, struct re_backref_cache_entry,
mctx->abkref_ents * 2);
- if (BE (new_entry == NULL, 0))
+ if (__glibc_unlikely (new_entry == NULL))
{
re_free (mctx->bkref_ents);
return REG_ESPACE;
found. Note that MCTX->BKREF_ENTS is already sorted by MCTX->STR_IDX. */
static Idx
-internal_function
search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx)
{
Idx left, right, mid, last;
at STR_IDX. */
static reg_errcode_t
-internal_function __attribute_warn_unused_result__
+__attribute_warn_unused_result__
match_ctx_add_subtop (re_match_context_t *mctx, Idx node, Idx str_idx)
{
#ifdef DEBUG
assert (mctx->sub_tops != NULL);
assert (mctx->asub_tops > 0);
#endif
- if (BE (mctx->nsub_tops == mctx->asub_tops, 0))
+ if (__glibc_unlikely (mctx->nsub_tops == mctx->asub_tops))
{
Idx new_asub_tops = mctx->asub_tops * 2;
re_sub_match_top_t **new_array = re_realloc (mctx->sub_tops,
re_sub_match_top_t *,
new_asub_tops);
- if (BE (new_array == NULL, 0))
+ if (__glibc_unlikely (new_array == NULL))
return REG_ESPACE;
mctx->sub_tops = new_array;
mctx->asub_tops = new_asub_tops;
}
mctx->sub_tops[mctx->nsub_tops] = calloc (1, sizeof (re_sub_match_top_t));
- if (BE (mctx->sub_tops[mctx->nsub_tops] == NULL, 0))
+ if (__glibc_unlikely (mctx->sub_tops[mctx->nsub_tops] == NULL))
return REG_ESPACE;
mctx->sub_tops[mctx->nsub_tops]->node = node;
mctx->sub_tops[mctx->nsub_tops++]->str_idx = str_idx;
at STR_IDX, whose corresponding OP_OPEN_SUBEXP is SUB_TOP. */
static re_sub_match_last_t *
-internal_function
match_ctx_add_sublast (re_sub_match_top_t *subtop, Idx node, Idx str_idx)
{
re_sub_match_last_t *new_entry;
- if (BE (subtop->nlasts == subtop->alasts, 0))
+ if (__glibc_unlikely (subtop->nlasts == subtop->alasts))
{
Idx new_alasts = 2 * subtop->alasts + 1;
re_sub_match_last_t **new_array = re_realloc (subtop->lasts,
re_sub_match_last_t *,
new_alasts);
- if (BE (new_array == NULL, 0))
+ if (__glibc_unlikely (new_array == NULL))
return NULL;
subtop->lasts = new_array;
subtop->alasts = new_alasts;
}
new_entry = calloc (1, sizeof (re_sub_match_last_t));
- if (BE (new_entry != NULL, 1))
+ if (__glibc_likely (new_entry != NULL))
{
subtop->lasts[subtop->nlasts] = new_entry;
new_entry->node = node;
}
static void
-internal_function
sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts,
re_dfastate_t **limited_sts, Idx last_node, Idx last_str_idx)
{
+++ /dev/null
-/* Look up an environment variable, returning NULL in insecure situations.
-
- Copyright 2013-2017 Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#include <config.h>
-
-#include <stdlib.h>
-
-#if !HAVE___SECURE_GETENV
-# if HAVE_ISSETUGID || (HAVE_GETUID && HAVE_GETEUID && HAVE_GETGID && HAVE_GETEGID)
-# include <unistd.h>
-# endif
-#endif
-
-char *
-secure_getenv (char const *name)
-{
-#if HAVE___SECURE_GETENV /* glibc */
- return __secure_getenv (name);
-#elif HAVE_ISSETUGID /* OS X, FreeBSD, NetBSD, OpenBSD */
- if (issetugid ())
- return NULL;
- return getenv (name);
-#elif HAVE_GETUID && HAVE_GETEUID && HAVE_GETGID && HAVE_GETEGID /* other Unix */
- if (geteuid () != getuid () || getegid () != getgid ())
- return NULL;
- return getenv (name);
-#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* native Windows */
- /* On native Windows, there is no such concept as setuid or setgid binaries.
- - Programs launched as system services have high privileges, but they don't
- inherit environment variables from a user.
- - Programs launched by a user with "Run as Administrator" have high
- privileges and use the environment variables, but the user has been asked
- whether he agrees.
- - Programs launched by a user without "Run as Administrator" cannot gain
- high privileges, therefore there is no risk. */
- return getenv (name);
-#else
- return NULL;
-#endif
-}
-/* Copyright (C) 1992, 1995-2003, 2005-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995-2003, 2005-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#if !_LIBC
/* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc
/* Shell quoting.
- Copyright (C) 2001-2004, 2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2004, 2006, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Shell quoting.
- Copyright (C) 2001-2002, 2004, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2004, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _SH_QUOTE_H
#define _SH_QUOTE_H
/* Convenience declarations when working with <signal.h>.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _GL_SIG_HANDLER_H
#define _GL_SIG_HANDLER_H
SIG_HANDLER_INLINE sa_handler_t _GL_ATTRIBUTE_PURE
get_handler (struct sigaction const *a)
{
-#ifdef SA_SIGINFO
/* POSIX says that special values like SIG_IGN can only occur when
action.sa_flags does not contain SA_SIGINFO. But in Linux 2.4,
for example, sa_sigaction and sa_handler are aliases and a signal
- is ignored if sa_sigaction (after casting) equals SIG_IGN. So
- use (and cast) sa_sigaction in that case. */
- if (a->sa_flags & SA_SIGINFO)
- return (sa_handler_t) a->sa_sigaction;
-#endif
+ is ignored if sa_sigaction (after casting) equals SIG_IGN. In
+ this case, this implementation relies on the fact that the two
+ are aliases, and simply returns sa_handler. */
return a->sa_handler;
}
/* POSIX compatible signal blocking.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 Free Software Foundation, Inc.
Written by Eric Blake <ebb9@byu.net>, 2008.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* On native Windows, as of 2008, the signal SIGABRT_COMPAT is an alias
for the signal SIGABRT. Only one signal handler is stored for both
SIGABRT and SIGABRT_COMPAT. SIGABRT_COMPAT is not a signal of its own. */
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
# undef SIGABRT_COMPAT
# define SIGABRT_COMPAT 6
#endif
/* A GNU-like <signal.h>.
- Copyright (C) 2006-2017 Free Software Foundation, Inc.
+ Copyright (C) 2006-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
_GL_CXXALIAS_RPL (pthread_sigmask, int,
(int how, const sigset_t *new_mask, sigset_t *old_mask));
# else
-# if !@HAVE_PTHREAD_SIGMASK@
+# if !(@HAVE_PTHREAD_SIGMASK@ || defined pthread_sigmask)
_GL_FUNCDECL_SYS (pthread_sigmask, int,
(int how, const sigset_t *new_mask, sigset_t *old_mask));
# endif
/* When also using extern inline, suppress the use of static inline in
standard headers of problematic Apple configurations, as Libc at
least through Libc-825.26 (2013-04-09) mishandles it; see, e.g.,
- <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>.
+ <https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html>.
Perhaps Apple will fix this some day. */
#if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \
&& (defined __i386__ || defined __x86_64__))
/* POSIX compatible signal blocking.
- Copyright (C) 2006-2017 Free Software Foundation, Inc.
+ Copyright (C) 2006-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2006.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* On native Windows, as of 2008, the signal SIGABRT_COMPAT is an alias
for the signal SIGABRT. Only one signal handler is stored for both
SIGABRT and SIGABRT_COMPAT. SIGABRT_COMPAT is not a signal of its own. */
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
# undef SIGABRT_COMPAT
# define SIGABRT_COMPAT 6
#endif
/* size_max.h -- declare SIZE_MAX through system headers
- Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2005-2006, 2009-2018 Free Software Foundation, Inc.
Written by Simon Josefsson.
This program is free software; you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef GNULIB_SIZE_MAX_H
#define GNULIB_SIZE_MAX_H
/* stat-related time functions.
- Copyright (C) 2005, 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
#ifndef STAT_TIME_H
#define STAT_TIME_H 1
+#include "intprops.h"
+
+#include <errno.h>
+#include <stddef.h>
#include <sys/stat.h>
#include <time.h>
/* Return the nanosecond component of *ST's birth time. */
_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE
-get_stat_birthtime_ns (struct stat const *st)
+get_stat_birthtime_ns (struct stat const *st _GL_UNUSED)
{
# if defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
return STAT_TIMESPEC (st, st_birthtim).tv_nsec;
# elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
return STAT_TIMESPEC_NS (st, st_birthtim);
# else
- /* Avoid a "parameter unused" warning. */
- (void) st;
return 0;
# endif
}
/* Return *ST's birth time, if available; otherwise return a value
with tv_sec and tv_nsec both equal to -1. */
_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE
-get_stat_birthtime (struct stat const *st)
+get_stat_birthtime (struct stat const *st _GL_UNUSED)
{
struct timespec t;
#elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
t.tv_sec = st->st_birthtime;
t.tv_nsec = st->st_birthtimensec;
-#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#elif defined _WIN32 && ! defined __CYGWIN__
/* Native Windows platforms (but not Cygwin) put the "file creation
time" in st_ctime (!). See
<https://msdn.microsoft.com/en-us/library/14h5k7ff(VS.80).aspx>. */
/* Birth time is not supported. */
t.tv_sec = -1;
t.tv_nsec = -1;
- /* Avoid a "parameter unused" warning. */
- (void) st;
#endif
#if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \
return t;
}
+/* If a stat-like function returned RESULT, normalize the timestamps
+ in *ST, in case this platform suffers from the Solaris 11 bug where
+ tv_nsec might be negative. Return the adjusted RESULT, setting
+ errno to EOVERFLOW if normalization overflowed. This function
+ is intended to be private to this .h file. */
+_GL_STAT_TIME_INLINE int
+stat_time_normalize (int result, struct stat *st _GL_UNUSED)
+{
+#if defined __sun && defined STAT_TIMESPEC
+ if (result == 0)
+ {
+ long int timespec_hz = 1000000000;
+ short int const ts_off[] = { offsetof (struct stat, st_atim),
+ offsetof (struct stat, st_mtim),
+ offsetof (struct stat, st_ctim) };
+ int i;
+ for (i = 0; i < sizeof ts_off / sizeof *ts_off; i++)
+ {
+ struct timespec *ts = (struct timespec *) ((char *) st + ts_off[i]);
+ long int q = ts->tv_nsec / timespec_hz;
+ long int r = ts->tv_nsec % timespec_hz;
+ if (r < 0)
+ {
+ r += timespec_hz;
+ q--;
+ }
+ ts->tv_nsec = r;
+ /* Overflow is possible, as Solaris 11 stat can yield
+ tv_sec == TYPE_MINIMUM (time_t) && tv_nsec == -1000000000.
+ INT_ADD_WRAPV is OK, since time_t is signed on Solaris. */
+ if (INT_ADD_WRAPV (q, ts->tv_sec, &ts->tv_sec))
+ {
+ errno = EOVERFLOW;
+ return -1;
+ }
+ }
+ }
+#endif
+ return result;
+}
+
#ifdef __cplusplus
}
#endif
/* Core of implementation of fstat and stat for native Windows.
- Copyright (C) 2017 Free Software Foundation, Inc.
+ Copyright (C) 2017-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible. */
#include <config.h>
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
/* Ensure that <windows.h> defines FILE_ID_INFO. */
#undef _WIN32_WINNT
#include "pathmax.h"
#include "verify.h"
+/* Avoid warnings from gcc -Wcast-function-type. */
+#define GetProcAddress \
+ (void *) GetProcAddress
+
#if _GL_WINDOWS_STAT_INODES == 2
/* GetFileInformationByHandleEx was introduced only in Windows Vista. */
typedef DWORD (WINAPI * GetFileInformationByHandleExFuncType) (HANDLE hFile,
}
}
+#else
+
+/* This declaration is solely to ensure that after preprocessing
+ this file is never empty. */
+typedef int dummy;
+
#endif
/* Core of implementation of fstat and stat for native Windows.
- Copyright (C) 2017 Free Software Foundation, Inc.
+ Copyright (C) 2017-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _STAT_W32_H
#define _STAT_W32_H 1
/* Work around platform bugs in stat.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake and Bruno Haible. */
#include <sys/stat.h>
#undef __need_system_sys_stat_h
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
# define WINDOWS_NATIVE
#endif
above. */
#include "sys/stat.h"
+#include "stat-time.h"
+
#include <errno.h>
#include <limits.h>
#include <stdbool.h>
/* Fill the fields ourselves, because the original stat function returns
values for st_atime, st_mtime, st_ctime that depend on the current time
zone. See
- <https://lists.gnu.org/archive/html/bug-gnulib/2017-04/msg00134.html> */
+ <https://lists.gnu.org/r/bug-gnulib/2017-04/msg00134.html> */
/* XXX Should we convert to wchar_t* and prepend '\\?\', in order to work
around length limitations
<https://msdn.microsoft.com/en-us/library/aa365247.aspx> ? */
}
#else
int result = orig_stat (name, buf);
-# if REPLACE_FUNC_STAT_FILE
- /* Solaris 9 mistakenly succeeds when given a non-directory with a
- trailing slash. */
- if (result == 0 && !S_ISDIR (buf->st_mode))
+ if (result == 0)
{
- size_t len = strlen (name);
- if (ISSLASH (name[len - 1]))
+# if REPLACE_FUNC_STAT_FILE
+ /* Solaris 9 mistakenly succeeds when given a non-directory with a
+ trailing slash. */
+ if (!S_ISDIR (buf->st_mode))
{
- errno = ENOTDIR;
- return -1;
+ size_t len = strlen (name);
+ if (ISSLASH (name[len - 1]))
+ {
+ errno = ENOTDIR;
+ return -1;
+ }
}
- }
# endif /* REPLACE_FUNC_STAT_FILE */
+ result = stat_time_normalize (result, buf);
+ }
return result;
#endif
}
/* Substitute for and wrapper around <stdarg.h>.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _@GUARD_PREFIX@_STDARG_H
-/* Copyright (C) 2001-2003, 2006-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2003, 2006-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _GL_STDBOOL_H
#define _GL_STDBOOL_H
/* If @HAVE__BOOL@:
Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when
the built-in _Bool type is used. See
- http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
- http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
- http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
+ https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+ https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html
+ https://lists.gnu.org/r/bug-coreutils/2005-10/msg00086.html
Similar bugs are likely with other compilers as well; this file
wouldn't be used if <stdbool.h> was working.
So we override the _Bool type.
/* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake. */
a hack in case the configure-time test was done with g++ even though
we are currently compiling with gcc. */
#if ! (@HAVE_MAX_ALIGN_T@ || defined _GCC_MAX_ALIGN_T)
+# if !GNULIB_defined_max_align_t
/* On the x86, the maximum storage alignment of double, long, etc. is 4,
but GCC's C11 ABI for x86 says that max_align_t has an alignment of 8,
and the C11 standard allows this. Work around this problem by
using __alignof__ (which returns 8 for double) rather than _Alignof
(which returns 4), and align each union member accordingly. */
-# ifdef __GNUC__
-# define _GL_STDDEF_ALIGNAS(type) \
- __attribute__ ((__aligned__ (__alignof__ (type))))
-# else
-# define _GL_STDDEF_ALIGNAS(type) /* */
-# endif
+# ifdef __GNUC__
+# define _GL_STDDEF_ALIGNAS(type) \
+ __attribute__ ((__aligned__ (__alignof__ (type))))
+# else
+# define _GL_STDDEF_ALIGNAS(type) /* */
+# endif
typedef union
{
char *__p _GL_STDDEF_ALIGNAS (char *);
double __d _GL_STDDEF_ALIGNAS (double);
long double __ld _GL_STDDEF_ALIGNAS (long double);
long int __i _GL_STDDEF_ALIGNAS (long int);
-} max_align_t;
+} rpl_max_align_t;
+# define max_align_t rpl_max_align_t
+# define GNULIB_defined_max_align_t 1
+# endif
#endif
# endif /* _@GUARD_PREFIX@_STDDEF_H */
-/* Copyright (C) 2001-2002, 2004-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2002, 2004-2018 Free Software Foundation, Inc.
Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
This file is part of gnulib.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/*
* ISO C 99 <stdint.h> for platforms that lack it.
/* Like stdio.h, but redefine some names to avoid glitches.
- Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2005-2006, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
/* Invoke stdio functions, but avoid some glitches.
- Copyright (C) 2001, 2003, 2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2003, 2006, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
/* A GNU-like <stdio.h>.
- Copyright (C) 2004, 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \
_GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument))
-/* Solaris 10 declares renameat in <unistd.h>, not in <stdio.h>. */
+/* Solaris 10 and NetBSD 7.0 declare renameat in <unistd.h>, not in <stdio.h>. */
/* But in any case avoid namespace pollution on glibc systems. */
-#if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __sun \
+#if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && (defined __sun || defined __NetBSD__) \
&& ! defined __GLIBC__
# include <unistd.h>
#endif
it before we #define perror rpl_perror. */
/* But in any case avoid namespace pollution on glibc systems. */
#if (@GNULIB_PERROR@ || defined GNULIB_POSIXCHECK) \
- && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \
+ && (defined _WIN32 && ! defined __CYGWIN__) \
&& ! defined __GLIBC__
# include <stdlib.h>
#endif
it before we #define rename rpl_rename. */
/* But in any case avoid namespace pollution on glibc systems. */
#if (@GNULIB_REMOVE@ || @GNULIB_RENAME@ || defined GNULIB_POSIXCHECK) \
- && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \
+ && (defined _WIN32 && ! defined __CYGWIN__) \
&& ! defined __GLIBC__
# include <io.h>
#endif
/* When also using extern inline, suppress the use of static inline in
standard headers of problematic Apple configurations, as Libc at
least through Libc-825.26 (2013-04-09) mishandles it; see, e.g.,
- <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>.
+ <https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html>.
Perhaps Apple will fix this some day. */
#if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \
&& defined __GNUC__ && defined __STDC__)
(const void *ptr, size_t s, size_t n, FILE *stream));
/* Work around bug 11959 when fortifying glibc 2.4 through 2.15
- <http://sources.redhat.com/bugzilla/show_bug.cgi?id=11959>,
+ <https://sourceware.org/bugzilla/show_bug.cgi?id=11959>,
which sometimes causes an unwanted diagnostic for fwrite calls.
This affects only function declaration attributes under certain
versions of gcc and clang, and is not needed for C++. */
/* A GNU-like <stdlib.h>.
- Copyright (C) 1995, 2001-2004, 2006-2017 Free Software Foundation, Inc.
+ Copyright (C) 1995, 2001-2004, 2006-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
/* Solaris declares getloadavg() in <sys/loadavg.h>. */
#if (@GNULIB_GETLOADAVG@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_LOADAVG_H@
+/* OpenIndiana has a bug: <sys/time.h> must be included before
+ <sys/loadavg.h>. */
+# include <sys/time.h>
# include <sys/loadavg.h>
#endif
/* Native Windows platforms declare mktemp() in <io.h>. */
-#if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+#if 0 && (defined _WIN32 && ! defined __CYGWIN__)
# include <io.h>
#endif
# endif
#endif
-#if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+#if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_MKOSTEMP@ || @GNULIB_MKOSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !(defined _WIN32 && ! defined __CYGWIN__)
/* On Mac OS X 10.3, only <unistd.h> declares mkstemp. */
/* On Mac OS X 10.5, only <unistd.h> declares mkstemps. */
+/* On Mac OS X 10.13, only <unistd.h> declares mkostemp and mkostemps. */
/* On Cygwin 1.7.1, only <unistd.h> declares getsubopt. */
/* But avoid namespace pollution on glibc systems and native Windows. */
# include <unistd.h>
#endif
#if @GNULIB_RANDOM@
-# if !@HAVE_RANDOM@
+# if !@HAVE_RANDOM@ || !@HAVE_DECL_INITSTATE@
_GL_FUNCDECL_SYS (initstate, char *,
(unsigned int seed, char *buf, size_t buf_size)
_GL_ARG_NONNULL ((2)));
#endif
#if @GNULIB_RANDOM@
-# if !@HAVE_RANDOM@
+# if !@HAVE_RANDOM@ || !@HAVE_DECL_SETSTATE@
_GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1)));
# endif
_GL_CXXALIAS_SYS (setstate, char *, (char *arg_state));
"use gnulib module realloc-posix for portability");
#endif
+
+#if @GNULIB_REALLOCARRAY@
+# if ! @HAVE_REALLOCARRAY@
+_GL_FUNCDECL_SYS (reallocarray, void *,
+ (void *ptr, size_t nmemb, size_t size));
+# endif
+_GL_CXXALIAS_SYS (reallocarray, void *,
+ (void *ptr, size_t nmemb, size_t size));
+_GL_CXXALIASWARN (reallocarray);
+#elif defined GNULIB_POSIXCHECK
+# undef reallocarray
+# if HAVE_RAW_DECL_REALLOCARRAY
+_GL_WARN_ON_USE (reallocarray, "reallocarray is not portable - "
+ "use gnulib module reallocarray for portability");
+# endif
+#endif
+
#if @GNULIB_REALPATH@
# if @REPLACE_REALPATH@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
/* Substring search in a NUL terminated string of UNIT elements,
using the Knuth-Morris-Pratt algorithm.
- Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ Copyright (C) 2005-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2005.
This program is free software; you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* Before including this file, you need to define:
UNIT The element type of the needle and haystack.
of type UNIT as well. */
/* Knuth-Morris-Pratt algorithm.
- See http://en.wikipedia.org/wiki/Knuth-Morris-Pratt_algorithm
+ See https://en.wikipedia.org/wiki/Knuth-Morris-Pratt_algorithm
HAYSTACK is the NUL terminated string in which to search for.
NEEDLE is the string to search for in HAYSTACK, consisting of NEEDLE_LEN
units.
/* Case-insensitive string comparison function.
- Copyright (C) 1998-1999, 2005-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1998-1999, 2005-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Optimized string comparison.
- Copyright (C) 2001-2002, 2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2007, 2009-2018 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
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>. */
/* strerror-override.c --- POSIX compatible system error routine
- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ Copyright (C) 2010-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible <bruno@clisp.org>, 2010. */
/* strerror-override.h --- POSIX compatible system error routine
- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ Copyright (C) 2010-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _GL_STRERROR_OVERRIDE_H
# define _GL_STRERROR_OVERRIDE_H
/* strerror.c --- POSIX compatible system error routine
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* declarations for strftime.c
- Copyright (C) 2002, 2004, 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <time.h>
/* Charset conversion.
- Copyright (C) 2001-2007, 2010-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2007, 2010-2018 Free Software Foundation, Inc.
Written by Bruno Haible and Simon Josefsson.
This program is free software; you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Charset conversion.
- Copyright (C) 2001-2004, 2006-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2004, 2006-2007, 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible and Simon Josefsson.
This program is free software; you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _STRICONV_H
#define _STRICONV_H
/* A GNU-like <string.h>.
- Copyright (C) 1995-1996, 2001-2017 Free Software Foundation, Inc.
+ Copyright (C) 1995-1996, 2001-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
/* The definition of _GL_WARN_ON_USE is copied here. */
+/* Clear a block of memory. The compiler will not delete a call to
+ this function, even if the block is dead after the call. */
+#if @GNULIB_EXPLICIT_BZERO@
+# if ! @HAVE_EXPLICIT_BZERO@
+_GL_FUNCDECL_SYS (explicit_bzero, void,
+ (void *__dest, size_t __n) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (explicit_bzero, void, (void *__dest, size_t __n));
+_GL_CXXALIASWARN (explicit_bzero);
+#elif defined GNULIB_POSIXCHECK
+# undef explicit_bzero
+# if HAVE_RAW_DECL_EXPLICIT_BZERO
+_GL_WARN_ON_USE (explicit_bzero, "explicit_bzero is unportable - "
+ "use gnulib module explicit_bzero for portability");
+# endif
+#endif
+
/* Find the index of the least-significant set bit. */
#if @GNULIB_FFSL@
# if !@HAVE_FFSL@
/* A substitute <strings.h>.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _@GUARD_PREFIX@_STRINGS_H
/* stripslash.c -- remove redundant trailing slashes from a file name
- Copyright (C) 1990, 2001, 2003-2006, 2009-2017 Free Software Foundation,
+ Copyright (C) 1990, 2001, 2003-2006, 2009-2018 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* strncasecmp.c -- case insensitive string comparator
- Copyright (C) 1998-1999, 2005-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1998-1999, 2005-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* A replacement function, for systems that lack strndup.
- Copyright (C) 1996-1998, 2001-2003, 2005-2007, 2009-2017 Free Software
+ Copyright (C) 1996-1998, 2001-2003, 2005-2007, 2009-2018 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Find the length of STRING, but scan at most MAXLEN characters.
- Copyright (C) 2005-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2005-2007, 2009-2018 Free Software Foundation, Inc.
Written by Simon Josefsson.
This program is free software; you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Find the length of STRING + 1, but scan at most MAXLEN bytes.
- Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2005-2006, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Find the length of STRING + 1, but scan at most MAXLEN bytes.
- Copyright (C) 2005, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _STRNLEN1_H
#define _STRNLEN1_H
-/* Copyright (C) 2002, 2004-2005, 2007, 2009-2017 Free Software Foundation,
+/* Copyright (C) 2002, 2004-2005, 2007, 2009-2018 Free Software Foundation,
Inc.
This file is part of the GNU C Library.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _LIBC
# include <config.h>
/* Convert string representation of a number into an intmax_t value.
- Copyright (C) 1999, 2001-2004, 2006, 2009-2017 Free Software Foundation,
+ Copyright (C) 1999, 2001-2004, 2006, 2009-2018 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
/* Convert string representation of a number into an integer value.
- Copyright (C) 1991-1992, 1994-1999, 2003, 2005-2007, 2009-2017 Free Software
+ Copyright (C) 1991-1992, 1994-1999, 2003, 2005-2007, 2009-2018 Free Software
Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifdef _LIBC
# define USE_NUMBER_GROUPING
# define STRTOL_LONG_MIN LLONG_MIN
# define STRTOL_LONG_MAX LLONG_MAX
# define STRTOL_ULONG_MAX ULLONG_MAX
-
-/* The extra casts in the following macros work around compiler bugs,
- e.g., in Cray C 5.0.3.0. */
-
-/* True if the arithmetic type T is signed. */
-# define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
-
-/* Minimum and maximum values for integer types.
- These macros have undefined behavior for signed types that either
- have padding bits or do not use two's complement. If this is a
- problem for you, please let us know how to fix it for your host. */
-
-/* The maximum and minimum values for the integer type T. */
-# define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t))
-# define TYPE_MAXIMUM(t) \
- ((t) (! TYPE_SIGNED (t) \
- ? (t) -1 \
- : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
-
-# ifndef ULLONG_MAX
-# define ULLONG_MAX TYPE_MAXIMUM (unsigned long long)
-# endif
-# ifndef LLONG_MAX
-# define LLONG_MAX TYPE_MAXIMUM (long long int)
-# endif
-# ifndef LLONG_MIN
-# define LLONG_MIN TYPE_MINIMUM (long long int)
-# endif
-
# if __GNUC__ == 2 && __GNUC_MINOR__ < 7
/* Work around gcc bug with using this constant. */
static const unsigned long long int maxquad = ULLONG_MAX;
-/* Copyright (C) 1991, 1997, 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1997, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#define UNSIGNED 1
/* Function to parse an 'unsigned long long int' from text.
- Copyright (C) 1995-1997, 1999, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1995-1997, 1999, 2009-2018 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.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#define QUAD 1
/* Provide a more complete sys/stat.h header file.
- Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ Copyright (C) 2005-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake, Paul Eggert, and Jim Meyering. */
/* Before doing "#define mkdir rpl_mkdir" below, we need to include all
headers that may declare mkdir(). Native Windows platforms declare mkdir
in <io.h> and/or <direct.h>, not in <unistd.h>. */
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
# include <io.h> /* mingw32, mingw64 */
# include <direct.h> /* mingw64, MSVC 9 */
#endif
/* Native Windows platforms declare umask() in <io.h>. */
-#if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+#if 0 && (defined _WIN32 && ! defined __CYGWIN__)
# include <io.h>
#endif
Additionally, it declares _mkdir (and depending on compile flags, an
alias mkdir), only in the nonstandard includes <direct.h> and <io.h>,
which are included above. */
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
# if !GNULIB_defined_rpl_mkdir
static int
/* Provide a more complete sys/time.h.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
/* Provide a more complete sys/types.h.
- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ Copyright (C) 2011-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
#endif
@PRAGMA_COLUMNS@
+#if defined _WIN32 && !defined __CYGWIN__ \
+ && (defined __need_off_t || defined __need___off64_t \
+ || defined __need_ssize_t || defined __need_time_t)
+
+/* Special invocation convention inside mingw header files. */
+
+#@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@
+
+#else
+/* Normal invocation convention. */
+
#ifndef _@GUARD_PREFIX@_SYS_TYPES_H
/* The include_next requires a split double-inclusion guard. */
/* MSVC 9 defines size_t in <stddef.h>, not in <sys/types.h>. */
/* But avoid namespace pollution on glibc systems. */
-#if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \
- && ! defined __GLIBC__
+#if (defined _WIN32 && ! defined __CYGWIN__) && ! defined __GLIBC__
# include <stddef.h>
#endif
#endif /* _@GUARD_PREFIX@_SYS_TYPES_H */
#endif /* _@GUARD_PREFIX@_SYS_TYPES_H */
+#endif /* __need_XXX */
/* A POSIX-like <sys/wait.h>.
- Copyright (C) 2001-2003, 2005-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2005-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _@GUARD_PREFIX@_SYS_WAIT_H
@PRAGMA_COLUMNS@
/* The include_next requires a split double-inclusion guard. */
-#if !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+#if !(defined _WIN32 && ! defined __CYGWIN__)
# @INCLUDE_NEXT@ @NEXT_SYS_WAIT_H@
#endif
/* The definition of _GL_WARN_ON_USE is copied here. */
-#if !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+#if !(defined _WIN32 && ! defined __CYGWIN__)
/* Unix API. */
/* The following macros apply to an argument x, that is a status of a process,
/* Declarations of functions. */
#if @GNULIB_WAITPID@
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
_GL_FUNCDECL_SYS (waitpid, pid_t, (pid_t pid, int *statusp, int options));
# endif
_GL_CXXALIAS_SYS (waitpid, pid_t, (pid_t pid, int *statusp, int options));
/* Quoting for a system command.
- Copyright (C) 2012-2017 Free Software Foundation, Inc.
+ Copyright (C) 2012-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2012.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
#include "sh-quote.h"
#include "xalloc.h"
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
/* The native Windows CreateProcess() function interprets characters like
' ', '\t', '\\', '"' (but not '<' and '>') in a special way:
even inside quoted strings,
- '&' '[' ']' '{' '}' '^' '=' ';' '!' '\'' '+' ',' '`' '~' for other
purposes, according to
- <http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx?mfr=true>
+ <https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx?mfr=true>
We quote a string like '%var%' by putting the '%' characters outside of
double-quotes and the rest of the string inside double-quotes: %"var"%.
This is guaranteed to not be a reference to an environment variable.
{
switch (interpreter)
{
-#if !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+#if !(defined _WIN32 && ! defined __CYGWIN__)
case SCI_SYSTEM:
#endif
case SCI_POSIX_SH:
return shell_quote_length (string);
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
case SCI_WINDOWS_CREATEPROCESS:
return windows_createprocess_quote (NULL, string);
{
switch (interpreter)
{
-#if !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+#if !(defined _WIN32 && ! defined __CYGWIN__)
case SCI_SYSTEM:
#endif
case SCI_POSIX_SH:
return shell_quote_copy (p, string);
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
case SCI_WINDOWS_CREATEPROCESS:
p += windows_createprocess_quote (p, string);
*p = '\0';
{
switch (interpreter)
{
-#if !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+#if !(defined _WIN32 && ! defined __CYGWIN__)
case SCI_SYSTEM:
#endif
case SCI_POSIX_SH:
return shell_quote (string);
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
case SCI_WINDOWS_CREATEPROCESS:
case SCI_SYSTEM:
case SCI_WINDOWS_CMD:
/* Quoting for a system command.
- Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2012.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _SYSTEM_QUOTE_H
#define _SYSTEM_QUOTE_H
SCI_SYSTEM = 0
/* The POSIX /bin/sh. */
, SCI_POSIX_SH = 1
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
/* The native Windows CreateProcess() function. */
, SCI_WINDOWS_CREATEPROCESS = 2
/* The native Windows cmd.exe interpreter. */
/* tempname.c - generate the name of a temporary file.
- Copyright (C) 1991-2003, 2005-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1991-2003, 2005-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Extracted from glibc sysdeps/posix/tempname.c. See also tmpdir.c. */
# define __mkdir mkdir
# define __open open
# define __lxstat64(version, file, buf) lstat (file, buf)
-# define __secure_getenv secure_getenv
#endif
#ifdef _LIBC
{
struct_stat64 st;
- if (__lxstat64 (_STAT_VER, tmpl, &st) == 0)
+ if (__lxstat64 (_STAT_VER, tmpl, &st) == 0 || errno == EOVERFLOW)
__set_errno (EEXIST);
return errno == ENOENT ? 0 : -1;
}
/* Create a temporary file or directory.
- Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* header written by Eric Blake */
/* Time internal interface
- Copyright 2015-2017 Free Software Foundation, Inc.
+ Copyright 2015-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
/* A more-standard <time.h>.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@
/* The definition of _GL_WARN_ON_USE is copied here. */
-/* Some systems don't define struct timespec (e.g., AIX 4.1, Ultrix 4.3).
+/* Some systems don't define struct timespec (e.g., AIX 4.1).
Or they define it with the wrong member names or define it in <sys/time.h>
(e.g., FreeBSD circa 1997). Stock Mingw prior to 3.0 does not define it,
but the pthreads-win32 library defines it in <pthread.h>. */
# define localtime rpl_localtime
# endif
_GL_FUNCDECL_RPL (localtime, struct tm *, (time_t const *__timer)
- _GL_ARG_NONNULL ((1)));
+ _GL_ARG_NONNULL ((1)));
_GL_CXXALIAS_RPL (localtime, struct tm *, (time_t const *__timer));
# else
_GL_CXXALIAS_SYS (localtime, struct tm *, (time_t const *__timer));
/* Reentrant time functions like localtime_r.
- Copyright (C) 2003, 2006-2007, 2010-2017 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2006-2007, 2010-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
/* Time zone functions such as tzalloc and localtime_rz
- Copyright 2015-2017 Free Software Foundation, Inc.
+ Copyright 2015-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
struct tm *
localtime_rz (timezone_t tz, time_t const *t, struct tm *tm)
{
+#ifdef HAVE_LOCALTIME_INFLOOP_BUG
+ /* The -67768038400665599 comes from:
+ https://lists.gnu.org/r/bug-gnulib/2017-07/msg00142.html
+ On affected platforms the greatest POSIX-compatible time_t value
+ that could return nonnull is 67768036191766798 (when
+ TZ="XXX24:59:59" it resolves to the year 2**31 - 1 + 1900, on
+ 12-31 at 23:59:59), so test for that too while we're in the
+ neighborhood. */
+ if (! (-67768038400665599 <= *t && *t <= 67768036191766798))
+ {
+ errno = EOVERFLOW;
+ return NULL;
+ }
+#endif
+
if (!tz)
return gmtime_r (t, tm);
else
/* Convert UTC calendar time to simple time. Like mktime but assumes UTC.
- Copyright (C) 1994, 1997, 2003-2004, 2006-2007, 2009-2017 Free Software
- Foundation, Inc. This file is part of the GNU C Library.
+ Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public
+ License as published by the Free Software Foundation; either
+ version 3 of the License, or (at your option) any later version.
- This program is distributed in the hope that it will be useful,
+ The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ You should have received a copy of the GNU General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
#ifndef _LIBC
# include <config.h>
#include <time.h>
-#ifdef _LIBC
-typedef time_t mktime_offset_t;
-#else
-# undef __gmtime_r
-# define __gmtime_r gmtime_r
-# define __mktime_internal mktime_internal
-# include "mktime-internal.h"
-#endif
+#include "mktime-internal.h"
time_t
timegm (struct tm *tmp)
/* timespec -- System time interface
- Copyright (C) 2000, 2002, 2004-2005, 2007, 2009-2017 Free Software
+ Copyright (C) 2000, 2002, 2004-2005, 2007, 2009-2018 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#if ! defined TIMESPEC_H
-# define TIMESPEC_H
+#define TIMESPEC_H
-# include <time.h>
+#include <time.h>
#ifndef _GL_INLINE_HEADER_BEGIN
#error "Please include config.h first."
extern "C" {
#endif
-/* Resolution of timespec timestamps (in units per second), and log
- base 10 of the resolution. */
+#include "arg-nonnull.h"
+#include "verify.h"
-enum { TIMESPEC_RESOLUTION = 1000000000 };
-enum { LOG10_TIMESPEC_RESOLUTION = 9 };
+/* Inverse resolution of timespec timestamps (in units per second),
+ and log base 10 of the inverse resolution. */
+
+enum { TIMESPEC_HZ = 1000000000 };
+enum { LOG10_TIMESPEC_HZ = 9 };
+
+/* Obsolescent names for backward compatibility.
+ They are misnomers, because TIMESPEC_RESOLUTION is not a resolution. */
+
+enum { TIMESPEC_RESOLUTION = TIMESPEC_HZ };
+enum { LOG10_TIMESPEC_RESOLUTION = LOG10_TIMESPEC_HZ };
/* Return a timespec with seconds S and nanoseconds NS. */
any platform of interest to the GNU project, since all such
platforms have 32-bit int or wider.
- Replacing "(int) (a.tv_nsec - b.tv_nsec)" with something like
+ Replacing "a.tv_nsec - b.tv_nsec" with something like
"a.tv_nsec < b.tv_nsec ? -1 : a.tv_nsec > b.tv_nsec" would cause
this function to work in some cases where the above assumption is
violated, but not in all cases (e.g., a.tv_sec==1, a.tv_nsec==-2,
b.tv_sec==0, b.tv_nsec==999999999) and is arguably not worth the
extra instructions. Using a subtraction has the advantage of
detecting some invalid cases on platforms that detect integer
- overflow.
-
- The (int) cast avoids a gcc -Wconversion warning. */
+ overflow. */
_GL_TIMESPEC_INLINE int _GL_ATTRIBUTE_PURE
timespec_cmp (struct timespec a, struct timespec b)
{
- return (a.tv_sec < b.tv_sec ? -1
- : a.tv_sec > b.tv_sec ? 1
- : (int) (a.tv_nsec - b.tv_nsec));
+ if (a.tv_sec < b.tv_sec)
+ return -1;
+ if (a.tv_sec > b.tv_sec)
+ return 1;
+
+ /* Pacify gcc -Wstrict-overflow (bleeding-edge circa 2017-10-02). See:
+ https://lists.gnu.org/r/bug-gnulib/2017-10/msg00006.html */
+ assume (-1 <= a.tv_nsec && a.tv_nsec <= 2 * TIMESPEC_HZ);
+ assume (-1 <= b.tv_nsec && b.tv_nsec <= 2 * TIMESPEC_HZ);
+
+ return a.tv_nsec - b.tv_nsec;
}
/* Return -1, 0, 1, depending on the sign of A. A.tv_nsec must be
return a.tv_sec + a.tv_nsec / 1e9;
}
-void gettime (struct timespec *);
-int settime (struct timespec const *);
+struct timespec current_timespec (void);
+void gettime (struct timespec *) _GL_ARG_NONNULL ((1));
+int settime (struct timespec const *) _GL_ARG_NONNULL ((1));
#ifdef __cplusplus
}
/* Removes leading and/or trailing whitespaces
- Copyright (C) 2006-2017 Free Software Foundation, Inc.
+ Copyright (C) 2006-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Davide Angelocola <davide.angelocola@gmail.com> */
/* Removes leading and/or trailing whitespaces
- Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Davide Angelocola <davide.angelocola@gmail.com> */
/* Provide tzset for systems that don't have it or for which it's broken.
- Copyright (C) 2001-2003, 2005-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2005-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* written by Jim Meyering */
struct tm save = *localtime_buffer_addr;
#endif
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
/* Rectify the value of the environment variable TZ.
There are four possible kinds of such values:
- Traditional US time zone names, e.g. "PST8PDT". Syntax: see
/* Substitute for and wrapper around <unistd.h>.
- Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ Copyright (C) 2003-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _@GUARD_PREFIX@_UNISTD_H
/* But avoid namespace pollution on glibc systems. */
#if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \
|| ((@GNULIB_UNLINK@ || defined GNULIB_POSIXCHECK) \
- && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) \
+ && (defined _WIN32 && ! defined __CYGWIN__)) \
|| ((@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK) \
&& defined __CYGWIN__)) \
&& ! defined __GLIBC__
lseek(), read(), unlink(), write() in <io.h>. */
#if ((@GNULIB_CHDIR@ || @GNULIB_GETCWD@ || @GNULIB_RMDIR@ \
|| defined GNULIB_POSIXCHECK) \
- && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
+ && (defined _WIN32 && ! defined __CYGWIN__))
# include <io.h> /* mingw32, mingw64 */
# include <direct.h> /* mingw64, MSVC 9 */
#elif (@GNULIB_CLOSE@ || @GNULIB_DUP@ || @GNULIB_DUP2@ || @GNULIB_ISATTY@ \
|| @GNULIB_LSEEK@ || @GNULIB_READ@ || @GNULIB_UNLINK@ || @GNULIB_WRITE@ \
|| defined GNULIB_POSIXCHECK) \
- && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+ && (defined _WIN32 && ! defined __CYGWIN__)
# include <io.h>
#endif
/* The definition of _GL_WARN_ON_USE is copied here. */
-/* Get getopt(), optarg, optind, opterr, optopt.
- But avoid namespace pollution on glibc systems. */
-#if @GNULIB_UNISTD_H_GETOPT@ && !defined __GLIBC__ && !defined _GL_SYSTEM_GETOPT
+/* Get getopt(), optarg, optind, opterr, optopt. */
+#if @GNULIB_UNISTD_H_GETOPT@ && !defined _GL_SYSTEM_GETOPT
# include <getopt-cdefs.h>
# include <getopt-pfx-core.h>
#endif
Close NEWFD first if it is open.
Return newfd if successful, otherwise -1 and errno set.
See the Linux man page at
- <http://www.kernel.org/doc/man-pages/online/pages/man2/dup3.2.html>. */
+ <https://www.kernel.org/doc/man-pages/online/pages/man2/dup3.2.html>. */
# if @HAVE_DUP3@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define dup3 rpl_dup3
#if @GNULIB_ENVIRON@
+# if defined __CYGWIN__ && !defined __i386__
+/* The 'environ' variable is defined in a DLL. Therefore its declaration needs
+ the '__declspec(dllimport)' attribute, but the system's <unistd.h> lacks it.
+ This leads to a link error on 64-bit Cygwin when the option
+ -Wl,--disable-auto-import is in use. */
+_GL_EXTERN_C __declspec(dllimport) char **environ;
+# endif
# if !@HAVE_DECL_ENVIRON@
/* Set of environment variables and values. An array of strings of the form
"VARIABLE=VALUE", terminated with a NULL. */
#elif defined GNULIB_POSIXCHECK
# if HAVE_RAW_DECL_ENVIRON
_GL_UNISTD_INLINE char ***
+_GL_WARN_ON_USE_ATTRIBUTE ("environ is unportable - "
+ "use gnulib module environ for portability")
rpl_environ (void)
{
return &environ;
}
-_GL_WARN_ON_USE (rpl_environ, "environ is unportable - "
- "use gnulib module environ for portability");
# undef environ
# define environ (*rpl_environ ())
# endif
#if @GNULIB_FACCESSAT@
-# if !@HAVE_FACCESSAT@
+# if @REPLACE_FACCESSAT@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef faccessat
+# define faccessat rpl_faccessat
+# endif
+_GL_FUNCDECL_RPL (faccessat, int,
+ (int fd, char const *name, int mode, int flag)
+ _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (faccessat, int,
+ (int fd, char const *name, int mode, int flag));
+# else
+# if !@HAVE_FACCESSAT@
_GL_FUNCDECL_SYS (faccessat, int,
(int fd, char const *file, int mode, int flag)
_GL_ARG_NONNULL ((2)));
-# endif
+# endif
_GL_CXXALIAS_SYS (faccessat, int,
(int fd, char const *file, int mode, int flag));
+# endif
_GL_CXXALIASWARN (faccessat);
#elif defined GNULIB_POSIXCHECK
# undef faccessat
#endif
+#if @GNULIB_GETPASS@
+/* Function getpass() from module 'getpass':
+ Read a password from /dev/tty or stdin.
+ Function getpass() from module 'getpass-gnu':
+ Read a password of arbitrary length from /dev/tty or stdin. */
+# if @REPLACE_GETPASS@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef getpass
+# define getpass rpl_getpass
+# endif
+_GL_FUNCDECL_RPL (getpass, char *, (const char *prompt)
+ _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (getpass, char *, (const char *prompt));
+# else
+# if !@HAVE_GETPASS@
+_GL_FUNCDECL_SYS (getpass, char *, (const char *prompt)
+ _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (getpass, char *, (const char *prompt));
+# endif
+_GL_CXXALIASWARN (getpass);
+#elif defined GNULIB_POSIXCHECK
+# undef getpass
+# if HAVE_RAW_DECL_GETPASS
+_GL_WARN_ON_USE (getpass, "getpass is unportable - "
+ "use gnulib module getpass or getpass-gnu for portability");
+# endif
+#endif
+
+
#if @GNULIB_GETUSERSHELL@
/* Return the next valid login shell on the system, or NULL when the end of
the list has been reached. */
Store the read-end as fd[0] and the write-end as fd[1].
Return 0 upon success, or -1 with errno set upon failure.
See also the Linux man page at
- <http://www.kernel.org/doc/man-pages/online/pages/man2/pipe2.2.html>. */
+ <https://www.kernel.org/doc/man-pages/online/pages/man2/pipe2.2.html>. */
# if @HAVE_PIPE2@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define pipe2 rpl_pipe2
_GL_ARG_NONNULL ((1)));
_GL_CXXALIAS_RPL (truncate, int, (const char *filename, off_t length));
# else
-# if !@HAVE_TRUNCATE@
+# if !@HAVE_DECL_TRUNCATE@
_GL_FUNCDECL_SYS (truncate, int, (const char *filename, off_t length)
_GL_ARG_NONNULL ((1)));
# endif
/* Elementary Unicode string functions.
- Copyright (C) 2001-2002, 2005-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2005-2018 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
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _UNISTR_H
#define _UNISTR_H
The number of available units, N, must be > 0. */
/* Similar to mbtowc(), except that puc and s must not be NULL, n must be > 0,
and the NUL character is not treated specially. */
-/* The variants with _safe suffix are safe, even if the library is compiled
- without --enable-safety. */
+/* The variants with _unsafe suffix are for backward compatibility with
+ libunistring versions < 0.9.7. */
#if GNULIB_UNISTR_U8_MBTOUC_UNSAFE || HAVE_LIBUNISTRING
# if !HAVE_INLINE
/* Look at first character in UTF-8 string, returning an error code.
- Copyright (C) 1999-2002, 2006-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2006-2007, 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This program is free software: you can redistribute it and/or modify it
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Conversion UCS-4 to UTF-8.
- Copyright (C) 2002, 2006-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This program is free software: you can redistribute it and/or modify it
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Store a character in UTF-8 string.
- Copyright (C) 2002, 2005-2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005-2006, 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This program is free software: you can redistribute it and/or modify it
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Elementary types and macros for the GNU UniString library.
- Copyright (C) 2002, 2005-2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005-2006, 2009-2018 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
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _UNITYPES_H
#define _UNITYPES_H
/* Display width functions.
- Copyright (C) 2001-2002, 2005, 2007, 2009-2017 Free Software Foundation,
+ Copyright (C) 2001-2002, 2005, 2007, 2009-2018 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify it
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _UNIWIDTH_H
#define _UNIWIDTH_H
/* Test for CJK encoding.
- Copyright (C) 2001-2002, 2005-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2005-2007, 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This program is free software: you can redistribute it and/or modify it
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include "streq.h"
/* Determine display width of Unicode character.
- Copyright (C) 2001-2002, 2006-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This program is free software: you can redistribute it and/or modify it
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
* - Zero width characters; generated from
* "grep '^[^;]*;ZERO WIDTH ' UnicodeData.txt"
*/
-static const unsigned char nonspacing_table_data[36*64] = {
+static const unsigned char nonspacing_table_data[38*64] = {
/* 0x0000-0x01ff */
0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0000-0x003f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x0040-0x007f */
0x00, 0x00, 0xc0, 0xfb, 0xef, 0x3e, 0x00, 0x00, /* 0x0800-0x083f */
0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, /* 0x0840-0x087f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0880-0x08bf */
- 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, /* 0x08c0-0x08ff */
+ 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x08c0-0x08ff */
0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0x0900-0x093f */
0xfe, 0x21, 0xfe, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0940-0x097f */
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0980-0x09bf */
/* 0x1800-0x19ff */
0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1800-0x183f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1840-0x187f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* 0x1880-0x18bf */
+ 0x60, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* 0x1880-0x18bf */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18c0-0x18ff */
0x00, 0x00, 0x00, 0x00, 0x87, 0x01, 0x04, 0x0e, /* 0x1900-0x193f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1940-0x197f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d00-0x1d3f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d40-0x1d7f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d80-0x1dbf */
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, /* 0x1dc0-0x1dff */
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xf8, /* 0x1dc0-0x1dff */
/* 0x2000-0x21ff */
0x00, 0xf8, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, /* 0x2000-0x203f */
0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0x00, 0x00, /* 0x2040-0x207f */
0x44, 0x08, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, /* 0xa800-0xa83f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa840-0xa87f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa880-0xa8bf */
- 0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x00, /* 0xa8c0-0xa8ff */
+ 0x30, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x00, /* 0xa8c0-0xa8ff */
0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, /* 0xa900-0xa93f */
0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa940-0xa97f */
0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x13, /* 0xa980-0xa9bf */
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x7f, /* 0x11180-0x111bf */
0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x111c0-0x111ff */
/* 0x11200-0x113ff */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xd3, 0x00, /* 0x11200-0x1123f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xd3, 0x40, /* 0x11200-0x1123f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11240-0x1127f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11280-0x112bf */
0x00, 0x00, 0x00, 0x80, 0xf8, 0x07, 0x00, 0x00, /* 0x112c0-0x112ff */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11380-0x113bf */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x113c0-0x113ff */
/* 0x11400-0x115ff */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11400-0x1143f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11440-0x1147f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11400-0x1143f */
+ 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11440-0x1147f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x85, /* 0x11480-0x114bf */
0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x114c0-0x114ff */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11500-0x1153f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11740-0x1177f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11780-0x117bf */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x117c0-0x117ff */
+ /* 0x11c00-0x11dff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x3f, /* 0x11c00-0x11c3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11c40-0x11c7f */
+ 0x00, 0x00, 0xfc, 0xff, 0xff, 0xfc, 0x6d, 0x00, /* 0x11c80-0x11cbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11cc0-0x11cff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d00-0x11d3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d40-0x11d7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d80-0x11dbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11dc0-0x11dff */
/* 0x16a00-0x16bff */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a00-0x16a3f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a40-0x16a7f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db40-0x1db7f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db80-0x1dbbf */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1dbc0-0x1dbff */
+ /* 0x1e000-0x1e1ff */
+ 0x7f, 0xff, 0xff, 0xf9, 0xdb, 0x07, 0x00, 0x00, /* 0x1e000-0x1e03f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e040-0x1e07f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e080-0x1e0bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e0c0-0x1e0ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e100-0x1e13f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e140-0x1e17f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e180-0x1e1bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e1c0-0x1e1ff */
/* 0x1e800-0x1e9ff */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e800-0x1e83f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e840-0x1e87f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e880-0x1e8bf */
0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e8c0-0x1e8ff */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e900-0x1e93f */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e940-0x1e97f */
+ 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e940-0x1e97f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e980-0x1e9bf */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* 0x1e9c0-0x1e9ff */
};
-1, -1, -1, -1, -1, -1, -1, -1, /* 0xe000-0xefff */
-1, -1, -1, -1, -1, 20, -1, 21, /* 0xf000-0xffff */
22, 23, -1, -1, -1, 24, -1, -1, /* 0x10000-0x10fff */
- 25, 26, 27, 28, -1, -1, -1, -1, /* 0x11000-0x11fff */
+ 25, 26, 27, 28, -1, -1, 29, -1, /* 0x11000-0x11fff */
-1, -1, -1, -1, -1, -1, -1, -1, /* 0x12000-0x12fff */
-1, -1, -1, -1, -1, -1, -1, -1, /* 0x13000-0x13fff */
-1, -1, -1, -1, -1, -1, -1, -1, /* 0x14000-0x14fff */
-1, -1, -1, -1, -1, -1, -1, -1, /* 0x15000-0x15fff */
- -1, -1, -1, -1, -1, 29, -1, 30, /* 0x16000-0x16fff */
+ -1, -1, -1, -1, -1, 30, -1, 31, /* 0x16000-0x16fff */
-1, -1, -1, -1, -1, -1, -1, -1, /* 0x17000-0x17fff */
-1, -1, -1, -1, -1, -1, -1, -1, /* 0x18000-0x18fff */
-1, -1, -1, -1, -1, -1, -1, -1, /* 0x19000-0x19fff */
-1, -1, -1, -1, -1, -1, -1, -1, /* 0x1a000-0x1afff */
- -1, -1, -1, -1, -1, -1, 31, -1, /* 0x1b000-0x1bfff */
+ -1, -1, -1, -1, -1, -1, 32, -1, /* 0x1b000-0x1bfff */
-1, -1, -1, -1, -1, -1, -1, -1, /* 0x1c000-0x1cfff */
- 32, 33, -1, -1, -1, 34, -1, -1, /* 0x1d000-0x1dfff */
- -1, -1, -1, -1, 35, -1, -1, -1 /* 0x1e000-0x1efff */
+ 33, 34, -1, -1, -1, 35, -1, -1, /* 0x1d000-0x1dfff */
+ 36, -1, -1, -1, 37, -1, -1, -1 /* 0x1e000-0x1efff */
};
/* Determine number of column positions required for UC. */
/* Prefer faster, non-thread-safe stdio functions if available.
- Copyright (C) 2001-2004, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2004, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Jim Meyering. */
-/* Copyright (C) 1992, 1995-2002, 2005-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995-2002, 2005-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc
optimizes away the name == NULL test below. */
/* A C macro for declaring that specific function parameters are not used.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* _GL_UNUSED_PARAMETER is a marker that can be appended to function parameter
declarations for parameters that are not used. This helps to reduce
/* vsprintf with automatic memory allocation.
- Copyright (C) 1999, 2002-2017 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
/* This file can be parametrized with the following macros:
VASNPRINTF The name of the function being defined.
size_t a_len = a.nlimbs;
/* 0.03345 is slightly larger than log(2)/(9*log(10)). */
size_t c_len = 9 * ((size_t)(a_len * (GMP_LIMB_BITS * 0.03345f)) + 1);
- char *c_ptr = (char *) malloc (xsum (c_len, extra_zeroes));
+ /* We need extra_zeroes bytes for zeroes, followed by c_len bytes for the
+ digits of a, followed by 1 byte for the terminating NUL. */
+ char *c_ptr = (char *) malloc (xsum (xsum (extra_zeroes, c_len), 1));
if (c_ptr != NULL)
{
char *d_ptr = c_ptr;
errno = EILSEQ;
return NULL;
}
- if (precision < count)
+ if (precision < (unsigned int) count)
break;
arg_end++;
characters += count;
static const wchar_t decimal_format[] =
/* Produce the same number of exponent digits
as the native printf implementation. */
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
{ '%', '+', '.', '3', 'd', '\0' };
# else
{ '%', '+', '.', '2', 'd', '\0' };
static const char decimal_format[] =
/* Produce the same number of exponent digits
as the native printf implementation. */
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
"%+.3d";
# else
"%+.2d";
static const wchar_t decimal_format[] =
/* Produce the same number of exponent digits
as the native printf implementation. */
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
{ '%', '+', '.', '3', 'd', '\0' };
# else
{ '%', '+', '.', '2', 'd', '\0' };
static const char decimal_format[] =
/* Produce the same number of exponent digits
as the native printf implementation. */
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
"%+.3d";
# else
"%+.2d";
*p++ = '+';
/* Produce the same number of exponent digits as
the native printf implementation. */
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
*p++ = '0';
# endif
*p++ = '0';
#if HAVE_LONG_LONG_INT
case TYPE_LONGLONGINT:
case TYPE_ULONGLONGINT:
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
*fbp++ = 'I';
*fbp++ = '6';
*fbp++ = '4';
#endif
*fbp = dp->conversion;
#if USE_SNPRINTF
-# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
+# if ! (((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) \
+ && !defined __UCLIBC__) \
+ || (defined __APPLE__ && defined __MACH__) \
+ || (defined _WIN32 && ! defined __CYGWIN__))
fbp[1] = '%';
fbp[2] = 'n';
fbp[3] = '\0';
in format strings in writable memory may crash the program
(if compiled with _FORTIFY_SOURCE=2), so we should avoid it
in this situation. */
+ /* On Mac OS X 10.3 or newer, we know that snprintf's return
+ value conforms to ISO C 99: the tests gl_SNPRINTF_RETVAL_C99
+ and gl_SNPRINTF_TRUNCATION_C99 pass.
+ Therefore we can avoid using %n in this situation.
+ On Mac OS X 10.13 or newer, the use of %n in format strings
+ in writable memory by default crashes the program, so we
+ should avoid it in this situation. */
/* On native Windows systems (such as mingw), we can avoid using
%n because:
- Although the gl_SNPRINTF_TRUNCATION_C99 test fails,
On native Windows systems (such as mingw) where the OS is
Windows Vista, the use of %n in format strings by default
crashes the program. See
- <http://gcc.gnu.org/ml/gcc/2007-06/msg00122.html> and
- <http://msdn2.microsoft.com/en-us/library/ms175782(VS.80).aspx>
+ <https://gcc.gnu.org/ml/gcc/2007-06/msg00122.html> and
+ <https://msdn.microsoft.com/en-us/library/ms175782.aspx>
So we should avoid %n in this situation. */
fbp[1] = '\0';
# endif
{
/* Verify that snprintf() has NUL-terminated its
result. */
- if (count < maxlen
+ if ((unsigned int) count < maxlen
&& ((TCHAR_T *) (result + length)) [count] != '\0')
abort ();
/* Portability hack. */
/* vsprintf with automatic memory allocation.
- Copyright (C) 2002-2004, 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002-2004, 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _VASNPRINTF_H
#define _VASNPRINTF_H
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2017 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
- with this program; if not, see <http://www.gnu.org/licenses/>. */
+ with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Compile-time assert-like macros.
- Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2005-2006, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */
when 'assume' silences warnings even with older GCCs. */
# define assume(R) ((R) ? (void) 0 : __builtin_trap ())
#else
-# define assume(R) ((void) (0 && (R)))
+ /* Some tools grok NOTREACHED, e.g., Oracle Studio 12.6. */
+# define assume(R) ((R) ? (void) 0 : /*NOTREACHED*/ (void) 0)
#endif
/* @assert.h omit end@ */
/* Variable with FSF copyright information, for version-etc.
- Copyright (C) 1999-2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1999-2006, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Jim Meyering. */
/* Print --version and bug-reporting information in a consistent format.
- Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ Copyright (C) 1999-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Jim Meyering. */
#include <stdarg.h>
#include <stdio.h>
-#include <stdlib.h>
#if USE_UNLOCKED_IO
# include "unlocked-io.h"
# define PACKAGE PACKAGE_TARNAME
#endif
-enum { COPYRIGHT_YEAR = 2017 };
+enum { COPYRIGHT_YEAR = 2018 };
/* The three functions below display the --version information the
standard way.
fputs (_("\
\n\
-License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.\n\
+License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.\n\
This is free software: you are free to change and redistribute it.\n\
There is NO WARRANTY, to the extent permitted by law.\n\
\n\
switch (n_authors)
{
case 0:
- /* The caller must provide at least one author name. */
- abort ();
+ /* No authors are given. The caller should output authorship
+ info after calling this function. */
+ break;
case 1:
/* TRANSLATORS: %s denotes an author name. */
fprintf (stream, _("Written by %s.\n"), authors[0]);
#ifdef PACKAGE_URL
printf (_("%s home page: <%s>\n"), PACKAGE_NAME, PACKAGE_URL);
#else
- printf (_("%s home page: <http://www.gnu.org/software/%s/>\n"),
+ printf (_("%s home page: <https://www.gnu.org/software/%s/>\n"),
PACKAGE_NAME, PACKAGE);
#endif
- fputs (_("General help using GNU software: <http://www.gnu.org/gethelp/>\n"),
+ fputs (_("General help using GNU software: <https://www.gnu.org/gethelp/>\n"),
stdout);
}
/* Print --version and bug-reporting information in a consistent format.
- Copyright (C) 1999, 2003, 2005, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2003, 2005, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Jim Meyering. */
/* A C macro for emitting warnings if a function is used.
- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ Copyright (C) 2010-2018 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
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* _GL_WARN_ON_USE (function, "literal string") issues a declaration
for FUNCTION which will then trigger a compiler warning containing
supported by the compiler. If the compiler does not support this
feature, the macro expands to an unused extern declaration.
- This macro is useful for marking a function as a potential
+ _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the
+ attribute used in _GL_WARN_ON_USE. If the compiler does not support
+ this feature, it expands to empty.
+
+ These macros are useful for marking a function as a potential
portability trap, with the intent that "literal string" include
instructions on the replacement function that should be used
- instead. However, one of the reasons that a function is a
- portability trap is if it has the wrong signature. Declaring
- FUNCTION with a different signature in C is a compilation error, so
- this macro must use the same type as any existing declaration so
- that programs that avoid the problematic FUNCTION do not fail to
- compile merely because they included a header that poisoned the
- function. But this implies that _GL_WARN_ON_USE is only safe to
- use if FUNCTION is known to already have a declaration. Use of
- this macro implies that there must not be any other macro hiding
- the declaration of FUNCTION; but undefining FUNCTION first is part
- of the poisoning process anyway (although for symbols that are
- provided only via a macro, the result is a compilation error rather
- than a warning containing "literal string"). Also note that in
- C++, it is only safe to use if FUNCTION has no overloads.
+ instead.
+ _GL_WARN_ON_USE is for functions with 'extern' linkage.
+ _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline'
+ linkage.
+
+ However, one of the reasons that a function is a portability trap is
+ if it has the wrong signature. Declaring FUNCTION with a different
+ signature in C is a compilation error, so this macro must use the
+ same type as any existing declaration so that programs that avoid
+ the problematic FUNCTION do not fail to compile merely because they
+ included a header that poisoned the function. But this implies that
+ _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already
+ have a declaration. Use of this macro implies that there must not
+ be any other macro hiding the declaration of FUNCTION; but
+ undefining FUNCTION first is part of the poisoning process anyway
+ (although for symbols that are provided only via a macro, the result
+ is a compilation error rather than a warning containing
+ "literal string"). Also note that in C++, it is only safe to use if
+ FUNCTION has no overloads.
For an example, it is possible to poison 'getline' by:
- adding a call to gl_WARN_ON_USE_PREPARE([[#include <stdio.h>]],
(less common usage, like &environ, will cause a compilation error
rather than issue the nice warning, but the end result of informing
the developer about their portability problem is still achieved):
- #if HAVE_RAW_DECL_ENVIRON
- static char ***rpl_environ (void) { return &environ; }
- _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared");
- # undef environ
- # define environ (*rpl_environ ())
- #endif
+ #if HAVE_RAW_DECL_ENVIRON
+ static char ***
+ rpl_environ (void) { return &environ; }
+ _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared");
+ # undef environ
+ # define environ (*rpl_environ ())
+ #endif
+ or better (avoiding contradictory use of 'static' and 'extern'):
+ #if HAVE_RAW_DECL_ENVIRON
+ static char ***
+ _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared")
+ rpl_environ (void) { return &environ; }
+ # undef environ
+ # define environ (*rpl_environ ())
+ #endif
*/
#ifndef _GL_WARN_ON_USE
/* A compiler attribute is available in gcc versions 4.3.0 and later. */
# define _GL_WARN_ON_USE(function, message) \
extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
+# define _GL_WARN_ON_USE_ATTRIBUTE(message) \
+ __attribute__ ((__warning__ (message)))
# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
/* Verify the existence of the function. */
# define _GL_WARN_ON_USE(function, message) \
extern __typeof__ (function) function
+# define _GL_WARN_ON_USE_ATTRIBUTE(message)
# else /* Unsupported. */
# define _GL_WARN_ON_USE(function, message) \
_GL_WARN_EXTERN_C int _gl_warn_on_use
+# define _GL_WARN_ON_USE_ATTRIBUTE(message)
# endif
#endif
/* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* Written by Eric Blake. */
@PRAGMA_COLUMNS@
#if (((defined __need_mbstate_t || defined __need_wint_t) \
- && !defined __MINGW32__ && !defined __KLIBC__) \
+ && !defined __MINGW32__) \
|| (defined __hpux \
&& ((defined _INTTYPES_INCLUDED && !defined strtoimax) \
|| defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) \
# if !@HAVE_DECL_WCWIDTH@
/* wcwidth exists but is not declared. */
_GL_FUNCDECL_SYS (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE);
-# elif defined __KLIBC__
-/* On OS/2 kLIBC, wcwidth is a macro that expands to the name of a
- static inline function. The implementation of wcwidth in wcwidth.c
- causes a "conflicting types" error. */
-# undef wcwidth
# endif
_GL_CXXALIAS_SYS (wcwidth, int, (wchar_t));
# endif
/* Convert wide character to multibyte character.
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* A substitute for ISO C99 <wctype.h>, for platforms that lack it.
- Copyright (C) 2006-2017 Free Software Foundation, Inc.
+ Copyright (C) 2006-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* Written by Bruno Haible and Paul Eggert. */
isw* functions in <ctype.h>, <wchar.h> as well as in <wctype.h>. Include
<ctype.h>, <wchar.h> in advance to avoid rpl_ prefix being added to the
declarations. */
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
# include <ctype.h>
# include <wchar.h>
#endif
/* Determine the number of screen columns needed for a character.
- Copyright (C) 2006-2007, 2010-2017 Free Software Foundation, Inc.
+ Copyright (C) 2006-2007, 2010-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
#include "streq.h"
#include "uniwidth.h"
+/* Returns 1 if the current locale is an UTF-8 locale, 0 otherwise. */
+static inline int
+is_locale_utf8 (void)
+{
+ const char *encoding = locale_charset ();
+ return STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0);
+}
+
+#if GNULIB_WCHAR_SINGLE
+/* When we know that the locale does not change, provide a speedup by
+ caching the value of is_locale_utf8. */
+static int cached_is_locale_utf8 = -1;
+static inline int
+is_locale_utf8_cached (void)
+{
+ if (cached_is_locale_utf8 < 0)
+ cached_is_locale_utf8 = is_locale_utf8 ();
+ return cached_is_locale_utf8;
+}
+#else
+/* By default, don't make assumptions, hence no caching. */
+# define is_locale_utf8_cached is_locale_utf8
+#endif
+
int
wcwidth (wchar_t wc)
#undef wcwidth
{
/* In UTF-8 locales, use a Unicode aware width function. */
- const char *encoding = locale_charset ();
- if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0 ,0))
+ if (is_locale_utf8_cached ())
{
/* We assume that in a UTF-8 locale, a wide character is the same as a
Unicode character. */
- return uc_width (wc, encoding);
+ return uc_width (wc, "UTF-8");
}
else
{
/* Report a memory allocation failure and exit.
- Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2017 Free Software
+ Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2018 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* xalloc-oversized.h -- memory allocation size checking
- Copyright (C) 1990-2000, 2003-2004, 2006-2017 Free Software Foundation, Inc.
+ Copyright (C) 1990-2000, 2003-2004, 2006-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef XALLOC_OVERSIZED_H_
#define XALLOC_OVERSIZED_H_
#if 7 <= __GNUC__
# define xalloc_oversized(n, s) \
__builtin_mul_overflow_p (n, s, (__xalloc_count_type) 1)
-#elif 5 <= __GNUC__ && !__STRICT_ANSI__
+#elif 5 <= __GNUC__ && !defined __ICC && !__STRICT_ANSI__
# define xalloc_oversized(n, s) \
(__builtin_constant_p (n) && __builtin_constant_p (s) \
? __xalloc_oversized (n, s) \
/* xalloc.h -- malloc with out-of-memory checking
- Copyright (C) 1990-2000, 2003-2004, 2006-2017 Free Software Foundation, Inc.
+ Copyright (C) 1990-2000, 2003-2004, 2006-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef XALLOC_H_
#define XALLOC_H_
#endif
-#if __GNUC__ >= 3
-# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
-#else
-# define _GL_ATTRIBUTE_MALLOC
-#endif
-
#if ! defined __clang__ && \
(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
/* vasprintf and asprintf with out-of-memory checking.
- Copyright (C) 1999, 2002-2004, 2006, 2009-2017 Free Software Foundation,
+ Copyright (C) 1999, 2002-2004, 2006, 2009-2018 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* a wrapper for freopen
- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
#include "xfreopen.h"
/* xmalloc.c -- malloc with out of memory checking
- Copyright (C) 1990-2000, 2002-2006, 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 1990-2000, 2002-2006, 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* xreadlink.c -- readlink wrapper to return the link name in malloc'd storage
- Copyright (C) 2001, 2003-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2003-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Jim Meyering <jim@meyering.net>
and Bruno Haible <bruno@clisp.org>. */
/* Reading symbolic links without size limitation.
- Copyright (C) 2001, 2003-2004, 2007, 2009-2017 Free Software Foundation,
+ Copyright (C) 2001, 2003-2004, 2007, 2009-2018 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Jim Meyering <jim@meyering.net> */
/* xsize.h -- Checked size_t computations.
- Copyright (C) 2003, 2008-2017 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2008-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _XSIZE_H
#define _XSIZE_H
/* Charset conversion with out-of-memory checking.
- Copyright (C) 2001-2004, 2006, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2004, 2006, 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Charset conversion with out-of-memory checking.
- Copyright (C) 2001-2004, 2006-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2001-2004, 2006-2007, 2009-2018 Free Software Foundation, Inc.
Written by Bruno Haible and Simon Josefsson.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _XSTRICONV_H
#define _XSTRICONV_H
/* Duplicate a bounded initial segment of a string, with out-of-memory
checking.
- Copyright (C) 2003, 2006-2007, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2006-2007, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* Duplicate a bounded initial segment of a string, with out-of-memory
checking.
- Copyright (C) 2003, 2009-2017 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2009-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <stddef.h>
/* Return a newly allocated copy of at most N bytes of STRING.
In other words, return a copy of the initial segment of length N of
STRING. */
-extern char *xstrndup (const char *string, size_t n);
+extern char *xstrndup (const char *string, size_t n) _GL_ATTRIBUTE_MALLOC;
/* A more useful interface to strtol.
- Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2017 Free Software
+ Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2018 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
#include "xstrtol.h"
/* A more useful interface to strtol.
- Copyright (C) 1995-1996, 1998-2001, 2003-2007, 2009-2017 Free Software
+ Copyright (C) 1995-1996, 1998-2001, 2003-2007, 2009-2018 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Written by Jim Meyering. */
#include <string.h>
#include "assure.h"
-#include "intprops.h"
-/* xstrtoll.c and xstrtoull.c, which include this file, require that
- ULLONG_MAX, LLONG_MAX, LLONG_MIN are defined, but <limits.h> does not
- define them on all platforms. */
-#ifndef ULLONG_MAX
-# define ULLONG_MAX TYPE_MAXIMUM (unsigned long long)
-#endif
-#ifndef LLONG_MAX
-# define LLONG_MAX TYPE_MAXIMUM (long long int)
-#endif
-#ifndef LLONG_MIN
-# define LLONG_MIN TYPE_MINIMUM (long long int)
-#endif
+#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
static strtol_error
bkm_scale (__strtol_t *x, int scale_factor)
/* A more useful interface to strtol.
- Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2017 Free Software
+ Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2018 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef XSTRTOL_H_
# define XSTRTOL_H_ 1
/* vasprintf and asprintf with out-of-memory checking.
- Copyright (C) 1999, 2002-2004, 2006-2017 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002-2004, 2006-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#include <config.h>
/* vasprintf and asprintf with out-of-memory checking.
- Copyright (C) 2002-2004, 2006-2017 Free Software Foundation, Inc.
+ Copyright (C) 2002-2004, 2006-2018 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
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _XVASPRINTF_H
#define _XVASPRINTF_H
# 00gnulib.m4 serial 3
-dnl Copyright (C) 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
--- /dev/null
+# Test for __inline keyword
+dnl Copyright 2017-2018 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl___INLINE],
+[
+ AC_CACHE_CHECK([whether the compiler supports the __inline keyword],
+ [gl_cv_c___inline],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[typedef int foo_t;
+ static __inline foo_t foo (void) { return 0; }]],
+ [[return foo ();]])],
+ [gl_cv_c___inline=yes],
+ [gl_cv_c___inline=no])])
+ if test $gl_cv_c___inline = yes; then
+ AC_DEFINE([HAVE___INLINE], [1],
+ [Define to 1 if the compiler supports the keyword '__inline'.])
+ fi
+])
# absolute-header.m4 serial 16
-dnl Copyright (C) 2006-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# alloca.m4 serial 14
-dnl Copyright (C) 2002-2004, 2006-2007, 2009-2017 Free Software Foundation,
+dnl Copyright (C) 2002-2004, 2006-2007, 2009-2018 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_PREREQ_ALLOCA], [:])
# This works around a bug in autoconf <= 2.68.
-# See <http://lists.gnu.org/archive/html/bug-gnulib/2011-06/msg00277.html>.
+# See <https://lists.gnu.org/r/bug-gnulib/2011-06/msg00277.html>.
m4_version_prereq([2.69], [] ,[
# This is taken from the following Autoconf patch:
-# http://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=6cd9f12520b0d6f76d3230d7565feba1ecf29497
+# https://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=6cd9f12520b0d6f76d3230d7565feba1ecf29497
# _AC_LIBOBJ_ALLOCA
# -----------------
# arpa_inet_h.m4 serial 13
-dnl Copyright (C) 2006, 2008-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# btowc.m4 serial 10
-dnl Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# btowc.m4 serial 11
+dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl Check whether <wchar.h> is usable at all, first. Otherwise the test
dnl program below may lead to an endless loop. See
- dnl <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42440>.
+ dnl <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42440>.
AC_REQUIRE([gl_WCHAR_H_INLINE_OK])
AC_CHECK_FUNCS_ONCE([btowc])
case "$host_os" in
# Guess no on Cygwin.
cygwin*) gl_cv_func_btowc_nul="guessing no" ;;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_btowc_nul="guessing yes" ;;
# Guess yes otherwise.
*) gl_cv_func_btowc_nul="guessing yes" ;;
esac
dnl is present.
changequote(,)dnl
case "$host_os" in
- # Guess no on IRIX.
- irix*) gl_cv_func_btowc_eof="guessing no" ;;
- # Guess yes otherwise.
- *) gl_cv_func_btowc_eof="guessing yes" ;;
+ # Guess no on IRIX.
+ irix*) gl_cv_func_btowc_eof="guessing no" ;;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_btowc_eof="guessing yes" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_btowc_eof="guessing yes" ;;
esac
changequote([,])dnl
if test $LOCALE_FR != none; then
dnl Check for __builtin_expect.
-dnl Copyright 2016-2017 Free Software Foundation, Inc.
+dnl Copyright 2016-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# Check prerequisites for compiling lib/c-stack.c.
-# Copyright (C) 2002-2004, 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2002-2004, 2008-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# Written by Paul Eggert.
-# serial 15
+# serial 17
AC_DEFUN([AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC],
[
]])],
[ac_cv_sys_stack_overflow_works=yes],
[ac_cv_sys_stack_overflow_works=no],
- [ac_cv_sys_stack_overflow_works=cross-compiling])])
+ [case "$host_os" in
+ # Guess no on native Windows.
+ mingw*) ac_cv_sys_stack_overflow_works="guessing no" ;;
+ *) ac_cv_sys_stack_overflow_works=cross-compiling ;;
+ esac
+ ])
+ ])
- if test $ac_cv_sys_stack_overflow_works = yes; then
+ if test "$ac_cv_sys_stack_overflow_works" = yes; then
AC_DEFINE([HAVE_STACK_OVERFLOW_HANDLING], [1],
[Define to 1 if extending the stack slightly past the limit causes
a SIGSEGV which can be handled on an alternate stack established
fi
AC_CACHE_CHECK([for precise C stack overflow detection],
- ac_cv_sys_xsi_stack_overflow_heuristic,
- [AC_RUN_IFELSE([AC_LANG_SOURCE(
- [[
- #include <unistd.h>
- #include <signal.h>
- #if HAVE_UCONTEXT_H
- # include <ucontext.h>
- #endif
- #if HAVE_SETRLIMIT
- # include <sys/types.h>
- # include <sys/time.h>
- # include <sys/resource.h>
- #endif
- #ifndef SIGSTKSZ
- # define SIGSTKSZ 16384
- #endif
+ [ac_cv_sys_xsi_stack_overflow_heuristic],
+ [dnl On Linux/sparc64 (both in 32-bit and 64-bit mode), it would be wrong
+ dnl to set HAVE_XSI_STACK_OVERFLOW_HEURISTIC to 1, because the third
+ dnl argument passed to the segv_handler is a 'struct sigcontext *', not
+ dnl an 'ucontext_t *'. It would lead to a failure of test-c-stack2.sh.
+ case "${host_os}--${host_cpu}" in
+ linux*--sparc*)
+ ac_cv_sys_xsi_stack_overflow_heuristic=no
+ ;;
+ *)
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE(
+ [[
+ #include <unistd.h>
+ #include <signal.h>
+ #if HAVE_UCONTEXT_H
+ # include <ucontext.h>
+ #endif
+ #if HAVE_SETRLIMIT
+ # include <sys/types.h>
+ # include <sys/time.h>
+ # include <sys/resource.h>
+ #endif
+ #ifndef SIGSTKSZ
+ # define SIGSTKSZ 16384
+ #endif
- static union
- {
- char buffer[2 * SIGSTKSZ];
- long double ld;
- long u;
- void *p;
- } alternate_signal_stack;
+ static union
+ {
+ char buffer[2 * SIGSTKSZ];
+ long double ld;
+ long u;
+ void *p;
+ } alternate_signal_stack;
- #if STACK_DIRECTION
- # define find_stack_direction(ptr) STACK_DIRECTION
- #else
- static int
- find_stack_direction (char const *addr)
- {
- char dummy;
- return (! addr ? find_stack_direction (&dummy)
- : addr < &dummy ? 1 : -1);
- }
- #endif
+ #if STACK_DIRECTION
+ # define find_stack_direction(ptr) STACK_DIRECTION
+ #else
+ static int
+ find_stack_direction (char const *addr)
+ {
+ char dummy;
+ return (! addr ? find_stack_direction (&dummy)
+ : addr < &dummy ? 1 : -1);
+ }
+ #endif
- static void
- segv_handler (int signo, siginfo_t *info, void *context)
- {
- if (0 < info->si_code)
+ static void
+ segv_handler (int signo, siginfo_t *info, void *context)
{
- /* For XSI heuristics to work, we need uc_stack to describe
- the interrupted stack (as on Solaris), and not the
- currently executing stack (as on Linux). */
- ucontext_t const *user_context = context;
- char const *stack_min = user_context->uc_stack.ss_sp;
- size_t stack_size = user_context->uc_stack.ss_size;
- char const *faulting_address = info->si_addr;
- size_t s = faulting_address - stack_min;
- size_t page_size = sysconf (_SC_PAGESIZE);
- if (find_stack_direction (0) < 0)
- s += page_size;
- if (s < stack_size + page_size)
- _exit (0);
- _exit (4);
+ if (0 < info->si_code)
+ {
+ /* For XSI heuristics to work, we need uc_stack to
+ describe the interrupted stack (as on Solaris), and
+ not the currently executing stack (as on Linux). */
+ ucontext_t const *user_context = context;
+ char const *stack_min = user_context->uc_stack.ss_sp;
+ size_t stack_size = user_context->uc_stack.ss_size;
+ char const *faulting_address = info->si_addr;
+ size_t s = faulting_address - stack_min;
+ size_t page_size = sysconf (_SC_PAGESIZE);
+ if (find_stack_direction (0) < 0)
+ s += page_size;
+ if (s < stack_size + page_size)
+ _exit (0);
+ _exit (4);
+ }
+ _exit (5);
}
- _exit (5);
- }
- static int
- c_stack_action ()
- {
- stack_t st;
- struct sigaction act;
- int r;
+ static int
+ c_stack_action ()
+ {
+ stack_t st;
+ struct sigaction act;
+ int r;
- st.ss_flags = 0;
- /* Use the midpoint to avoid Irix sigaltstack bug. */
- st.ss_sp = alternate_signal_stack.buffer + SIGSTKSZ;
- st.ss_size = SIGSTKSZ;
- r = sigaltstack (&st, 0);
- if (r != 0)
- return 1;
+ st.ss_flags = 0;
+ /* Use the midpoint to avoid Irix sigaltstack bug. */
+ st.ss_sp = alternate_signal_stack.buffer + SIGSTKSZ;
+ st.ss_size = SIGSTKSZ;
+ r = sigaltstack (&st, 0);
+ if (r != 0)
+ return 1;
- sigemptyset (&act.sa_mask);
- act.sa_flags = SA_NODEFER | SA_ONSTACK | SA_RESETHAND | SA_SIGINFO;
- act.sa_sigaction = segv_handler;
- #if FAULT_YIELDS_SIGBUS
- if (sigaction (SIGBUS, &act, 0) < 0)
- return 2;
- #endif
- if (sigaction (SIGSEGV, &act, 0) < 0)
- return 3;
- return 0;
- }
- static volatile int *
- recurse_1 (volatile int n, volatile int *p)
- {
- if (n >= 0)
- *recurse_1 (n + 1, p) += n;
- return p;
- }
- static int
- recurse (volatile int n)
- {
- int sum = 0;
- return *recurse_1 (n, &sum);
- }
- int
- main ()
- {
- int result;
- #if HAVE_SETRLIMIT && defined RLIMIT_STACK
- /* Before starting the endless recursion, try to be friendly
- to the user's machine. On some Linux 2.2.x systems, there
- is no stack limit for user processes at all. We don't want
- to kill such systems. */
- struct rlimit rl;
- rl.rlim_cur = rl.rlim_max = 0x100000; /* 1 MB */
- setrlimit (RLIMIT_STACK, &rl);
- #endif
+ sigemptyset (&act.sa_mask);
+ act.sa_flags = SA_NODEFER | SA_ONSTACK | SA_RESETHAND | SA_SIGINFO;
+ act.sa_sigaction = segv_handler;
+ #if FAULT_YIELDS_SIGBUS
+ if (sigaction (SIGBUS, &act, 0) < 0)
+ return 2;
+ #endif
+ if (sigaction (SIGSEGV, &act, 0) < 0)
+ return 3;
+ return 0;
+ }
+ static volatile int *
+ recurse_1 (volatile int n, volatile int *p)
+ {
+ if (n >= 0)
+ *recurse_1 (n + 1, p) += n;
+ return p;
+ }
+ static int
+ recurse (volatile int n)
+ {
+ int sum = 0;
+ return *recurse_1 (n, &sum);
+ }
+ int
+ main ()
+ {
+ int result;
+ #if HAVE_SETRLIMIT && defined RLIMIT_STACK
+ /* Before starting the endless recursion, try to be friendly
+ to the user's machine. On some Linux 2.2.x systems, there
+ is no stack limit for user processes at all. We don't want
+ to kill such systems. */
+ struct rlimit rl;
+ rl.rlim_cur = rl.rlim_max = 0x100000; /* 1 MB */
+ setrlimit (RLIMIT_STACK, &rl);
+ #endif
- result = c_stack_action ();
- if (result != 0)
- return result;
- return recurse (0);
- }
- ]])],
- [ac_cv_sys_xsi_stack_overflow_heuristic=yes],
- [ac_cv_sys_xsi_stack_overflow_heuristic=no],
- [ac_cv_sys_xsi_stack_overflow_heuristic=cross-compiling])])
+ result = c_stack_action ();
+ if (result != 0)
+ return result;
+ return recurse (0);
+ }
+ ]])],
+ [ac_cv_sys_xsi_stack_overflow_heuristic=yes],
+ [ac_cv_sys_xsi_stack_overflow_heuristic=no],
+ [ac_cv_sys_xsi_stack_overflow_heuristic=cross-compiling])
+ ;;
+ esac
+ ])
if test $ac_cv_sys_xsi_stack_overflow_heuristic = yes; then
AC_DEFINE([HAVE_XSI_STACK_OVERFLOW_HEURISTIC], [1],
# clock_time.m4 serial 10
-dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# close.m4 serial 9
-dnl Copyright (C) 2008-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# Say that -DHAVE_CONFIG_H is not needed.
-dnl Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+++ /dev/null
-# configmake.m4 serial 2
-dnl Copyright (C) 2010-2017 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-# gl_CONFIGMAKE_PREP
-# ------------------
-# Guarantee all of the standard directory variables, even when used with
-# autoconf 2.59 (datarootdir wasn't supported until 2.59c, and runstatedir
-# in 2.70) or automake 1.9.6 (pkglibexecdir wasn't supported until 1.10b,
-# and runstatedir in 1.14.1).
-AC_DEFUN([gl_CONFIGMAKE_PREP],
-[
- dnl Technically, datadir should default to datarootdir. But if
- dnl autoconf is too old to provide datarootdir, then reversing the
- dnl definition is a reasonable compromise. Only AC_SUBST a variable
- dnl if it was not already defined earlier by autoconf.
- if test "x$datarootdir" = x; then
- AC_SUBST([datarootdir], ['${datadir}'])
- fi
- dnl Copy the approach used in autoconf 2.60.
- if test "x$docdir" = x; then
- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],
- ['${datarootdir}/doc/${PACKAGE_TARNAME}'],
- ['${datarootdir}/doc/${PACKAGE}'])])
- fi
- dnl The remaining variables missing from autoconf 2.59 are easier.
- if test "x$htmldir" = x; then
- AC_SUBST([htmldir], ['${docdir}'])
- fi
- if test "x$dvidir" = x; then
- AC_SUBST([dvidir], ['${docdir}'])
- fi
- if test "x$pdfdir" = x; then
- AC_SUBST([pdfdir], ['${docdir}'])
- fi
- if test "x$psdir" = x; then
- AC_SUBST([psdir], ['${docdir}'])
- fi
- if test "x$lispdir" = x; then
- AC_SUBST([lispdir], ['${datarootdir}/emacs/site-lisp'])
- fi
- if test "x$localedir" = x; then
- AC_SUBST([localedir], ['${datarootdir}/locale'])
- fi
- dnl Added in autoconf 2.70
- if test "x$runstatedir" = x; then
- AC_SUBST([runstatedir], ['${localstatedir}/run'])
- fi
-
- dnl Automake 1.9.6 only lacks pkglibexecdir; and since 1.11 merely
- dnl provides it without AC_SUBST, this blind use of AC_SUBST is safe.
- AC_SUBST([pkglibexecdir], ['${libexecdir}/${PACKAGE}'])
-])
# ctype_h.m4 serial 6
-dnl Copyright (C) 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
#serial 10 -*- autoconf -*-
-dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# double-slash-root.m4 serial 4 -*- Autoconf -*-
-dnl Copyright (C) 2006, 2008-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
#serial 25
-dnl Copyright (C) 2002, 2005, 2007, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2005, 2007, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# eealloc.m4 serial 3
-dnl Copyright (C) 2003, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# environ.m4 serial 6
-dnl Copyright (C) 2001-2004, 2006-2017 Free Software Foundation, Inc.
+# environ.m4 serial 7
+dnl Copyright (C) 2001-2004, 2006-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_DEFUN([gt_CHECK_VAR_DECL],
[
define([gt_cv_var], [gt_cv_var_]$2[_declaration])
- AC_MSG_CHECKING([if $2 is properly declared])
- AC_CACHE_VAL([gt_cv_var], [
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[$1
- extern struct { int foo; } $2;]],
- [[$2.foo = 1;]])],
- [gt_cv_var=no],
- [gt_cv_var=yes])])
- AC_MSG_RESULT([$gt_cv_var])
+ AC_CACHE_CHECK([if $2 is properly declared], [gt_cv_var],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[$1
+ extern struct { int foo; } $2;]],
+ [[$2.foo = 1;]])],
+ [gt_cv_var=no],
+ [gt_cv_var=yes])])
if test $gt_cv_var = yes; then
AC_DEFINE([HAVE_]m4_translit($2, [a-z], [A-Z])[_DECL], 1,
[Define if you have the declaration of $2.])
-# errno_h.m4 serial 12
-dnl Copyright (C) 2004, 2006, 2008-2017 Free Software Foundation, Inc.
+# errno_h.m4 serial 13
+dnl Copyright (C) 2004, 2006, 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+AC_PREREQ([2.61])
+
AC_DEFUN_ONCE([gl_HEADER_ERRNO_H],
[
AC_REQUIRE([AC_PROG_CC])
AC_SUBST($1[_VALUE])
fi
])
-
-dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
-dnl Remove this when we can assume autoconf >= 2.61.
-m4_ifdef([AC_COMPUTE_INT], [], [
- AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
-])
#serial 14
-# Copyright (C) 1996-1998, 2001-2004, 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-1998, 2001-2004, 2009-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# exponentd.m4 serial 3
-dnl Copyright (C) 2007-2008, 2010-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2008, 2010-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# serial 15 -*- Autoconf -*-
+# serial 18 -*- Autoconf -*-
# Enable extensions on systems that normally disable them.
-# Copyright (C) 2003, 2006-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2006-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
#endif
+/* Enable NetBSD extensions on NetBSD. */
+#ifndef _NETBSD_SOURCE
+# undef _NETBSD_SOURCE
+#endif
+/* Enable OpenBSD extensions on NetBSD. */
+#ifndef _OPENBSD_SOURCE
+# undef _OPENBSD_SOURCE
+#endif
/* Enable threading extensions on Solaris. */
#ifndef _POSIX_PTHREAD_SEMANTICS
# undef _POSIX_PTHREAD_SEMANTICS
#ifndef _XOPEN_SOURCE
# undef _XOPEN_SOURCE
#endif
+/* Enable X/Open compliant socket functions that do not require linking
+ with -lxnet on HP-UX 11.11. */
+#ifndef _HPUX_ALT_XOPEN_SOCKET_API
+# undef _HPUX_ALT_XOPEN_SOCKET_API
+#endif
/* Enable general extensions on Solaris. */
#ifndef __EXTENSIONS__
# undef __EXTENSIONS__
AC_DEFINE([_ALL_SOURCE])
AC_DEFINE([_DARWIN_C_SOURCE])
AC_DEFINE([_GNU_SOURCE])
+ AC_DEFINE([_NETBSD_SOURCE])
+ AC_DEFINE([_OPENBSD_SOURCE])
AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
AC_DEFINE([__STDC_WANT_IEC_60559_ATTRIBS_EXT__])
AC_DEFINE([__STDC_WANT_IEC_60559_BFP_EXT__])
[ac_cv_should_define__xopen_source=yes])])])
test $ac_cv_should_define__xopen_source = yes &&
AC_DEFINE([_XOPEN_SOURCE], [500])
+ AC_DEFINE([_HPUX_ALT_XOPEN_SOCKET_API])
])# AC_USE_SYSTEM_EXTENSIONS
# gl_USE_SYSTEM_EXTENSIONS
dnl 'extern inline' a la ISO C99.
-dnl Copyright 2012-2017 Free Software Foundation, Inc.
+dnl Copyright 2012-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
[/* Please see the Gnulib manual for how to use these macros.
Suppress extern inline with HP-UX cc, as it appears to be broken; see
- <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>.
+ <https://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>.
Suppress extern inline with Sun C in standards-conformance mode, as it
mishandles inline functions that call each other. E.g., for 'inline void f
if isdigit is mistakenly implemented via a static inline function,
a program containing an extern inline function that calls isdigit
may not work since the C standard prohibits extern inline functions
- from calling static functions. This bug is known to occur on:
+ from calling static functions (ISO C 99 section 6.7.4.(3).
+ This bug is known to occur on:
OS X 10.8 and earlier; see:
- http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html
+ https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html
DragonFly; see
http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log
FreeBSD; see:
- http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html
+ https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html
OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
- for clang but remains for g++; see <http://trac.macports.org/ticket/41033>.
- Assume DragonFly and FreeBSD will be similar. */
+ for clang but remains for g++; see <https://trac.macports.org/ticket/41033>.
+ Assume DragonFly and FreeBSD will be similar.
+
+ GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+ inline semantics, unless -fgnu89-inline is used. It defines a macro
+ __GNUC_STDC_INLINE__ to indicate this situation or a macro
+ __GNUC_GNU_INLINE__ to indicate the opposite situation.
+ GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline
+ semantics but warns, unless -fgnu89-inline is used:
+ warning: C99 inline functions are not supported; using GNU89
+ warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
+ It defines a macro __GNUC_GNU_INLINE__ to indicate this situation.
+ */
#if (((defined __APPLE__ && defined __MACH__) \
|| defined __DragonFly__ || defined __FreeBSD__) \
&& (defined __header_inline \
-# fcntl-o.m4 serial 4
-dnl Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc.
+# fcntl-o.m4 serial 6
+dnl Copyright (C) 2006, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl Written by Paul Eggert.
+AC_PREREQ([2.60])
+
# Test whether the flags O_NOATIME and O_NOFOLLOW actually work.
# Define HAVE_WORKING_O_NOATIME to 1 if O_NOATIME works, or to 0 otherwise.
# Define HAVE_WORKING_O_NOFOLLOW to 1 if O_NOFOLLOW works, or to 0 otherwise.
AC_DEFUN([gl_FCNTL_O_FLAGS],
[
dnl Persuade glibc <fcntl.h> to define O_NOATIME and O_NOFOLLOW.
- dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes
- dnl AC_GNU_SOURCE.
- m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],
- [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])],
- [AC_REQUIRE([AC_GNU_SOURCE])])
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_CHECK_HEADERS_ONCE([unistd.h])
AC_CHECK_FUNCS_ONCE([symlink])
AC_CACHE_CHECK([for working fcntl.h], [gl_cv_header_working_fcntl_h],
68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #(
*) gl_cv_header_working_fcntl_h='no';;
esac],
- [gl_cv_header_working_fcntl_h=cross-compiling])])
+ [case "$host_os" in
+ # Guess 'no' on native Windows.
+ mingw*) gl_cv_header_working_fcntl_h='no' ;;
+ *) gl_cv_header_working_fcntl_h=cross-compiling ;;
+ esac
+ ])
+ ])
case $gl_cv_header_working_fcntl_h in #(
*O_NOATIME* | no | cross-compiling) ac_val=0;; #(
# fcntl.m4 serial 9
-dnl Copyright (C) 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# serial 15
# Configure fcntl.h.
-dnl Copyright (C) 2006-2007, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2007, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# fdopen.m4 serial 4
-dnl Copyright (C) 2011-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# filenamecat.m4 serial 11
-dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# serial 5
# Check for flexible array member support.
-# Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2009-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# float_h.m4 serial 9
-dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+# float_h.m4 serial 12
+dnl Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
aix* | beos* | openbsd* | mirbsd* | irix*)
FLOAT_H=float.h
;;
- freebsd*)
+ freebsd* | dragonfly*)
case "$host_cpu" in
changequote(,)dnl
i[34567]86 )
x86_64 )
# On x86_64 systems, the C compiler may still be generating
# 32-bit code.
- AC_EGREP_CPP([yes],
- [#if defined __LP64__ || defined __x86_64__ || defined __amd64__
- yes
- #endif],
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __LP64__ || defined __x86_64__ || defined __amd64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
[],
[FLOAT_H=float.h])
;;
;;
esac
case "$host_os" in
- aix* | freebsd* | linux*)
+ aix* | freebsd* | dragonfly* | linux*)
if test -n "$FLOAT_H"; then
REPLACE_FLOAT_LDBL=1
fi
[gl_cv_func_itold_works=no],
[case "$host" in
sparc*-*-linux*)
- AC_EGREP_CPP([yes],
- [#if defined __LP64__ || defined __arch64__
- yes
- #endif],
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __LP64__ || defined __arch64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
[gl_cv_func_itold_works="guessing no"],
[gl_cv_func_itold_works="guessing yes"])
;;
- *) gl_cv_func_itold_works="guessing yes" ;;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_itold_works="guessing yes" ;;
+ *) gl_cv_func_itold_works="guessing yes" ;;
esac
])
])
-# Check for fnmatch - serial 9. -*- coding: utf-8 -*-
+# Check for fnmatch - serial 13. -*- coding: utf-8 -*-
-# Copyright (C) 2000-2007, 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2000-2007, 2009-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
[
m4_divert_text([DEFAULTS], [gl_fnmatch_required=POSIX])
- dnl Persuade glibc <fnmatch.h> to declare FNM_CASEFOLD etc.
- dnl This is only needed if gl_fnmatch_required = GNU. It would be possible
- dnl to avoid this dependency for gl_FUNC_FNMATCH_POSIX by putting
- dnl gl_FUNC_FNMATCH_GNU into a separate .m4 file.
- AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
-
- FNMATCH_H=
+ AC_REQUIRE([gl_FNMATCH_H])
gl_fnmatch_required_lowercase=`
echo $gl_fnmatch_required | LC_ALL=C tr '[[A-Z]]' '[[a-z]]'
`
- gl_fnmatch_cache_var="gl_cv_func_fnmatch_${gl_fnmatch_required_lowercase}"
- AC_CACHE_CHECK([for working $gl_fnmatch_required fnmatch],
- [$gl_fnmatch_cache_var],
- [dnl Some versions of Solaris, SCO, and the GNU C Library
- dnl have a broken or incompatible fnmatch.
- dnl So we run a test program. If we are cross-compiling, take no chance.
- dnl Thanks to John Oleynick, François Pinard, and Paul Eggert for this
- dnl test.
- if test $gl_fnmatch_required = GNU; then
- gl_fnmatch_gnu_start=
- gl_fnmatch_gnu_end=
- else
- gl_fnmatch_gnu_start='#if 0'
- gl_fnmatch_gnu_end='#endif'
- fi
- AC_RUN_IFELSE(
- [AC_LANG_PROGRAM(
- [[#include <fnmatch.h>
- static int
- y (char const *pattern, char const *string, int flags)
- {
- return fnmatch (pattern, string, flags) == 0;
- }
- static int
- n (char const *pattern, char const *string, int flags)
- {
- return fnmatch (pattern, string, flags) == FNM_NOMATCH;
- }
- ]],
- [[char const *Apat = 'A' < '\\\\' ? "[A-\\\\\\\\]" : "[\\\\\\\\-A]";
- char const *apat = 'a' < '\\\\' ? "[a-\\\\\\\\]" : "[\\\\\\\\-a]";
- static char const A_1[] = { 'A' - 1, 0 };
- static char const A01[] = { 'A' + 1, 0 };
- static char const a_1[] = { 'a' - 1, 0 };
- static char const a01[] = { 'a' + 1, 0 };
- static char const bs_1[] = { '\\\\' - 1, 0 };
- static char const bs01[] = { '\\\\' + 1, 0 };
- int result = 0;
- if (!n ("a*", "", 0))
- return 1;
- if (!y ("a*", "abc", 0))
- return 1;
- if (!y ("[/b", "[/b", 0)) /*"]]"*/ /* glibc Bugzilla bug 12378 */
- return 1;
- if (!n ("d*/*1", "d/s/1", FNM_PATHNAME))
- return 2;
- if (!y ("a\\\\bc", "abc", 0))
- return 3;
- if (!n ("a\\\\bc", "abc", FNM_NOESCAPE))
- return 3;
- if (!y ("*x", ".x", 0))
- return 4;
- if (!n ("*x", ".x", FNM_PERIOD))
- return 4;
- if (!y (Apat, "\\\\", 0))
- return 5;
- if (!y (Apat, "A", 0))
- return 5;
- if (!y (apat, "\\\\", 0))
- return 5;
- if (!y (apat, "a", 0))
- return 5;
- if (!(n (Apat, A_1, 0) == ('A' < '\\\\')))
- return 5;
- if (!(n (apat, a_1, 0) == ('a' < '\\\\')))
- return 5;
- if (!(y (Apat, A01, 0) == ('A' < '\\\\')))
- return 5;
- if (!(y (apat, a01, 0) == ('a' < '\\\\')))
- return 5;
- if (!(y (Apat, bs_1, 0) == ('A' < '\\\\')))
- return 5;
- if (!(y (apat, bs_1, 0) == ('a' < '\\\\')))
- return 5;
- if (!(n (Apat, bs01, 0) == ('A' < '\\\\')))
- return 5;
- if (!(n (apat, bs01, 0) == ('a' < '\\\\')))
- return 5;
- $gl_fnmatch_gnu_start
- if (!y ("xxXX", "xXxX", FNM_CASEFOLD))
- result |= 8;
- if (!y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH))
- result |= 16;
- if (!n ("d*/*1", "d/s/1", FNM_FILE_NAME))
- result |= 32;
- if (!y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR))
- result |= 64;
- if (!y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR))
- result |= 64;
- if (!y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR))
- result |= 64;
- $gl_fnmatch_gnu_end
- return result;
- ]])],
- [eval "$gl_fnmatch_cache_var=yes"],
- [eval "$gl_fnmatch_cache_var=no"],
- [eval "$gl_fnmatch_cache_var=\"guessing no\""])
- ])
- eval "gl_fnmatch_result=\"\$$gl_fnmatch_cache_var\""
- if test "$gl_fnmatch_result" = yes; then
- dnl Not strictly necessary. Only to avoid spurious leftover files if people
- dnl don't do "make distclean".
- rm -f "$gl_source_base/fnmatch.h"
+ AC_CHECK_FUNCS_ONCE([fnmatch])
+ if test $ac_cv_func_fnmatch = no; then
+ HAVE_FNMATCH=0
else
- FNMATCH_H=fnmatch.h
+ gl_fnmatch_cache_var="gl_cv_func_fnmatch_${gl_fnmatch_required_lowercase}"
+ AC_CACHE_CHECK([for working $gl_fnmatch_required fnmatch],
+ [$gl_fnmatch_cache_var],
+ [dnl Some versions of Solaris, SCO, and the GNU C Library
+ dnl have a broken or incompatible fnmatch.
+ dnl So we run a test program. If we are cross-compiling, take no chance.
+ dnl Thanks to John Oleynick, François Pinard, and Paul Eggert for this
+ dnl test.
+ if test $gl_fnmatch_required = GNU; then
+ gl_fnmatch_gnu_start=
+ gl_fnmatch_gnu_end=
+ else
+ gl_fnmatch_gnu_start='#if 0'
+ gl_fnmatch_gnu_end='#endif'
+ fi
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <fnmatch.h>
+ static int
+ y (char const *pattern, char const *string, int flags)
+ {
+ return fnmatch (pattern, string, flags) == 0;
+ }
+ static int
+ n (char const *pattern, char const *string, int flags)
+ {
+ return fnmatch (pattern, string, flags) == FNM_NOMATCH;
+ }
+ ]],
+ [[char const *Apat = 'A' < '\\\\' ? "[A-\\\\\\\\]" : "[\\\\\\\\-A]";
+ char const *apat = 'a' < '\\\\' ? "[a-\\\\\\\\]" : "[\\\\\\\\-a]";
+ static char const A_1[] = { 'A' - 1, 0 };
+ static char const A01[] = { 'A' + 1, 0 };
+ static char const a_1[] = { 'a' - 1, 0 };
+ static char const a01[] = { 'a' + 1, 0 };
+ static char const bs_1[] = { '\\\\' - 1, 0 };
+ static char const bs01[] = { '\\\\' + 1, 0 };
+ int result = 0;
+ if (!n ("a*", "", 0))
+ return 1;
+ if (!y ("a*", "abc", 0))
+ return 1;
+ if (!y ("[/b", "[/b", 0)) /*"]]"*/ /* glibc Bugzilla bug 12378 */
+ return 1;
+ if (!n ("d*/*1", "d/s/1", FNM_PATHNAME))
+ return 2;
+ if (!y ("a\\\\bc", "abc", 0))
+ return 3;
+ if (!n ("a\\\\bc", "abc", FNM_NOESCAPE))
+ return 3;
+ if (!y ("*x", ".x", 0))
+ return 4;
+ if (!n ("*x", ".x", FNM_PERIOD))
+ return 4;
+ if (!y (Apat, "\\\\", 0))
+ return 5;
+ if (!y (Apat, "A", 0))
+ return 5;
+ if (!y (apat, "\\\\", 0))
+ return 5;
+ if (!y (apat, "a", 0))
+ return 5;
+ if (!(n (Apat, A_1, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(n (apat, a_1, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(y (Apat, A01, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(y (apat, a01, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(y (Apat, bs_1, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(y (apat, bs_1, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(n (Apat, bs01, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(n (apat, bs01, 0) == ('a' < '\\\\')))
+ return 5;
+ $gl_fnmatch_gnu_start
+ if (!y ("xxXX", "xXxX", FNM_CASEFOLD))
+ result |= 8;
+ if (!y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH))
+ result |= 16;
+ if (!n ("d*/*1", "d/s/1", FNM_FILE_NAME))
+ result |= 32;
+ if (!y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ if (!y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ if (!y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ $gl_fnmatch_gnu_end
+ return result;
+ ]])],
+ [eval "$gl_fnmatch_cache_var=yes"],
+ [eval "$gl_fnmatch_cache_var=no"],
+ [eval "$gl_fnmatch_cache_var=\"guessing no\""])
+ ])
+ eval "gl_fnmatch_result=\"\$$gl_fnmatch_cache_var\""
+ if test "$gl_fnmatch_result" != yes; then
+ REPLACE_FNMATCH=1
+ fi
+ fi
+ if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then
+ gl_REPLACE_FNMATCH_H
fi
- AC_SUBST([FNMATCH_H])
- AM_CONDITIONAL([GL_GENERATE_FNMATCH_H], [test -n "$FNMATCH_H"])
])
# Request a POSIX compliant fnmatch function with GNU extensions.
AC_DEFUN([gl_PREREQ_FNMATCH],
[
- dnl We must choose a different name for our function, since on ELF systems
- dnl a broken fnmatch() in libc.so would override our fnmatch() if it is
- dnl compiled into a shared library.
- AC_DEFINE_UNQUOTED([fnmatch], [${gl_fnmatch_required_lowercase}_fnmatch],
- [Define to a replacement function name for fnmatch().])
dnl Prerequisites of lib/fnmatch.c.
AC_REQUIRE([AC_TYPE_MBSTATE_T])
AC_CHECK_DECLS([isblank], [], [], [[#include <ctype.h>]])
--- /dev/null
+# fnmatch_h.m4 serial 4
+dnl Copyright (C) 2009-2018 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_DEFUN_ONCE([gl_FNMATCH_H],
+[
+ AC_REQUIRE([gl_FNMATCH_H_DEFAULTS])
+ m4_ifdef([gl_ANSI_CXX], [AC_REQUIRE([gl_ANSI_CXX])])
+ AC_CHECK_HEADERS_ONCE([fnmatch.h])
+ gl_CHECK_NEXT_HEADERS([fnmatch.h])
+
+ dnl Persuade glibc <fnmatch.h> to declare FNM_CASEFOLD etc.
+ dnl This is only needed if gl_fnmatch_required = GNU. It would be possible
+ dnl to avoid this dependency for gl_FUNC_FNMATCH_POSIX by putting
+ dnl gl_FUNC_FNMATCH_GNU into a separate .m4 file.
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ if test $ac_cv_header_fnmatch_h = yes; then
+ HAVE_FNMATCH_H=1
+ else
+ HAVE_FNMATCH_H=0
+ fi
+ AC_SUBST([HAVE_FNMATCH_H])
+
+ m4_ifdef([gl_POSIXCHECK],
+ [FNMATCH_H=fnmatch.h],
+ [FNMATCH_H=''
+ if m4_ifdef([gl_ANSI_CXX], [test "$CXX" != no], [false]); then
+ dnl Override <fnmatch.h> always, to support the C++ GNULIB_NAMESPACE.
+ FNMATCH_H=fnmatch.h
+ else
+ if test $ac_cv_header_fnmatch_h != yes; then
+ dnl Provide a substitute <fnmatch.h> file.
+ FNMATCH_H=fnmatch.h
+ fi
+ fi
+ ])
+ AC_SUBST([FNMATCH_H])
+ AM_CONDITIONAL([GL_GENERATE_FNMATCH_H], [test -n "$FNMATCH_H"])
+
+ dnl Check for declarations of anything we want to poison if the
+ dnl corresponding gnulib module is not in use.
+ gl_WARN_ON_USE_PREPARE([[#include <fnmatch.h>
+ ]],
+ [fnmatch])
+])
+
+dnl Unconditionally enables the replacement of <fnmatch.h>.
+AC_DEFUN([gl_REPLACE_FNMATCH_H],
+[
+ AC_REQUIRE([gl_FNMATCH_H_DEFAULTS])
+ FNMATCH_H='fnmatch.h'
+ AM_CONDITIONAL([GL_GENERATE_FNMATCH_H], [test -n "$FNMATCH_H"])
+])
+
+AC_DEFUN([gl_FNMATCH_MODULE_INDICATOR],
+[
+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+ AC_REQUIRE([gl_FNMATCH_H_DEFAULTS])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_FNMATCH_H_DEFAULTS],
+[
+ GNULIB_FNMATCH=0; AC_SUBST([GNULIB_FNMATCH])
+ dnl Assume POSIX behavior unless another module says otherwise.
+ HAVE_FNMATCH=1; AC_SUBST([HAVE_FNMATCH])
+ REPLACE_FNMATCH=0; AC_SUBST([REPLACE_FNMATCH])
+])
# fpieee.m4 serial 2 -*- coding: utf-8 -*-
-dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
alpha*)
# On Alpha systems, a compiler option provides the behaviour.
# See the ieee(3) manual page, also available at
- # <http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/0600____.HTM>
+ # <https://backdrift.org/man/tru64/man3/ieee.3.html>
if test -n "$GCC"; then
# GCC has the option -mieee.
# For full IEEE compliance (rarely needed), use option -mieee-with-inexact.
# freopen.m4 serial 6
-dnl Copyright (C) 2007-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# fstat.m4 serial 5
-dnl Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# fstat.m4 serial 6
+dnl Copyright (C) 2011-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
case "$host_os" in
- mingw*)
- dnl On this platform, the original stat() returns st_atime, st_mtime,
+ mingw* | solaris*)
+ dnl On MinGW, the original stat() returns st_atime, st_mtime,
dnl st_ctime values that are affected by the time zone.
+ dnl Solaris stat can return a negative tv_nsec.
REPLACE_FSTAT=1
;;
esac
# See if we need to emulate a missing ftruncate function using chsize.
-# Copyright (C) 2000-2001, 2003-2007, 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2003-2007, 2009-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# getcwd.m4 - check for working getcwd that is compatible with glibc
-# Copyright (C) 2001, 2003-2007, 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003-2007, 2009-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# Written by Paul Eggert.
-# serial 13
+# serial 16
AC_DEFUN([gl_FUNC_GETCWD_NULL],
[
char *getcwd ();
# endif
]], [[
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
/* mingw cwd does not start with '/', but getcwd does allocate.
However, mingw fails to honor non-zero size. */
#else
if (! f)
return 2;
if (f[0] != '/')
- return 3;
+ { free (f); return 3; }
if (f[1] != '\0')
- return 4;
+ { free (f); return 4; }
free (f);
return 0;
}
[gl_cv_func_getcwd_null=yes],
[gl_cv_func_getcwd_null=no],
[[case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_getcwd_null="guessing yes";;
- # Guess yes on Cygwin.
- cygwin*) gl_cv_func_getcwd_null="guessing yes";;
- # If we don't know, assume the worst.
- *) gl_cv_func_getcwd_null="guessing no";;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_getcwd_null="guessing yes";;
+ # Guess yes on Cygwin.
+ cygwin*) gl_cv_func_getcwd_null="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_getcwd_null="guessing no";;
esac
]])])
])
-# getdtablesize.m4 serial 6
-dnl Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# getdtablesize.m4 serial 7
+dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_CHECK_DECLS_ONCE([getdtablesize])
if test $ac_cv_func_getdtablesize = yes &&
test $ac_cv_have_decl_getdtablesize = yes; then
- # Cygwin 1.7.25 automatically increases the RLIMIT_NOFILE soft limit
- # up to an unchangeable hard limit; all other platforms correctly
- # require setrlimit before getdtablesize() can report a larger value.
AC_CACHE_CHECK([whether getdtablesize works],
[gl_cv_func_getdtablesize_works],
- [AC_RUN_IFELSE([
- AC_LANG_PROGRAM([[#include <unistd.h>]],
- [int size = getdtablesize();
- if (dup2 (0, getdtablesize()) != -1)
- return 1;
- if (size != getdtablesize())
- return 2;
- ])],
- [gl_cv_func_getdtablesize_works=yes],
- [gl_cv_func_getdtablesize_works=no],
- [case "$host_os" in
- cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows
- gl_cv_func_getdtablesize_works="guessing no" ;;
- *) gl_cv_func_getdtablesize_works="guessing yes" ;;
- esac])
+ [dnl There are two concepts: the "maximum possible file descriptor value + 1"
+ dnl and the "maximum number of open file descriptors in a process".
+ dnl Per SUSv2 and POSIX, getdtablesize() should return the first one.
+ dnl On most platforms, the first and the second concept are the same.
+ dnl On OpenVMS, however, they are different and getdtablesize() returns
+ dnl the second one; thus the test below fails. But we don't care
+ dnl because there's no good way to write a replacement getdtablesize().
+ case "$host_os" in
+ vms*) gl_cv_func_getdtablesize_works="no (limitation)" ;;
+ *)
+ dnl Cygwin 1.7.25 automatically increases the RLIMIT_NOFILE soft
+ dnl limit up to an unchangeable hard limit; all other platforms
+ dnl correctly require setrlimit before getdtablesize() can report
+ dnl a larger value.
+ AC_RUN_IFELSE([
+ AC_LANG_PROGRAM([[#include <unistd.h>]],
+ [int size = getdtablesize();
+ if (dup2 (0, getdtablesize()) != -1)
+ return 1;
+ if (size != getdtablesize())
+ return 2;
+ ])],
+ [gl_cv_func_getdtablesize_works=yes],
+ [gl_cv_func_getdtablesize_works=no],
+ [case "$host_os" in
+ cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows
+ gl_cv_func_getdtablesize_works="guessing no" ;;
+ *) gl_cv_func_getdtablesize_works="guessing yes" ;;
+ esac
+ ])
+ ;;
+ esac
])
case "$gl_cv_func_getdtablesize_works" in
- *yes) ;;
+ *yes | "no (limitation)") ;;
*) REPLACE_GETDTABLESIZE=1 ;;
esac
else
# getopt.m4 serial 46
-dnl Copyright (C) 2002-2006, 2008-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# getpagesize.m4 serial 9
-dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2017 Free Software Foundation,
+# getpagesize.m4 serial 10
+dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2018 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
[
AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
AC_REQUIRE([AC_CANONICAL_HOST])
- AC_CHECK_FUNCS([getpagesize])
- if test $ac_cv_func_getpagesize = no; then
+ gl_CHECK_FUNC_GETPAGESIZE
+ if test $gl_cv_func_getpagesize = no; then
HAVE_GETPAGESIZE=0
AC_CHECK_HEADERS([OS.h])
if test $ac_cv_header_OS_h = yes; then
dnl mingw has getpagesize() in libgcc.a but doesn't declare it.
AC_CHECK_DECL([getpagesize], , [HAVE_DECL_GETPAGESIZE=0])
])
+
+dnl Tests whether the function getpagesize() exists.
+dnl Sets gl_cv_func_getpagesize.
+AC_DEFUN([gl_CHECK_FUNC_GETPAGESIZE],
+[
+ dnl We can't use AC_CHECK_FUNC here, because getpagesize() is defined as a
+ dnl static inline function when compiling for Android 4.4 or older.
+ AC_CACHE_CHECK([for getpagesize], [gl_cv_func_getpagesize],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <unistd.h>]],
+ [[return getpagesize();]])
+ ],
+ [gl_cv_func_getpagesize=yes],
+ [gl_cv_func_getpagesize=no])
+ ])
+])
# getprogname.m4 - check for getprogname or replacements for it
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# gettime.m4 serial 8
-dnl Copyright (C) 2002, 2004-2006, 2009-2017 Free Software Foundation, Inc.
+# gettime.m4 serial 9
+dnl Copyright (C) 2002, 2004-2006, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl Prerequisites of lib/gettime.c.
AC_REQUIRE([gl_CLOCK_TIME])
AC_REQUIRE([gl_TIMESPEC])
- AC_CHECK_FUNCS_ONCE([gettimeofday nanotime])
+ AC_CHECK_FUNCS_ONCE([gettimeofday])
])
-# serial 23
+# serial 25
-# Copyright (C) 2001-2003, 2005, 2007, 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2003, 2005, 2007, 2009-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
[gl_cv_func_gettimeofday_clobber=yes],
[# When cross-compiling:
case "$host_os" in
- # Guess all is fine on glibc systems.
- *-gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_gettimeofday_clobber="guessing yes" ;;
+ # Guess all is fine on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_gettimeofday_clobber="guessing yes" ;;
esac
])])
# glibc21.m4 serial 5
-dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2017 Free Software Foundation,
+dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2018 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
# Determine whether recent-enough GNU Make is being used.
-# Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Set GNU_MAKE if we are using a recent-enough version of GNU make.
-# Use --version AND trailing junk, because SGI Make doesn't fail on --version.
-
AC_DEFUN([gl_GNU_MAKE],
[
AM_CONDITIONAL([GNU_MAKE],
- [${MAKE-make} --version /cannot/make/this >/dev/null 2>&1])
+ [LC_ALL=C ${MAKE-make} --version 2>/dev/null | sed -e '2,$d' | grep GNU >/dev/null])
])
-# gnulib-common.m4 serial 38
-dnl Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# gnulib-common.m4 serial 41
+dnl Copyright (C) 2007-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
+AC_PREREQ([2.62])
+
# gl_COMMON
# is expanded unconditionally through gnulib-tool magic.
AC_DEFUN([gl_COMMON], [
AC_DEFUN([gl_COMMON_BODY], [
AH_VERBATIM([_Noreturn],
[/* The _Noreturn keyword of C11. */
-#if ! (defined _Noreturn \
- || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
-# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
- || 0x5110 <= __SUNPRO_C)
+#ifndef _Noreturn
+# if 201103 <= (defined __cplusplus ? __cplusplus : 0)
+# define _Noreturn [[noreturn]]
+# elif (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
+ || 4 < __GNUC__ + (7 <= __GNUC_MINOR__))
+ /* _Noreturn works as-is. */
+# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C
# define _Noreturn __attribute__ ((__noreturn__))
-# elif defined _MSC_VER && 1200 <= _MSC_VER
+# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0)
# define _Noreturn __declspec (noreturn)
# else
# define _Noreturn
#else
# define _GL_ATTRIBUTE_CONST /* empty */
#endif
+
+/* The __malloc__ attribute was added in gcc 3. */
+#if 3 <= __GNUC__
+# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
+#else
+# define _GL_ATTRIBUTE_MALLOC /* empty */
+#endif
])
dnl Preparation for running test programs:
dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not
AC_SUBST([HAVE_FEATURES_H])
])
-# m4_foreach_w
-# is a backport of autoconf-2.59c's m4_foreach_w.
-# Remove this macro when we can assume autoconf >= 2.60.
-m4_ifndef([m4_foreach_w],
- [m4_define([m4_foreach_w],
- [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])])
-
# AS_VAR_IF(VAR, VALUE, [IF-MATCH], [IF-NOT-MATCH])
# ----------------------------------------------------
# Backport of autoconf-2.63b's macro.
# Modifies the value of the shell variable CC in an attempt to make $CC
# understand ISO C99 source code.
# This is like AC_PROG_CC_C99, except that
-# - AC_PROG_CC_C99 did not exist in Autoconf versions < 2.60,
# - AC_PROG_CC_C99 does not mix well with AC_PROG_CC_STDC
-# <http://lists.gnu.org/archive/html/bug-gnulib/2011-09/msg00367.html>,
+# <https://lists.gnu.org/r/bug-gnulib/2011-09/msg00367.html>,
# but many more packages use AC_PROG_CC_STDC than AC_PROG_CC_C99
-# <http://lists.gnu.org/archive/html/bug-gnulib/2011-09/msg00441.html>.
+# <https://lists.gnu.org/r/bug-gnulib/2011-09/msg00441.html>.
# Remaining problems:
# - When AC_PROG_CC_STDC is invoked twice, it adds the C99 enabling options
# to CC twice
-# <http://lists.gnu.org/archive/html/bug-gnulib/2011-09/msg00431.html>.
+# <https://lists.gnu.org/r/bug-gnulib/2011-09/msg00431.html>.
# - AC_PROG_CC_STDC is likely to change now that C11 is an ISO standard.
AC_DEFUN([gl_PROG_CC_C99],
[
AC_SUBST([RANLIB])
])
-# AC_PROG_MKDIR_P
-# is a backport of autoconf-2.60's AC_PROG_MKDIR_P, with a fix
-# for interoperability with automake-1.9.6 from autoconf-2.62.
-# Remove this macro when we can assume autoconf >= 2.62 or
-# autoconf >= 2.60 && automake >= 1.10.
-# AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness.
-m4_ifndef([AC_AUTOCONF_VERSION],[
-m4_ifdef([AC_PROG_MKDIR_P], [
- dnl For automake-1.9.6 && autoconf < 2.62: Ensure MKDIR_P is AC_SUBSTed.
- m4_define([AC_PROG_MKDIR_P],
- m4_defn([AC_PROG_MKDIR_P])[
- AC_SUBST([MKDIR_P])])], [
- dnl For autoconf < 2.60: Backport of AC_PROG_MKDIR_P.
- AC_DEFUN_ONCE([AC_PROG_MKDIR_P],
- [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
- MKDIR_P='$(mkdir_p)'
- AC_SUBST([MKDIR_P])])])
-])
-
# AC_C_RESTRICT
# This definition is copied from post-2.69 Autoconf and overrides the
# AC_C_RESTRICT macro from autoconf 2.60..2.69. It can be removed
for ac_kw in __restrict __restrict__ _Restrict restrict; do
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
- [[typedef int *int_ptr;
- int foo (int_ptr $ac_kw ip) { return ip[0]; }
- int bar (int [$ac_kw]); /* Catch GCC bug 14050. */
- int bar (int ip[$ac_kw]) { return ip[0]; }
- ]],
- [[int s[1];
- int *$ac_kw t = s;
- t[0] = 0;
- return foo (t) + bar (t);
- ]])],
+ [[typedef int *int_ptr;
+ int foo (int_ptr $ac_kw ip) { return ip[0]; }
+ int bar (int [$ac_kw]); /* Catch GCC bug 14050. */
+ int bar (int ip[$ac_kw]) { return ip[0]; }
+ ]],
+ [[int s[1];
+ int *$ac_kw t = s;
+ t[0] = 0;
+ return foo (t) + bar (t);
+ ]])],
[ac_cv_c_restrict=$ac_kw])
test "$ac_cv_c_restrict" != no && break
done
# AS_VAR_COPY was added in autoconf 2.63b
m4_define_default([AS_VAR_COPY],
[AS_LITERAL_IF([$1[]$2], [$1=$$2], [eval $1=\$$2])])
-
-# AC_PROG_SED was added in autoconf 2.59b
-m4_ifndef([AC_PROG_SED],
-[AC_DEFUN([AC_PROG_SED],
-[AC_CACHE_CHECK([for a sed that does not truncate output], ac_cv_path_SED,
- [dnl ac_script should not contain more than 99 commands (for HP-UX sed),
- dnl but more than about 7000 bytes, to catch a limit in Solaris 8 /usr/ucb/sed.
- ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
- for ac_i in 1 2 3 4 5 6 7; do
- ac_script="$ac_script$as_nl$ac_script"
- done
- echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
- AS_UNSET([ac_script])
- if test -z "$SED"; then
- ac_path_SED_found=false
- _AS_PATH_WALK([], [
- for ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
- AS_EXECUTABLE_P(["$ac_path_SED"]) || continue
- case `"$ac_path_SED" --version 2>&1` in
- *GNU*) ac_cv_path_SED=$ac_path_SED ac_path_SED_found=:;;
- *)
- ac_count=0
- _AS_ECHO_N([0123456789]) >conftest.in
- while :
- do
- cat conftest.in conftest.in >conftest.tmp
- mv conftest.tmp conftest.in
- cp conftest.in conftest.nl
- echo >> conftest.nl
- "$ac_path_SED" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break
- diff conftest.out conftest.nl >/dev/null 2>&1 || break
- ac_count=`expr $ac_count + 1`
- if test $ac_count -gt ${ac_path_SED_max-0}; then
- # Best so far, but keep looking for better
- ac_cv_path_SED=$ac_path_SED
- ac_path_SED_max=$ac_count
- fi
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
- esac
- $ac_path_SED_found && break 3
- done
- done])
- if test -z "$ac_cv_path_SED"; then
- AC_ERROR([no acceptable sed could be found in \$PATH])
- fi
- else
- ac_cv_path_SED=$SED
- fi
- ])
- SED="$ac_cv_path_SED"
- AC_SUBST([SED])dnl
- rm -f conftest.sed
-])
-])
# DO NOT EDIT! GENERATED AUTOMATICALLY!
-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
+# Copyright (C) 2002-2018 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this file. If not, see <http://www.gnu.org/licenses/>.
+# along with this file. If not, see <https://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License,
# this file may be distributed as part of a program that
# Code from module c-strcaseeq:
# Code from module careadlinkat:
# Code from module clock-time:
+ # Code from module cloexec:
+ # Code from module cloexec-tests:
# Code from module close:
# Code from module close-tests:
# Code from module config-h:
- # Code from module configmake:
# Code from module connect:
# Code from module connect-tests:
# Code from module ctype:
# Code from module float-tests:
# Code from module fnmatch:
# Code from module fnmatch-gnu:
+ # Code from module fnmatch-h:
+ # Code from module fnmatch-h-tests:
# Code from module fnmatch-tests:
# Code from module fpieee:
AC_REQUIRE([gl_FP_IEEE])
# Code from module langinfo-tests:
# Code from module largefile:
AC_REQUIRE([AC_SYS_LARGEFILE])
+ # Code from module libc-config:
# Code from module libsigsegv:
# Code from module limits-h:
# Code from module limits-h-tests:
# Code from module listen:
# Code from module listen-tests:
# Code from module localcharset:
+ # Code from module localcharset-tests:
# Code from module locale:
# Code from module locale-tests:
# Code from module localeconv:
# Code from module memchr:
# Code from module memchr-tests:
# Code from module minmax:
+ # Code from module mkdir:
+ # Code from module mkdir-tests:
# Code from module mkstemp:
# Code from module mktime:
# Code from module mktime-internal:
# Code from module nl_langinfo:
# Code from module nl_langinfo-tests:
# Code from module nocrash:
+ # Code from module nstrftime:
+ # Code from module nstrftime-tests:
# Code from module open:
# Code from module open-tests:
# Code from module pathmax:
# Code from module regex:
# Code from module regex-tests:
# Code from module same-inode:
- # Code from module secure_getenv:
# Code from module select:
# Code from module select-tests:
# Code from module setenv:
# Code from module stdalign-tests:
# Code from module stdarg:
dnl Some compilers (e.g., AIX 5.3 cc) need to be in c99 mode
- dnl for the builtin va_copy to work. With Autoconf 2.60 or later,
- dnl gl_PROG_CC_C99 arranges for this. With older Autoconf gl_PROG_CC_C99
- dnl shouldn't hurt, though installers are on their own to set c99 mode.
+ dnl for the builtin va_copy to work. gl_PROG_CC_C99 arranges for this.
gl_PROG_CC_C99
# Code from module stdbool:
# Code from module stdbool-tests:
# Code from module strerror_r-posix:
# Code from module strerror_r-posix-tests:
# Code from module strftime:
- # Code from module strftime-tests:
# Code from module striconv:
# Code from module striconv-tests:
# Code from module string:
gl_C_STACK
AC_CHECK_FUNCS_ONCE([readlinkat])
gl_CLOCK_TIME
+ gl_MODULE_INDICATOR_FOR_TESTS([cloexec])
gl_FUNC_CLOSE
if test $REPLACE_CLOSE = 1; then
AC_LIBOBJ([close])
fi
gl_UNISTD_MODULE_INDICATOR([close])
gl_CONFIG_H
- gl_CONFIGMAKE_PREP
gl_CTYPE_H
gl_DIRNAME
gl_MODULE_INDICATOR([dirname])
AC_LIBOBJ([itold])
fi
gl_FUNC_FNMATCH_POSIX
- if test -n "$FNMATCH_H"; then
+ if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then
AC_LIBOBJ([fnmatch])
gl_PREREQ_FNMATCH
fi
+ gl_FNMATCH_MODULE_INDICATOR([fnmatch])
gl_FUNC_FNMATCH_GNU
- if test -n "$FNMATCH_H"; then
+ if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then
AC_LIBOBJ([fnmatch])
gl_PREREQ_FNMATCH
fi
+ gl_MODULE_INDICATOR([fnmatch-gnu])
+ gl_FNMATCH_H
gl_FUNC_FREOPEN
if test $REPLACE_FREOPEN = 1; then
AC_LIBOBJ([freopen])
gl_FUNC_FSTAT
if test $REPLACE_FSTAT = 1; then
AC_LIBOBJ([fstat])
- AC_LIBOBJ([stat-w32])
+ case "$host_os" in
+ mingw*)
+ AC_LIBOBJ([stat-w32])
+ ;;
+ esac
gl_PREREQ_FSTAT
fi
gl_SYS_STAT_MODULE_INDICATOR([fstat])
m4_defn([m4_PACKAGE_VERSION])), [1], [],
[AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [],
[GNUmakefile=$GNUmakefile])])
- gl_HARD_LOCALE
AM_ICONV
m4_ifdef([gl_ICONV_MODULE_INDICATOR],
[gl_ICONV_MODULE_INDICATOR([iconv])])
gl_WCTYPE_MODULE_INDICATOR([iswblank])
gl_LANGINFO_H
AC_REQUIRE([gl_LARGEFILE])
+ gl___INLINE
gl_LIBSIGSEGV
gl_LIMITS_H
gl_LOCALCHARSET
- LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\""
+ dnl For backward compatibility. Some packages still use this.
+ LOCALCHARSET_TESTS_ENVIRONMENT=
AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT])
gl_LOCALE_H
gl_FUNC_LOCALECONV
fi
gl_STRING_MODULE_INDICATOR([memchr])
gl_MINMAX
+ gl_FUNC_MKDIR
+ if test $REPLACE_MKDIR = 1; then
+ AC_LIBOBJ([mkdir])
+ fi
gl_FUNC_MKSTEMP
if test $HAVE_MKSTEMP = 0 || test $REPLACE_MKSTEMP = 1; then
AC_LIBOBJ([mkstemp])
AC_LIBOBJ([nl_langinfo])
fi
gl_LANGINFO_MODULE_INDICATOR([nl_langinfo])
+ gl_FUNC_GNU_STRFTIME
gl_FUNC_OPEN
if test $REPLACE_OPEN = 1; then
AC_LIBOBJ([open])
AC_LIBOBJ([regex])
gl_PREREQ_REGEX
fi
- gl_FUNC_SECURE_GETENV
- if test $HAVE_SECURE_GETENV = 0; then
- AC_LIBOBJ([secure_getenv])
- gl_PREREQ_SECURE_GETENV
- fi
- gl_STDLIB_MODULE_INDICATOR([secure_getenv])
gl_FUNC_SETENV
if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
AC_LIBOBJ([setenv])
gl_FUNC_STAT
if test $REPLACE_STAT = 1; then
AC_LIBOBJ([stat])
- AC_LIBOBJ([stat-w32])
+ case "$host_os" in
+ mingw*)
+ AC_LIBOBJ([stat-w32])
+ ;;
+ esac
gl_PREREQ_STAT
fi
gl_SYS_STAT_MODULE_INDICATOR([stat])
AC_LIBOBJ([strerror-override])
gl_PREREQ_SYS_H_WINSOCK2
fi
- gl_FUNC_GNU_STRFTIME
if test $gl_cond_libtool = false; then
gl_ltlibdeps="$gl_ltlibdeps $LTLIBICONV"
gl_libdeps="$gl_libdeps $LIBICONV"
gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-uctomb])
gl_LIBUNISTRING_LIBHEADER([0.9.4], [unitypes.h])
gl_LIBUNISTRING_LIBHEADER([0.9.4], [uniwidth.h])
- gl_LIBUNISTRING_MODULE([0.9.6], [uniwidth/width])
+ gl_LIBUNISTRING_MODULE([0.9.8], [uniwidth/width])
gl_FUNC_GLIBC_UNLOCKED_IO
gl_FUNC_UNSETENV
if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
gl_FUNC_WCWIDTH
if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then
AC_LIBOBJ([wcwidth])
+ gl_PREREQ_WCWIDTH
fi
gl_WCHAR_MODULE_INDICATOR([wcwidth])
gl_XALLOC
lib/c-strncasecmp.c
lib/careadlinkat.c
lib/careadlinkat.h
+ lib/cdefs.h
+ lib/cloexec.c
+ lib/cloexec.h
lib/close.c
- lib/config.charset
lib/ctype.in.h
lib/diffseq.h
lib/dirname-lgpl.c
lib/iswblank.c
lib/itold.c
lib/langinfo.in.h
+ lib/libc-config.h
lib/limits.in.h
lib/localcharset.c
lib/localcharset.h
lib/malloc.c
lib/malloca.c
lib/malloca.h
- lib/malloca.valgrind
lib/mbchar.c
lib/mbchar.h
lib/mbiter.c
lib/memchr.c
lib/memchr.valgrind
lib/minmax.h
+ lib/mkdir.c
lib/mkstemp.c
lib/mktime-internal.h
lib/mktime.c
lib/msvc-nothrow.c
lib/msvc-nothrow.h
lib/nl_langinfo.c
+ lib/nstrftime.c
lib/offtostr.c
lib/open.c
lib/pathmax.h
lib/rawmemchr.c
lib/rawmemchr.valgrind
lib/readlink.c
- lib/ref-add.sin
- lib/ref-del.sin
lib/regcomp.c
lib/regex.c
lib/regex.h
lib/regex_internal.c
lib/regex_internal.h
lib/regexec.c
- lib/secure_getenv.c
lib/setenv.c
lib/sh-quote.c
lib/sh-quote.h
lib/strerror-override.c
lib/strerror-override.h
lib/strerror.c
- lib/strftime.c
lib/strftime.h
lib/striconv.c
lib/striconv.h
lib/xvasprintf.c
lib/xvasprintf.h
m4/00gnulib.m4
+ m4/__inline.m4
m4/absolute-header.m4
m4/alloca.m4
m4/arpa_inet_h.m4
m4/close.m4
m4/codeset.m4
m4/config-h.m4
- m4/configmake.m4
m4/ctype.m4
m4/dirname.m4
m4/double-slash-root.m4
m4/flexmember.m4
m4/float_h.m4
m4/fnmatch.m4
+ m4/fnmatch_h.m4
m4/fpieee.m4
m4/freopen.m4
m4/fstat.m4
m4/glibc21.m4
m4/gnu-make.m4
m4/gnulib-common.m4
- m4/hard-locale.m4
+ m4/host-cpu-c-abi.m4
m4/iconv.m4
m4/iconv_h.m4
m4/iconv_open.m4
m4/lstat.m4
m4/malloc.m4
m4/malloca.m4
+ m4/manywarnings-c++.m4
m4/manywarnings.m4
m4/math_h.m4
m4/mbchar.m4
m4/mbtowc.m4
m4/memchr.m4
m4/minmax.m4
+ m4/mkdir.m4
m4/mkstemp.m4
m4/mktime.m4
m4/mmap-anon.m4
m4/netinet_in_h.m4
m4/nl_langinfo.m4
m4/nocrash.m4
+ m4/nstrftime.m4
m4/off_t.m4
+ m4/open-cloexec.m4
m4/open.m4
m4/pathmax.m4
m4/perror.m4
m4/rawmemchr.m4
m4/readlink.m4
m4/regex.m4
- m4/secure_getenv.m4
m4/select.m4
m4/setenv.m4
m4/setlocale.m4
m4/strcase.m4
m4/strerror.m4
m4/strerror_r.m4
- m4/strftime.m4
m4/string_h.m4
m4/strings_h.m4
m4/strndup.m4
tests/test-c-strcase.sh
tests/test-c-strcasecmp.c
tests/test-c-strncasecmp.c
+ tests/test-cloexec.c
tests/test-close.c
tests/test-connect.c
tests/test-ctype.c
tests/test-fgetc.c
tests/test-filenamecat.c
tests/test-float.c
+ tests/test-fnmatch-h.c
tests/test-fnmatch.c
tests/test-fputc.c
tests/test-fread.c
tests/test-langinfo.c
tests/test-limits-h.c
tests/test-listen.c
+ tests/test-localcharset.c
tests/test-locale.c
tests/test-localeconv.c
tests/test-lstat.c
tests/test-mbsstr3.c
tests/test-mbsstr3.sh
tests/test-memchr.c
+ tests/test-mkdir.c
+ tests/test-mkdir.h
tests/test-nanosleep.c
tests/test-netinet_in.c
tests/test-nl_langinfo.c
tests/test-nl_langinfo.sh
+ tests/test-nstrftime.c
tests/test-open.c
tests/test-open.h
tests/test-pathmax.c
tests/test-stdlib.c
tests/test-strerror.c
tests/test-strerror_r.c
- tests/test-strftime.c
tests/test-striconv.c
tests/test-string.c
tests/test-strings.c
+++ /dev/null
-# hard-locale.m4 serial 8
-dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl No prerequisites of lib/hard-locale.c.
-AC_DEFUN([gl_HARD_LOCALE],
-[
- :
-])
--- /dev/null
+# host-cpu-c-abi.m4 serial 11
+dnl Copyright (C) 2002-2018 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible and Sam Steingold.
+
+dnl Sets the HOST_CPU variable to the canonical name of the CPU.
+dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its
+dnl C language ABI (application binary interface).
+dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in
+dnl config.h.
+dnl
+dnl This canonical name can be used to select a particular assembly language
+dnl source file that will interoperate with C code on the given host.
+dnl
+dnl For example:
+dnl * 'i386' and 'sparc' are different canonical names, because code for i386
+dnl will not run on SPARC CPUs and vice versa. They have different
+dnl instruction sets.
+dnl * 'sparc' and 'sparc64' are different canonical names, because code for
+dnl 'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code
+dnl contains 32-bit instructions, whereas 'sparc64' code contains 64-bit
+dnl instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit
+dnl mode, but not both.
+dnl * 'mips' and 'mipsn32' are different canonical names, because they use
+dnl different argument passing and return conventions for C functions, and
+dnl although the instruction set of 'mips' is a large subset of the
+dnl instruction set of 'mipsn32'.
+dnl * 'mipsn32' and 'mips64' are different canonical names, because they use
+dnl different sizes for the C types like 'int' and 'void *', and although
+dnl the instruction sets of 'mipsn32' and 'mips64' are the same.
+dnl * The same canonical name is used for different endiannesses. You can
+dnl determine the endianness through preprocessor symbols:
+dnl - 'arm': test __ARMEL__.
+dnl - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL.
+dnl - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN.
+dnl * The same name 'i386' is used for CPUs of type i386, i486, i586
+dnl (Pentium), AMD K7, Pentium II, Pentium IV, etc., because
+dnl - Instructions that do not exist on all of these CPUs (cmpxchg,
+dnl MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your
+dnl assembly language source files use such instructions, you will
+dnl need to make the distinction.
+dnl - Speed of execution of the common instruction set is reasonable across
+dnl the entire family of CPUs. If you have assembly language source files
+dnl that are optimized for particular CPU types (like GNU gmp has), you
+dnl will need to make the distinction.
+dnl See <https://en.wikipedia.org/wiki/X86_instruction_listings>.
+AC_DEFUN([gl_HOST_CPU_C_ABI],
+[
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([gl_C_ASM])
+ AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi],
+ [case "$host_cpu" in
+
+changequote(,)dnl
+ i[4567]86 )
+changequote([,])dnl
+ gl_cv_host_cpu_c_abi=i386
+ ;;
+
+ x86_64 )
+ # On x86_64 systems, the C compiler may be generating code in one of
+ # these ABIs:
+ # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
+ # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
+ # with native Windows (mingw, MSVC).
+ # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
+ # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if (defined __x86_64__ || defined __amd64__ \
+ || defined _M_X64 || defined _M_AMD64)
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __ILP32__ || defined _ILP32
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi=x86_64-x32],
+ [gl_cv_host_cpu_c_abi=x86_64])],
+ [gl_cv_host_cpu_c_abi=i386])
+ ;;
+
+changequote(,)dnl
+ alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] )
+changequote([,])dnl
+ gl_cv_host_cpu_c_abi=alpha
+ ;;
+
+ arm* | aarch64 )
+ # Assume arm with EABI.
+ # On arm64 systems, the C compiler may be generating code in one of
+ # these ABIs:
+ # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
+ # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
+ # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#ifdef __aarch64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __ILP32__ || defined _ILP32
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi=arm64-ilp32],
+ [gl_cv_host_cpu_c_abi=arm64])],
+ [# Don't distinguish little-endian and big-endian arm, since they
+ # don't require different machine code for simple operations and
+ # since the user can distinguish them through the preprocessor
+ # defines __ARMEL__ vs. __ARMEB__.
+ # But distinguish arm which passes floating-point arguments and
+ # return values in integer registers (r0, r1, ...) - this is
+ # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which
+ # passes them in float registers (s0, s1, ...) and double registers
+ # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer
+ # sets the preprocessor defines __ARM_PCS (for the first case) and
+ # __ARM_PCS_VFP (for the second case), but older GCC does not.
+ echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c
+ # Look for a reference to the register d0 in the .s file.
+ AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1
+ if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then
+ gl_cv_host_cpu_c_abi=armhf
+ else
+ gl_cv_host_cpu_c_abi=arm
+ fi
+ rm -f conftest*
+ ])
+ ;;
+
+ hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
+ # On hppa, the C compiler may be generating 32-bit code or 64-bit
+ # code. In the latter case, it defines _LP64 and __LP64__.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#ifdef __LP64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi=hppa64],
+ [gl_cv_host_cpu_c_abi=hppa])
+ ;;
+
+ ia64* )
+ # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
+ # 32-bit code. In the latter case, it defines _ILP32.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#ifdef _ILP32
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi=ia64-ilp32],
+ [gl_cv_host_cpu_c_abi=ia64])
+ ;;
+
+ mips* )
+ # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
+ # at 32.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi=mips64],
+ [# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but
+ # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIN32.
+ # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but
+ # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIO32.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if (_MIPS_SIM == _ABIN32)
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi=mipsn32],
+ [gl_cv_host_cpu_c_abi=mips])])
+ ;;
+
+ powerpc* )
+ # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
+ # No need to distinguish them here; the caller may distinguish
+ # them based on the OS.
+ # On powerpc64 systems, the C compiler may still be generating
+ # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
+ # be generating 64-bit code.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __powerpc64__ || defined _ARCH_PPC64
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [# On powerpc64, there are two ABIs on Linux: The AIX compatible
+ # one and the ELFv2 one. The latter defines _CALL_ELF=2.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined _CALL_ELF && _CALL_ELF == 2
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi=powerpc64-elfv2],
+ [gl_cv_host_cpu_c_abi=powerpc64])
+ ],
+ [gl_cv_host_cpu_c_abi=powerpc])
+ ;;
+
+ rs6000 )
+ gl_cv_host_cpu_c_abi=powerpc
+ ;;
+
+ riscv32 | riscv64 )
+ # There are 2 architectures (with variants): rv32* and rv64*.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if __riscv_xlen == 64
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [cpu=riscv64],
+ [cpu=riscv32])
+ # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
+ # Size of 'long' and 'void *':
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __LP64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [main_abi=lp64],
+ [main_abi=ilp32])
+ # Float ABIs:
+ # __riscv_float_abi_double:
+ # 'float' and 'double' are passed in floating-point registers.
+ # __riscv_float_abi_single:
+ # 'float' are passed in floating-point registers.
+ # __riscv_float_abi_soft:
+ # No values are passed in floating-point registers.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __riscv_float_abi_double
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [float_abi=d],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __riscv_float_abi_single
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [float_abi=f],
+ [float_abi=''])
+ ])
+ gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}"
+ ;;
+
+ s390* )
+ # On s390x, the C compiler may be generating 64-bit (= s390x) code
+ # or 31-bit (= s390) code.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __LP64__ || defined __s390x__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi=s390x],
+ [gl_cv_host_cpu_c_abi=s390])
+ ;;
+
+ sparc | sparc64 )
+ # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
+ # C compiler still generates 32-bit code.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __sparcv9 || defined __arch64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi=sparc64],
+ [gl_cv_host_cpu_c_abi=sparc])
+ ;;
+
+ *)
+ gl_cv_host_cpu_c_abi="$host_cpu"
+ ;;
+ esac
+ ])
+
+ dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same.
+ HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'`
+ HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi"
+ AC_SUBST([HOST_CPU])
+ AC_SUBST([HOST_CPU_C_ABI])
+
+ # This was
+ # AC_DEFINE_UNQUOTED([__${HOST_CPU}__])
+ # AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__])
+ # earlier, but KAI C++ 3.2d doesn't like this.
+ sed -e 's/-/_/g' >> confdefs.h <<EOF
+#ifndef __${HOST_CPU}__
+#define __${HOST_CPU}__ 1
+#endif
+#ifndef __${HOST_CPU_C_ABI}__
+#define __${HOST_CPU_C_ABI}__ 1
+#endif
+EOF
+ AH_TOP([/* CPU and C ABI indicator */
+#ifndef __i386__
+#undef __i386__
+#endif
+#ifndef __x86_64_x32__
+#undef __x86_64_x32__
+#endif
+#ifndef __x86_64__
+#undef __x86_64__
+#endif
+#ifndef __alpha__
+#undef __alpha__
+#endif
+#ifndef __arm__
+#undef __arm__
+#endif
+#ifndef __armhf__
+#undef __armhf__
+#endif
+#ifndef __arm64_ilp32__
+#undef __arm64_ilp32__
+#endif
+#ifndef __arm64__
+#undef __arm64__
+#endif
+#ifndef __hppa__
+#undef __hppa__
+#endif
+#ifndef __hppa64__
+#undef __hppa64__
+#endif
+#ifndef __ia64_ilp32__
+#undef __ia64_ilp32__
+#endif
+#ifndef __ia64__
+#undef __ia64__
+#endif
+#ifndef __m68k__
+#undef __m68k__
+#endif
+#ifndef __mips__
+#undef __mips__
+#endif
+#ifndef __mipsn32__
+#undef __mipsn32__
+#endif
+#ifndef __mips64__
+#undef __mips64__
+#endif
+#ifndef __powerpc__
+#undef __powerpc__
+#endif
+#ifndef __powerpc64__
+#undef __powerpc64__
+#endif
+#ifndef __powerpc64_elfv2__
+#undef __powerpc64_elfv2__
+#endif
+#ifndef __riscv32__
+#undef __riscv32__
+#endif
+#ifndef __riscv64__
+#undef __riscv64__
+#endif
+#ifndef __riscv32_ilp32__
+#undef __riscv32_ilp32__
+#endif
+#ifndef __riscv32_ilp32f__
+#undef __riscv32_ilp32f__
+#endif
+#ifndef __riscv32_ilp32d__
+#undef __riscv32_ilp32d__
+#endif
+#ifndef __riscv64_ilp32__
+#undef __riscv64_ilp32__
+#endif
+#ifndef __riscv64_ilp32f__
+#undef __riscv64_ilp32f__
+#endif
+#ifndef __riscv64_ilp32d__
+#undef __riscv64_ilp32d__
+#endif
+#ifndef __riscv64_lp64__
+#undef __riscv64_lp64__
+#endif
+#ifndef __riscv64_lp64f__
+#undef __riscv64_lp64f__
+#endif
+#ifndef __riscv64_lp64d__
+#undef __riscv64_lp64d__
+#endif
+#ifndef __s390__
+#undef __s390__
+#endif
+#ifndef __s390x__
+#undef __s390x__
+#endif
+#ifndef __sh__
+#undef __sh__
+#endif
+#ifndef __sparc__
+#undef __sparc__
+#endif
+#ifndef __sparc64__
+#undef __sparc64__
+#endif
+])
+
+])
+
+
+dnl Sets the HOST_CPU_C_ABI_32BIT variable to 'yes' if the C language ABI
+dnl (application binary interface) is a 32-bit one, or to 'no' otherwise.
+dnl This is a simplified variant of gl_HOST_CPU_C_ABI.
+AC_DEFUN([gl_HOST_CPU_C_ABI_32BIT],
+[
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_CACHE_CHECK([32-bit host C ABI], [gl_cv_host_cpu_c_abi_32bit],
+ [if test -n "$gl_cv_host_cpu_c_abi"; then
+ case "$gl_cv_host_cpu_c_abi" in
+ i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
+ gl_cv_host_cpu_c_abi_32bit=yes ;;
+ *)
+ gl_cv_host_cpu_c_abi_32bit=no ;;
+ esac
+ else
+ case "$host_cpu" in
+
+changequote(,)dnl
+ i[4567]86 )
+changequote([,])dnl
+ gl_cv_host_cpu_c_abi_32bit=yes
+ ;;
+
+ x86_64 )
+ # On x86_64 systems, the C compiler may be generating code in one of
+ # these ABIs:
+ # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
+ # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
+ # with native Windows (mingw, MSVC).
+ # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
+ # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if (defined __x86_64__ || defined __amd64__ \
+ || defined _M_X64 || defined _M_AMD64) \
+ && !(defined __ILP32__ || defined _ILP32)
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ arm* | aarch64 )
+ # Assume arm with EABI.
+ # On arm64 systems, the C compiler may be generating code in one of
+ # these ABIs:
+ # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
+ # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
+ # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32)
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
+ # On hppa, the C compiler may be generating 32-bit code or 64-bit
+ # code. In the latter case, it defines _LP64 and __LP64__.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#ifdef __LP64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ ia64* )
+ # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
+ # 32-bit code. In the latter case, it defines _ILP32.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#ifdef _ILP32
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=yes],
+ [gl_cv_host_cpu_c_abi_32bit=no])
+ ;;
+
+ mips* )
+ # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
+ # at 32.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ powerpc* )
+ # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
+ # No need to distinguish them here; the caller may distinguish
+ # them based on the OS.
+ # On powerpc64 systems, the C compiler may still be generating
+ # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
+ # be generating 64-bit code.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __powerpc64__ || defined _ARCH_PPC64
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ rs6000 )
+ gl_cv_host_cpu_c_abi_32bit=yes
+ ;;
+
+ riscv32 | riscv64 )
+ # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
+ # Size of 'long' and 'void *':
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __LP64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ s390* )
+ # On s390x, the C compiler may be generating 64-bit (= s390x) code
+ # or 31-bit (= s390) code.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __LP64__ || defined __s390x__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ sparc | sparc64 )
+ # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
+ # C compiler still generates 32-bit code.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __sparcv9 || defined __arch64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ *)
+ gl_cv_host_cpu_c_abi_32bit=no
+ ;;
+ esac
+ fi
+ ])
+
+ HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit"
+])
-# iconv.m4 serial 20
-dnl Copyright (C) 2000-2002, 2007-2014, 2016 Free Software Foundation, Inc.
+# iconv.m4 serial 21
+dnl Copyright (C) 2000-2002, 2007-2014, 2016-2018 Free Software Foundation,
+dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
#endif
/* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
provided. */
- if (/* Try standardized names. */
- iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
- /* Try IRIX, OSF/1 names. */
- && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
- /* Try AIX names. */
- && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
- /* Try HP-UX names. */
- && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
- result |= 16;
+ {
+ /* Try standardized names. */
+ iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP");
+ /* Try IRIX, OSF/1 names. */
+ iconv_t cd2 = iconv_open ("UTF-8", "eucJP");
+ /* Try AIX names. */
+ iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP");
+ /* Try HP-UX names. */
+ iconv_t cd4 = iconv_open ("utf8", "eucJP");
+ if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1)
+ && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1))
+ result |= 16;
+ if (cd1 != (iconv_t)(-1))
+ iconv_close (cd1);
+ if (cd2 != (iconv_t)(-1))
+ iconv_close (cd2);
+ if (cd3 != (iconv_t)(-1))
+ iconv_close (cd3);
+ if (cd4 != (iconv_t)(-1))
+ iconv_close (cd4);
+ }
return result;
]])],
[am_cv_func_iconv_works=yes], ,
-# iconv_h.m4 serial 8
-dnl Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# iconv_h.m4 serial 11
+dnl Copyright (C) 2007-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl Execute this unconditionally, because ICONV_H may be set by other
dnl modules, after this code is executed.
gl_CHECK_NEXT_HEADERS([iconv.h])
+
+ dnl Check for declarations of anything we want to poison if the
+ dnl corresponding gnulib module is not in use, and which is not
+ dnl guaranteed by C89.
+ gl_WARN_ON_USE_PREPARE([[#include <iconv.h>
+ ]], [iconv iconv_open])
])
dnl Unconditionally enables the replacement of <iconv.h>.
AC_DEFUN([gl_ICONV_H_DEFAULTS],
[
+ m4_ifdef([gl_ANSI_CXX], [AC_REQUIRE([gl_ANSI_CXX])])
GNULIB_ICONV=0; AC_SUBST([GNULIB_ICONV])
dnl Assume proper GNU behavior unless another module says otherwise.
ICONV_CONST=; AC_SUBST([ICONV_CONST])
REPLACE_ICONV_OPEN=0; AC_SUBST([REPLACE_ICONV_OPEN])
REPLACE_ICONV_UTF=0; AC_SUBST([REPLACE_ICONV_UTF])
ICONV_H=''; AC_SUBST([ICONV_H])
+ m4_ifdef([gl_POSIXCHECK],
+ [ICONV_H='iconv.h'],
+ [if m4_ifdef([gl_ANSI_CXX], [test "$CXX" != no], [false]); then
+ dnl Override <fnmatch.h> always, to support the C++ GNULIB_NAMESPACE.
+ ICONV_H='iconv.h'
+ fi
+ ])
AM_CONDITIONAL([GL_GENERATE_ICONV_H], [test -n "$ICONV_H"])
])
# iconv_open.m4 serial 14
-dnl Copyright (C) 2007-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# include_next.m4 serial 24
-dnl Copyright (C) 2006-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# inet_pton.m4 serial 17
-dnl Copyright (C) 2006, 2008-2017 Free Software Foundation, Inc.
+# inet_pton.m4 serial 18
+dnl Copyright (C) 2006, 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl Most platforms that provide inet_pton define it in libc.
dnl Solaris 8..10 provide inet_pton in libnsl instead.
dnl Solaris 2.6..7 provide inet_pton in libresolv instead.
+ dnl Haiku provides it in -lnetwork.
dnl Native Windows provides it in -lws2_32 instead, with a declaration in
dnl <ws2tcpip.h>, and it uses stdcall calling convention, not cdecl
dnl (hence we cannot use AC_CHECK_FUNCS, AC_SEARCH_LIBS to find it).
fi
else
gl_save_LIBS=$LIBS
- AC_SEARCH_LIBS([inet_pton], [nsl resolv], [],
+ AC_SEARCH_LIBS([inet_pton], [nsl resolv network], [],
[AC_CHECK_FUNCS([inet_pton])
if test $ac_cv_func_inet_pton = no; then
HAVE_INET_PTON=0
# inline.m4 serial 4
-dnl Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# intmax_t.m4 serial 8
-dnl Copyright (C) 1997-2004, 2006-2007, 2009-2017 Free Software Foundation,
+dnl Copyright (C) 1997-2004, 2006-2007, 2009-2018 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
#serial 8
-dnl Copyright (C) 2004-2006, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2004-2006, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# inttypes-pri.m4 serial 7 (gettext-0.18.2)
-dnl Copyright (C) 1997-2002, 2006, 2008-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2002, 2006, 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# inttypes.m4 serial 26
-dnl Copyright (C) 2006-2017 Free Software Foundation, Inc.
+# inttypes.m4 serial 27
+dnl Copyright (C) 2006-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
HAVE_DECL_IMAXDIV=1; AC_SUBST([HAVE_DECL_IMAXDIV])
HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX])
HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX])
+ HAVE_IMAXDIV_T=1; AC_SUBST([HAVE_IMAXDIV_T])
REPLACE_STRTOIMAX=0; AC_SUBST([REPLACE_STRTOIMAX])
REPLACE_STRTOUMAX=0; AC_SUBST([REPLACE_STRTOUMAX])
INT32_MAX_LT_INTMAX_MAX=1; AC_SUBST([INT32_MAX_LT_INTMAX_MAX])
# inttypes_h.m4 serial 10
-dnl Copyright (C) 1997-2004, 2006, 2008-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2004, 2006, 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# ioctl.m4 serial 4
-dnl Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# ioctl.m4 serial 5
+dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
[gl_cv_func_ioctl_posix_signature],
[AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
- [[#include <sys/ioctl.h>]],
+ [[#include <sys/ioctl.h>
+ /* On some platforms, ioctl() is declared in <unistd.h>. */
+ #include <unistd.h>
+ ]],
[[extern
#ifdef __cplusplus
"C"
# isblank.m4 serial 3
-dnl Copyright (C) 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# iswblank.m4 serial 4
-dnl Copyright (C) 2011-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# langinfo_h.m4 serial 7
-dnl Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# langinfo_h.m4 serial 8
+dnl Copyright (C) 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl Determine whether <langinfo.h> exists. It is missing on mingw and BeOS.
HAVE_LANGINFO_CODESET=0
HAVE_LANGINFO_T_FMT_AMPM=0
+ HAVE_LANGINFO_ALTMON=0
HAVE_LANGINFO_ERA=0
HAVE_LANGINFO_YESEXPR=0
AC_CHECK_HEADERS_ONCE([langinfo.h])
HAVE_LANGINFO_H=1
dnl Determine what <langinfo.h> defines. CODESET and ERA etc. are missing
dnl on OpenBSD 3.8. T_FMT_AMPM and YESEXPR, NOEXPR are missing on IRIX 5.3.
+ dnl ALTMON_* are missing on glibc 2.26 and many other systems.
AC_CACHE_CHECK([whether langinfo.h defines CODESET],
[gl_cv_header_langinfo_codeset],
[AC_COMPILE_IFELSE(
if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then
HAVE_LANGINFO_T_FMT_AMPM=1
fi
+ AC_CACHE_CHECK([whether langinfo.h defines ALTMON_1],
+ [gl_cv_header_langinfo_altmon],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[#include <langinfo.h>
+int a = ALTMON_1;
+]])],
+ [gl_cv_header_langinfo_altmon=yes],
+ [gl_cv_header_langinfo_altmon=no])
+ ])
+ if test $gl_cv_header_langinfo_altmon = yes; then
+ HAVE_LANGINFO_ALTMON=1
+ fi
AC_CACHE_CHECK([whether langinfo.h defines ERA],
[gl_cv_header_langinfo_era],
[AC_COMPILE_IFELSE(
AC_SUBST([HAVE_LANGINFO_H])
AC_SUBST([HAVE_LANGINFO_CODESET])
AC_SUBST([HAVE_LANGINFO_T_FMT_AMPM])
+ AC_SUBST([HAVE_LANGINFO_ALTMON])
AC_SUBST([HAVE_LANGINFO_ERA])
AC_SUBST([HAVE_LANGINFO_YESEXPR])
# Enable large files on systems where this is not the default.
-# Copyright 1992-1996, 1998-2017 Free Software Foundation, Inc.
+# Copyright 1992-1996, 1998-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# lib-ld.m4 serial 7
-dnl Copyright (C) 1996-2003, 2009-2017 Free Software Foundation, Inc.
+# lib-ld.m4 serial 9
+dnl Copyright (C) 1996-2003, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
fi
case $host in
*-*-aix*)
- AC_EGREP_CPP([yes],
- [#if defined __powerpc64__ || defined _ARCH_PPC64
- yes
- #endif
- ],
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __powerpc64__ || defined _ARCH_PPC64
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
[# The compiler produces 64-bit code. Add option '-b64' so that the
# linker groks 64-bit object files.
case "$acl_cv_path_LD " in
esac
], [])
;;
+ sparc64-*-netbsd*)
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __sparcv9 || defined __arch64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [],
+ [# The compiler produces 32-bit code. Add option '-m elf32_sparc'
+ # so that the linker groks 32-bit object files.
+ case "$acl_cv_path_LD " in
+ *" -m elf32_sparc "*) ;;
+ *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;;
+ esac
+ ])
+ ;;
esac
])
LD="$acl_cv_path_LD"
-# lib-link.m4 serial 26 (gettext-0.18.2)
-dnl Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# lib-link.m4 serial 28
+dnl Copyright (C) 2001-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl From Bruno Haible.
-AC_PREREQ([2.54])
+AC_PREREQ([2.61])
dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
dnl the libraries corresponding to explicit and implicit dependencies.
dnl acl_hardcode_minus_L.
AC_DEFUN([AC_LIB_RPATH],
[
- dnl Tell automake >= 1.10 to complain if config.rpath is missing.
- m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
+ dnl Complain if config.rpath is missing.
+ AC_REQUIRE_AUX_FILE([config.rpath])
AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
[ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])])
- dnl Autoconf >= 2.61 supports dots in --with options.
- pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)])
dnl By default, look in $includedir and $libdir.
use_additional=yes
AC_LIB_WITH_FINAL_PREFIX([
eval additional_includedir=\"$includedir\"
eval additional_libdir=\"$libdir\"
])
- AC_ARG_WITH(P_A_C_K[-prefix],
-[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib
- --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]],
+ AC_ARG_WITH(PACK[-prefix],
+[[ --with-]]PACK[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib
+ --without-]]PACK[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]],
[
if test "X$withval" = "Xno"; then
use_additional=no
additional_includedir="$withval/include"
additional_libdir="$withval/$acl_libdirstem"
if test "$acl_libdirstem2" != "$acl_libdirstem" \
- && ! test -d "$withval/$acl_libdirstem"; then
+ && test ! -d "$withval/$acl_libdirstem"; then
additional_libdir="$withval/$acl_libdirstem2"
fi
fi
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
done
fi
- popdef([P_A_C_K])
popdef([PACKLIBS])
popdef([PACKUP])
popdef([PACK])
-# lib-prefix.m4 serial 8
-dnl Copyright (C) 2001-2005, 2008-2017 Free Software Foundation, Inc.
+# lib-prefix.m4 serial 14
+dnl Copyright (C) 2001-2005, 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl From Bruno Haible.
-dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
-dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
-dnl require excessive bracketing.
-ifdef([AC_HELP_STRING],
-[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
-[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
-
dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
dnl to access previously installed libraries. The basic assumption is that
dnl a user will want packages to use other packages he previously installed
eval additional_includedir=\"$includedir\"
eval additional_libdir=\"$libdir\"
])
- AC_LIB_ARG_WITH([lib-prefix],
-[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
- --without-lib-prefix don't search for libraries in includedir and libdir],
+ AC_ARG_WITH([lib-prefix],
+[[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
+ --without-lib-prefix don't search for libraries in includedir and libdir]],
[
if test "X$withval" = "Xno"; then
use_additional=no
dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or
dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib.
AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT])
+
+ case "$host_os" in
+ solaris*)
+ AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#ifdef _LP64
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_solaris_64bit=yes],
+ [gl_cv_solaris_64bit=no])
+ ]);;
+ esac
+
dnl Allow the user to override the result by setting acl_cv_libdirstems.
AC_CACHE_CHECK([for the common suffixes of directories in the library search path],
[acl_cv_libdirstems],
case "$host_os" in
solaris*)
dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment
- dnl <http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&a=view>.
+ dnl <https://docs.oracle.com/cd/E19253-01/816-5138/dev-env/index.html>.
dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link."
dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the
dnl symlink is missing, so we set acl_libdirstem2 too.
- AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit],
- [AC_EGREP_CPP([sixtyfour bits], [
-#ifdef _LP64
-sixtyfour bits
-#endif
- ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no])
- ])
if test $gl_cv_solaris_64bit = yes; then
acl_libdirstem=lib/64
case "$host_cpu" in
fi
;;
*)
- dnl The result is a property of the system. However, non-system
- dnl compilers sometimes have odd library search paths. Therefore
- dnl prefer asking /usr/bin/gcc, if available, rather than $CC.
- searchpath=`(if test -f /usr/bin/gcc \
- && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \
- LC_ALL=C /usr/bin/gcc -print-search-dirs; \
- else \
- LC_ALL=C $CC -print-search-dirs; \
- fi) 2>/dev/null \
- | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
- if test -n "$searchpath"; then
- acl_save_IFS="${IFS= }"; IFS=":"
- for searchdir in $searchpath; do
- if test -d "$searchdir"; then
- case "$searchdir" in
- */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
- */../ | */.. )
- # Better ignore directories of this form. They are misleading.
- ;;
- *) searchdir=`cd "$searchdir" && pwd`
- case "$searchdir" in
- */lib64 ) acl_libdirstem=lib64 ;;
- esac ;;
- esac
- fi
- done
- IFS="$acl_save_IFS"
+ dnl If $CC generates code for a 32-bit ABI, the libraries are
+ dnl surely under $prefix/lib, not $prefix/lib64.
+ if test "$HOST_CPU_C_ABI_32BIT" != yes; then
+ dnl The result is a property of the system. However, non-system
+ dnl compilers sometimes have odd library search paths. Therefore
+ dnl prefer asking /usr/bin/gcc, if available, rather than $CC.
+ searchpath=`(if test -f /usr/bin/gcc \
+ && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \
+ LC_ALL=C /usr/bin/gcc -print-search-dirs; \
+ else \
+ LC_ALL=C $CC -print-search-dirs; \
+ fi) 2>/dev/null \
+ | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+ if test -n "$searchpath"; then
+ acl_save_IFS="${IFS= }"; IFS=":"
+ for searchdir in $searchpath; do
+ if test -d "$searchdir"; then
+ case "$searchdir" in
+ */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
+ */../ | */.. )
+ # Better ignore directories of this form. They are misleading.
+ ;;
+ *) searchdir=`cd "$searchdir" && pwd`
+ case "$searchdir" in
+ */lib64 ) acl_libdirstem=lib64 ;;
+ esac ;;
+ esac
+ fi
+ done
+ IFS="$acl_save_IFS"
+ fi
fi
;;
esac
# libsigsegv.m4 serial 4
-dnl Copyright (C) 2002-2003, 2008-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2003, 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# libunistring-base.m4 serial 5
-dnl Copyright (C) 2010-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2010-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl Check whether limits.h has needed features.
-dnl Copyright 2016-2017 Free Software Foundation, Inc.
+dnl Copyright 2016-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
[
gl_CHECK_NEXT_HEADERS([limits.h])
- AC_CACHE_CHECK([whether limits.h has ULLONG_WIDTH etc.],
+ AC_CACHE_CHECK([whether limits.h has LLONG_MAX, WORD_BIT, ULLONG_WIDTH etc.],
[gl_cv_header_limits_width],
[AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
- #define __STDC_WANT_IEC_60559_BFP_EXT__ 1
- #endif
- #include <limits.h>
- int ullw = ULLONG_WIDTH;]])],
+ [AC_LANG_PROGRAM(
+ [[#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
+ #define __STDC_WANT_IEC_60559_BFP_EXT__ 1
+ #endif
+ #include <limits.h>
+ long long llm = LLONG_MAX;
+ int wb = WORD_BIT;
+ int ullw = ULLONG_WIDTH;
+ ]])],
[gl_cv_header_limits_width=yes],
[gl_cv_header_limits_width=no])])
if test "$gl_cv_header_limits_width" = yes; then
AC_SUBST([LIMITS_H])
AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"])
])
+
+dnl Unconditionally enables the replacement of <limits.h>.
+AC_DEFUN([gl_REPLACE_LIMITS_H],
+[
+ AC_REQUIRE([gl_LIMITS_H])
+ LIMITS_H='limits.h'
+ AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"])
+])
-# localcharset.m4 serial 7
-dnl Copyright (C) 2002, 2004, 2006, 2009-2017 Free Software Foundation, Inc.
+# localcharset.m4 serial 8
+dnl Copyright (C) 2002, 2004, 2006, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
[
dnl Prerequisites of lib/localcharset.c.
AC_REQUIRE([AM_LANGINFO_CODESET])
- AC_REQUIRE([gl_FCNTL_O_FLAGS])
- AC_CHECK_DECLS_ONCE([getc_unlocked])
-
- dnl Prerequisites of the lib/Makefile.am snippet.
- AC_REQUIRE([AC_CANONICAL_HOST])
- AC_REQUIRE([gl_GLIBC21])
])
-# locale-fr.m4 serial 17
-dnl Copyright (C) 2003, 2005-2017 Free Software Foundation, Inc.
+# locale-fr.m4 serial 19
+dnl Copyright (C) 2003, 2005-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
struct tm t;
char buf[16];
int main () {
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether in the abbreviation of the second month, the second
character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
one byte long. This excludes the UTF-8 encoding. */
t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
+# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
/* Check whether the decimal separator is a comma.
On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
are nl_langinfo(RADIXCHAR) are both ".". */
if (localeconv () ->decimal_point[0] != ',') return 1;
-#endif
+# endif
return 0;
+#endif
}
changequote([,])dnl
])])
variables, and all locales use the UTF-8 encoding. */
#if !(defined __BEOS__ || defined __HAIKU__)
/* Check whether the given locale name is recognized by the system. */
-# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-# locale-ja.m4 serial 12
-dnl Copyright (C) 2003, 2005-2017 Free Software Foundation, Inc.
+# locale-ja.m4 serial 14
+dnl Copyright (C) 2003, 2005-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
char buf[16];
int main ()
{
- const char *p;
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales
on Cygwin 1.5.x. */
if (MB_CUR_MAX == 1)
return 1;
/* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
This excludes the UTF-8 encoding (except on MirBSD). */
- t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
- if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
- for (p = buf; *p != '\0'; p++)
- if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
- return 1;
+ {
+ const char *p;
+ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+ if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+ for (p = buf; *p != '\0'; p++)
+ if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+ return 1;
+ }
return 0;
+#endif
}
changequote([,])dnl
])])
-# locale-tr.m4 serial 10
-dnl Copyright (C) 2003, 2005-2017 Free Software Foundation, Inc.
+# locale-tr.m4 serial 11
+dnl Copyright (C) 2003, 2005-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
implement the Turkish upper-/lowercase mappings. Therefore, let this
program return 1 on BeOS. */
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+#if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
-# locale-zh.m4 serial 12
-dnl Copyright (C) 2003, 2005-2017 Free Software Foundation, Inc.
+# locale-zh.m4 serial 14
+dnl Copyright (C) 2003, 2005-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
char buf[16];
int main ()
{
- const char *p;
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if defined __BEOS__ || defined __HAIKU__
+ return 1;
+#else
/* Check whether the given locale name is recognized by the system. */
-#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+# if defined _WIN32 && !defined __CYGWIN__
/* On native Windows, setlocale(category, "") looks at the system settings,
not at the environment variables. Also, when an encoding suffix such
as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
|| strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
return 1;
-#else
+# else
if (setlocale (LC_ALL, "") == NULL) return 1;
-#endif
+# endif
/* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
some unit tests fail.
On MirBSD 10, when an unsupported locale is specified, setlocale()
succeeds but then nl_langinfo(CODESET) is "UTF-8". */
-#if HAVE_LANGINFO_CODESET
+# if HAVE_LANGINFO_CODESET
{
const char *cs = nl_langinfo (CODESET);
if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
|| strcmp (cs, "UTF-8") == 0)
return 1;
}
-#endif
-#ifdef __CYGWIN__
+# endif
+# ifdef __CYGWIN__
/* On Cygwin, avoid locale names without encoding suffix, because the
locale_charset() function relies on the encoding suffix. Note that
LC_ALL is set on the command line. */
if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
+# endif
/* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
This excludes the UTF-8 encoding (except on MirBSD). */
- t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
- if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
- for (p = buf; *p != '\0'; p++)
- if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
- return 1;
+ {
+ const char *p;
+ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+ if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+ for (p = buf; *p != '\0'; p++)
+ if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+ return 1;
+ }
/* Check whether a typical GB18030 multibyte sequence is recognized as a
single wide character. This excludes the GB2312 and GBK encodings. */
if (mblen ("\203\062\332\066", 5) != 4)
return 1;
return 0;
+#endif
}
changequote([,])dnl
])])
-# locale_h.m4 serial 19
-dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+# locale_h.m4 serial 21
+dnl Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl If <stddef.h> is replaced, then <locale.h> must also be replaced.
AC_REQUIRE([gl_STDDEF_H])
- dnl Solaris 11 2011-11 defines the int_p_*, int_n_* members of 'struct lconv'
+ dnl Solaris 11.0 defines the int_p_*, int_n_* members of 'struct lconv'
dnl only if _LCONV_C99 is defined.
AC_REQUIRE([AC_CANONICAL_HOST])
case "$host_os" in
# include <xlocale.h>
#endif
]],
- [setlocale duplocale])
+ [setlocale newlocale duplocale freelocale])
])
AC_DEFUN([gl_LOCALE_MODULE_INDICATOR],
GNULIB_LOCALECONV=0; AC_SUBST([GNULIB_LOCALECONV])
GNULIB_SETLOCALE=0; AC_SUBST([GNULIB_SETLOCALE])
GNULIB_DUPLOCALE=0; AC_SUBST([GNULIB_DUPLOCALE])
+ GNULIB_LOCALENAME=0; AC_SUBST([GNULIB_LOCALENAME])
dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_NEWLOCALE=1; AC_SUBST([HAVE_NEWLOCALE])
HAVE_DUPLOCALE=1; AC_SUBST([HAVE_DUPLOCALE])
+ HAVE_FREELOCALE=1; AC_SUBST([HAVE_FREELOCALE])
REPLACE_LOCALECONV=0; AC_SUBST([REPLACE_LOCALECONV])
REPLACE_SETLOCALE=0; AC_SUBST([REPLACE_SETLOCALE])
+ REPLACE_NEWLOCALE=0; AC_SUBST([REPLACE_NEWLOCALE])
REPLACE_DUPLOCALE=0; AC_SUBST([REPLACE_DUPLOCALE])
+ REPLACE_FREELOCALE=0; AC_SUBST([REPLACE_FREELOCALE])
REPLACE_STRUCT_LCONV=0; AC_SUBST([REPLACE_STRUCT_LCONV])
])
# localeconv.m4 serial 1
-dnl Copyright (C) 2012-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# localtime-buffer.m4 serial 1
-dnl Copyright (C) 2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2017-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# longlong.m4 serial 17
-dnl Copyright (C) 1999-2007, 2009-2017 Free Software Foundation, Inc.
+# longlong.m4 serial 18
+dnl Copyright (C) 1999-2007, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl From Paul Eggert.
+AC_PREREQ([2.62])
+
# Define HAVE_LONG_LONG_INT if 'long long int' works.
-# This fixes a bug in Autoconf 2.61, and can be faster
-# than what's in Autoconf 2.62 through 2.68.
+# This can be faster than what's in Autoconf 2.62 through 2.68.
# Note: If the type 'long long int' exists but is only 32 bits large
# (as on some very old compilers), HAVE_LONG_LONG_INT will not be
])
# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
-# This fixes a bug in Autoconf 2.61, and can be faster
-# than what's in Autoconf 2.62 through 2.68.
+# This can be faster than what's in Autoconf 2.62 through 2.68.
# Note: If the type 'unsigned long long int' exists but is only 32 bits
# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
-# serial 27
+# serial 32
-# Copyright (C) 1997-2001, 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 1997-2001, 2003-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_LSTAT],
[
+ AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
dnl If lstat does not exist, the replacement <sys/stat.h> does
dnl "#define lstat stat", and lstat.c is a no-op.
AC_CHECK_FUNCS_ONCE([lstat])
if test $ac_cv_func_lstat = yes; then
AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
- case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
- *no)
+ case $host_os,$gl_cv_func_lstat_dereferences_slashed_symlink in
+ solaris* | *no)
REPLACE_LSTAT=1
;;
esac
[
dnl We don't use AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK any more, because it
dnl is no longer maintained in Autoconf and because it invokes AC_LIBOBJ.
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_CACHE_CHECK([whether lstat correctly handles trailing slash],
[gl_cv_func_lstat_dereferences_slashed_symlink],
[rm -f conftest.sym conftest.file
[gl_cv_func_lstat_dereferences_slashed_symlink=yes],
[gl_cv_func_lstat_dereferences_slashed_symlink=no],
[case "$host_os" in
- *-gnu*)
+ linux-* | linux)
+ # Guess yes on Linux systems.
+ gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
+ *-gnu* | gnu*)
# Guess yes on glibc systems.
gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
+ mingw*)
+ # Guess no on native Windows.
+ gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;;
*)
# If we don't know, assume the worst.
gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;;
-# malloc.m4 serial 15
-dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+# malloc.m4 serial 17
+dnl Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
m4_version_prereq([2.70], [] ,[
# This is adapted with modifications from upstream Autoconf here:
-# http://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=04be2b7a29d65d9a08e64e8e56e594c91749598c
+# https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=04be2b7a29d65d9a08e64e8e56e594c91749598c
AC_DEFUN([_AC_FUNC_MALLOC_IF],
[
AC_REQUIRE([AC_HEADER_STDC])dnl
[ac_cv_func_malloc_0_nonnull=no],
[case "$host_os" in
# Guess yes on platforms where we know the result.
- *-gnu* | freebsd* | netbsd* | openbsd* \
+ *-gnu* | gnu* | freebsd* | netbsd* | openbsd* \
| hpux* | solaris* | cygwin* | mingw*)
ac_cv_func_malloc_0_nonnull=yes ;;
# If we don't know, assume the worst.
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[]],
- [[#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ [[#if defined _WIN32 && ! defined __CYGWIN__
choke me
#endif
]])],
# malloca.m4 serial 1
-dnl Copyright (C) 2003-2004, 2006-2007, 2009-2017 Free Software Foundation,
+dnl Copyright (C) 2003-2004, 2006-2007, 2009-2018 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
-# manywarnings.m4 serial 8
-dnl Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# manywarnings.m4 serial 17
+dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# Add all documented GCC warning parameters to variable VARIABLE.
# Note that you need to test them using gl_WARN_ADD if you want to
# make sure your gcc understands it.
+#
+# The effects of this macro depend on the current language (_AC_LANG).
AC_DEFUN([gl_MANYWARN_ALL_GCC],
+[_AC_LANG_DISPATCH([$0], _AC_LANG, $@)])
+
+# Specialization for _AC_LANG = C.
+# Use of m4_defun rather than AC_DEFUN works around a bug in autoconf < 2.63b.
+m4_defun([gl_MANYWARN_ALL_GCC(C)],
[
+ AC_LANG_PUSH([C])
+
dnl First, check for some issues that only occur when combining multiple
dnl gcc warning categories.
AC_REQUIRE([AC_PROG_CC])
dnl Check if -W -Werror -Wno-missing-field-initializers is supported
dnl with the current $CC $CFLAGS $CPPFLAGS.
- AC_MSG_CHECKING([whether -Wno-missing-field-initializers is supported])
- AC_CACHE_VAL([gl_cv_cc_nomfi_supported], [
- gl_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -W -Werror -Wno-missing-field-initializers"
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[]], [[]])],
- [gl_cv_cc_nomfi_supported=yes],
- [gl_cv_cc_nomfi_supported=no])
- CFLAGS="$gl_save_CFLAGS"])
- AC_MSG_RESULT([$gl_cv_cc_nomfi_supported])
+ AC_CACHE_CHECK([whether -Wno-missing-field-initializers is supported],
+ [gl_cv_cc_nomfi_supported],
+ [gl_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -W -Werror -Wno-missing-field-initializers"
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[]], [[]])],
+ [gl_cv_cc_nomfi_supported=yes],
+ [gl_cv_cc_nomfi_supported=no])
+ CFLAGS="$gl_save_CFLAGS"
+ ])
if test "$gl_cv_cc_nomfi_supported" = yes; then
dnl Now check whether -Wno-missing-field-initializers is needed
dnl for the { 0, } construct.
- AC_MSG_CHECKING([whether -Wno-missing-field-initializers is needed])
- AC_CACHE_VAL([gl_cv_cc_nomfi_needed], [
- gl_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -W -Werror"
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[int f (void)
- {
- typedef struct { int a; int b; } s_t;
- s_t s1 = { 0, };
- return s1.b;
- }
- ]],
- [[]])],
- [gl_cv_cc_nomfi_needed=no],
- [gl_cv_cc_nomfi_needed=yes])
- CFLAGS="$gl_save_CFLAGS"
- ])
- AC_MSG_RESULT([$gl_cv_cc_nomfi_needed])
+ AC_CACHE_CHECK([whether -Wno-missing-field-initializers is needed],
+ [gl_cv_cc_nomfi_needed],
+ [gl_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -W -Werror"
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[int f (void)
+ {
+ typedef struct { int a; int b; } s_t;
+ s_t s1 = { 0, };
+ return s1.b;
+ }
+ ]],
+ [[]])],
+ [gl_cv_cc_nomfi_needed=no],
+ [gl_cv_cc_nomfi_needed=yes])
+ CFLAGS="$gl_save_CFLAGS"
+ ])
fi
dnl Next, check if -Werror -Wuninitialized is useful with the
dnl user's choice of $CFLAGS; some versions of gcc warn that it
dnl has no effect if -O is not also used
- AC_MSG_CHECKING([whether -Wuninitialized is supported])
- AC_CACHE_VAL([gl_cv_cc_uninitialized_supported], [
- gl_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Werror -Wuninitialized"
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[]], [[]])],
- [gl_cv_cc_uninitialized_supported=yes],
- [gl_cv_cc_uninitialized_supported=no])
- CFLAGS="$gl_save_CFLAGS"])
- AC_MSG_RESULT([$gl_cv_cc_uninitialized_supported])
+ AC_CACHE_CHECK([whether -Wuninitialized is supported],
+ [gl_cv_cc_uninitialized_supported],
+ [gl_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -Werror -Wuninitialized"
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[]], [[]])],
+ [gl_cv_cc_uninitialized_supported=yes],
+ [gl_cv_cc_uninitialized_supported=no])
+ CFLAGS="$gl_save_CFLAGS"
+ ])
fi
# To compare this list to your installed GCC's, run this Bash command:
#
# comm -3 \
- # <(sed -n 's/^ *\(-[^ ]*\) .*/\1/p' manywarnings.m4 | sort) \
- # <(gcc --help=warnings | sed -n 's/^ \(-[^ ]*\) .*/\1/p' | sort |
- # grep -v -x -F -f <(
- # awk '/^[^#]/ {print $1}' ../build-aux/gcc-warning.spec))
+ # <((sed -n 's/^ *\(-[^ 0-9][^ ]*\) .*/\1/p' manywarnings.m4; \
+ # awk '/^[^#]/ {print $1}' ../build-aux/gcc-warning.spec) | sort) \
+ # <(LC_ALL=C gcc --help=warnings | sed -n 's/^ \(-[^ ]*\) .*/\1/p' | sort)
gl_manywarn_set=
for gl_manywarn_item in -fno-common \
-W \
- -Wabi \
-Waddress \
-Waggressive-loop-optimizations \
-Wall \
+ -Wattribute-alias \
-Wattributes \
-Wbad-function-cast \
-Wbool-compare \
-Wbuiltin-declaration-mismatch \
-Wbuiltin-macro-redefined \
-Wcast-align \
+ -Wcast-align=strict \
+ -Wcast-function-type \
-Wchar-subscripts \
- -Wchkp \
-Wclobbered \
-Wcomment \
-Wcomments \
-Wframe-address \
-Wfree-nonheap-object \
-Whsa \
+ -Wif-not-aligned \
-Wignored-attributes \
-Wignored-qualifiers \
-Wimplicit \
-Wint-to-pointer-cast \
-Winvalid-memory-model \
-Winvalid-pch \
- -Wjump-misses-init \
-Wlogical-not-parentheses \
-Wlogical-op \
-Wmain \
-Wmemset-elt-size \
-Wmemset-transposed-args \
-Wmisleading-indentation \
+ -Wmissing-attributes \
-Wmissing-braces \
-Wmissing-declarations \
-Wmissing-field-initializers \
-Wmissing-parameter-type \
-Wmissing-prototypes \
-Wmultichar \
+ -Wmultistatement-macros \
-Wnarrowing \
-Wnested-externs \
-Wnonnull \
-Woverride-init \
-Wpacked \
-Wpacked-bitfield-compat \
+ -Wpacked-not-aligned \
-Wparentheses \
-Wpointer-arith \
-Wpointer-compare \
-Wshift-count-overflow \
-Wshift-negative-value \
-Wsizeof-array-argument \
+ -Wsizeof-pointer-div \
-Wsizeof-pointer-memaccess \
-Wstack-protector \
-Wstrict-aliasing \
-Wstrict-overflow \
-Wstrict-prototypes \
+ -Wstringop-truncation \
+ -Wsuggest-attribute=cold \
-Wsuggest-attribute=const \
-Wsuggest-attribute=format \
+ -Wsuggest-attribute=malloc \
-Wsuggest-attribute=noreturn \
-Wsuggest-attribute=pure \
-Wsuggest-final-methods \
-Wsuggest-final-types \
-Wswitch \
-Wswitch-bool \
- -Wswitch-default \
-Wswitch-unreachable \
-Wsync-nand \
-Wsystem-headers \
# gcc --help=warnings outputs an unusual form for these options; list
# them here so that the above 'comm' command doesn't report a false match.
- # Would prefer "min (PTRDIFF_MAX, SIZE_MAX)", but it must be a literal:
- ptrdiff_max_max=9223372036854775807
- gl_manywarn_set="$gl_manywarn_set -Walloc-size-larger-than=$ptrdiff_max_max"
+ # Would prefer "min (PTRDIFF_MAX, SIZE_MAX)", but it must be a literal.
+ # Also, AC_COMPUTE_INT requires it to fit in a long; it is 2**63 on
+ # the only platforms where it does not fit in a long, so make that
+ # a special case.
+ AC_MSG_CHECKING([max safe object size])
+ AC_COMPUTE_INT([gl_alloc_max],
+ [LONG_MAX < (PTRDIFF_MAX < (size_t) -1 ? PTRDIFF_MAX : (size_t) -1)
+ ? -1
+ : PTRDIFF_MAX < (size_t) -1 ? (long) PTRDIFF_MAX : (long) (size_t) -1],
+ [[#include <limits.h>
+ #include <stddef.h>
+ #include <stdint.h>
+ ]],
+ [gl_alloc_max=2147483647])
+ case $gl_alloc_max in
+ -1) gl_alloc_max=9223372036854775807;;
+ esac
+ AC_MSG_RESULT([$gl_alloc_max])
+ gl_manywarn_set="$gl_manywarn_set -Walloc-size-larger-than=$gl_alloc_max"
gl_manywarn_set="$gl_manywarn_set -Warray-bounds=2"
gl_manywarn_set="$gl_manywarn_set -Wformat-overflow=2"
gl_manywarn_set="$gl_manywarn_set -Wformat-truncation=2"
fi
$1=$gl_manywarn_set
+
+ AC_LANG_POP([C])
+])
+
+# Specialization for _AC_LANG = C++.
+# Use of m4_defun rather than AC_DEFUN works around a bug in autoconf < 2.63b.
+m4_defun([gl_MANYWARN_ALL_GCC(C++)],
+[
+ gl_MANYWARN_ALL_GCC_CXX_IMPL([$1])
])
# mbchar.m4 serial 9
-dnl Copyright (C) 2005-2007, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2007, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# mbiter.m4 serial 7
-dnl Copyright (C) 2005, 2008-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# mbrtowc.m4 serial 27 -*- coding: utf-8 -*-
-dnl Copyright (C) 2001-2002, 2004-2005, 2008-2017 Free Software Foundation,
+# mbrtowc.m4 serial 31 -*- coding: utf-8 -*-
+dnl Copyright (C) 2001-2002, 2004-2005, 2008-2018 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl is present.
changequote(,)dnl
case "$host_os" in
- # Guess no on AIX and glibc systems.
- aix* | *-gnu*)
- gl_cv_func_mbrtowc_empty_input="guessing no" ;;
- *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;;
+ # Guess no on AIX and glibc systems.
+ aix* | *-gnu* | gnu*) gl_cv_func_mbrtowc_empty_input="guessing no" ;;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;;
+ *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;;
esac
changequote([,])dnl
AC_RUN_IFELSE(
AC_DEFUN([gl_MBRTOWC_C_LOCALE],
[
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_CACHE_CHECK([whether the C locale is free of encoding errors],
[gl_cv_C_locale_sans_EILSEQ],
[
]])],
[gl_cv_C_locale_sans_EILSEQ=yes],
[gl_cv_C_locale_sans_EILSEQ=no],
- [:])])
+ [case "$host_os" in
+ # Guess yes on native Windows.
+ mingw*) gl_cv_C_locale_sans_EILSEQ="guessing yes" ;;
+ esac
+ ])
+ ])
])
# Prerequisites of lib/mbrtowc.c.
AC_DEFUN([gl_PREREQ_MBRTOWC], [
+ AC_REQUIRE([AC_C_INLINE])
:
])
[
dnl Same as AC_FUNC_MBRTOWC in autoconf-2.60.
AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared],
- gl_cv_func_mbrtowc,
+ [gl_cv_func_mbrtowc],
[AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
size_t n = 1;
mbstate_t state;
return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));]])],
- gl_cv_func_mbrtowc=yes,
- gl_cv_func_mbrtowc=no)])
+ [gl_cv_func_mbrtowc=yes],
+ [gl_cv_func_mbrtowc=no])])
if test $gl_cv_func_mbrtowc = yes; then
AC_DEFINE([HAVE_MBRTOWC], [1],
[Define to 1 if mbrtowc and mbstate_t are properly declared.])
# mbsinit.m4 serial 8
-dnl Copyright (C) 2008, 2010-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2008, 2010-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# mbslen.m4 serial 2
-dnl Copyright (C) 2010-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2010-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# mbsrtowcs.m4 serial 13
-dnl Copyright (C) 2008-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# mbstate_t.m4 serial 13
-dnl Copyright (C) 2000-2002, 2008-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2000-2002, 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# mbtowc.m4 serial 2
-dnl Copyright (C) 2011-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# memchr.m4 serial 12
-dnl Copyright (C) 2002-2004, 2009-2017 Free Software Foundation, Inc.
+# memchr.m4 serial 13
+dnl Copyright (C) 2002-2004, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_DEFUN_ONCE([gl_FUNC_MEMCHR],
[
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
dnl Check for prerequisites for memory fence checks.
gl_FUNC_MMAP_ANON
AC_CHECK_HEADERS_ONCE([sys/mman.h])
if test $HAVE_MEMCHR = 1; then
# Detect platform-specific bugs in some versions of glibc:
# memchr should not dereference anything with length 0
- # http://bugzilla.redhat.com/499689
+ # https://bugzilla.redhat.com/show_bug.cgi?id=499689
# memchr should not dereference overestimated length after a match
- # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737
- # http://sourceware.org/bugzilla/show_bug.cgi?id=10162
+ # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=10162
# Assume that memchr works on platforms that lack mprotect.
AC_CACHE_CHECK([whether memchr works], [gl_cv_func_memchr_works],
[AC_RUN_IFELSE([AC_LANG_PROGRAM([[
result |= 4;
}
return result;
-]])], [gl_cv_func_memchr_works=yes], [gl_cv_func_memchr_works=no],
- [dnl Be pessimistic for now.
- gl_cv_func_memchr_works="guessing no"])])
- if test "$gl_cv_func_memchr_works" != yes; then
- REPLACE_MEMCHR=1
- fi
+]])],
+ [gl_cv_func_memchr_works=yes],
+ [gl_cv_func_memchr_works=no],
+ [case "$host_os" in
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_memchr_works="guessing yes" ;;
+ # Be pessimistic for now.
+ *) gl_cv_func_memchr_works="guessing no" ;;
+ esac
+ ])
+ ])
+ case "$gl_cv_func_memchr_works" in
+ *yes) ;;
+ *) REPLACE_MEMCHR=1 ;;
+ esac
fi
])
# minmax.m4 serial 4
-dnl Copyright (C) 2005, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
--- /dev/null
+# serial 14
+
+# Copyright (C) 2001, 2003-2004, 2006, 2008-2018 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# On some systems, mkdir ("foo/", 0700) fails because of the trailing slash.
+# On others, mkdir ("foo/./", 0700) mistakenly succeeds.
+# On such systems, arrange to use a wrapper function.
+AC_DEFUN([gl_FUNC_MKDIR],
+[dnl
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_CACHE_CHECK([whether mkdir handles trailing slash],
+ [gl_cv_func_mkdir_trailing_slash_works],
+ [rm -rf conftest.dir
+ AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+# include <sys/types.h>
+# include <sys/stat.h>
+]], [return mkdir ("conftest.dir/", 0700);])],
+ [gl_cv_func_mkdir_trailing_slash_works=yes],
+ [gl_cv_func_mkdir_trailing_slash_works=no],
+ [case "$host_os" in
+ # Guess yes on Linux systems.
+ linux-* | linux) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;;
+ # Guess yes on MSVC, no on mingw.
+ mingw*) AC_EGREP_CPP([Known], [
+#ifdef _MSC_VER
+ Known
+#endif
+ ],
+ [gl_cv_func_mkdir_trailing_slash_works="guessing yes"],
+ [gl_cv_func_mkdir_trailing_slash_works="guessing no"])
+ ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_mkdir_trailing_slash_works="guessing no" ;;
+ esac
+ ])
+ rm -rf conftest.dir
+ ]
+ )
+ case "$gl_cv_func_mkdir_trailing_slash_works" in
+ *yes) ;;
+ *)
+ REPLACE_MKDIR=1
+ ;;
+ esac
+
+ AC_CACHE_CHECK([whether mkdir handles trailing dot],
+ [gl_cv_func_mkdir_trailing_dot_works],
+ [rm -rf conftest.dir
+ AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+# include <sys/types.h>
+# include <sys/stat.h>
+]], [return !mkdir ("conftest.dir/./", 0700);])],
+ [gl_cv_func_mkdir_trailing_dot_works=yes],
+ [gl_cv_func_mkdir_trailing_dot_works=no],
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_mkdir_trailing_dot_works="guessing no" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_mkdir_trailing_dot_works="guessing no" ;;
+ esac
+ ])
+ rm -rf conftest.dir
+ ]
+ )
+ case "$gl_cv_func_mkdir_trailing_dot_works" in
+ *yes) ;;
+ *)
+ REPLACE_MKDIR=1
+ AC_DEFINE([FUNC_MKDIR_DOT_BUG], [1], [Define to 1 if mkdir mistakenly
+ creates a directory given with a trailing dot component.])
+ ;;
+ esac
+])
-#serial 23
+#serial 25
-# Copyright (C) 2001, 2003-2007, 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003-2007, 2009-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
[gl_cv_func_working_mkstemp=yes],
[gl_cv_func_working_mkstemp=no],
[case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_working_mkstemp="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_working_mkstemp="guessing no" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_working_mkstemp="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_working_mkstemp="guessing no" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_working_mkstemp="guessing no" ;;
esac
])
rm -rf conftest.mkstemp
-# serial 28
-dnl Copyright (C) 2002-2003, 2005-2007, 2009-2017 Free Software Foundation,
+# serial 30
+dnl Copyright (C) 2002-2003, 2005-2007, 2009-2018 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_FUNC_MKTIME_WORKS],
[
AC_REQUIRE([gl_TIME_T_IS_SIGNED])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
dnl We don't use AC_FUNC_MKTIME any more, because it is no longer maintained
dnl in Autoconf and because it invokes AC_LIBOBJ.
# include <signal.h>
#endif
+#ifndef TIME_T_IS_SIGNED
+# define TIME_T_IS_SIGNED 0
+#endif
+
/* Work around redefinition to rpl_putenv by other config tests. */
#undef putenv
}]])],
[gl_cv_func_working_mktime=yes],
[gl_cv_func_working_mktime=no],
- [gl_cv_func_working_mktime="guessing no"])
+ [case "$host_os" in
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_working_mktime="guessing no" ;;
+ *) gl_cv_func_working_mktime="guessing no" ;;
+ esac
+ ])
])
])
# mmap-anon.m4 serial 10
-dnl Copyright (C) 2005, 2007, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2007, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# mode_t.m4 serial 2
-dnl Copyright (C) 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# msvc-inval.m4 serial 1
-dnl Copyright (C) 2011-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# msvc-nothrow.m4 serial 1
-dnl Copyright (C) 2011-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# multiarch.m4 serial 7
-dnl Copyright (C) 2008-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# serial 36
+# serial 38
dnl From Jim Meyering.
dnl Check for the nanosleep function.
dnl If not found, use the supplied replacement.
dnl
-# Copyright (C) 1999-2001, 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2001, 2003-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
AC_CHECK_HEADERS_ONCE([sys/time.h])
AC_REQUIRE([gl_FUNC_SELECT])
+ AC_CHECK_DECLS_ONCE([alarm])
+
nanosleep_save_libs=$LIBS
# Solaris 2.5.1 needs -lposix4 to get the nanosleep function.
? (t) -1 \
: ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
+ #if HAVE_DECL_ALARM
static void
check_for_SIGALRM (int sig)
{
if (sig != SIGALRM)
_exit (1);
}
+ #endif
int
main ()
{
static struct timespec ts_sleep;
static struct timespec ts_remaining;
- static struct sigaction act;
/* Test for major problems first. */
if (! nanosleep)
return 2;
- act.sa_handler = check_for_SIGALRM;
- sigemptyset (&act.sa_mask);
- sigaction (SIGALRM, &act, NULL);
ts_sleep.tv_sec = 0;
ts_sleep.tv_nsec = 1;
- alarm (1);
- if (nanosleep (&ts_sleep, NULL) != 0)
+ #if HAVE_DECL_ALARM
+ {
+ static struct sigaction act;
+ act.sa_handler = check_for_SIGALRM;
+ sigemptyset (&act.sa_mask);
+ sigaction (SIGALRM, &act, NULL);
+ alarm (1);
+ if (nanosleep (&ts_sleep, NULL) != 0)
+ return 3;
+ /* Test for a minor problem: the handling of large arguments. */
+ ts_sleep.tv_sec = TYPE_MAXIMUM (time_t);
+ ts_sleep.tv_nsec = 999999999;
+ alarm (1);
+ if (nanosleep (&ts_sleep, &ts_remaining) != -1)
+ return 4;
+ if (errno != EINTR)
+ return 5;
+ if (ts_remaining.tv_sec <= TYPE_MAXIMUM (time_t) - 10)
+ return 6;
+ }
+ #else /* A simpler test for native Windows. */
+ if (nanosleep (&ts_sleep, &ts_remaining) < 0)
return 3;
- /* Test for a minor problem: the handling of large arguments. */
- ts_sleep.tv_sec = TYPE_MAXIMUM (time_t);
- ts_sleep.tv_nsec = 999999999;
- alarm (1);
- if (nanosleep (&ts_sleep, &ts_remaining) != -1)
- return 4;
- if (errno != EINTR)
- return 5;
- if (ts_remaining.tv_sec <= TYPE_MAXIMUM (time_t) - 10)
- return 6;
+ #endif
return 0;
}]])],
[gl_cv_func_nanosleep=yes],
[case "$host_os" in dnl ((
linux*) # Guess it halfway works when the kernel is Linux.
gl_cv_func_nanosleep='guessing no (mishandles large arguments)' ;;
+ mingw*) # Guess no on native Windows.
+ gl_cv_func_nanosleep='guessing no' ;;
*) # If we don't know, assume the worst.
gl_cv_func_nanosleep='guessing no' ;;
esac
# netinet_in_h.m4 serial 5
-dnl Copyright (C) 2006-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# nl_langinfo.m4 serial 5
-dnl Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# nl_langinfo.m4 serial 6
+dnl Copyright (C) 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_DEFINE_UNQUOTED([FUNC_NL_LANGINFO_YESEXPR_WORKS],
[$FUNC_NL_LANGINFO_YESEXPR_WORKS],
[Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string.])
- if test $HAVE_LANGINFO_CODESET = 1 && test $HAVE_LANGINFO_ERA = 1 \
- && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then
+ if test $HAVE_LANGINFO_CODESET = 1 \
+ && test $HAVE_LANGINFO_T_FMT_AMPM = 1 \
+ && test $HAVE_LANGINFO_ALTMON = 1 \
+ && test $HAVE_LANGINFO_ERA = 1 \
+ && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then
:
else
REPLACE_NL_LANGINFO=1
-# nocrash.m4 serial 4
-dnl Copyright (C) 2005, 2009-2017 Free Software Foundation, Inc.
+# nocrash.m4 serial 5
+dnl Copyright (C) 2005, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
}
}
}
-#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#elif defined _WIN32 && ! defined __CYGWIN__
/* Avoid a crash on native Windows. */
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
# serial 34
-# Copyright (C) 1996-1997, 1999-2007, 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-1997, 1999-2007, 2009-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# off_t.m4 serial 1
-dnl Copyright (C) 2012-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
--- /dev/null
+# Test whether O_CLOEXEC is defined.
+
+dnl Copyright 2017-2018 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_PREPROC_O_CLOEXEC],
+[
+ AC_CACHE_CHECK([for O_CLOEXEC],
+ [gl_cv_macro_O_CLOEXEC],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[#include <fcntl.h>
+ #ifndef O_CLOEXEC
+ choke me;
+ #endif
+ ]],
+ [[return O_CLOEXEC;]])],
+ [gl_cv_macro_O_CLOEXEC=yes],
+ [gl_cv_macro_O_CLOEXEC=no])])
+])
-# open.m4 serial 14
-dnl Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# open.m4 serial 15
+dnl Copyright (C) 2007-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_DEFUN([gl_FUNC_OPEN],
[
AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([gl_PREPROC_O_CLOEXEC])
case "$host_os" in
mingw* | pw*)
REPLACE_OPEN=1
dnl open("foo/") should not create a file when the file name has a
dnl trailing slash. FreeBSD only has the problem on symlinks.
AC_CHECK_FUNCS_ONCE([lstat])
+ if test "$gl_cv_macro_O_CLOEXEC" != yes; then
+ REPLACE_OPEN=1
+ fi
AC_CACHE_CHECK([whether open recognizes a trailing slash],
[gl_cv_func_open_slash],
[# Assume that if we have lstat, we can also check symlinks.
-# pathmax.m4 serial 10
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2017 Free Software Foundation,
+# pathmax.m4 serial 11
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2018 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
# undef PATH_MAX
# define PATH_MAX 1024
#endif
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#if defined _WIN32 && ! defined __CYGWIN__
# undef PATH_MAX
# define PATH_MAX 260
#endif
-# perror.m4 serial 6
-dnl Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# perror.m4 serial 7
+dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_REQUIRE([gl_HEADER_ERRNO_H])
AC_REQUIRE([gl_FUNC_STRERROR_R])
AC_REQUIRE([gl_FUNC_STRERROR_0])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
dnl We intentionally do not check for the broader REPLACE_STRERROR_R,
dnl since on glibc systems, strerror_r is replaced only for signature
dnl issues, and perror is just fine. Rather, we only want to
fi
rm -rf conftest.txt1 conftest.txt2],
[gl_cv_func_perror_works=no],
- [dnl Guess no when cross-compiling.
- gl_cv_func_perror_works="guessing no"
+ [case "$host_os" in
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_perror_works="guessing yes" ;;
+ # Otherwise guess no.
+ *) gl_cv_func_perror_works="guessing no" ;;
+ esac
])
])
- if test "$gl_cv_func_perror_works" != yes; then
- REPLACE_PERROR=1
- fi
+ case "$gl_cv_func_perror_works" in
+ *yes) ;;
+ *) REPLACE_PERROR=1 ;;
+ esac
;;
*)
dnl The system's perror() probably inherits the bugs in the
# pipe.m4 serial 2
-dnl Copyright (C) 2010-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2010-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# printf.m4 serial 53
-dnl Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
+# printf.m4 serial 59
+dnl Copyright (C) 2003, 2007-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
[gl_cv_func_printf_sizes_c99=yes],
[gl_cv_func_printf_sizes_c99=no],
[
-changequote(,)dnl
case "$host_os" in
+changequote(,)dnl
# Guess yes on glibc systems.
- *-gnu*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ *-gnu* | gnu*) gl_cv_func_printf_sizes_c99="guessing yes";;
# Guess yes on FreeBSD >= 5.
freebsd[1-4].*) gl_cv_func_printf_sizes_c99="guessing no";;
freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
gl_cv_func_printf_sizes_c99="guessing no";;
netbsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
+changequote([,])dnl
+ # Guess yes on MSVC, no on mingw.
+ mingw*) AC_EGREP_CPP([Known], [
+#ifdef _MSC_VER
+ Known
+#endif
+ ],
+ [gl_cv_func_printf_sizes_c99="guessing yes"],
+ [gl_cv_func_printf_sizes_c99="guessing no"])
+ ;;
# If we don't know, assume the worst.
*) gl_cv_func_printf_sizes_c99="guessing no";;
esac
-changequote([,])dnl
])
])
])
}]])],
[gl_cv_func_printf_long_double=yes],
[gl_cv_func_printf_long_double=no],
- [
-changequote(,)dnl
- case "$host_os" in
- beos*) gl_cv_func_printf_long_double="guessing no";;
- mingw* | pw*) gl_cv_func_printf_long_double="guessing no";;
- *) gl_cv_func_printf_long_double="guessing yes";;
+ [case "$host_os" in
+ beos*) gl_cv_func_printf_long_double="guessing no";;
+ # Guess yes on MSVC, no on mingw.
+ mingw*) AC_EGREP_CPP([Known], [
+#ifdef _MSC_VER
+ Known
+#endif
+ ],
+ [gl_cv_func_printf_long_double="guessing yes"],
+ [gl_cv_func_printf_long_double="guessing no"])
+ ;;
+ *) gl_cv_func_printf_long_double="guessing yes";;
esac
-changequote([,])dnl
])
])
])
[gl_cv_func_printf_infinite=yes],
[gl_cv_func_printf_infinite=no],
[
-changequote(,)dnl
case "$host_os" in
+changequote(,)dnl
# Guess yes on glibc systems.
- *-gnu*) gl_cv_func_printf_infinite="guessing yes";;
+ *-gnu* | gnu*) gl_cv_func_printf_infinite="guessing yes";;
# Guess yes on FreeBSD >= 6.
freebsd[1-5].*) gl_cv_func_printf_infinite="guessing no";;
freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";;
netbsd*) gl_cv_func_printf_infinite="guessing yes";;
# Guess yes on BeOS.
beos*) gl_cv_func_printf_infinite="guessing yes";;
+changequote([,])dnl
+ # Guess yes on MSVC, no on mingw.
+ mingw*) AC_EGREP_CPP([Known], [
+#ifdef _MSC_VER
+ Known
+#endif
+ ],
+ [gl_cv_func_printf_infinite="guessing yes"],
+ [gl_cv_func_printf_infinite="guessing no"])
+ ;;
# If we don't know, assume the worst.
*) gl_cv_func_printf_infinite="guessing no";;
esac
-changequote([,])dnl
])
])
])
}]])],
[gl_cv_func_printf_infinite_long_double=yes],
[gl_cv_func_printf_infinite_long_double=no],
- [
-changequote(,)dnl
- case "$host_cpu" in
+ [case "$host_cpu" in
# Guess no on ia64, x86_64, i386.
ia64 | x86_64 | i*86) gl_cv_func_printf_infinite_long_double="guessing no";;
*)
case "$host_os" in
+changequote(,)dnl
# Guess yes on glibc systems.
- *-gnu*) gl_cv_func_printf_infinite_long_double="guessing yes";;
+ *-gnu* | gnu*) gl_cv_func_printf_infinite_long_double="guessing yes";;
# Guess yes on FreeBSD >= 6.
freebsd[1-5].*) gl_cv_func_printf_infinite_long_double="guessing no";;
freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";;
# Guess yes on HP-UX >= 11.
hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";;
hpux*) gl_cv_func_printf_infinite_long_double="guessing yes";;
+changequote([,])dnl
+ # Guess yes on MSVC, no on mingw.
+ mingw*) AC_EGREP_CPP([Known], [
+#ifdef _MSC_VER
+ Known
+#endif
+ ],
+ [gl_cv_func_printf_infinite_long_double="guessing yes"],
+ [gl_cv_func_printf_infinite_long_double="guessing no"])
+ ;;
# If we don't know, assume the worst.
*) gl_cv_func_printf_infinite_long_double="guessing no";;
esac
;;
esac
-changequote([,])dnl
])
])
;;
&& strcmp (buf, "0xcp-3 33") != 0))
result |= 4;
/* This catches a FreeBSD 6.1 bug. See
- <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
+ <https://lists.gnu.org/r/bug-gnulib/2007-04/msg00107.html> */
if (sprintf (buf, "%010a %d", 1.0 / zero, 33, 44, 55) < 0
|| buf[0] == '0')
result |= 8;
&& strcmp (buf, "0x8.0p-2") != 0))
result |= 16;
/* This catches the same Mac OS X 10.3.9 (Darwin 7.9) bug and also a
- glibc 2.4 bug <http://sourceware.org/bugzilla/show_bug.cgi?id=2908>. */
+ glibc 2.4 bug <https://sourceware.org/bugzilla/show_bug.cgi?id=2908>. */
if (sprintf (buf, "%.1La", 1.999L) < 0
|| (strcmp (buf, "0x1.0p+1") != 0
&& strcmp (buf, "0x2.0p+0") != 0
[
case "$host_os" in
# Guess yes on glibc >= 2.5 systems.
- *-gnu*)
+ *-gnu* | gnu*)
AC_EGREP_CPP([BZ2908], [
#include <features.h>
#ifdef __GNU_LIBRARY__
[gl_cv_func_printf_directive_a="guessing yes"],
[gl_cv_func_printf_directive_a="guessing no"])
;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_printf_directive_a="guessing no";;
# If we don't know, assume the worst.
*) gl_cv_func_printf_directive_a="guessing no";;
esac
[gl_cv_func_printf_directive_f=yes],
[gl_cv_func_printf_directive_f=no],
[
-changequote(,)dnl
case "$host_os" in
+changequote(,)dnl
# Guess yes on glibc systems.
- *-gnu*) gl_cv_func_printf_directive_f="guessing yes";;
+ *-gnu* | gnu*) gl_cv_func_printf_directive_f="guessing yes";;
# Guess yes on FreeBSD >= 6.
freebsd[1-5].*) gl_cv_func_printf_directive_f="guessing no";;
freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";;
darwin[1-6].*) gl_cv_func_printf_directive_f="guessing no";;
darwin*) gl_cv_func_printf_directive_f="guessing yes";;
# Guess yes on Solaris >= 2.10.
- solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";;
- solaris*) gl_cv_func_printf_sizes_c99="guessing no";;
+ solaris2.[1-9][0-9]*) gl_cv_func_printf_directive_f="guessing yes";;
+ solaris*) gl_cv_func_printf_directive_f="guessing no";;
+changequote([,])dnl
+ # Guess yes on MSVC, no on mingw.
+ mingw*) AC_EGREP_CPP([Known], [
+#ifdef _MSC_VER
+ Known
+#endif
+ ],
+ [gl_cv_func_printf_directive_f="guessing yes"],
+ [gl_cv_func_printf_directive_f="guessing no"])
+ ;;
# If we don't know, assume the worst.
*) gl_cv_func_printf_directive_f="guessing no";;
esac
-changequote([,])dnl
])
])
])
}]])],
[gl_cv_func_printf_directive_n=yes],
[gl_cv_func_printf_directive_n=no],
- [
-changequote(,)dnl
- case "$host_os" in
+ [case "$host_os" in
+ # Guess no on native Windows.
mingw*) gl_cv_func_printf_directive_n="guessing no";;
*) gl_cv_func_printf_directive_n="guessing yes";;
esac
-changequote([,])dnl
])
])
])
[
changequote(,)dnl
case "$host_os" in
- openbsd*) gl_cv_func_printf_directive_ls="guessing no";;
- irix*) gl_cv_func_printf_directive_ls="guessing no";;
- solaris*) gl_cv_func_printf_directive_ls="guessing no";;
- cygwin*) gl_cv_func_printf_directive_ls="guessing no";;
- beos* | haiku*) gl_cv_func_printf_directive_ls="guessing no";;
- *) gl_cv_func_printf_directive_ls="guessing yes";;
+ openbsd*) gl_cv_func_printf_directive_ls="guessing no";;
+ irix*) gl_cv_func_printf_directive_ls="guessing no";;
+ solaris*) gl_cv_func_printf_directive_ls="guessing no";;
+ cygwin*) gl_cv_func_printf_directive_ls="guessing no";;
+ beos* | haiku*) gl_cv_func_printf_directive_ls="guessing no";;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_printf_directive_ls="guessing yes";;
+ *) gl_cv_func_printf_directive_ls="guessing yes";;
esac
changequote([,])dnl
])
netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
gl_cv_func_printf_positions="guessing no";;
beos*) gl_cv_func_printf_positions="guessing no";;
+ # Guess no on native Windows.
mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
*) gl_cv_func_printf_positions="guessing yes";;
esac
case "$host_os" in
cygwin*) gl_cv_func_printf_flag_grouping="guessing no";;
netbsd*) gl_cv_func_printf_flag_grouping="guessing no";;
+ # Guess no on native Windows.
mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";;
*) gl_cv_func_printf_flag_grouping="guessing yes";;
esac
dnl Test whether the *printf family of functions supports the - flag correctly.
dnl (ISO C99.) See
-dnl <http://lists.gnu.org/archive/html/bug-coreutils/2008-02/msg00035.html>
+dnl <https://lists.gnu.org/r/bug-coreutils/2008-02/msg00035.html>
dnl Result is gl_cv_func_printf_flag_leftadjust.
AC_DEFUN([gl_PRINTF_FLAG_LEFTADJUST],
hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
# Guess no on HP-UX 10 and older.
hpux*) gl_cv_func_printf_flag_leftadjust="guessing no";;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
# Guess yes otherwise.
*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
esac
dnl Test whether the *printf family of functions supports padding of non-finite
dnl values with the 0 flag correctly. (ISO C99 + TC1 + TC2.) See
-dnl <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html>
+dnl <https://lists.gnu.org/r/bug-gnulib/2007-04/msg00107.html>
dnl Result is gl_cv_func_printf_flag_zero.
AC_DEFUN([gl_PRINTF_FLAG_ZERO],
[
changequote(,)dnl
case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_printf_flag_zero="guessing yes";;
- # Guess yes on BeOS.
- beos*) gl_cv_func_printf_flag_zero="guessing yes";;
- # If we don't know, assume the worst.
- *) gl_cv_func_printf_flag_zero="guessing no";;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_printf_flag_zero="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_printf_flag_zero="guessing yes";;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_printf_flag_zero="guessing no";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_printf_flag_zero="guessing no";;
esac
changequote([,])dnl
])
if test "$gl_cv_func_printf_enomem" = "guessing no"; then
changequote(,)dnl
case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_printf_enomem="guessing yes";;
- # Guess yes on Solaris.
- solaris*) gl_cv_func_printf_enomem="guessing yes";;
- # Guess yes on AIX.
- aix*) gl_cv_func_printf_enomem="guessing yes";;
- # Guess yes on HP-UX/hppa.
- hpux*) case "$host_cpu" in
- hppa*) gl_cv_func_printf_enomem="guessing yes";;
- *) gl_cv_func_printf_enomem="guessing no";;
- esac
- ;;
- # Guess yes on IRIX.
- irix*) gl_cv_func_printf_enomem="guessing yes";;
- # Guess yes on OSF/1.
- osf*) gl_cv_func_printf_enomem="guessing yes";;
- # Guess yes on BeOS.
- beos*) gl_cv_func_printf_enomem="guessing yes";;
- # Guess yes on Haiku.
- haiku*) gl_cv_func_printf_enomem="guessing yes";;
- # If we don't know, assume the worst.
- *) gl_cv_func_printf_enomem="guessing no";;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on Solaris.
+ solaris*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on AIX.
+ aix*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on HP-UX/hppa.
+ hpux*) case "$host_cpu" in
+ hppa*) gl_cv_func_printf_enomem="guessing yes";;
+ *) gl_cv_func_printf_enomem="guessing no";;
+ esac
+ ;;
+ # Guess yes on IRIX.
+ irix*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on OSF/1.
+ osf*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on Haiku.
+ haiku*) gl_cv_func_printf_enomem="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_printf_enomem="guessing no";;
esac
changequote([,])dnl
fi
changequote(,)dnl
case "$host_os" in
# Guess yes on glibc systems.
- *-gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ *-gnu* | gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
# Guess yes on FreeBSD >= 5.
freebsd[1-4].*) gl_cv_func_snprintf_truncation_c99="guessing no";;
freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
netbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
# Guess yes on BeOS.
beos*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_snprintf_truncation_c99="guessing no";;
# If we don't know, assume the worst.
*) gl_cv_func_snprintf_truncation_c99="guessing no";;
esac
}]])],
[gl_cv_func_snprintf_retval_c99=yes],
[gl_cv_func_snprintf_retval_c99=no],
- [
+ [case "$host_os" in
changequote(,)dnl
- case "$host_os" in
# Guess yes on glibc systems.
- *-gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ *-gnu* | gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";;
# Guess yes on FreeBSD >= 5.
freebsd[1-4].*) gl_cv_func_snprintf_retval_c99="guessing no";;
freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
# Guess yes on BeOS.
beos*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+changequote([,])dnl
+ # Guess yes on MSVC, no on mingw.
+ mingw*) AC_EGREP_CPP([Known], [
+#ifdef _MSC_VER
+ Known
+#endif
+ ],
+ [gl_cv_func_snprintf_retval_c99="guessing yes"],
+ [gl_cv_func_snprintf_retval_c99="guessing no"])
+ ;;
# If we don't know, assume the worst.
*) gl_cv_func_snprintf_retval_c99="guessing no";;
esac
-changequote([,])dnl
])
])
])
changequote(,)dnl
case "$host_os" in
# Guess yes on glibc systems.
- *-gnu*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ *-gnu* | gnu*) gl_cv_func_snprintf_directive_n="guessing yes";;
# Guess yes on FreeBSD >= 5.
freebsd[1-4].*) gl_cv_func_snprintf_directive_n="guessing no";;
freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
netbsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
# Guess yes on BeOS.
beos*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_snprintf_directive_n="guessing no";;
# If we don't know, assume the worst.
*) gl_cv_func_snprintf_directive_n="guessing no";;
esac
AC_DEFUN([gl_SNPRINTF_SIZE1],
[
AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_REQUIRE([gl_SNPRINTF_PRESENCE])
AC_CACHE_CHECK([whether snprintf respects a size of 1],
[gl_cv_func_snprintf_size1],
}]])],
[gl_cv_func_snprintf_size1=yes],
[gl_cv_func_snprintf_size1=no],
- [gl_cv_func_snprintf_size1="guessing yes"])
+ [case "$host_os" in
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_snprintf_size1="guessing yes" ;;
+ *) gl_cv_func_snprintf_size1="guessing yes" ;;
+ esac
+ ])
])
])
changequote(,)dnl
case "$host_os" in
# Guess yes on glibc systems.
- *-gnu*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ *-gnu* | gnu*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
# Guess yes on FreeBSD >= 5.
freebsd[1-4].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
netbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
# Guess yes on BeOS.
beos*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
- # Guess yes on mingw.
+ # Guess yes on native Windows.
mingw* | pw*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
# If we don't know, assume the worst.
*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
dnl Cygwin 1.7.0 (2009) . . . # . . . ? . . . . . ? . . . . . .
dnl Cygwin 1.5.25 (2008) . . . # # . . # . . . . . # . . . . . .
dnl Cygwin 1.5.19 (2006) # . . # # # . # . # . # # # . . . . . .
-dnl Solaris 11 2011-11 . . # # # . . # . . . # . . . . . . . .
+dnl Solaris 11.4 . . # # # . . # . . . # . . . . . . . .
+dnl Solaris 11.3 . . . . # . . # . . . . . . . . . . . .
+dnl Solaris 11.0 . . # # # . . # . . . # . . . . . . . .
dnl Solaris 10 . . # # # . . # . . . # # . . . . . . .
dnl Solaris 2.6 ... 9 # . # # # # . # . . . # # . . . # . . .
dnl Solaris 2.5.1 # . # # # # . # . . . # . . # # # # # #
-# putenv.m4 serial 20
-dnl Copyright (C) 2002-2017 Free Software Foundation, Inc.
+# putenv.m4 serial 22
+dnl Copyright (C) 2002-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
gl_cv_func_svid_putenv=no,
dnl When crosscompiling, assume putenv is broken.
[case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_svid_putenv="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_svid_putenv="guessing no" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_svid_putenv="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_svid_putenv="guessing no" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_svid_putenv="guessing no" ;;
esac
])
])
# quote.m4 serial 6
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2017 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2018 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
# quotearg.m4 serial 9
-dnl Copyright (C) 2002, 2004-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2004-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# raise.m4 serial 4
-dnl Copyright (C) 2011-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# rawmemchr.m4 serial 2
-dnl Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2007-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# readlink.m4 serial 12
-dnl Copyright (C) 2003, 2007, 2009-2017 Free Software Foundation, Inc.
+# readlink.m4 serial 14
+dnl Copyright (C) 2003, 2007, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
return readlink ("conftest.lnk2/", buf, sizeof buf) != -1;]])],
[gl_cv_func_readlink_works=yes], [gl_cv_func_readlink_works=no],
[case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_readlink_works="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_readlink_works="guessing no" ;;
+ # Guess yes on Linux systems.
+ linux-* | linux) gl_cv_func_readlink_works="guessing yes" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_readlink_works="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_readlink_works="guessing no" ;;
esac
])
rm -f conftest.link conftest.lnk2])
-# serial 66
+# serial 68
-# Copyright (C) 1996-2001, 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2001, 2003-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
AC_DEFUN([gl_REGEX],
[
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_ARG_WITH([included-regex],
[AS_HELP_STRING([--without-included-regex],
[don't compile regex; this is the default on systems
if (setlocale (LC_ALL, "en_US.UTF-8"))
{
{
- /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html
+ /* https://sourceware.org/ml/libc-hacker/2006-09/msg00008.html
This test needs valgrind to catch the bug on Debian
GNU/Linux 3.1 x86, but it might catch the bug better
on other platforms and it shouldn't hurt to try the
{
/* This test is from glibc bug 15078.
The test case is from Andreas Schwab in
- <http://www.sourceware.org/ml/libc-alpha/2013-01/msg00967.html>.
+ <https://sourceware.org/ml/libc-alpha/2013-01/msg00967.html>.
*/
static char const pat[] = "[^x]x";
static char const data[] =
result |= 16;
/* Catch a bug reported by Vin Shelton in
- http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html
+ https://lists.gnu.org/r/bug-coreutils/2007-06/msg00089.html
*/
re_set_syntax (RE_SYNTAX_POSIX_BASIC
& ~RE_CONTEXT_INVALID_DUP
if (! REG_STARTEND)
result |= 64;
+ /* Matching with the compiled form of this regexp would provoke
+ an assertion failure prior to glibc-2.28:
+ regexec.c:1375: pop_fail_stack: Assertion 'num >= 0' failed
+ With glibc-2.28, compilation fails and reports the invalid
+ back reference. */
+ re_set_syntax (RE_SYNTAX_POSIX_EGREP);
+ memset (®ex, 0, sizeof regex);
+ s = re_compile_pattern ("0|()0|\\1|0", 10, ®ex);
+ if (!s || strcmp (s, "Invalid back reference"))
+ result |= 64;
+
#if 0
/* It would be nice to reject hosts whose regoff_t values are too
narrow (including glibc on hosts with 64-bit ptrdiff_t and
return result;
]])],
- [gl_cv_func_re_compile_pattern_working=yes],
- [gl_cv_func_re_compile_pattern_working=no],
- dnl When crosscompiling, assume it is not working.
- [gl_cv_func_re_compile_pattern_working=no])])
- case $gl_cv_func_re_compile_pattern_working in #(
- yes) ac_use_included_regex=no;; #(
- no) ac_use_included_regex=yes;;
+ [gl_cv_func_re_compile_pattern_working=yes],
+ [gl_cv_func_re_compile_pattern_working=no],
+ [case "$host_os" in
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_re_compile_pattern_working="guessing no" ;;
+ # Otherwise, assume it is not working.
+ *) gl_cv_func_re_compile_pattern_working="guessing no" ;;
+ esac
+ ])
+ ])
+ case "$gl_cv_func_re_compile_pattern_working" in #(
+ *yes) ac_use_included_regex=no;; #(
+ *no) ac_use_included_regex=yes;;
esac
;;
*) AC_MSG_ERROR([Invalid value for --with-included-regex: $with_included_regex])
+++ /dev/null
-# Look up an environment variable more securely.
-dnl Copyright 2013-2017 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_FUNC_SECURE_GETENV],
-[
- dnl Persuade glibc <stdlib.h> to declare secure_getenv().
- AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
-
- AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
- AC_CHECK_FUNCS_ONCE([secure_getenv])
- if test $ac_cv_func_secure_getenv = no; then
- HAVE_SECURE_GETENV=0
- fi
-])
-
-# Prerequisites of lib/secure_getenv.c.
-AC_DEFUN([gl_PREREQ_SECURE_GETENV], [
- AC_CHECK_FUNCS([__secure_getenv])
- if test $ac_cv_func___secure_getenv = no; then
- AC_CHECK_FUNCS([issetugid])
- fi
- AC_CHECK_FUNCS_ONCE([getuid geteuid getgid getegid])
-])
-# select.m4 serial 8
-dnl Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# select.m4 serial 10
+dnl Copyright (C) 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
[gl_cv_func_select_detects_ebadf=no],
[
case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_select_detects_ebadf="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_select_detects_ebadf="guessing no" ;;
+ # Guess yes on Linux systems.
+ linux-* | linux) gl_cv_func_select_detects_ebadf="guessing yes" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_select_detects_ebadf="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_select_detects_ebadf="guessing no" ;;
esac
])
])
-# setenv.m4 serial 26
-dnl Copyright (C) 2001-2004, 2006-2017 Free Software Foundation, Inc.
+# setenv.m4 serial 27
+dnl Copyright (C) 2001-2004, 2006-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
]])],
[gl_cv_func_setenv_works=yes], [gl_cv_func_setenv_works=no],
[case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_setenv_works="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_setenv_works="guessing no" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_setenv_works="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_setenv_works="guessing no" ;;
esac
])])
case "$gl_cv_func_setenv_works" in
-# setlocale.m4 serial 4
-dnl Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# setlocale.m4 serial 5
+dnl Copyright (C) 2011-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# Prerequisites of lib/setlocale.c.
AC_DEFUN([gl_PREREQ_SETLOCALE],
[
+ dnl No need to check for CFLocaleCopyPreferredLanguages and
+ dnl CFPreferencesCopyAppValue because lib/setlocale.c is not used on Mac OS X.
+ dnl (The Mac OS X specific code is only used in libintl.)
:
])
# sigaction.m4 serial 7
-dnl Copyright (C) 2008-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# signal_h.m4 serial 18
-dnl Copyright (C) 2007-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# signalblocking.m4 serial 14
-dnl Copyright (C) 2001-2002, 2006-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2002, 2006-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# size_max.m4 serial 10
-dnl Copyright (C) 2003, 2005-2006, 2008-2017 Free Software Foundation, Inc.
+# size_max.m4 serial 11
+dnl Copyright (C) 2003, 2005-2006, 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl From Bruno Haible.
+AC_PREREQ([2.61])
+
AC_DEFUN([gl_SIZE_MAX],
[
AC_CHECK_HEADERS([stdint.h])
# undef SIZE_MAX
#endif])
])
-
-dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
-dnl Remove this when we can assume autoconf >= 2.61.
-m4_ifdef([AC_COMPUTE_INT], [], [
- AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
-])
-# sleep.m4 serial 7
-dnl Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# sleep.m4 serial 9
+dnl Copyright (C) 2007-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
]])],
[gl_cv_func_sleep_works=yes], [gl_cv_func_sleep_works=no],
[case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_sleep_works="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_sleep_works="guessing no" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_sleep_works="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_sleep_works="guessing no" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_sleep_works="guessing no" ;;
esac
])])
case "$gl_cv_func_sleep_works" in
# snprintf.m4 serial 7
-dnl Copyright (C) 2002-2004, 2007-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2004, 2007-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# socketlib.m4 serial 1
-dnl Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# socketlib.m4 serial 2
+dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl Solaris has most socket functions in libsocket.
dnl Haiku has most socket functions in libnetwork.
dnl BeOS has most socket functions in libnet.
+ dnl On HP-UX, do NOT link with libxnet, because in 64-bit mode this would
+ dnl break code (e.g. in libraries) that invokes accept(), getpeername(),
+ dnl getsockname(), getsockopt(), or recvfrom() with a 32-bit addrlen. See
+ dnl "man xopen_networking" for details.
AC_CACHE_CHECK([for library containing setsockopt], [gl_cv_lib_socket], [
gl_cv_lib_socket=
AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern
# sockets.m4 serial 7
-dnl Copyright (C) 2008-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# socklen.m4 serial 10
-dnl Copyright (C) 2005-2007, 2009-2017 Free Software Foundation, Inc.
+# socklen.m4 serial 11
+dnl Copyright (C) 2005-2007, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_DEFUN([gl_TYPE_SOCKLEN_T],
[AC_REQUIRE([gl_CHECK_SOCKET_HEADERS])dnl
AC_CHECK_TYPE([socklen_t], ,
- [AC_MSG_CHECKING([for socklen_t equivalent])
- AC_CACHE_VAL([gl_cv_socklen_t_equiv],
+ [AC_CACHE_CHECK([for socklen_t equivalent],
+ [gl_cv_socklen_t_equiv],
[# Systems have either "struct sockaddr *" or
# "void *" as the second argument to getpeername
gl_cv_socklen_t_equiv=
done
test "$gl_cv_socklen_t_equiv" != "" && break
done
- ])
- if test "$gl_cv_socklen_t_equiv" = ""; then
- AC_MSG_ERROR([Cannot find a type to use in place of socklen_t])
- fi
- AC_MSG_RESULT([$gl_cv_socklen_t_equiv])
+ if test "$gl_cv_socklen_t_equiv" = ""; then
+ AC_MSG_ERROR([Cannot find a type to use in place of socklen_t])
+ fi
+ ])
AC_DEFINE_UNQUOTED([socklen_t], [$gl_cv_socklen_t_equiv],
[type to use in place of socklen_t if not defined])],
[gl_SOCKET_HEADERS])])
-# sockpfaf.m4 serial 8
-dnl Copyright (C) 2004, 2006, 2009-2017 Free Software Foundation, Inc.
+# sockpfaf.m4 serial 9
+dnl Copyright (C) 2004, 2006, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_REQUIRE([gl_HEADER_SYS_SOCKET])
AC_CHECK_HEADERS_ONCE([netinet/in.h])
- AC_MSG_CHECKING([for IPv4 sockets])
- AC_CACHE_VAL([gl_cv_socket_ipv4],
+ AC_CACHE_CHECK([for IPv4 sockets],
+ [gl_cv_socket_ipv4],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
[[int x = AF_INET; struct in_addr y; struct sockaddr_in z;
if (&x && &y && &z) return 0;]])],
gl_cv_socket_ipv4=yes, gl_cv_socket_ipv4=no)])
- AC_MSG_RESULT([$gl_cv_socket_ipv4])
if test $gl_cv_socket_ipv4 = yes; then
AC_DEFINE([HAVE_IPV4], [1], [Define to 1 if <sys/socket.h> defines AF_INET.])
fi
- AC_MSG_CHECKING([for IPv6 sockets])
- AC_CACHE_VAL([gl_cv_socket_ipv6],
+ AC_CACHE_CHECK([for IPv6 sockets],
+ [gl_cv_socket_ipv6],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
[[int x = AF_INET6; struct in6_addr y; struct sockaddr_in6 z;
if (&x && &y && &z) return 0;]])],
gl_cv_socket_ipv6=yes, gl_cv_socket_ipv6=no)])
- AC_MSG_RESULT([$gl_cv_socket_ipv6])
if test $gl_cv_socket_ipv6 = yes; then
AC_DEFINE([HAVE_IPV6], [1], [Define to 1 if <sys/socket.h> defines AF_INET6.])
fi
AC_REQUIRE([gl_HEADER_SYS_SOCKET])
AC_CHECK_HEADERS_ONCE([sys/un.h])
- AC_MSG_CHECKING([for UNIX domain sockets])
- AC_CACHE_VAL([gl_cv_socket_unix],
+ AC_CACHE_CHECK([for UNIX domain sockets],
+ [gl_cv_socket_unix],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
[[int x = AF_UNIX; struct sockaddr_un y;
if (&x && &y) return 0;]])],
gl_cv_socket_unix=yes, gl_cv_socket_unix=no)])
- AC_MSG_RESULT([$gl_cv_socket_unix])
if test $gl_cv_socket_unix = yes; then
AC_DEFINE([HAVE_UNIXSOCKET], [1], [Define to 1 if <sys/socket.h> defines AF_UNIX.])
fi
# ssize_t.m4 serial 5 (gettext-0.18.2)
-dnl Copyright (C) 2001-2003, 2006, 2010-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2003, 2006, 2010-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# Checks for stat-related time functions.
-# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2017 Free Software
+# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2018 Free Software
# Foundation, Inc.
# This file is free software; the Free Software Foundation
-# serial 12
+# serial 15
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
]])],
[gl_cv_func_stat_file_slash=yes], [gl_cv_func_stat_file_slash=no],
[case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_stat_file_slash="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_stat_file_slash="guessing no" ;;
+ # Guess yes on Linux systems.
+ linux-* | linux) gl_cv_func_stat_file_slash="guessing yes" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_stat_file_slash="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_stat_file_slash="guessing no" ;;
esac
])
rm -f conftest.tmp conftest.lnk])
AC_DEFINE([REPLACE_FUNC_STAT_FILE], [1], [Define to 1 if stat needs
help when passed a file name with a trailing slash]);;
esac
+ case $host_os in
+ dnl Solaris stat can return a negative tv_nsec.
+ solaris*)
+ REPLACE_FSTAT=1 ;;
+ esac
;;
esac
])
# Check for stdalign.h that conforms to C11.
-dnl Copyright 2011-2017 Free Software Foundation, Inc.
+dnl Copyright 2011-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
/* Test that alignof yields a result consistent with offsetof.
This catches GCC bug 52023
- <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>. */
+ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>. */
#ifdef __cplusplus
template <class t> struct alignof_helper { char a; t b; };
# define ao(type) offsetof (alignof_helper<type>, b)
-# stdarg.m4 serial 6
-dnl Copyright (C) 2006, 2008-2017 Free Software Foundation, Inc.
+# stdarg.m4 serial 7
+dnl Copyright (C) 2006, 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
[
STDARG_H=''
NEXT_STDARG_H='<stdarg.h>'
- AC_MSG_CHECKING([for va_copy])
- AC_CACHE_VAL([gl_cv_func_va_copy], [
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[#include <stdarg.h>]],
- [[
+ AC_CACHE_CHECK([for va_copy],
+ [gl_cv_func_va_copy],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stdarg.h>]],
+ [[
#ifndef va_copy
void (*func) (va_list, va_list) = va_copy;
#endif
- ]])],
- [gl_cv_func_va_copy=yes],
- [gl_cv_func_va_copy=no])])
- AC_MSG_RESULT([$gl_cv_func_va_copy])
+ ]])],
+ [gl_cv_func_va_copy=yes],
+ [gl_cv_func_va_copy=no])
+ ])
if test $gl_cv_func_va_copy = no; then
dnl Provide a substitute.
dnl Usually a simple definition in <config.h> is enough. Not so on AIX 5
# Check for stdbool.h that conforms to C99.
-dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
char o[sizeof n == m * sizeof n[0] ? 1 : -1];
char p[-1 - (Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
/* Catch a bug in an HP-UX C compiler. See
- http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
- http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+ https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+ https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html
*/
Bool q = true;
Bool *pq = &q;
dnl A placeholder for <stddef.h>, for platforms that have issues.
-# stddef_h.m4 serial 5
-dnl Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# stddef_h.m4 serial 6
+dnl Copyright (C) 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_REQUIRE([gl_STDDEF_H_DEFAULTS])
AC_REQUIRE([gt_TYPE_WCHAR_T])
STDDEF_H=
- AC_CHECK_TYPE([max_align_t], [], [HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h],
- [[#include <stddef.h>
- ]])
+
+ dnl Test whether the type max_align_t exists and whether its alignment
+ dnl "is as great as is supported by the implementation in all contexts".
+ AC_CACHE_CHECK([for good max_align_t],
+ [gl_cv_type_max_align_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stddef.h>
+ unsigned int s = sizeof (max_align_t);
+ #if defined __GNUC__ || defined __IBM__ALIGNOF__
+ int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1];
+ int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1];
+ #endif
+ ]])],
+ [gl_cv_type_max_align_t=yes],
+ [gl_cv_type_max_align_t=no])
+ ])
+ if test $gl_cv_type_max_align_t = no; then
+ HAVE_MAX_ALIGN_T=0
+ STDDEF_H=stddef.h
+ fi
+
if test $gt_cv_c_wchar_t = no; then
HAVE_WCHAR_T=0
STDDEF_H=stddef.h
fi
+
AC_CACHE_CHECK([whether NULL can be used in arbitrary expressions],
[gl_cv_decl_null_works],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stddef.h>
REPLACE_NULL=1
STDDEF_H=stddef.h
fi
+
AC_SUBST([STDDEF_H])
AM_CONDITIONAL([GL_GENERATE_STDDEF_H], [test -n "$STDDEF_H"])
if test -n "$STDDEF_H"; then
-# stdint.m4 serial 50
-dnl Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# stdint.m4 serial 53
+dnl Copyright (C) 2001-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl From Paul Eggert and Bruno Haible.
dnl Test whether <stdint.h> is supported or must be substituted.
+AC_PREREQ([2.61])
+
AC_DEFUN_ONCE([gl_STDINT_H],
[
AC_PREREQ([2.59])dnl
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_REQUIRE([gl_LIMITS_H])
AC_REQUIRE([gt_TYPE_WINT_T])
]])],
[gl_cv_header_working_stdint_h=yes],
[],
- [dnl When cross-compiling, assume it works.
- gl_cv_header_working_stdint_h=yes
+ [case "$host_os" in
+ # Guess yes on native Windows.
+ mingw*) gl_cv_header_working_stdint_h="guessing yes" ;;
+ # In general, assume it works.
+ *) gl_cv_header_working_stdint_h="guessing yes" ;;
+ esac
])
])
])
HAVE_SYS_BITYPES_H=0
HAVE_SYS_INTTYPES_H=0
STDINT_H=stdint.h
- if test "$gl_cv_header_working_stdint_h" = yes; then
- HAVE_C99_STDINT_H=1
- dnl Now see whether the system <stdint.h> works without
- dnl __STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROS defined.
- AC_CACHE_CHECK([whether stdint.h predates C++11],
- [gl_cv_header_stdint_predates_cxx11_h],
- [gl_cv_header_stdint_predates_cxx11_h=yes
- AC_COMPILE_IFELSE([
- AC_LANG_PROGRAM([[
+ case "$gl_cv_header_working_stdint_h" in
+ *yes)
+ HAVE_C99_STDINT_H=1
+ dnl Now see whether the system <stdint.h> works without
+ dnl __STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROS defined.
+ AC_CACHE_CHECK([whether stdint.h predates C++11],
+ [gl_cv_header_stdint_predates_cxx11_h],
+ [gl_cv_header_stdint_predates_cxx11_h=yes
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
#include <stdint.h>
]
[
intmax_t im = INTMAX_MAX;
int32_t i32 = INT32_C (0x7fffffff);
- ]])],
- [gl_cv_header_stdint_predates_cxx11_h=no])])
+ ]])],
+ [gl_cv_header_stdint_predates_cxx11_h=no])])
- if test "$gl_cv_header_stdint_predates_cxx11_h" = yes; then
- AC_DEFINE([__STDC_CONSTANT_MACROS], [1],
- [Define to 1 if the system <stdint.h> predates C++11.])
- AC_DEFINE([__STDC_LIMIT_MACROS], [1],
- [Define to 1 if the system <stdint.h> predates C++11.])
- fi
- AC_CACHE_CHECK([whether stdint.h has UINTMAX_WIDTH etc.],
- [gl_cv_header_stdint_width],
- [gl_cv_header_stdint_width=no
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[
- /* Work if build is not clean. */
- #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1
- #ifndef __STDC_WANT_IEC_60559_BFP_EXT__
- #define __STDC_WANT_IEC_60559_BFP_EXT__ 1
- #endif
- #include <stdint.h>
- ]gl_STDINT_INCLUDES[
- int iw = UINTMAX_WIDTH;
- ]])],
- [gl_cv_header_stdint_width=yes])])
- if test "$gl_cv_header_stdint_width" = yes; then
- STDINT_H=
- fi
- else
- dnl Check for <sys/inttypes.h>, and for
- dnl <sys/bitypes.h> (used in Linux libc4 >= 4.6.7 and libc5).
- AC_CHECK_HEADERS([sys/inttypes.h sys/bitypes.h])
- if test $ac_cv_header_sys_inttypes_h = yes; then
- HAVE_SYS_INTTYPES_H=1
- fi
- if test $ac_cv_header_sys_bitypes_h = yes; then
- HAVE_SYS_BITYPES_H=1
- fi
- gl_STDINT_TYPE_PROPERTIES
- fi
+ if test "$gl_cv_header_stdint_predates_cxx11_h" = yes; then
+ AC_DEFINE([__STDC_CONSTANT_MACROS], [1],
+ [Define to 1 if the system <stdint.h> predates C++11.])
+ AC_DEFINE([__STDC_LIMIT_MACROS], [1],
+ [Define to 1 if the system <stdint.h> predates C++11.])
+ fi
+ AC_CACHE_CHECK([whether stdint.h has UINTMAX_WIDTH etc.],
+ [gl_cv_header_stdint_width],
+ [gl_cv_header_stdint_width=no
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[
+ /* Work if build is not clean. */
+ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1
+ #ifndef __STDC_WANT_IEC_60559_BFP_EXT__
+ #define __STDC_WANT_IEC_60559_BFP_EXT__ 1
+ #endif
+ #include <stdint.h>
+ ]gl_STDINT_INCLUDES[
+ int iw = UINTMAX_WIDTH;
+ ]])],
+ [gl_cv_header_stdint_width=yes])])
+ if test "$gl_cv_header_stdint_width" = yes; then
+ STDINT_H=
+ fi
+ ;;
+ *)
+ dnl Check for <sys/inttypes.h>, and for
+ dnl <sys/bitypes.h> (used in Linux libc4 >= 4.6.7 and libc5).
+ AC_CHECK_HEADERS([sys/inttypes.h sys/bitypes.h])
+ if test $ac_cv_header_sys_inttypes_h = yes; then
+ HAVE_SYS_INTTYPES_H=1
+ fi
+ if test $ac_cv_header_sys_bitypes_h = yes; then
+ HAVE_SYS_BITYPES_H=1
+ fi
+ gl_STDINT_TYPE_PROPERTIES
+ ;;
+ esac
dnl The substitute stdint.h needs the substitute limit.h's _GL_INTEGER_WIDTH.
- LIMITS_H=limits.h
- AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"])
+ gl_REPLACE_LIMITS_H
AC_SUBST([HAVE_C99_STDINT_H])
AC_SUBST([HAVE_SYS_BITYPES_H])
BITSIZEOF_WINT_T=32
fi
])
-
-dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
-dnl Remove this when we can assume autoconf >= 2.61.
-m4_ifdef([AC_COMPUTE_INT], [], [
- AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
-])
# stdint_h.m4 serial 9
-dnl Copyright (C) 1997-2004, 2006, 2008-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2004, 2006, 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# stdio_h.m4 serial 48
-dnl Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# stdio_h.m4 serial 49
+dnl Copyright (C) 2007-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
/* For non-mingw systems, compilation will trivially succeed.
For mingw, compilation will succeed for older mingw (system
printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */
- #if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) && \
+ #if (defined _WIN32 && ! defined __CYGWIN__) && \
(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1];
#endif
-# stdlib_h.m4 serial 43
-dnl Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# stdlib_h.m4 serial 45
+dnl Copyright (C) 2007-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl guaranteed by C89.
gl_WARN_ON_USE_PREPARE([[#include <stdlib.h>
#if HAVE_SYS_LOADAVG_H
+/* OpenIndiana has a bug: <sys/time.h> must be included before
+ <sys/loadavg.h>. */
+# include <sys/time.h>
# include <sys/loadavg.h>
#endif
#if HAVE_RANDOM_H
#endif
]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt
initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps
- posix_openpt ptsname ptsname_r qsort_r random random_r realpath rpmatch
- secure_getenv setenv setstate setstate_r srandom srandom_r
- strtod strtoll strtoull unlockpt unsetenv])
+ posix_openpt ptsname ptsname_r qsort_r random random_r reallocarray
+ realpath rpmatch secure_getenv setenv setstate setstate_r srandom
+ srandom_r strtod strtoll strtoull unlockpt unsetenv])
])
AC_DEFUN([gl_STDLIB_MODULE_INDICATOR],
GNULIB_QSORT_R=0; AC_SUBST([GNULIB_QSORT_R])
GNULIB_RANDOM=0; AC_SUBST([GNULIB_RANDOM])
GNULIB_RANDOM_R=0; AC_SUBST([GNULIB_RANDOM_R])
+ GNULIB_REALLOCARRAY=0; AC_SUBST([GNULIB_REALLOCARRAY])
GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX])
GNULIB_REALPATH=0; AC_SUBST([GNULIB_REALPATH])
GNULIB_RPMATCH=0; AC_SUBST([GNULIB_RPMATCH])
HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG])
HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT])
HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT])
+ HAVE_DECL_INITSTATE=1; AC_SUBST([HAVE_DECL_INITSTATE])
HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP])
HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP])
HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS])
HAVE_RANDOM=1; AC_SUBST([HAVE_RANDOM])
HAVE_RANDOM_H=1; AC_SUBST([HAVE_RANDOM_H])
HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R])
+ HAVE_REALLOCARRAY=1; AC_SUBST([HAVE_REALLOCARRAY])
HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH])
HAVE_RPMATCH=1; AC_SUBST([HAVE_RPMATCH])
HAVE_SECURE_GETENV=1; AC_SUBST([HAVE_SECURE_GETENV])
HAVE_SETENV=1; AC_SUBST([HAVE_SETENV])
HAVE_DECL_SETENV=1; AC_SUBST([HAVE_DECL_SETENV])
+ HAVE_DECL_SETSTATE=1; AC_SUBST([HAVE_DECL_SETSTATE])
HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD])
HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL])
HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL])
# strcase.m4 serial 11
-dnl Copyright (C) 2002, 2005-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2005-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# strerror.m4 serial 17
-dnl Copyright (C) 2002, 2007-2017 Free Software Foundation, Inc.
+# strerror.m4 serial 19
+dnl Copyright (C) 2002, 2007-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
[gl_cv_func_working_strerror=yes],
[gl_cv_func_working_strerror=no],
[case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_working_strerror="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_working_strerror="guessing no" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_working_strerror="guessing no" ;;
esac
])
])
[gl_cv_func_strerror_0_works=yes],
[gl_cv_func_strerror_0_works=no],
[case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_strerror_0_works="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_strerror_0_works="guessing no" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_strerror_0_works="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_strerror_0_works="guessing no" ;;
esac
])
])
# strerror_r.m4 serial 19
-dnl Copyright (C) 2002, 2007-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2007-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# Configure a GNU-like replacement for <string.h>.
-# Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# Copyright (C) 2007-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 21
+# serial 22
# Written by Paul Eggert.
AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
[
+ GNULIB_EXPLICIT_BZERO=0; AC_SUBST([GNULIB_EXPLICIT_BZERO])
GNULIB_FFSL=0; AC_SUBST([GNULIB_FFSL])
GNULIB_FFSLL=0; AC_SUBST([GNULIB_FFSLL])
GNULIB_MEMCHR=0; AC_SUBST([GNULIB_MEMCHR])
GNULIB_STRVERSCMP=0; AC_SUBST([GNULIB_STRVERSCMP])
HAVE_MBSLEN=0; AC_SUBST([HAVE_MBSLEN])
dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_EXPLICIT_BZERO=1; AC_SUBST([HAVE_EXPLICIT_BZERO])
HAVE_FFSL=1; AC_SUBST([HAVE_FFSL])
HAVE_FFSLL=1; AC_SUBST([HAVE_FFSLL])
HAVE_MEMCHR=1; AC_SUBST([HAVE_MEMCHR])
REPLACE_MEMCHR=0; AC_SUBST([REPLACE_MEMCHR])
REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM])
REPLACE_STPNCPY=0; AC_SUBST([REPLACE_STPNCPY])
+ REPLACE_STRCHRNUL=0; AC_SUBST([REPLACE_STRCHRNUL])
REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP])
+ REPLACE_STRNCAT=0; AC_SUBST([REPLACE_STRNCAT])
+ REPLACE_STRNDUP=0; AC_SUBST([REPLACE_STRNDUP])
+ REPLACE_STRNLEN=0; AC_SUBST([REPLACE_STRNLEN])
REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR])
REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR])
- REPLACE_STRCHRNUL=0; AC_SUBST([REPLACE_STRCHRNUL])
+ REPLACE_STRTOK_R=0; AC_SUBST([REPLACE_STRTOK_R])
REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR])
REPLACE_STRERROR_R=0; AC_SUBST([REPLACE_STRERROR_R])
- REPLACE_STRNCAT=0; AC_SUBST([REPLACE_STRNCAT])
- REPLACE_STRNDUP=0; AC_SUBST([REPLACE_STRNDUP])
- REPLACE_STRNLEN=0; AC_SUBST([REPLACE_STRNLEN])
REPLACE_STRSIGNAL=0; AC_SUBST([REPLACE_STRSIGNAL])
- REPLACE_STRTOK_R=0; AC_SUBST([REPLACE_STRTOK_R])
UNDEFINE_STRTOK_R=0; AC_SUBST([UNDEFINE_STRTOK_R])
])
# Configure a replacement for <strings.h>.
# serial 6
-# Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# strndup.m4 serial 22
-dnl Copyright (C) 2002-2003, 2005-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2003, 2005-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# strnlen.m4 serial 13
-dnl Copyright (C) 2002-2003, 2005-2007, 2009-2017 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2007, 2009-2018 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
# strptime.m4 serial 7
-dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# strtoull.m4 serial 7
-dnl Copyright (C) 2002, 2004, 2006, 2008-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2004, 2006, 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# strtoumax.m4 serial 12
-dnl Copyright (C) 2002-2004, 2006, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2004, 2006, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# serial 6
+# serial 8
# See if we need to provide symlink replacement.
-dnl Copyright (C) 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
]])],
[gl_cv_func_symlink_works=yes], [gl_cv_func_symlink_works=no],
[case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_symlink_works="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_symlink_works="guessing no" ;;
+ # Guess yes on Linux systems.
+ linux-* | linux) gl_cv_func_symlink_works="guessing yes" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_symlink_works="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_symlink_works="guessing no" ;;
esac
])
rm -f conftest.f conftest.link conftest.lnk2])
# sys_ioctl_h.m4 serial 10
-dnl Copyright (C) 2008-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# sys_select_h.m4 serial 20
-dnl Copyright (C) 2006-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# sys_socket_h.m4 serial 23
-dnl Copyright (C) 2005-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# sys_stat_h.m4 serial 31 -*- Autoconf -*-
-dnl Copyright (C) 2006-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# Configure a replacement for <sys/time.h>.
# serial 9
-# Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# sys_types_h.m4 serial 7
-dnl Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# sys_types_h.m4 serial 9
+dnl Copyright (C) 2011-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_DEFUN_ONCE([gl_SYS_TYPES_H],
[
+ dnl Use sane struct stat types in OpenVMS 8.2 and later.
+ AC_DEFINE([_USE_STD_STAT], 1, [For standard stat data types on VMS.])
+
AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS])
gl_NEXT_HEADERS([sys/types.h])
])
# This works around a buggy version in autoconf <= 2.69.
-# See <https://lists.gnu.org/archive/html/autoconf/2016-08/msg00014.html>
+# See <https://lists.gnu.org/r/autoconf/2016-08/msg00014.html>
m4_version_prereq([2.70], [], [
# This is taken from the following Autoconf patch:
-# http://git.sv.gnu.org/cgit/autoconf.git/commit/?id=e17a30e98
+# https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=e17a30e987d7ee695fb4294a82d987ec3dc9b974
m4_undefine([AC_HEADER_MAJOR])
AC_DEFUN([AC_HEADER_MAJOR],
# sys_uio_h.m4 serial 1
-dnl Copyright (C) 2011-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# sys_wait_h.m4 serial 6
-dnl Copyright (C) 2008-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
#serial 5
-# Copyright (C) 2006-2007, 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2006-2007, 2009-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# Configure a more-standard replacement for <time.h>.
-# Copyright (C) 2000-2001, 2003-2007, 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2003-2007, 2009-2018 Free Software Foundation, Inc.
# serial 11
dnl Reentrant time functions: localtime_r, gmtime_r.
-dnl Copyright (C) 2003, 2006-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2006-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl Time zone functions: tzalloc, localtime_rz, etc.
-dnl Copyright (C) 2015-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2015-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
AC_REQUIRE([AC_STRUCT_TIMEZONE])
+ # Mac OS X 10.6 loops forever with some time_t values.
+ # See Bug#27706, Bug#27736, and
+ # https://lists.gnu.org/r/bug-gnulib/2017-07/msg00142.html
+ AC_CACHE_CHECK([whether localtime loops forever near extrema],
+ [gl_cv_func_localtime_infloop_bug],
+ [gl_cv_func_localtime_infloop_bug=no
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
+ #include <time.h>
+ ]], [[
+ time_t t = -67768038400666600;
+ struct tm *tm;
+ char *tz = getenv ("TZ");
+ if (! (tz && strcmp (tz, "QQQ0") == 0))
+ return 0;
+ alarm (2);
+ tm = localtime (&t);
+ /* Use TM and *TM to suppress over-optimization. */
+ return tm && tm->tm_isdst;
+ ]])],
+ [(TZ=QQQ0 ./conftest$EXEEXT) >/dev/null 2>&1 ||
+ gl_cv_func_localtime_infloop_bug=yes],
+ [],
+ [gl_cv_func_localtime_infloop_bug="guessing no"])])
+ if test "$gl_cv_func_localtime_infloop_bug" = yes; then
+ AC_DEFINE([HAVE_LOCALTIME_INFLOOP_BUG], 1,
+ [Define if localtime-like functions can loop forever on
+ extreme arguments.])
+ fi
+
AC_CHECK_TYPES([timezone_t], [], [], [[#include <time.h>]])
if test "$ac_cv_type_timezone_t" = yes; then
HAVE_TIMEZONE_T=1
# timegm.m4 serial 12
-dnl Copyright (C) 2003, 2007, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2007, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
#serial 15
-# Copyright (C) 2000-2001, 2003-2007, 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2003-2007, 2009-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# tm_gmtoff.m4 serial 3
-dnl Copyright (C) 2002, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# serial 8
+# serial 11
-# Copyright (C) 2003, 2007, 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2007, 2009-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
[
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_CACHE_CHECK([whether tzset clobbers localtime buffer],
- gl_cv_func_tzset_clobber,
- [
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ [gl_cv_func_tzset_clobber],
+ [AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <time.h>
#include <stdlib.h>
[gl_cv_func_tzset_clobber=no],
[gl_cv_func_tzset_clobber=yes],
[case "$host_os" in
- # Guess all is fine on glibc systems.
- *-gnu*) gl_cv_func_tzset_clobber="guessing no" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_tzset_clobber="guessing yes" ;;
+ # Guess all is fine on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_tzset_clobber="guessing no" ;;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_tzset_clobber="guessing no" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_tzset_clobber="guessing yes" ;;
esac
- ])])
+ ])
+ ])
AC_DEFINE([HAVE_RUN_TZSET_TEST], [1],
[Define to 1 if you have run the test for working tzset.])
-# unistd_h.m4 serial 70
-dnl Copyright (C) 2006-2017 Free Software Foundation, Inc.
+# unistd_h.m4 serial 74
+dnl Copyright (C) 2006-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# include <fcntl.h>
# include <stdio.h>
# include <stdlib.h>
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# if defined _WIN32 && ! defined __CYGWIN__
# include <io.h>
# endif
#endif
]], [chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat
fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups
- gethostname getlogin getlogin_r getpagesize
+ gethostname getlogin getlogin_r getpagesize getpass
getusershell setusershell endusershell
group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite
readlink readlinkat rmdir sethostname sleep symlink symlinkat
GNULIB_GETLOGIN=0; AC_SUBST([GNULIB_GETLOGIN])
GNULIB_GETLOGIN_R=0; AC_SUBST([GNULIB_GETLOGIN_R])
GNULIB_GETPAGESIZE=0; AC_SUBST([GNULIB_GETPAGESIZE])
+ GNULIB_GETPASS=0; AC_SUBST([GNULIB_GETPASS])
GNULIB_GETUSERSHELL=0; AC_SUBST([GNULIB_GETUSERSHELL])
GNULIB_GROUP_MEMBER=0; AC_SUBST([GNULIB_GROUP_MEMBER])
GNULIB_ISATTY=0; AC_SUBST([GNULIB_ISATTY])
HAVE_GETHOSTNAME=1; AC_SUBST([HAVE_GETHOSTNAME])
HAVE_GETLOGIN=1; AC_SUBST([HAVE_GETLOGIN])
HAVE_GETPAGESIZE=1; AC_SUBST([HAVE_GETPAGESIZE])
+ HAVE_GETPASS=1; AC_SUBST([HAVE_GETPASS])
HAVE_GROUP_MEMBER=1; AC_SUBST([HAVE_GROUP_MEMBER])
HAVE_LCHOWN=1; AC_SUBST([HAVE_LCHOWN])
HAVE_LINK=1; AC_SUBST([HAVE_LINK])
HAVE_SLEEP=1; AC_SUBST([HAVE_SLEEP])
HAVE_SYMLINK=1; AC_SUBST([HAVE_SYMLINK])
HAVE_SYMLINKAT=1; AC_SUBST([HAVE_SYMLINKAT])
- HAVE_TRUNCATE=1; AC_SUBST([HAVE_TRUNCATE])
HAVE_UNLINKAT=1; AC_SUBST([HAVE_UNLINKAT])
HAVE_USLEEP=1; AC_SUBST([HAVE_USLEEP])
HAVE_DECL_ENVIRON=1; AC_SUBST([HAVE_DECL_ENVIRON])
HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE])
HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL])
HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME])
+ HAVE_DECL_TRUNCATE=1; AC_SUBST([HAVE_DECL_TRUNCATE])
HAVE_DECL_TTYNAME_R=1; AC_SUBST([HAVE_DECL_TTYNAME_R])
HAVE_OS_H=0; AC_SUBST([HAVE_OS_H])
HAVE_SYS_PARAM_H=0; AC_SUBST([HAVE_SYS_PARAM_H])
REPLACE_CLOSE=0; AC_SUBST([REPLACE_CLOSE])
REPLACE_DUP=0; AC_SUBST([REPLACE_DUP])
REPLACE_DUP2=0; AC_SUBST([REPLACE_DUP2])
+ REPLACE_FACCESSAT=0; AC_SUBST([REPLACE_FACCESSAT])
REPLACE_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT])
REPLACE_FTRUNCATE=0; AC_SUBST([REPLACE_FTRUNCATE])
REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD])
REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R])
REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS])
REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE])
+ REPLACE_GETPASS=0; AC_SUBST([REPLACE_GETPASS])
REPLACE_ISATTY=0; AC_SUBST([REPLACE_ISATTY])
REPLACE_LCHOWN=0; AC_SUBST([REPLACE_LCHOWN])
REPLACE_LINK=0; AC_SUBST([REPLACE_LINK])
# unlocked-io.m4 serial 15
-# Copyright (C) 1998-2006, 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 1998-2006, 2009-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# From Paul Eggert
-# Copyright (C) 2001, 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2009-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
ac_cv_c_vararrays,
[AC_EGREP_CPP([defined],
[#ifdef __STDC_NO_VLA__
- defined
- #endif
+ defined
+ #endif
],
[ac_cv_c_vararrays='no: __STDC_NO_VLA__ is defined'],
[AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[/* Test for VLA support. This test is partly inspired
- from examples in the C standard. Use at least two VLA
- functions to detect the GCC 3.4.3 bug described in:
- http://lists.gnu.org/archive/html/bug-gnulib/2014-08/msg00014.html
- */
- #ifdef __STDC_NO_VLA__
- syntax error;
- #else
- extern int n;
- int B[100];
- int fvla (int m, int C[m][m]);
+ [AC_LANG_PROGRAM(
+ [[/* Test for VLA support. This test is partly inspired
+ from examples in the C standard. Use at least two VLA
+ functions to detect the GCC 3.4.3 bug described in:
+ https://lists.gnu.org/r/bug-gnulib/2014-08/msg00014.html
+ */
+ #ifdef __STDC_NO_VLA__
+ syntax error;
+ #else
+ extern int n;
+ int B[100];
+ int fvla (int m, int C[m][m]);
- int
- simple (int count, int all[static count])
- {
- return all[count - 1];
- }
+ int
+ simple (int count, int all[static count])
+ {
+ return all[count - 1];
+ }
- int
- fvla (int m, int C[m][m])
- {
- typedef int VLA[m][m];
- VLA x;
- int D[m];
- static int (*q)[m] = &B;
- int (*s)[n] = q;
- return C && &x[0][0] == &D[0] && &D[0] == s[0];
- }
- #endif
- ]])],
- [ac_cv_c_vararrays=yes],
- [ac_cv_c_vararrays=no])])])
+ int
+ fvla (int m, int C[m][m])
+ {
+ typedef int VLA[m][m];
+ VLA x;
+ int D[m];
+ static int (*q)[m] = &B;
+ int (*s)[n] = q;
+ return C && &x[0][0] == &D[0] && &D[0] == s[0];
+ }
+ #endif
+ ]])],
+ [ac_cv_c_vararrays=yes],
+ [ac_cv_c_vararrays=no])])])
if test "$ac_cv_c_vararrays" = yes; then
dnl This is for compatibility with Autoconf 2.61-2.69.
AC_DEFINE([HAVE_C_VARARRAYS], 1,
# vasnprintf.m4 serial 36
-dnl Copyright (C) 2002-2004, 2006-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2004, 2006-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# vasprintf.m4 serial 6
-dnl Copyright (C) 2002-2003, 2006-2007, 2009-2017 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2006-2007, 2009-2018 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
# version-etc.m4 serial 1
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# warn-on-use.m4 serial 5
-dnl Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# warn-on-use.m4 serial 6
+dnl Copyright (C) 2010-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# gl_WARN_ON_USE_PREPARE(INCLUDES, NAMES)
# ---------------------------------------
+# If the module 'posixcheck' is in use:
+#
# For each whitespace-separated element in the list of NAMES, define
# HAVE_RAW_DECL_name if the function has a declaration among INCLUDES
# even after being undefined as a macro.
# needing gl_WARN_ON_USE_PREPARE.
AC_DEFUN([gl_WARN_ON_USE_PREPARE],
[
- m4_foreach_w([gl_decl], [$2],
- [AH_TEMPLATE([HAVE_RAW_DECL_]AS_TR_CPP(m4_defn([gl_decl])),
- [Define to 1 if ]m4_defn([gl_decl])[ is declared even after
- undefining macros.])])dnl
+ m4_ifdef([gl_POSIXCHECK],
+ [m4_foreach_w([gl_decl], [$2],
+ [AH_TEMPLATE([HAVE_RAW_DECL_]AS_TR_CPP(m4_defn([gl_decl])),
+ [Define to 1 if ]m4_defn([gl_decl])[ is declared even after
+ undefining macros.])])dnl
dnl FIXME: gl_Symbol must be used unquoted until we can assume
dnl autoconf 2.64 or newer.
- for gl_func in m4_flatten([$2]); do
- AS_VAR_PUSHDEF([gl_Symbol], [gl_cv_have_raw_decl_$gl_func])dnl
- AC_CACHE_CHECK([whether $gl_func is declared without a macro],
- gl_Symbol,
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$1],
+ for gl_func in m4_flatten([$2]); do
+ AS_VAR_PUSHDEF([gl_Symbol], [gl_cv_have_raw_decl_$gl_func])dnl
+ AC_CACHE_CHECK([whether $gl_func is declared without a macro],
+ gl_Symbol,
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$1],
[@%:@undef $gl_func
(void) $gl_func;])],
- [AS_VAR_SET(gl_Symbol, [yes])], [AS_VAR_SET(gl_Symbol, [no])])])
- AS_VAR_IF(gl_Symbol, [yes],
- [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1])
- dnl shortcut - if the raw declaration exists, then set a cache
- dnl variable to allow skipping any later AC_CHECK_DECL efforts
- eval ac_cv_have_decl_$gl_func=yes])
- AS_VAR_POPDEF([gl_Symbol])dnl
- done
+ [AS_VAR_SET(gl_Symbol, [yes])], [AS_VAR_SET(gl_Symbol, [no])])])
+ AS_VAR_IF(gl_Symbol, [yes],
+ [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1])
+ dnl shortcut - if the raw declaration exists, then set a cache
+ dnl variable to allow skipping any later AC_CHECK_DECL efforts
+ eval ac_cv_have_decl_$gl_func=yes])
+ AS_VAR_POPDEF([gl_Symbol])dnl
+ done
+ ])
])
-# warnings.m4 serial 11
-dnl Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# warnings.m4 serial 14
+dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# -----------------------------------------------------------------
# Check if the compiler supports OPTION when compiling PROGRAM.
#
-# FIXME: gl_Warn must be used unquoted until we can assume Autoconf
-# 2.64 or newer.
+# The effects of this macro depend on the current language (_AC_LANG).
AC_DEFUN([gl_COMPILER_OPTION_IF],
-[AS_VAR_PUSHDEF([gl_Warn], [gl_cv_warn_[]_AC_LANG_ABBREV[]_$1])dnl
+[
+dnl FIXME: gl_Warn must be used unquoted until we can assume Autoconf
+dnl 2.64 or newer.
+AS_VAR_PUSHDEF([gl_Warn], [gl_cv_warn_[]_AC_LANG_ABBREV[]_$1])dnl
AS_VAR_PUSHDEF([gl_Flags], [_AC_LANG_PREFIX[]FLAGS])dnl
AS_LITERAL_IF([$1],
[m4_pushdef([gl_Positive], m4_bpatsubst([$1], [^-Wno-], [-W]))],
# ------------------------------
# Clang doesn't complain about unknown warning options unless one also
# specifies -Wunknown-warning-option -Werror. Detect this.
+#
+# The effects of this macro depend on the current language (_AC_LANG).
AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS],
+[_AC_LANG_DISPATCH([$0], _AC_LANG, $@)])
+
+# Specialization for _AC_LANG = C. This macro can be AC_REQUIREd.
+# Use of m4_defun rather than AC_DEFUN works around a bug in autoconf < 2.63b.
+m4_defun([gl_UNKNOWN_WARNINGS_ARE_ERRORS(C)],
+[
+ AC_LANG_PUSH([C])
+ gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL
+ AC_LANG_POP([C])
+])
+
+# Specialization for _AC_LANG = C++. This macro can be AC_REQUIREd.
+# Use of m4_defun rather than AC_DEFUN works around a bug in autoconf < 2.63b.
+m4_defun([gl_UNKNOWN_WARNINGS_ARE_ERRORS(C++)],
+[
+ AC_LANG_PUSH([C++])
+ gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL
+ AC_LANG_POP([C++])
+])
+
+# Specialization for _AC_LANG = Objective C. This macro can be AC_REQUIREd.
+# Use of m4_defun rather than AC_DEFUN works around a bug in autoconf < 2.63b.
+m4_defun([gl_UNKNOWN_WARNINGS_ARE_ERRORS(Objective C)],
+[
+ AC_LANG_PUSH([Objective C])
+ gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL
+ AC_LANG_POP([Objective C])
+])
+
+AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL],
[gl_COMPILER_OPTION_IF([-Werror -Wunknown-warning-option],
[gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'],
[gl_unknown_warnings_are_errors=])])
-# gl_WARN_ADD(OPTION, [VARIABLE = WARN_CFLAGS],
+# gl_WARN_ADD(OPTION, [VARIABLE = WARN_CFLAGS/WARN_CXXFLAGS],
# [PROGRAM = AC_LANG_PROGRAM()])
-# ---------------------------------------------
-# Adds parameter to WARN_CFLAGS if the compiler supports it when
-# compiling PROGRAM. For example, gl_WARN_ADD([-Wparentheses]).
+# -----------------------------------------------------------
+# Adds parameter to WARN_CFLAGS/WARN_CXXFLAGS if the compiler supports it
+# when compiling PROGRAM. For example, gl_WARN_ADD([-Wparentheses]).
#
# If VARIABLE is a variable name, AC_SUBST it.
+#
+# The effects of this macro depend on the current language (_AC_LANG).
AC_DEFUN([gl_WARN_ADD],
-[AC_REQUIRE([gl_UNKNOWN_WARNINGS_ARE_ERRORS])
+[AC_REQUIRE([gl_UNKNOWN_WARNINGS_ARE_ERRORS(]_AC_LANG[)])
gl_COMPILER_OPTION_IF([$1],
- [gl_AS_VAR_APPEND(m4_if([$2], [], [[WARN_CFLAGS]], [[$2]]), [" $1"])],
+ [gl_AS_VAR_APPEND(m4_if([$2], [], [[WARN_]_AC_LANG_PREFIX[FLAGS]], [[$2]]), [" $1"])],
[],
[$3])
m4_ifval([$2],
[AS_LITERAL_IF([$2], [AC_SUBST([$2])])],
- [AC_SUBST([WARN_CFLAGS])])dnl
+ [AC_SUBST([WARN_]_AC_LANG_PREFIX[FLAGS])])dnl
])
# Local Variables:
dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues.
-dnl Copyright (C) 2007-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl Written by Eric Blake.
-# wchar_h.m4 serial 42
+# wchar_h.m4 serial 43
AC_DEFUN([gl_WCHAR_H],
[
AC_DEFUN([gl_WCHAR_H_INLINE_OK],
[
dnl Test whether <wchar.h> suffers due to the transition from '__inline' to
- dnl 'gnu_inline'. See <http://sourceware.org/bugzilla/show_bug.cgi?id=4022>
- dnl and <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42440>. In summary,
+ dnl 'gnu_inline'. See <https://sourceware.org/bugzilla/show_bug.cgi?id=4022>
+ dnl and <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42440>. In summary,
dnl glibc version 2.5 or older, together with gcc version 4.3 or newer and
dnl the option -std=c99 or -std=gnu99, leads to a broken <wchar.h>.
AC_CACHE_CHECK([whether <wchar.h> uses 'inline' correctly],
dnl that the object file has the latter name from the start.
save_ac_compile="$ac_compile"
ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest1/`
- if AC_TRY_EVAL([ac_compile]); then
+ if echo '#include "conftest.c"' >conftest1.c &&
+ AC_TRY_EVAL([ac_compile]); then
AC_LANG_CONFTEST([
AC_LANG_SOURCE([[#define wcstod renamed_wcstod
/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
]])])
dnl See note above about renaming object files.
ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest2/`
- if AC_TRY_EVAL([ac_compile]); then
+ if echo '#include "conftest.c"' >conftest2.c &&
+ AC_TRY_EVAL([ac_compile]); then
if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&AS_MESSAGE_LOG_FD 2>&1; then
:
else
fi
fi
ac_compile="$save_ac_compile"
- rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext
+ rm -f conftest[12].c conftest[12].$ac_objext conftest$ac_exeext
])
if test $gl_cv_header_wchar_h_correct_inline = no; then
AC_MSG_ERROR([<wchar.h> cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS).
C99 mode. You have four options:
- Add the flag -fgnu89-inline to CC and reconfigure, or
- Fix your include files, using parts of
- <http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=b037a293a48718af30d706c2e18c929d0e69a621>, or
+ <https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=b037a293a48718af30d706c2e18c929d0e69a621>, or
- Use a gcc version older than 4.3, or
- Don't use the flags -std=c99 or -std=gnu99.
Configuration aborted.])
# wchar_t.m4 serial 4 (gettext-0.18.2)
-dnl Copyright (C) 2002-2003, 2008-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2003, 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# wcrtomb.m4 serial 11
-dnl Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# wcrtomb.m4 serial 13
+dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
if test $REPLACE_MBSTATE_T = 1; then
REPLACE_WCRTOMB=1
else
- dnl On AIX 4.3, OSF/1 5.1 and Solaris 10, wcrtomb (NULL, 0, NULL) sometimes
- dnl returns 0 instead of 1.
+ dnl On AIX 4.3, OSF/1 5.1 and Solaris <= 11.3, wcrtomb (NULL, 0, NULL)
+ dnl sometimes returns 0 instead of 1.
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([gt_LOCALE_FR])
AC_REQUIRE([gt_LOCALE_FR_UTF8])
case "$host_os" in
# Guess no on AIX 4, OSF/1 and Solaris.
aix4* | osf* | solaris*) gl_cv_func_wcrtomb_retval="guessing no" ;;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_wcrtomb_retval="guessing yes" ;;
# Guess yes otherwise.
*) gl_cv_func_wcrtomb_retval="guessing yes" ;;
esac
-# wctob.m4 serial 10
-dnl Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# wctob.m4 serial 11
+dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl Solaris 9 has the wctob() function but it does not work.
dnl Cygwin 1.7.2 has the wctob() function but it clobbers caller-owned
- dnl registers, see <http://cygwin.com/ml/cygwin/2010-05/msg00015.html>.
+ dnl registers, see <https://cygwin.com/ml/cygwin/2010-05/msg00015.html>.
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([gt_LOCALE_FR])
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
# Guess no on Solaris <= 9 and Cygwin.
solaris2.[1-9] | solaris2.[1-9].* | cygwin*)
gl_cv_func_wctob_works="guessing no" ;;
+ # Guess no on native Windows.
+ mingw*)
+ gl_cv_func_wctob_works="guessing no" ;;
# Guess yes otherwise.
*) gl_cv_func_wctob_works="guessing yes" ;;
esac
# wctomb.m4 serial 2
-dnl Copyright (C) 2011-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
-# wctype_h.m4 serial 20
+# wctype_h.m4 serial 21
dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it.
-dnl Copyright (C) 2006-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
int main () { return iswprint ('x') == 0; }
]])],
[gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no],
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
+ [dnl Guess no on Linux libc5, yes otherwise.
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
#if __GNU_LIBRARY__ == 1
Linux libc5 i18n is broken.
#endif]], [])],
-# wcwidth.m4 serial 23
-dnl Copyright (C) 2006-2017 Free Software Foundation, Inc.
+# wcwidth.m4 serial 27
+dnl Copyright (C) 2006-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
HAVE_DECL_WCWIDTH=0
fi
- if test $ac_cv_func_wcwidth = yes; then
+ if test $ac_cv_func_wcwidth != yes; then
+ AC_CACHE_CHECK([whether wcwidth is a macro],
+ [gl_cv_func_wcwidth_macro],
+ [AC_EGREP_CPP([wchar_header_defines_wcwidth], [
+#include <wchar.h>
+#ifdef wcwidth
+ wchar_header_defines_wcwidth
+#endif],
+ [gl_cv_func_wcwidth_macro=yes],
+ [gl_cv_func_wcwidth_macro=no])
+ ])
+ fi
+
+ if test $ac_cv_func_wcwidth = yes || test $gl_cv_func_wcwidth_macro = yes; then
HAVE_WCWIDTH=1
dnl On Mac OS X 10.3, wcwidth(0x0301) (COMBINING ACUTE ACCENT) returns 1.
dnl On OpenBSD 5.0, wcwidth(0x05B0) (HEBREW POINT SHEVA) returns 1.
[
changequote(,)dnl
case "$host_os" in
- # Guess yes on glibc and AIX 7 systems.
- *-gnu* | aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";;
- *) gl_cv_func_wcwidth_works="guessing no";;
+ # Guess yes on glibc and AIX 7 systems.
+ *-gnu* | gnu* | aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";;
+ *) gl_cv_func_wcwidth_works="guessing no";;
esac
changequote([,])dnl
])
dnl We don't substitute HAVE_WCWIDTH. We assume that if the system does not
dnl have the wcwidth function, then it does not declare it.
])
+
+# Prerequisites of lib/wcwidth.c.
+AC_DEFUN([gl_PREREQ_WCWIDTH], [
+ AC_REQUIRE([AC_C_INLINE])
+ :
+])
# wint_t.m4 serial 7
-dnl Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2007-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# xalloc.m4 serial 18
-dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# xsize.m4 serial 5
-dnl Copyright (C) 2003-2004, 2008-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2003-2004, 2008-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# xstrndup.m4 serial 2
-dnl Copyright (C) 2003, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
#serial 11
-dnl Copyright (C) 2002-2007, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2007, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# xvasprintf.m4 serial 2
-dnl Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2009-2018 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# This Makefile fragment tries to be general-purpose enough to be
# used by many projects via the gnulib maintainer-makefile module.
-## Copyright (C) 2001-2017 Free Software Foundation, Inc.
+## Copyright (C) 2001-2018 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
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
-## along with this program. If not, see <http://www.gnu.org/licenses/>.
+## along with this program. If not, see <https://www.gnu.org/licenses/>.
# This is reported not to work with make-3.79.1
# ME := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
gnu_rel_host ?= $(gnu_ftp_host-$(release-type))
url_dir_list ?= $(if $(call _equal,$(gnu_rel_host),ftp.gnu.org), \
- http://ftpmirror.gnu.org/$(PACKAGE), \
- ftp://$(gnu_rel_host)/gnu/$(PACKAGE))
+ https://ftpmirror.gnu.org/$(PACKAGE), \
+ https://$(gnu_rel_host)/gnu/$(PACKAGE))
# Override this in cfg.mk if you are using a different format in your
# NEWS file.
sc_file_system:
@prohibit=file''system \
+ exclude='/proc/filesystems' \
ignore_case=1 \
halt='found use of "file''system"; spell it "file system"' \
$(_sc_search_regexp)
@h='posixver.h' re='\<posix2_version *\(' $(_sc_header_without_use)
sc_prohibit_same_without_use:
- @h='same.h' re='\<same_name *\(' $(_sc_header_without_use)
+ @h='same.h' re='\<same_name(at)? *\(' $(_sc_header_without_use)
sc_prohibit_hash_pjw_without_use:
@h='hash-pjw.h' \
$(_sc_search_regexp)
# Don't use Texinfo's @acronym{}.
-# http://lists.gnu.org/archive/html/bug-gnulib/2010-03/msg00321.html
+# https://lists.gnu.org/r/bug-gnulib/2010-03/msg00321.html
texinfo_suffix_re_ ?= \.(txi|texi(nfo)?)$$
sc_texinfo_acronym:
@prohibit='@acronym\{' \
halt=$$(printf '%s\n' \
'the above files are vulnerable; beware of running' \
' "make dist*" rules, and upgrade to fixed automake' \
- ' see http://bugzilla.redhat.com/542609 for details') \
+ ' see https://bugzilla.redhat.com/show_bug.cgi?id=542609 for details') \
$(_sc_search_regexp)
sc_vulnerable_makefile_CVE-2012-3386:
halt=$$(printf '%s\n' \
'the above files are vulnerable; beware of running' \
' "make distcheck", and upgrade to fixed automake' \
- ' see http://bugzilla.redhat.com/CVE-2012-3386 for details') \
+ ' see https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2012-3386 for details') \
$(_sc_search_regexp)
vc-diff-check:
## Updating files. ##
## ---------------- ##
-ftp-gnu = ftp://ftp.gnu.org/gnu
-www-gnu = http://www.gnu.org
+ftp-gnu = https://ftp.gnu.org/gnu
+www-gnu = https://www.gnu.org
upload_dest_dir_ ?= $(PACKAGE)
upload_command = \
# Update gettext files.
PACKAGE ?= $(shell basename $(PWD))
PO_DOMAIN ?= $(PACKAGE)
-POURL = http://translationproject.org/latest/$(PO_DOMAIN)/
+POURL = https://translationproject.org/latest/$(PO_DOMAIN)/
PODIR ?= po
refresh-po:
rm -f $(PODIR)/*.po && \
# Automakefile for GNU diffutils man pages
-# Copyright (C) 2002, 2009-2013, 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2009-2013, 2015-2018 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
-# Makefile.in generated by automake 1.99a from Makefile.am.
+# Makefile.in generated by automake 1.16a from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2015 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Automakefile for GNU diffutils man pages
-# Copyright (C) 2002, 2009-2013, 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2009-2013, 2015-2018 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
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
subdir = man
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
+ $(top_srcdir)/m4/__inline.m4 \
$(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
$(top_srcdir)/m4/arpa_inet_h.m4 $(top_srcdir)/m4/btowc.m4 \
$(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-stack.m4 \
$(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/close.m4 \
$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
- $(top_srcdir)/m4/configmake.m4 $(top_srcdir)/m4/ctype.m4 \
- $(top_srcdir)/m4/dirname.m4 \
+ $(top_srcdir)/m4/ctype.m4 $(top_srcdir)/m4/dirname.m4 \
$(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \
$(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \
$(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \
$(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \
$(top_srcdir)/m4/fdopen.m4 $(top_srcdir)/m4/filenamecat.m4 \
$(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
- $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpieee.m4 \
- $(top_srcdir)/m4/freopen.m4 $(top_srcdir)/m4/fstat.m4 \
- $(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/getcwd.m4 \
- $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getopt.m4 \
- $(top_srcdir)/m4/getpagesize.m4 \
+ $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fnmatch_h.m4 \
+ $(top_srcdir)/m4/fpieee.m4 $(top_srcdir)/m4/freopen.m4 \
+ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/ftruncate.m4 \
+ $(top_srcdir)/m4/getcwd.m4 $(top_srcdir)/m4/getdtablesize.m4 \
+ $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/getpagesize.m4 \
$(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnu-make.m4 \
$(top_srcdir)/m4/gnulib-common.m4 \
$(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \
+ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \
$(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inet_pton.m4 \
$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/intlmacosx.m4 \
$(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbslen.m4 \
$(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \
$(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
- $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mkstemp.m4 \
- $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \
- $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \
+ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mkdir.m4 \
+ $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \
+ $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \
+ $(top_srcdir)/m4/msvc-inval.m4 \
$(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
$(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/netinet_in_h.m4 \
$(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \
+ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/nstrftime.m4 \
+ $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open-cloexec.m4 \
$(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/pathmax.m4 \
$(top_srcdir)/m4/perror.m4 $(top_srcdir)/m4/pipe.m4 \
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
$(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
$(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
$(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/regex.m4 \
- $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/select.m4 \
- $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale.m4 \
- $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \
+ $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/setenv.m4 \
+ $(top_srcdir)/m4/setlocale.m4 $(top_srcdir)/m4/sigaction.m4 \
+ $(top_srcdir)/m4/signal_h.m4 \
$(top_srcdir)/m4/signalblocking.m4 \
$(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
$(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
$(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
$(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
- $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/strftime.m4 \
- $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strings_h.m4 \
- $(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
- $(top_srcdir)/m4/strptime.m4 $(top_srcdir)/m4/strtoull.m4 \
- $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
- $(top_srcdir)/m4/sys_ioctl_h.m4 \
+ $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \
+ $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strndup.m4 \
+ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strptime.m4 \
+ $(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \
+ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_ioctl_h.m4 \
$(top_srcdir)/m4/sys_select_h.m4 \
$(top_srcdir)/m4/sys_socket_h.m4 \
$(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
am__DIST_COMMON = $(dist_man1_MANS) $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-pkglibexecdir = @pkglibexecdir@
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
ALLOCA_H = @ALLOCA_H@
GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
GNULIB_ENVIRON = @GNULIB_ENVIRON@
GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
+GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@
GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
GNULIB_FCHDIR = @GNULIB_FCHDIR@
GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
GNULIB_FFSLL = @GNULIB_FFSLL@
GNULIB_FGETC = @GNULIB_FGETC@
GNULIB_FGETS = @GNULIB_FGETS@
+GNULIB_FNMATCH = @GNULIB_FNMATCH@
GNULIB_FOPEN = @GNULIB_FOPEN@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETPASS = @GNULIB_GETPASS@
GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@
GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@
GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@
GNULIB_LINKAT = @GNULIB_LINKAT@
GNULIB_LISTEN = @GNULIB_LISTEN@
GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
+GNULIB_LOCALENAME = @GNULIB_LOCALENAME@
GNULIB_LOCALTIME = @GNULIB_LOCALTIME@
GNULIB_LSEEK = @GNULIB_LSEEK@
GNULIB_LSTAT = @GNULIB_LSTAT@
GNULIB_READ = @GNULIB_READ@
GNULIB_READLINK = @GNULIB_READLINK@
GNULIB_READLINKAT = @GNULIB_READLINKAT@
+GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@
GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
GNULIB_REALPATH = @GNULIB_REALPATH@
GNULIB_RECV = @GNULIB_RECV@
HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@
+HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@
HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
+HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@
HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@
HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
HAVE_DUP3 = @HAVE_DUP3@
HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@
HAVE_FACCESSAT = @HAVE_FACCESSAT@
HAVE_FCHDIR = @HAVE_FCHDIR@
HAVE_FCHMODAT = @HAVE_FCHMODAT@
HAVE_FFS = @HAVE_FFS@
HAVE_FFSL = @HAVE_FFSL@
HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FNMATCH = @HAVE_FNMATCH@
+HAVE_FNMATCH_H = @HAVE_FNMATCH_H@
+HAVE_FREELOCALE = @HAVE_FREELOCALE@
HAVE_FSEEKO = @HAVE_FSEEKO@
HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
HAVE_GETLOGIN = @HAVE_GETLOGIN@
HAVE_GETOPT_H = @HAVE_GETOPT_H@
HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETPASS = @HAVE_GETPASS@
HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
HAVE_GRANTPT = @HAVE_GRANTPT@
HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
HAVE_ISBLANK = @HAVE_ISBLANK@
HAVE_ISWBLANK = @HAVE_ISWBLANK@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@
HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
+HAVE_NEWLOCALE = @HAVE_NEWLOCALE@
HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
HAVE_OPENAT = @HAVE_OPENAT@
HAVE_OS_H = @HAVE_OS_H@
HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
HAVE_READLINK = @HAVE_READLINK@
HAVE_READLINKAT = @HAVE_READLINKAT@
+HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@
HAVE_REALPATH = @HAVE_REALPATH@
HAVE_RENAMEAT = @HAVE_RENAMEAT@
HAVE_RPMATCH = @HAVE_RPMATCH@
HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
HAVE_TIMEGM = @HAVE_TIMEGM@
HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@
-HAVE_TRUNCATE = @HAVE_TRUNCATE@
HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
HAVE_TZSET = @HAVE_TZSET@
HAVE_UNISTD_H = @HAVE_UNISTD_H@
NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
+NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H@
NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@
NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
NEXT_ERRNO_H = @NEXT_ERRNO_H@
NEXT_FCNTL_H = @NEXT_FCNTL_H@
NEXT_FLOAT_H = @NEXT_FLOAT_H@
+NEXT_FNMATCH_H = @NEXT_FNMATCH_H@
NEXT_GETOPT_H = @NEXT_GETOPT_H@
NEXT_ICONV_H = @NEXT_ICONV_H@
NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
REPLACE_DUP = @REPLACE_DUP@
REPLACE_DUP2 = @REPLACE_DUP2@
REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_FACCESSAT = @REPLACE_FACCESSAT@
REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
REPLACE_FCLOSE = @REPLACE_FCLOSE@
REPLACE_FCNTL = @REPLACE_FCNTL@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FNMATCH = @REPLACE_FNMATCH@
REPLACE_FOPEN = @REPLACE_FOPEN@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_FPURGE = @REPLACE_FPURGE@
+REPLACE_FREELOCALE = @REPLACE_FREELOCALE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
REPLACE_FSEEK = @REPLACE_FSEEK@
REPLACE_FSEEKO = @REPLACE_FSEEKO@
REPLACE_GETLINE = @REPLACE_GETLINE@
REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_GETPASS = @REPLACE_GETPASS@
REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
REPLACE_GMTIME = @REPLACE_GMTIME@
REPLACE_ICONV = @REPLACE_ICONV@
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
REPLACE_MKTIME = @REPLACE_MKTIME@
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
+REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@
REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
REPLACE_NULL = @REPLACE_NULL@
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
am__include = @am__include@
+am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
-lispdir = @lispdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
cscope cscopelist:
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.4.
-.TH CMP "1" "May 2017" "diffutils 3.6" "User Commands"
+.TH GNU "1" "December 2018" "diffutils 3.7" "User Commands"
.SH NAME
-cmp \- compare two files byte by byte
+GNU cmp \- compare two files byte by byte
.SH SYNOPSIS
.B cmp
[\fIOPTION\fR]... \fIFILE1 \fR[\fIFILE2 \fR[\fISKIP1 \fR[\fISKIP2\fR]]]
.SH "REPORTING BUGS"
Report bugs to: bug\-diffutils@gnu.org
.br
-GNU diffutils home page: <http://www.gnu.org/software/diffutils/>
+GNU diffutils home page: <https://www.gnu.org/software/diffutils/>
.br
-General help using GNU software: <http://www.gnu.org/gethelp/>
+General help using GNU software: <https://www.gnu.org/gethelp/>
.SH COPYRIGHT
-Copyright \(co 2017 Free Software Foundation, Inc.
-License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
+Copyright \(co 2018 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
.br
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
diff(1), diff3(1), sdiff(1)
.PP
The full documentation for
-.B cmp
+.B GNU
is maintained as a Texinfo manual. If the
.B info
and
-.B cmp
+.B GNU
programs are properly installed at your site, the command
.IP
-.B info cmp
+.B info GNU
.PP
should give you access to the complete manual.
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.4.
-.TH DIFF "1" "May 2017" "diffutils 3.6" "User Commands"
+.TH GNU "1" "December 2018" "diffutils 3.7" "User Commands"
.SH NAME
-diff \- compare files line by line
+GNU diff \- compare files line by line
.SH SYNOPSIS
.B diff
[\fIOPTION\fR]... \fIFILES\fR
.SH "REPORTING BUGS"
Report bugs to: bug\-diffutils@gnu.org
.br
-GNU diffutils home page: <http://www.gnu.org/software/diffutils/>
+GNU diffutils home page: <https://www.gnu.org/software/diffutils/>
.br
-General help using GNU software: <http://www.gnu.org/gethelp/>
+General help using GNU software: <https://www.gnu.org/gethelp/>
.SH COPYRIGHT
-Copyright \(co 2017 Free Software Foundation, Inc.
-License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
+Copyright \(co 2018 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
.br
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
wdiff(1), cmp(1), diff3(1), sdiff(1), patch(1)
.PP
The full documentation for
-.B diff
+.B GNU
is maintained as a Texinfo manual. If the
.B info
and
-.B diff
+.B GNU
programs are properly installed at your site, the command
.IP
-.B info diff
+.B info GNU
.PP
should give you access to the complete manual.
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.4.
-.TH DIFF3 "1" "May 2017" "diffutils 3.6" "User Commands"
+.TH GNU "1" "December 2018" "diffutils 3.7" "User Commands"
.SH NAME
-diff3 \- compare three files line by line
+GNU diff3 \- compare three files line by line
.SH SYNOPSIS
.B diff3
[\fIOPTION\fR]... \fIMYFILE OLDFILE YOURFILE\fR
.SH "REPORTING BUGS"
Report bugs to: bug\-diffutils@gnu.org
.br
-GNU diffutils home page: <http://www.gnu.org/software/diffutils/>
+GNU diffutils home page: <https://www.gnu.org/software/diffutils/>
.br
-General help using GNU software: <http://www.gnu.org/gethelp/>
+General help using GNU software: <https://www.gnu.org/gethelp/>
.SH COPYRIGHT
-Copyright \(co 2017 Free Software Foundation, Inc.
-License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
+Copyright \(co 2018 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
.br
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
cmp(1), diff(1), sdiff(1)
.PP
The full documentation for
-.B diff3
+.B GNU
is maintained as a Texinfo manual. If the
.B info
and
-.B diff3
+.B GNU
programs are properly installed at your site, the command
.IP
-.B info diff3
+.B info GNU
.PP
should give you access to the complete manual.
#!/usr/bin/perl -w
# Generate a short man page from --help and --version output.
-# Copyright (C) 1997-2005, 2009-2011, 2013, 2015-2017 Free Software Foundation,
+# Copyright (C) 1997-2005, 2009-2011, 2013, 2015-2018 Free Software Foundation,
# Inc.
# This program is free software; you can redistribute it and/or modify
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.4.
-.TH SDIFF "1" "May 2017" "diffutils 3.6" "User Commands"
+.TH GNU "1" "December 2018" "diffutils 3.7" "User Commands"
.SH NAME
-sdiff \- side-by-side merge of file differences
+GNU sdiff \- side-by-side merge of file differences
.SH SYNOPSIS
.B sdiff
[\fIOPTION\fR]... \fIFILE1 FILE2\fR
.SH "REPORTING BUGS"
Report bugs to: bug\-diffutils@gnu.org
.br
-GNU diffutils home page: <http://www.gnu.org/software/diffutils/>
+GNU diffutils home page: <https://www.gnu.org/software/diffutils/>
.br
-General help using GNU software: <http://www.gnu.org/gethelp/>
+General help using GNU software: <https://www.gnu.org/gethelp/>
.SH COPYRIGHT
-Copyright \(co 2017 Free Software Foundation, Inc.
-License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
+Copyright \(co 2018 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
.br
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
cmp(1), diff(1), diff3(1)
.PP
The full documentation for
-.B sdiff
+.B GNU
is maintained as a Texinfo manual. If the
.B info
and
-.B sdiff
+.B GNU
programs are properly installed at your site, the command
.IP
-.B info sdiff
+.B info GNU
.PP
should give you access to the complete manual.
+bg
ca
cs
da
nb
nl
pl
+pt
pt_BR
ro
ru
# List of files that contain translatable strings.
-# Copyright (C) 2001-2002, 2009-2013, 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2002, 2009-2013, 2015-2018 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
--- /dev/null
+# Bulgarian translation of GNU diffutils po-file.
+# Copyright (C) 2017, 2018 Free Software Foundation, Inc.
+# This file is distributed under the same license as the diffutils package.
+# Alexander Shopov <ash@kambanaria.org>, 2017, 2018.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: diffutils 3.6.17\n"
+"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
+"PO-Revision-Date: 2018-12-27 17:27+0100\n"
+"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
+"Language-Team: Bulgarian <dict@ludost.net>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "аргументът „%s“ на опцията „%s“ е неправилен"
+
+#: lib/argmatch.c:135
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "аргументът „%s“ на опцията „%s“ не е еднозначен"
+
+#: lib/argmatch.c:154
+msgid "Valid arguments are:"
+msgstr "Възможните аргументи са:"
+
+#: lib/c-stack.c:208 lib/c-stack.c:301
+msgid "program error"
+msgstr "програмна грешка"
+
+#: lib/c-stack.c:209 lib/c-stack.c:302
+msgid "stack overflow"
+msgstr "препълване на стека"
+
+#: lib/error.c:195
+msgid "Unknown system error"
+msgstr "Неизвестна системна грешка"
+
+#: lib/file-type.c:40
+msgid "regular empty file"
+msgstr "празен, обикновен файл"
+
+#: lib/file-type.c:40
+msgid "regular file"
+msgstr "обикновен файл"
+
+#: lib/file-type.c:43
+msgid "directory"
+msgstr "директория"
+
+#: lib/file-type.c:46
+msgid "symbolic link"
+msgstr "символна връзка"
+
+#: lib/file-type.c:52
+msgid "message queue"
+msgstr "опашка за съобщения"
+
+#: lib/file-type.c:55
+msgid "semaphore"
+msgstr "семафор"
+
+#: lib/file-type.c:58
+msgid "shared memory object"
+msgstr "споделен обект в паметта"
+
+#: lib/file-type.c:61
+msgid "typed memory object"
+msgstr "типов обект в паметта"
+
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "блоков специален файл"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "знаков специален сайт"
+
+#: lib/file-type.c:72
+msgid "contiguous data"
+msgstr "последователни данни"
+
+#: lib/file-type.c:75
+msgid "fifo"
+msgstr "програмен канал"
+
+#: lib/file-type.c:78
+msgid "door"
+msgstr "порта"
+
+#: lib/file-type.c:81
+msgid "multiplexed block special file"
+msgstr "мултиплексиран блоков специален файл"
+
+#: lib/file-type.c:84
+msgid "multiplexed character special file"
+msgstr "мултиплексиран знаков специален файл"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr "мултиплексиран файл"
+
+#: lib/file-type.c:90
+msgid "named file"
+msgstr "именован файл"
+
+#: lib/file-type.c:93
+msgid "network special file"
+msgstr "мрежов специален файл"
+
+#: lib/file-type.c:96
+msgid "migrated file with data"
+msgstr "мигриран файл с данни"
+
+#: lib/file-type.c:99
+msgid "migrated file without data"
+msgstr "мигриран файл без данни"
+
+#: lib/file-type.c:102
+msgid "port"
+msgstr "порт"
+
+#: lib/file-type.c:105
+msgid "socket"
+msgstr "гнездо"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr "припокриващо изтриване"
+
+#: lib/file-type.c:110
+msgid "weird file"
+msgstr "странен файл"
+
+#: lib/getopt.c:278
+#, c-format
+msgid "%s: option '%s%s' is ambiguous\n"
+msgstr "%s: опцията „%s%s“ не е еднозначна\n"
+
+#: lib/getopt.c:284
+#, c-format
+msgid "%s: option '%s%s' is ambiguous; possibilities:"
+msgstr "%s: опцията „%s%s“ не е еднозначна. Възможности:"
+
+#: lib/getopt.c:319
+#, c-format
+msgid "%s: unrecognized option '%s%s'\n"
+msgstr "%s: непозната опция „%s%s“\n"
+
+#: lib/getopt.c:345
+#, c-format
+msgid "%s: option '%s%s' doesn't allow an argument\n"
+msgstr "%s: опцията „%s%s“ се използва без аргументи\n"
+
+#: lib/getopt.c:360
+#, c-format
+msgid "%s: option '%s%s' requires an argument\n"
+msgstr "%s: опцията „%s%s“ изисква аргумент\n"
+
+#: lib/getopt.c:621
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: неправилна опция — „%c“\n"
+
+#: lib/getopt.c:636 lib/getopt.c:682
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: опцията изисква аргумент — „%c“\n"
+
+#. TRANSLATORS:
+#. 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
+#. "'". For example, a French Unicode local should translate
+#. these to U+00AB (LEFT-POINTING DOUBLE ANGLE
+#. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE
+#. QUOTATION MARK), respectively.
+#.
+#. If the catalog has no translation, we will try to
+#. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the
+#. current locale is not Unicode, locale_quoting_style
+#. will quote 'like this', and clocale_quoting_style will
+#. quote "like this". You should always include translations
+#. for "`" and "'" even if U+2018 and U+2019 are appropriate
+#. for your locale.
+#.
+#. If you don't know what to put here, please see
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:362
+msgid "`"
+msgstr "„"
+
+#: lib/quotearg.c:363
+msgid "'"
+msgstr "“"
+
+#: lib/regcomp.c:135
+msgid "Success"
+msgstr "Успех"
+
+#: lib/regcomp.c:138
+msgid "No match"
+msgstr "Няма съвпадения"
+
+#: lib/regcomp.c:141
+msgid "Invalid regular expression"
+msgstr "Неправилен регулярен израз"
+
+#: lib/regcomp.c:144
+msgid "Invalid collation character"
+msgstr "Неправилен знак за подредба"
+
+#: lib/regcomp.c:147
+msgid "Invalid character class name"
+msgstr "Неправилно име на клас знаци"
+
+#: lib/regcomp.c:150
+msgid "Trailing backslash"
+msgstr "Самотна „\\“ накрая"
+
+#: lib/regcomp.c:153
+msgid "Invalid back reference"
+msgstr "Неправилна препратка към съвпадение"
+
+#: lib/regcomp.c:156
+msgid "Unmatched [, [^, [:, [., or [="
+msgstr "„[“, „[^“, „[:“, „[.“ или „[=“ без еш"
+
+#: lib/regcomp.c:159
+msgid "Unmatched ( or \\("
+msgstr "„(“ или „\\(“ без еш"
+
+#: lib/regcomp.c:162
+msgid "Unmatched \\{"
+msgstr "„\\{“ без еш"
+
+#: lib/regcomp.c:165
+msgid "Invalid content of \\{\\}"
+msgstr "Неправилно съдържание в „\\{\\}“"
+
+#: lib/regcomp.c:168
+msgid "Invalid range end"
+msgstr "Неправилен край на диапазон"
+
+#: lib/regcomp.c:171
+msgid "Memory exhausted"
+msgstr "Паметта свърши"
+
+#: lib/regcomp.c:174
+msgid "Invalid preceding regular expression"
+msgstr "Предхождащият регулярен израз е неправилен"
+
+#: lib/regcomp.c:177
+msgid "Premature end of regular expression"
+msgstr "Ранен край на регулярен израз"
+
+#: lib/regcomp.c:180
+msgid "Regular expression too big"
+msgstr "Регулярният израз е прекалено голям"
+
+#: lib/regcomp.c:183
+msgid "Unmatched ) or \\)"
+msgstr "„)“ или „\\)“ без еш"
+
+#: lib/regcomp.c:688
+msgid "No previous regular expression"
+msgstr "Няма предхождащ регулярен израз"
+
+#: lib/xalloc-die.c:34
+msgid "memory exhausted"
+msgstr "паметта е изчерпана"
+
+#: lib/xfreopen.c:35
+msgid "stdin"
+msgstr "стандартен вход"
+
+#: lib/xfreopen.c:36
+msgid "stdout"
+msgstr "стандартен изход"
+
+#: lib/xfreopen.c:37
+msgid "stderr"
+msgstr "стандартна грешка"
+
+#: lib/xfreopen.c:38
+msgid "unknown stream"
+msgstr "непознат поток"
+
+#: lib/xfreopen.c:39
+#, c-format
+msgid "failed to reopen %s with mode %s"
+msgstr "файлът „%s“ не може да се отвори наново с режим „%s“"
+
+#: lib/xstrtol-error.c:63
+#, c-format
+msgid "invalid %s%s argument '%s'"
+msgstr "неправилен аргумент „%3$s“ за опцията „%1$s%2$s“"
+
+#: lib/xstrtol-error.c:68
+#, c-format
+msgid "invalid suffix in %s%s argument '%s'"
+msgstr "неправилен суфикс в аргумента „%3$s“ за опцията „%1$s%2$s“"
+
+#: lib/xstrtol-error.c:72
+#, c-format
+msgid "%s%s argument '%s' too large"
+msgstr "прекалено дълъг аргумент „%3$s“ за опцията „%1$s%2$s“"
+
+#: lib/version-etc.c:73
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Пакетирано от %s (%s)\n"
+
+#: lib/version-etc.c:76
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "Пакетирано от %s\n"
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale. Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:83
+msgid "(C)"
+msgstr "©"
+
+#: lib/version-etc.c:85
+msgid ""
+"\n"
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
+"html>.\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+"\n"
+"Лиценз — Общ публичен лиценз на GNU (GNU GPL), както е публикуван от "
+"Фондацията\n"
+"за свободен софтуер — версия 3 на лиценза или (по ваше решение) по-късна "
+"версия.\n"
+"<https://gnu.org/licenses/gpl.html>\n"
+"Тази програма е свободен софтуер. Можете да я разпространявате и/или "
+"променяте.\n"
+"Тя се разпространява БЕЗ НИКАКВИ ГАРАНЦИИ доколкото е позволено от закона.\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:102
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Създадено от %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:106
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr "Създадено от %s и %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:110
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr "Създадено от %s, %s и %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Създадено от %s, %s, %s\n"
+"и %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Създадено от %s, %s, %s,\n"
+"%s и %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:131
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Създадено от %s, %s, %s,\n"
+"%s, %s и %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:139
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Създадено от %s, %s, %s,\n"
+"%s, %s, %s и %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:147
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Създадено от %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"и %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:156
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Създадено от %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s и %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:167
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+"Създадено от %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s и др.\n"
+
+#. TRANSLATORS: The placeholder indicates the bug-reporting address
+#. for this package. Please add _another line_ saying
+#. "Report translation bugs to <...>\n" with the address for translation
+#. bugs (typically your translation team's web or email address).
+#: lib/version-etc.c:245
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Докладвайте грешки в програмата на адрес: %s\n"
+"Докладвайте грешки в превода на адрес: <dict@ludost.net>\n"
+
+#: lib/version-etc.c:247
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Докладвайте грешки в „%s“ на адрес: %s\n"
+
+#: lib/version-etc.c:251
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Уеб страница на „%s“: <%s>\n"
+
+#: lib/version-etc.c:253
+#, c-format
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
+msgstr "Уеб страница на „%s“: <https://www.gnu.org/software/%s/>\n"
+
+#: lib/version-etc.c:256
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
+msgstr "Обща помощ за програмите на GNU: <https://www.gnu.org/gethelp/>\n"
+
+#: src/analyze.c:454 src/diff.c:1404
+#, c-format
+msgid "Files %s and %s differ\n"
+msgstr "Файловете „%s“ и „%s“ се различават\n"
+
+#: src/analyze.c:455
+#, c-format
+msgid "Binary files %s and %s differ\n"
+msgstr "Двоичните файлове „%s“ и „%s“ се различават\n"
+
+#: src/analyze.c:706 src/diff3.c:1465 src/util.c:1254
+msgid "No newline at end of file"
+msgstr "Липсва нов ред в края на файла"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/cmp.c:44
+msgid "Torbjorn Granlund"
+msgstr "Torbjorn Granlund"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/cmp.c:45
+msgid "David MacKenzie"
+msgstr "David MacKenzie"
+
+#: src/cmp.c:119 src/diff.c:877 src/diff3.c:462 src/sdiff.c:159
+#, c-format
+msgid "Try '%s --help' for more information."
+msgstr "Вижте „%s --help“ за повече информация."
+
+#: src/cmp.c:137
+#, c-format
+msgid "invalid --ignore-initial value '%s'"
+msgstr "неправилна стойност „%s“ за опцията „--ignore-initial“"
+
+#: src/cmp.c:147
+#, c-format
+msgid "options -l and -s are incompatible"
+msgstr "опциите „-l“ и „-s“ са несъвместими"
+
+#: src/cmp.c:155 src/diff.c:885 src/diff3.c:469 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:852 src/util.c:952 src/util.c:959
+msgid "write failed"
+msgstr "неуспешен запис"
+
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
+msgid "standard output"
+msgstr "стандартен изход"
+
+#: src/cmp.c:161
+msgid "-b, --print-bytes print differing bytes"
+msgstr "-b, --print-bytes извеждане на различаващите се байтове"
+
+#: src/cmp.c:162
+msgid "-i, --ignore-initial=SKIP skip first SKIP bytes of both inputs"
+msgstr ""
+"-i, --ignore-initial=ПРЕСКАЧАНЕ\n"
+" ПРЕСКАЧАНЕ на този брой байтове и от двата\n"
+" входа"
+
+#: src/cmp.c:163
+msgid ""
+"-i, --ignore-initial=SKIP1:SKIP2 skip first SKIP1 bytes of FILE1 and\n"
+" first SKIP2 bytes of FILE2"
+msgstr ""
+"-i, --ignore-initial=ПРЕСКАЧАНЕ_1:ПРЕСКАЧАНЕ_2\n"
+" прескачане на съответния брой байтове —\n"
+" ПРЕСКАЧАНЕ_1 от ФАЙЛ_1, ПРЕСКАЧАНЕ_2 от ФАЙЛ_2"
+
+#: src/cmp.c:165
+msgid ""
+"-l, --verbose output byte numbers and differing byte values"
+msgstr ""
+"-l, --verbose извеждане на номерата и стойностите на "
+"различните\n"
+" байтове"
+
+#: src/cmp.c:166
+msgid "-n, --bytes=LIMIT compare at most LIMIT bytes"
+msgstr "-n, --bytes=БРОЙ сравняване на максимум този БРОЙ байтове"
+
+#: src/cmp.c:167
+msgid "-s, --quiet, --silent suppress all normal output"
+msgstr "-s, --quiet, --silent без извеждане на обичайната информация"
+
+#: src/cmp.c:168
+msgid " --help display this help and exit"
+msgstr " --help извеждане на тази помощ и изход"
+
+#: src/cmp.c:169
+msgid "-v, --version output version information and exit"
+msgstr "-v, --version извеждане на версията и изход"
+
+#: src/cmp.c:178
+#, c-format
+msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
+msgstr "Употреба: %s [ОПЦИЯ]… ФАЙЛ_1 [ФАЙЛ_1 [ПРЕСКАЧАНЕ_1 [ПРЕСКАЧАНЕ_2]]]\n"
+
+#: src/cmp.c:180
+msgid "Compare two files byte by byte."
+msgstr "Побайтово сравнение на два файла"
+
+#: src/cmp.c:182
+msgid ""
+"The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
+"at the beginning of each file (zero by default)."
+msgstr ""
+"Незадължителните аргументи ПРЕСКАЧАНЕ_1 и ПРЕСКАЧАНЕ_2 указват броя "
+"байтове,\n"
+"които да се прескочат от началото на всеки файл (броенето почва от 0)."
+
+#: src/cmp.c:185 src/diff.c:997 src/diff3.c:509 src/sdiff.c:210
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+msgstr ""
+"Аргументите, които са задължителни за дългите опции, са задължителни и за "
+"късите\n"
+"варианти.\n"
+
+#: src/cmp.c:191
+msgid ""
+"SKIP values may be followed by the following multiplicative suffixes:\n"
+"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
+"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y."
+msgstr ""
+"Стойностите за ПРЕСКАЧАНЕ приемат следните суфикси и указват този брой "
+"байтове:\n"
+"kB: 1000, K: 1024, MB: 1 000 000, M: 1 048 576,\n"
+"GB: 1 000 000 000, G: 1 073 741 824 и т.н. за „T“, „P“, „E“, „Z“ и „Y“."
+
+#: src/cmp.c:194
+msgid "If a FILE is '-' or missing, read standard input."
+msgstr "Ако името на ФАЙЛ е „-“ или липсва, се чете от стандартния вход."
+
+#: src/cmp.c:195 src/diff.c:985 src/sdiff.c:220
+msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
+msgstr "Изходният код е 0 при еднаквост, 1 при разлика и 2 при грешка."
+
+#: src/cmp.c:240
+#, c-format
+msgid "invalid --bytes value '%s'"
+msgstr "неправилен аргумент „%s“ за опцията „--bytes“"
+
+#: src/cmp.c:266 src/diff.c:795 src/diff3.c:356 src/sdiff.c:565
+#, c-format
+msgid "missing operand after '%s'"
+msgstr "липсва операнд след „%s“"
+
+#: src/cmp.c:278 src/diff.c:797 src/diff3.c:358 src/sdiff.c:567
+#, c-format
+msgid "extra operand '%s'"
+msgstr "излишен операнд след „%s“"
+
+#: src/cmp.c:498
+#, c-format
+msgid "%s %s differ: byte %s, line %s\n"
+msgstr "„%s“ и „%s“ се различават: байт %s, ред %s\n"
+
+#: src/cmp.c:514
+#, c-format
+msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
+msgstr "„%s“ и „%s“ се различават: байт %s, ред %s е %3o %s %3o %s\n"
+
+#: src/cmp.c:571
+#, c-format
+msgid "cmp: EOF on %s which is empty\n"
+msgstr "cmp: „EOF“ в празния „%s“\n"
+
+#: src/cmp.c:585
+#, c-format
+msgid "cmp: EOF on %s after byte %s, line %s\n"
+msgstr "cmp: „EOF“ в „%s“ след байт %s, ред %s\n"
+
+#: src/cmp.c:586
+#, c-format
+msgid "cmp: EOF on %s after byte %s, in line %s\n"
+msgstr "cmp: „EOF“ в „%s“ след байт %s, на ред %s\n"
+
+#: src/cmp.c:592
+#, c-format
+msgid "cmp: EOF on %s after byte %s\n"
+msgstr "cmp: „EOF“ в „%s“ след байт %s\n"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:50
+msgid "Paul Eggert"
+msgstr "Paul Eggert"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:51
+msgid "Mike Haertel"
+msgstr "Mike Haertel"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:52
+msgid "David Hayes"
+msgstr "David Hayes"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:53
+msgid "Richard Stallman"
+msgstr "Richard Stallman"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:54
+msgid "Len Tower"
+msgstr "Len Tower"
+
+#: src/diff.c:353
+#, c-format
+msgid "invalid context length '%s'"
+msgstr "неправилен размер на контекста „%s“"
+
+#: src/diff.c:436
+#, c-format
+msgid "pagination not supported on this host"
+msgstr "страницирането не се поддържа на този компютър"
+
+#: src/diff.c:451 src/diff3.c:336
+#, c-format
+msgid "too many file label options"
+msgstr "прекалено много операции за етикети на файл"
+
+#: src/diff.c:528
+#, c-format
+msgid "invalid width '%s'"
+msgstr "неправилна широчина „%s“"
+
+#: src/diff.c:532
+msgid "conflicting width options"
+msgstr "опциите за широчина са в конфликт"
+
+#: src/diff.c:557
+#, c-format
+msgid "invalid horizon length '%s'"
+msgstr "неправилен обхват на хоризонта: „%s“"
+
+#: src/diff.c:613
+#, c-format
+msgid "invalid tabsize '%s'"
+msgstr "неправилен размер на табулатора: „%s“"
+
+#: src/diff.c:617
+msgid "conflicting tabsize options"
+msgstr "противоречиви опции за размера на табулацията"
+
+#: src/diff.c:772
+msgid "--from-file and --to-file both specified"
+msgstr "указани са и двете опции „--from-file“ и „--to-file“"
+
+#: src/diff.c:891
+msgid " --normal output a normal diff (the default)"
+msgstr ""
+" --normal извеждане на разликите по обичайния начин\n"
+" (стандартно)"
+
+#: src/diff.c:892
+msgid "-q, --brief report only when files differ"
+msgstr ""
+"-q, --brief извеждане на информация само при различни "
+"файлове"
+
+#: src/diff.c:893
+msgid "-s, --report-identical-files report when two files are the same"
+msgstr ""
+"-s, --report-identical-files извеждане на информация при еднакви файлове"
+
+#: src/diff.c:894
+msgid ""
+"-c, -C NUM, --context[=NUM] output NUM (default 3) lines of copied context"
+msgstr ""
+"-c, -C БРОЙ, --context[=БРОЙ] \n"
+" извеждане на този БРОЙ редове копиран "
+"контекст\n"
+" (стандартно е 3)"
+
+#: src/diff.c:895
+msgid ""
+"-u, -U NUM, --unified[=NUM] output NUM (default 3) lines of unified context"
+msgstr ""
+"-u, -U БРОЙ, --unified[=БРОЙ] \n"
+" извеждане на този БРОЙ редове обединен "
+"контекст\n"
+" (стандартно е 3)"
+
+#: src/diff.c:896
+msgid "-e, --ed output an ed script"
+msgstr "-e, --ed извеждане на скрипт на „ed“"
+
+#: src/diff.c:897
+msgid "-n, --rcs output an RCS format diff"
+msgstr "-n, --rcs разлика във формат „RCS“"
+
+#: src/diff.c:898
+msgid "-y, --side-by-side output in two columns"
+msgstr "-y, --side-by-side изход в 2 колони"
+
+#: src/diff.c:899
+msgid ""
+"-W, --width=NUM output at most NUM (default 130) print columns"
+msgstr ""
+"-W, --width=БРОЙ извеждане на максимум този БРОЙ знаци на ред\n"
+" (стандартно е 130)"
+
+#: src/diff.c:900
+msgid ""
+" --left-column output only the left column of common lines"
+msgstr ""
+" --left-column извеждане само на лявата страна при еднакви "
+"редове"
+
+#: src/diff.c:901
+msgid " --suppress-common-lines do not output common lines"
+msgstr " --suppress-common-lines без извеждане на еднаквите редове"
+
+#: src/diff.c:903
+msgid "-p, --show-c-function show which C function each change is in"
+msgstr ""
+"-p, --show-c-function указване на имената на функциите на „C“, в "
+"които\n"
+" има промени"
+
+#: src/diff.c:904
+msgid "-F, --show-function-line=RE show the most recent line matching RE"
+msgstr ""
+"-F, --show-function-line=РЕГУЛЯРЕН_ИЗРАЗ\n"
+" указване на най-скорошния ред, напасващ на "
+"този\n"
+" РЕГУЛЯРЕН_ИЗРАЗ"
+
+#: src/diff.c:905
+msgid ""
+" --label LABEL use LABEL instead of file name and timestamp\n"
+" (can be repeated)"
+msgstr ""
+" --label ЕТИКЕТ ползване на този ЕТИКЕТ вместо име на файл и\n"
+" момент във времето (може да го повторите)"
+
+#: src/diff.c:908
+msgid "-t, --expand-tabs expand tabs to spaces in output"
+msgstr ""
+"-t, --expand-tabs заместване на табулациите с интервали в изхода"
+
+#: src/diff.c:909
+msgid "-T, --initial-tab make tabs line up by prepending a tab"
+msgstr ""
+"-T, --initial-tab подравняване на табулациите чрез добавяне на\n"
+" табулация отпред"
+
+#: src/diff.c:910
+msgid ""
+" --tabsize=NUM tab stops every NUM (default 8) print columns"
+msgstr ""
+" --tabsize=БРОЙ табулациите се подравняват по всяко кратно на "
+"този\n"
+" брой знаци на ред"
+
+#: src/diff.c:911
+msgid ""
+" --suppress-blank-empty suppress space or tab before empty output lines"
+msgstr ""
+" --suppress-blank-empty без извеждане на интервал или табулация пред\n"
+" празни редове"
+
+#: src/diff.c:912
+msgid "-l, --paginate pass output through 'pr' to paginate it"
+msgstr ""
+"-l, --paginate извеждане през командата „pr“ за странициране"
+
+#: src/diff.c:914
+msgid ""
+"-r, --recursive recursively compare any subdirectories found"
+msgstr "-r, --recursive рекурсивно сравнение на директориите"
+
+#: src/diff.c:915
+msgid " --no-dereference don't follow symbolic links"
+msgstr " --no-dereference без следване на символните връзки"
+
+#: src/diff.c:916
+msgid "-N, --new-file treat absent files as empty"
+msgstr ""
+"-N, --new-file липсващите файлове да се обработват като празни"
+
+#: src/diff.c:917
+msgid " --unidirectional-new-file treat absent first files as empty"
+msgstr ""
+" --unidirectional-new-file \n"
+" липсващите първи файлове да се обработват "
+"като\n"
+" празни"
+
+#: src/diff.c:918
+msgid " --ignore-file-name-case ignore case when comparing file names"
+msgstr ""
+" --ignore-file-name-case без разлика главни/малки при сравнение на "
+"имена\n"
+" на файлове"
+
+#: src/diff.c:919
+msgid " --no-ignore-file-name-case consider case when comparing file names"
+msgstr ""
+" --no-ignore-file-name-case\n"
+" със разлика главни/малки при сравнение на "
+"имена\n"
+" на файлове"
+
+#: src/diff.c:920
+msgid "-x, --exclude=PAT exclude files that match PAT"
+msgstr ""
+"-x, --exclude=ШАБЛОН прескачане на файловете с имена напасващи "
+"този\n"
+" ШАБЛОН"
+
+#: src/diff.c:921
+msgid ""
+"-X, --exclude-from=FILE exclude files that match any pattern in FILE"
+msgstr ""
+"-X, --exclude-from=ФАЙЛ прескачане на файловете с имена напасващи на\n"
+" някой от шаблоните в този ФАЙЛ"
+
+#: src/diff.c:922
+msgid ""
+"-S, --starting-file=FILE start with FILE when comparing directories"
+msgstr ""
+"-S, --starting-file=ФАЙЛ при сравнение на директории да се почва с "
+"този\n"
+" файл"
+
+#: src/diff.c:923
+msgid ""
+" --from-file=FILE1 compare FILE1 to all operands;\n"
+" FILE1 can be a directory"
+msgstr ""
+" --from-file=ФАЙЛ_1 сравняване на ФАЙЛ_1 с всички аргументи.\n"
+" ФАЙЛ_1 може да е и директория"
+
+#: src/diff.c:925
+msgid ""
+" --to-file=FILE2 compare all operands to FILE2;\n"
+" FILE2 can be a directory"
+msgstr ""
+" --to-file=ФАЙЛ_2 сравняване на всички аргументи с ФАЙЛ_1.\n"
+" ФАЙЛ_2 може да е и директория"
+
+#: src/diff.c:928
+msgid ""
+"-i, --ignore-case ignore case differences in file contents"
+msgstr ""
+"-i, --ignore-case без значение на главни/малки в съдържанието "
+"на\n"
+" файловете"
+
+#: src/diff.c:929
+msgid "-E, --ignore-tab-expansion ignore changes due to tab expansion"
+msgstr ""
+"-E, --ignore-tab-expansion без значение на замяната на табулации с\n"
+" интервали"
+
+#: src/diff.c:930
+msgid "-Z, --ignore-trailing-space ignore white space at line end"
+msgstr ""
+"-Z, --ignore-trailing-space без значение на празните знаци в края на\n"
+" редовете"
+
+#: src/diff.c:931
+msgid ""
+"-b, --ignore-space-change ignore changes in the amount of white space"
+msgstr ""
+"-b, --ignore-space-change без значение на промяната в празните знаци"
+
+#: src/diff.c:932
+msgid "-w, --ignore-all-space ignore all white space"
+msgstr "-w, --ignore-all-space без значение на всички празни знаци"
+
+#: src/diff.c:933
+msgid ""
+"-B, --ignore-blank-lines ignore changes where lines are all blank"
+msgstr ""
+"-B, --ignore-blank-lines без значение на промяната на празните редове"
+
+#: src/diff.c:934
+msgid "-I, --ignore-matching-lines=RE ignore changes where all lines match RE"
+msgstr ""
+"-I, --ignore-matching-lines=РЕГУЛЯРЕН_ИЗРАЗ\n"
+" без значение на промяната в редовете "
+"напасващи\n"
+" този РЕГУЛЯРЕН_ИЗРАЗ"
+
+#: src/diff.c:936
+msgid "-a, --text treat all files as text"
+msgstr ""
+"-a, --text всички файлове да се обработят като текст"
+
+#: src/diff.c:937
+msgid " --strip-trailing-cr strip trailing carriage return on input"
+msgstr ""
+" --strip-trailing-cr изтриване на последващите знаци „\\r“ на входа"
+
+#: src/diff.c:939
+msgid " --binary read and write data in binary mode"
+msgstr ""
+" --binary четене и запис на данните в двоичен режим"
+
+#: src/diff.c:942
+msgid ""
+"-D, --ifdef=NAME output merged file with '#ifdef NAME' diffs"
+msgstr ""
+"-D, --ifdef=ИМЕ сливане чрез ползване на директиви „#ifdef ИМЕ“"
+
+#: src/diff.c:943
+msgid " --GTYPE-group-format=GFMT format GTYPE input groups with GFMT"
+msgstr ""
+" --ВИД_ГР-group-format=ФМТ_ГР\n"
+" форматиране на този ВИД_ГРупи на входа с този\n"
+" ФорМаТ_за_ГРупи"
+
+#: src/diff.c:944
+msgid " --line-format=LFMT format all input lines with LFMT"
+msgstr ""
+" --line-format=ФМТ_РД форматиране на всички входни редови с този\n"
+" ФорМаТ_за_РеДове"
+
+#: src/diff.c:945
+msgid " --LTYPE-line-format=LFMT format LTYPE input lines with LFMT"
+msgstr ""
+" --ВИД_РД-line-format=ФМТ_РД\n"
+" форматиране на този ВИД_РеДове на входа с "
+"този\n"
+" ФорМаТ_за_РеДове"
+
+#: src/diff.c:946
+msgid ""
+" These format options provide fine-grained control over the output\n"
+" of diff, generalizing -D/--ifdef."
+msgstr ""
+" Тези опции дават повече контрол върху изведената информация, все едно \n"
+" „-D/--ifdef“ на стероиди"
+
+#: src/diff.c:948
+msgid " LTYPE is 'old', 'new', or 'unchanged'. GTYPE is LTYPE or 'changed'."
+msgstr ""
+" ВИД_РД е „old“ (стара), „new“ (нова) или „unchanged“ (непроменена).\n"
+" ВИД_ГР е „old“ (стара), „new“ (нова), „unchanged“ (непроменена) или "
+"„changed“\n"
+" (променена)."
+
+#: src/diff.c:949
+msgid ""
+" GFMT (only) may contain:\n"
+" %< lines from FILE1\n"
+" %> lines from FILE2\n"
+" %= lines common to FILE1 and FILE2\n"
+" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n"
+" LETTERs are as follows for new group, lower case for old group:\n"
+" F first line number\n"
+" L last line number\n"
+" N number of lines = L-F+1\n"
+" E F-1\n"
+" M L+1\n"
+" %(A=B?T:E) if A equals B then T else E"
+msgstr ""
+" Само ФМТ_ГР може да съдържа:\n"
+" %< редове от ФАЙЛ_1\n"
+" %> редове от ФАЙЛ_2\n"
+" %= редове и във ФАЙЛ_1, и във ФАЙЛ_2\n"
+" %[-][ШИР][.[ТЧНС]]{doxX}ЗНАК форматиращ низ на printf за соченото от "
+"ЗНАКа.\n"
+" Главните ЗНАЦи са за новата група, малките — съответно за старата "
+"група:\n"
+" F номер на първи ред\n"
+" L номер на последен ред\n"
+" N брой редове (= L-F+1)\n"
+" E F-1\n"
+" M L+1\n"
+" %(A=B?T:E) Ако A е равно на B, то T, в противен случай — E"
+
+#: src/diff.c:961
+msgid ""
+" LFMT (only) may contain:\n"
+" %L contents of line\n"
+" %l contents of line, excluding any trailing newline\n"
+" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number"
+msgstr ""
+" Само ФМТ_РД може да съдържа:\n"
+" %L съдържанието на реда\n"
+" %l съдържанието на реда без последващ знак за нов ред\n"
+" %[-][ШИР][.[ТЧНС]]{doxX}n форматиращ низ на printf за номерата на\n"
+" входните редове"
+
+#: src/diff.c:965
+msgid ""
+" Both GFMT and LFMT may contain:\n"
+" %% %\n"
+" %c'C' the single character C\n"
+" %c'\\OOO' the character with octal code OOO\n"
+" C the character C (other characters represent themselves)"
+msgstr ""
+" Както ФМТ_ГР, така и ФМТ_РД може да съдържат:\n"
+" %% %\n"
+" %c'C' единичен знак „C“\n"
+" %c'\\OOO' знак с този осмичен номер\n"
+" C знакът „C“ (останалите знаци представляват себе си)"
+
+#: src/diff.c:971
+msgid "-d, --minimal try hard to find a smaller set of changes"
+msgstr "-d, --minimal търсене на по-малки разлики"
+
+#: src/diff.c:972
+msgid " --horizon-lines=NUM keep NUM lines of the common prefix and suffix"
+msgstr ""
+" --horizon-lines=БРОЙ без прескачане на този БРОЙ еднакви редове в\n"
+" началото и края на файловете в опит за "
+"откриване\n"
+" на по-малки разлики"
+
+#: src/diff.c:973
+msgid ""
+" --speed-large-files assume large files and many scattered small changes"
+msgstr ""
+" --speed-large-files обработване на файловете все едно са големи с\n"
+" множество разпръснати, малки разлики"
+
+#: src/diff.c:974
+msgid ""
+" --color[=WHEN] colorize the output; WHEN can be 'never', "
+"'always',\n"
+" or 'auto' (the default)"
+msgstr ""
+" --color[=КОГАТО] цветен изход, КОГАТО е „never“ (никога), "
+"„always“\n"
+" (винаги) или „auto“ (автоматично — стандартно)"
+
+#: src/diff.c:976
+msgid ""
+" --palette=PALETTE the colors to use when --color is active; PALETTE "
+"is\n"
+" a colon-separated list of terminfo capabilities"
+msgstr ""
+" --palette=ПАЛИТРА използваните цветове от опцията „--color“.\n"
+" ПАЛИТРАта е списък с разделител „:“ от\n"
+" възможностите на „terminfo“"
+
+#: src/diff.c:979
+msgid " --help display this help and exit"
+msgstr " --help извеждане на тази помощ и изход"
+
+#: src/diff.c:980
+msgid "-v, --version output version information and exit"
+msgstr "-v, --version извеждане на версията и изход"
+
+#: src/diff.c:982
+msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
+msgstr ""
+"ФАЙЛовете са „ФАЙЛ_1 ФАЙЛ_2“, „ДИРЕКТОРИЯ_1 ДИРЕКТОРИЯ_2“, „ДИРЕКТОРИЯ ФАЙЛ“ "
+"или\n"
+"„ФАЙЛ ДИРЕКТОРИЯ“."
+
+#: src/diff.c:983
+msgid ""
+"If --from-file or --to-file is given, there are no restrictions on FILE(s)."
+msgstr ""
+"Дори да е зададена някоя от опциите „--from-file“ „--to-file“, няма "
+"ограничения\n"
+"за ФАЙЛовете."
+
+#: src/diff.c:984 src/diff3.c:528 src/sdiff.c:219
+msgid "If a FILE is '-', read standard input."
+msgstr "Ако за ФАЙЛ е използвано „-“, се чете от стандартния вход."
+
+#: src/diff.c:994
+#, c-format
+msgid "Usage: %s [OPTION]... FILES\n"
+msgstr "Употреба: %s [ОПЦИЯ]… ФАЙЛ…\n"
+
+#: src/diff.c:995
+msgid "Compare FILES line by line."
+msgstr "Поредово сравнение на ФАЙЛовете"
+
+#: src/diff.c:1032
+#, c-format
+msgid "conflicting %s option value '%s'"
+msgstr "противоречив аргумент към опцията „%s“: „%s“"
+
+#: src/diff.c:1045
+#, c-format
+msgid "conflicting output style options"
+msgstr "противоречащи си опции за стила на изведената информация"
+
+#: src/diff.c:1061
+#, c-format
+msgid "invalid color '%s'"
+msgstr "неправилен цвят „%s“"
+
+#: src/diff.c:1117 src/diff.c:1327
+#, c-format
+msgid "Only in %s: %s\n"
+msgstr "Само в „%s“: %s\n"
+
+#: src/diff.c:1251
+msgid "cannot compare '-' to a directory"
+msgstr "„-“ не може да се сравни с директория"
+
+#: src/diff.c:1286
+msgid "-D option not supported with directories"
+msgstr "опцията „-D“ не се поддържа с директории"
+
+#: src/diff.c:1295
+#, c-format
+msgid "Common subdirectories: %s and %s\n"
+msgstr "Общи поддиректории: „%s“ и „%s“\n"
+
+#: src/diff.c:1337 src/diff.c:1387
+#, c-format
+msgid "File %s is a %s while file %s is a %s\n"
+msgstr "Файл „%s“ е %s, а файл „%s“ е %s\n"
+
+#: src/diff.c:1373
+#, c-format
+msgid "Symbolic links %s and %s differ\n"
+msgstr "Символните връзки „%s“ и „%s“ се различават\n"
+
+#: src/diff.c:1460
+#, c-format
+msgid "Files %s and %s are identical\n"
+msgstr "Файловете „%s“ и „%s“ са еднакви\n"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff3.c:42
+msgid "Randy Smith"
+msgstr "Randy Smith"
+
+#: src/diff3.c:351
+#, c-format
+msgid "incompatible options"
+msgstr "несъвместими опции"
+
+#: src/diff3.c:391
+msgid "'-' specified for more than one input file"
+msgstr "„-“ е указан за повече от един от входните файлове"
+
+#: src/diff3.c:442 src/diff3.c:1290 src/diff3.c:1693 src/diff3.c:1748
+#: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
+msgid "read failed"
+msgstr "неуспешно прочитане"
+
+#: src/diff3.c:475
+msgid "-A, --show-all output all changes, bracketing conflicts"
+msgstr ""
+"-A, --show-all извеждане на всички промени, конфликтите се\n"
+" заграждат"
+
+#: src/diff3.c:477
+msgid ""
+"-e, --ed output ed script incorporating changes\n"
+" from OLDFILE to YOURFILE into MYFILE"
+msgstr ""
+"-e, --ed извеждане на скрипт за „ed“, който включва "
+"промените\n"
+" от ПЪРВОНАЧАЛНия_ФАЙЛ спрямо ЧУЖДия_ФАЙЛ в "
+"МОЯ_ФАЙЛ"
+
+#: src/diff3.c:479
+msgid "-E, --show-overlap like -e, but bracket conflicts"
+msgstr "-E, --show-overlap като „-e“, но конфликтите се заграждат"
+
+#: src/diff3.c:480
+msgid ""
+"-3, --easy-only like -e, but incorporate only nonoverlapping "
+"changes"
+msgstr ""
+"-3, --easy-only като „-e“, но се включват само промените, които "
+"не\n"
+" се припокриват"
+
+#: src/diff3.c:481
+msgid ""
+"-x, --overlap-only like -e, but incorporate only overlapping changes"
+msgstr ""
+"-x, --overlap-only като „-e“, но се включват само промените, които "
+"се\n"
+" припокриват"
+
+#: src/diff3.c:482
+msgid "-X like -x, but bracket conflicts"
+msgstr "-X като „-x“, но конфликтите се заграждат"
+
+#: src/diff3.c:483
+msgid "-i append 'w' and 'q' commands to ed scripts"
+msgstr ""
+"-i добавяне на командите „w“ и „q“ към скриптовете "
+"за\n"
+" „ed“"
+
+#: src/diff3.c:485
+msgid ""
+"-m, --merge output actual merged file, according to\n"
+" -A if no other options are given"
+msgstr ""
+"-m, --merge извеждане на самия слят файл както би изглеждал "
+"при\n"
+" опцията „-A“ (ако не са зададени други опции)"
+
+#: src/diff3.c:488
+msgid "-a, --text treat all files as text"
+msgstr "-a, --text всички файлове да се считат за текст"
+
+#: src/diff3.c:489
+msgid " --strip-trailing-cr strip trailing carriage return on input"
+msgstr ""
+" --strip-trailing-cr изтриване на последващите знаци „\\r“ на входа"
+
+#: src/diff3.c:490
+msgid "-T, --initial-tab make tabs line up by prepending a tab"
+msgstr ""
+"-T, --initial-tab подравняване на табулациите чрез добавяне на\n"
+" табулация отпред"
+
+#: src/diff3.c:491
+msgid " --diff-program=PROGRAM use PROGRAM to compare files"
+msgstr " --diff-program=ПРОГРАМА сравнение на файловете с тази ПРОГРАМА"
+
+#: src/diff3.c:492
+msgid ""
+"-L, --label=LABEL use LABEL instead of file name\n"
+" (can be repeated up to three times)"
+msgstr ""
+"-L, --label=ЕТИКЕТ ползване на този ЕТИКЕТ вместо име на файл\n"
+" (може да го повторите до три пъти)"
+
+#: src/diff3.c:495
+msgid " --help display this help and exit"
+msgstr " --help извеждане на тази помощ и изход"
+
+#: src/diff3.c:496
+msgid "-v, --version output version information and exit"
+msgstr "-v, --version извеждане не версията и изход"
+
+#: src/diff3.c:505
+#, c-format
+msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
+msgstr "Употреба: %s [ОПЦИЯ]… МОЙ_ФАЙЛ ПЪРВОНАЧАЛЕН_ФАЙЛ ЧУЖД_ФАЙЛ\n"
+
+#: src/diff3.c:507
+msgid "Compare three files line by line."
+msgstr "Поредово сравняване на три файла"
+
+#: src/diff3.c:517
+msgid ""
+"\n"
+"The default output format is a somewhat human-readable representation of\n"
+"the changes.\n"
+"\n"
+"The -e, -E, -x, -X (and corresponding long) options cause an ed script\n"
+"to be output instead of the default.\n"
+"\n"
+"Finally, the -m (--merge) option causes diff3 to do the merge internally\n"
+"and output the actual merged file. For unusual input, this is more\n"
+"robust than using ed.\n"
+msgstr ""
+"\n"
+"Стандартният формат е отчасти четимо от хора представяне на разликите.\n"
+"\n"
+"Опциите „-e“, „-E“, „-x“ и „-X“, както и дългите им варианти, водят до\n"
+"извеждане на скрипт на „ed“.\n"
+"\n"
+"Опцията „-m“/„--merge“ кара „diff3“ да извърши сливането вътрешно, като\n"
+"се извежда директно слетият резултат. Когато входът е необичаен, това\n"
+"дава по-добър резултат отколкото „ed“.\n"
+
+#: src/diff3.c:529
+msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
+msgstr "Изходният код е 0 при успех, 1 при конфликт и 2 при грешка."
+
+#: src/diff3.c:722
+msgid "internal error: screwup in format of diff blocks"
+msgstr "вътрешна грешка: неправилен формат на разликите"
+
+#: src/diff3.c:1017
+#, c-format
+msgid "%s: diff failed: "
+msgstr "%s: неуспешно изпълнение: "
+
+#: src/diff3.c:1039
+msgid "internal error: invalid diff type in process_diff"
+msgstr "вътрешна грешка: неправилен вид на разликата в „process_diff“"
+
+#: src/diff3.c:1064
+msgid "invalid diff format; invalid change separator"
+msgstr "неправилен формат на разликата: грешен разделител на разлика"
+
+#: src/diff3.c:1300
+msgid "invalid diff format; incomplete last line"
+msgstr "неправилен формат на разликата: последният ред не е завършен"
+
+#: src/diff3.c:1324 src/sdiff.c:275 src/util.c:969
+#, c-format
+msgid "subsidiary program '%s' could not be invoked"
+msgstr "допълнителната програма „%s“ не може да бъде стартирана"
+
+#: src/diff3.c:1349
+msgid "invalid diff format; incorrect leading line chars"
+msgstr "неправилен формат на разликата: грешни знаци в началото на реда"
+
+#: src/diff3.c:1422
+msgid "internal error: invalid diff type passed to output"
+msgstr "вътрешна грешка: зададен е неправилен вид на изхода"
+
+#: src/diff3.c:1695 src/diff3.c:1752
+msgid "input file shrank"
+msgstr "входен файл се смали"
+
+#: src/dir.c:156
+#, c-format
+msgid "cannot compare file names '%s' and '%s'"
+msgstr "файловете „%s“ и „%s“ не може да се сравнят"
+
+#: src/dir.c:225
+#, c-format
+msgid "%s: recursive directory loop"
+msgstr "%s: зацикляне при рекурсивна обработка на директориите"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/sdiff.c:43
+msgid "Thomas Lord"
+msgstr "Thomas Lord"
+
+#: src/sdiff.c:173
+msgid ""
+"-o, --output=FILE operate interactively, sending output to FILE"
+msgstr ""
+"-o, --output=ФАЙЛ интерактивен режим, изходът отива в този ФАЙЛ"
+
+#: src/sdiff.c:175
+msgid ""
+"-i, --ignore-case consider upper- and lower-case to be the same"
+msgstr "-i, --ignore-case пренебрегване на регистъра на буквите"
+
+#: src/sdiff.c:176
+msgid "-E, --ignore-tab-expansion ignore changes due to tab expansion"
+msgstr ""
+"-E, --ignore-tab-expansion пренебрегване на промените поради заместване "
+"на\n"
+" табулациите с интервали"
+
+#: src/sdiff.c:177
+msgid "-Z, --ignore-trailing-space ignore white space at line end"
+msgstr ""
+"-Z, --ignore-trailing-space пренебрегване на празните знаци в края на реда"
+
+#: src/sdiff.c:178
+msgid ""
+"-b, --ignore-space-change ignore changes in the amount of white space"
+msgstr ""
+"-b, --ignore-space-change пренебрегване на промените в празните знаци"
+
+#: src/sdiff.c:179
+msgid "-W, --ignore-all-space ignore all white space"
+msgstr "-W, --ignore-all-space пренебрегване на всички празни знаци"
+
+#: src/sdiff.c:180
+msgid "-B, --ignore-blank-lines ignore changes whose lines are all blank"
+msgstr ""
+"-B, --ignore-blank-lines пренебрегване на промени, които са от празни "
+"редове"
+
+#: src/sdiff.c:181
+msgid "-I, --ignore-matching-lines=RE ignore changes all whose lines match RE"
+msgstr ""
+"-I, --ignore-matching-lines=РЕГУЛЯРЕН_ИЗРАЗ\n"
+" пренебрегване на всички промени в редове, "
+"които\n"
+" напасват на този РЕГУЛЯРЕН_ИЗРАЗ"
+
+#: src/sdiff.c:182
+msgid " --strip-trailing-cr strip trailing carriage return on input"
+msgstr ""
+" --strip-trailing-cr махане на последващите знаци „\\r“ на входа"
+
+#: src/sdiff.c:183
+msgid "-a, --text treat all files as text"
+msgstr "-a, --text всички файлове да се считат за текст"
+
+#: src/sdiff.c:185
+msgid ""
+"-w, --width=NUM output at most NUM (default 130) print columns"
+msgstr ""
+"-w, --width=БРОЙ извеждане на максимум този БРОЙ знаци от всеки "
+"ред\n"
+" (стандартно е 130)"
+
+#: src/sdiff.c:186
+msgid ""
+"-l, --left-column output only the left column of common lines"
+msgstr ""
+"-l, --left-column извеждане само на лявата колона от еднаквите "
+"редове"
+
+#: src/sdiff.c:187
+msgid "-s, --suppress-common-lines do not output common lines"
+msgstr "-s, --suppress-common-lines без извеждане на еднаквите редове"
+
+#: src/sdiff.c:189
+msgid "-t, --expand-tabs expand tabs to spaces in output"
+msgstr ""
+"-t, --expand-tabs табулациите да се заменят с интервали на изхода"
+
+#: src/sdiff.c:190
+msgid ""
+" --tabsize=NUM tab stops at every NUM (default 8) print columns"
+msgstr ""
+" --tabsize=БРОЙ табулациите да спират при кратно на този БРОЙ "
+"знаци\n"
+" (стандартно е 8)"
+
+#: src/sdiff.c:192
+msgid "-d, --minimal try hard to find a smaller set of changes"
+msgstr "-d, --minimal опит промените да се сведат до по-малки"
+
+#: src/sdiff.c:193
+msgid ""
+"-H, --speed-large-files assume large files, many scattered small changes"
+msgstr ""
+"-H, --speed-large-files приемане, че файловете са големи с множество "
+"малки\n"
+" промени"
+
+#: src/sdiff.c:194
+msgid " --diff-program=PROGRAM use PROGRAM to compare files"
+msgstr " --diff-program=ПРОГРАМА сравнение на файловете с тази ПРОГРАМА"
+
+#: src/sdiff.c:196
+msgid " --help display this help and exit"
+msgstr " --help извеждане на тази помощ и изход"
+
+#: src/sdiff.c:197
+msgid "-v, --version output version information and exit"
+msgstr "-v, --version извеждане на версията и изход"
+
+#: src/sdiff.c:206
+#, c-format
+msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
+msgstr "Употреба: %s [ОПЦИЯ]… ФАЙЛ_1 ФАЙЛ_2\n"
+
+#: src/sdiff.c:208
+msgid "Side-by-side merge of differences between FILE1 and FILE2."
+msgstr "Успоредно сливане на разликите във ФАЙЛ_1 и ФАЙЛ_2"
+
+#: src/sdiff.c:329
+msgid "cannot interactively merge standard input"
+msgstr "стандартният вход не може да се слива интерактивно"
+
+#: src/sdiff.c:595
+msgid "both files to be compared are directories"
+msgstr "и двата подадени файла са директории"
+
+#: src/sdiff.c:818
+msgid ""
+"ed:\tEdit then use both versions, each decorated with a header.\n"
+"eb:\tEdit then use both versions.\n"
+"el or e1:\tEdit then use the left version.\n"
+"er or e2:\tEdit then use the right version.\n"
+"e:\tDiscard both versions then edit a new one.\n"
+"l or 1:\tUse the left version.\n"
+"r or 2:\tUse the right version.\n"
+"s:\tSilently include common lines.\n"
+"v:\tVerbosely include common lines.\n"
+"q:\tQuit.\n"
+msgstr ""
+"ed: Редактиране и ползване на двете версии, всяка със заглавие\n"
+"eb: Редактиране и ползване на двете версии\n"
+"el или e1: Редактиране и ползване на лявата версия\n"
+"er или e2: Редактиране и ползване на дясната версия\n"
+"e: Изхвърляне и на двете версии, редактиране на нова\n"
+"l или 1: Ползване на лявата версия\n"
+"r или 2: Ползване на дясната версия\n"
+"s: Мълчаливо включване на общите редове\n"
+"v: Включване на общите редове и допълнителни подробности\n"
+"q: Изход от програмата\n"
+
+#: src/util.c:662
+#, c-format
+msgid "unrecognized prefix: %s"
+msgstr "непознат префикс: %s"
+
+#: src/util.c:692
+#, c-format
+msgid "unparsable value for --palette"
+msgstr "непознат аргумент към опцията „--palette“"
msgstr ""
"Project-Id-Version: diffutils 2.8.7\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
"PO-Revision-Date: 2004-04-21 13:33+0200\n"
"Last-Translator: Ernest Adrogué Calveras <eadrogue@gmx.net>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
msgid "Valid arguments are:"
msgstr ""
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "error del programa"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "desbordament de pila"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr "Hi ha un signe ) o \\) desaparellat"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "No hi ha cap expressió regular prèvia"
msgid "%s%s argument '%s' too large"
msgstr ""
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr ""
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr ""
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr ""
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
#: lib/version-etc.c:253
#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr ""
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Els fitxers %s i %s difereixen\n"
msgid "write failed"
msgstr "error d'escriptura"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "sortida estàndard"
msgid "Compare FILES line by line."
msgstr "Compara fitxers línia per línia."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, fuzzy, c-format
msgid "conflicting %s option value '%s'"
msgstr "el valor «%s» per l'opció %s és conflictiu"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "opcions d'estil de sortida conflictives"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, fuzzy, c-format
msgid "invalid color '%s'"
msgstr "el nombre de línies de context «%s» no és vàlid"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Només a %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
#, fuzzy
msgid "cannot compare '-' to a directory"
msgstr "no es pot comparar «-» amb un directori"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "l'opció -D no funciona amb directoris"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Subdirectoris comuns: %s i %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "El fitxer %s és un %s mentre que el fitxer %s és un %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, fuzzy, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Els fitxers %s i %s difereixen\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Els fitxers %s i %s són idèntics\n"
# Copyright (C) 1998, 2002, 2004, 2010 Free Software Foundation, Inc.
# This file is distributed under the same license as the diffutils package.
# Petr Kočvara <petr.kocvara@nemfm.cz>, 1998, 2002, 2004, 2010
-# Petr Pisar <petr.pisar@atlas.cz, 2014, 2017.
+# Petr Pisar <petr.pisar@atlas.cz, 2014, 2017, 2018.
#
msgid ""
msgstr ""
-"Project-Id-Version: diffutils 3.5.14\n"
+"Project-Id-Version: diffutils 3.6.17\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
-"PO-Revision-Date: 2017-02-03 13:03+01:00\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
+"PO-Revision-Date: 2018-12-30 22:24+01:00\n"
"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
"Language: cs\n"
msgid "Valid arguments are:"
msgstr "Platné argumenty jsou:"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "chyba programu"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "přetečení zásobníku"
msgstr "soubor neznámého typu"
#: lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: přepínač „%s“ není jednoznačný\n"
+msgstr "%s: přepínač „%s%s“ není jednoznačný\n"
#: lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: přepínač „%s“ není jednoznačný; možnosti:"
+msgstr "%s: přepínač „%s%s“ není jednoznačný; možnosti:"
#: lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: neznámý přepínač „%c%s“\n"
+msgstr "%s: nerozpoznaný přepínač „%s%s“\n"
#: lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: přepínač „%c%s“ musí být zadán bez argumentu\n"
+msgstr "%s: přepínač „%s%s“ nepřipouští argument\n"
#: lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s: přepínač „--%s“ vyžaduje argument\n"
+msgstr "%s: přepínač „%s%s“ vyžaduje argument\n"
#: lib/getopt.c:621
#, c-format
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr "Nepárová ) nebo \\)"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Předchozí regulární výraz neexistuje"
msgid "%s%s argument '%s' too large"
msgstr "argument „%3$s“ přepínače %1$s%2$s je příliš velký"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Balíček připravil %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Balíček připravil %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "©"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
"\n"
msgstr ""
"\n"
-"Licence GPLv3+: GNU GPL verze 3 nebo novější <http://gnu.org/licenses/gpl."
-"html>.\n"
+"Licence GPLv3+: GNU GPL verze 3 nebo novější\n"
+"<https://gnu.org/licenses/gpl.html>.\n"
"Toto je svobodné programové vybavení: máte právo měnit jej a dále šířit.\n"
"Není poskytována ŽÁDNÁ ZÁRUKA, jak jen zákon dovoluje.\n"
"\n"
#: lib/version-etc.c:253
#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr "Domovská stránka programu %s: <http://www.gnu.org/software/%s/>\n"
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
+msgstr "Domovská stránka programu %s: <https://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
-"Obecná pomoc při používání softwaru GNU:: <http://www.gnu.org/gethelp/>\n"
+"Obecná pomoc při používání softwaru GNU: <https://www.gnu.org/gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Soubory %s a %s jsou různé\n"
msgid "write failed"
msgstr "zápis selhal"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "standardní výstup"
msgstr "%s %s se liší: bajt %s, řádek %s je %3o %s %3o %s\n"
#: src/cmp.c:571
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s which is empty\n"
-msgstr "cmp: konec souboru v %s\n"
+msgstr "cmp: konec souboru v %s, který je prázdný\n"
#: src/cmp.c:585
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s after byte %s, line %s\n"
-msgstr "%s %s se liší: bajt %s, řádek %s\n"
+msgstr "cmp: konec souboru v %s po bajtu %s, řádek %s\n"
#: src/cmp.c:586
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s after byte %s, in line %s\n"
-msgstr "%s %s se liší: bajt %s, řádek %s\n"
+msgstr "cmp: konec souboru v %s po bajtu %s na řádku %s\n"
#: src/cmp.c:592
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s after byte %s\n"
-msgstr "cmp: konec souboru v %s\n"
+msgstr "cmp: konec souboru v %s po bajtu %s\n"
#. This is a proper name. See the gettext manual, section Names.
#: src/diff.c:50
" drobných změn"
#: src/diff.c:974
-#, fuzzy
msgid ""
" --color[=WHEN] colorize the output; WHEN can be 'never', "
"'always',\n"
" or 'auto' (the default)"
msgstr ""
-" --color[=KDY] obarví výstup, KDY smí být „never“ (nikdy),\n"
-" „always“ (vždy),"
+" --color[=KDY] obarví výstup, KDY smí být „never“ [nikdy],\n"
+" „always“ [vždy] nebo „auto“ (výchozí)"
#: src/diff.c:976
-#, fuzzy
msgid ""
" --palette=PALETTE the colors to use when --color is active; PALETTE "
"is\n"
" a colon-separated list of terminfo capabilities"
msgstr ""
-" PALETA je dvojtečkou oddělený seznam schopností\n"
-" terminfa"
+" --palette=PALETA barvy, které se použijí při aktivním --color. "
+"PALETA\n"
+" je dvojtečkou oddělený seznam schopností terminfa"
#: src/diff.c:979
msgid " --help display this help and exit"
msgid "Compare FILES line by line."
msgstr "Porovnává SOUBORY řádek po řádku."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "konfliktní hodnota „%2$s“ přepínače „%1$s“"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "konfliktní přepínače pro styl výstupu"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, c-format
msgid "invalid color '%s'"
msgstr "neplatná barva „%s“"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Pouze v %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "„-“ s adresářem nelze porovnat"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "-D přepínač nepodporuje práci s adresáři"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Společné podadresáře: %s a %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Soubor %s je %s zatímco soubor %s je %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Symbolické odkazy %s a %s se liší\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Soubory %s a %s jsou identické\n"
msgid "unparsable value for --palette"
msgstr "nerozebratelná hodnota pro přepínač --pellete"
-#~ msgid " or 'auto' (the default)"
-#~ msgstr " nebo „auto“ (výchozí)"
-
-#~ msgid ""
-#~ " --palette=PALETTE specify the colors to use when --color is active"
-#~ msgstr ""
-#~ " --pellete=PALETA určuje barvy, které se použijí se zapnutým --"
-#~ "color"
-
#~ msgid "%s: option '--%s' doesn't allow an argument\n"
#~ msgstr "%s: přepínač „--%s“ musí být zadán bez argumentu\n"
#~ msgid "%s: option '-W %s' requires an argument\n"
#~ msgstr "%s: přepínač „-W %s“ vyžaduje argument\n"
+#~ msgid " or 'auto' (the default)"
+#~ msgstr " nebo „auto“ (výchozí)"
+
+#~ msgid ""
+#~ " --palette=PALETTE specify the colors to use when --color is active"
+#~ msgstr ""
+#~ " --pellete=PALETA určuje barvy, které se použijí se zapnutým --"
+#~ "color"
+
#~ msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2"
#~ msgstr "-i N1:N2 --ignore-initial=N1:N2"
#
msgid ""
msgstr ""
-"Project-Id-Version: diffutils-3.5.14\n"
+"Project-Id-Version: diffutils-3.5.25\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
-"PO-Revision-Date: 2017-02-06 19:52+0100\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
+"PO-Revision-Date: 2017-11-14 14:26+0100\n"
"Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n"
msgid "Valid arguments are:"
msgstr "Gyldige argumenter er:"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "programfejl"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "stakoverløb"
msgstr "mystisk fil"
#: lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: tilvalget \"%s\" er flertydigt\n"
+msgstr "%s: tilvalget \"%s%s\" er flertydigt\n"
#: lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: tilvalget \"%s\" er flertydigt; muligheder:"
+msgstr "%s: tilvalget \"%s%s\" er flertydigt; muligheder:"
#: lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: ukendt tilvalg \"%c%s\"\n"
+msgstr "%s: ukendt tilvalg \"%s%s\"\n"
#: lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: tilvalget \"%c%s\" tillader ikke et argument\n"
+msgstr "%s: tilvalget \"%s%s\" tillader ikke et argument\n"
#: lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s: tilvalget \"--%s\" kræver et argument\n"
+msgstr "%s: tilvalget \"%s%s\" kræver et argument\n"
#: lib/getopt.c:621
#, c-format
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr "Uparret ) eller \\)"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Intet foranstillet regulært udtryk"
msgid "%s%s argument '%s' too large"
msgstr "%s%s-argumentet \"%s\" er for stort"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Pakket af %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Pakket af %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "©"
# første linje passer netop ind i 80 linjer (hvilket ikke ville være tilfældet med 'version' frem for 'udgave'
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
+#, fuzzy
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr "Hjemmeside for %s: <%s>\n"
#: lib/version-etc.c:253
-#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+#, fuzzy, c-format
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr "Hjemmeside for %s: <http://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+#, fuzzy
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr "Generel hjælp til GNU-programmer: <http://www.gnu.org/gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Filerne %s og %s er forskellige\n"
msgid "write failed"
msgstr "skrivning mislykkedes"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "standard-ud"
msgstr "%s %s afviger: tegn %s, linje %s er %3o %s %3o %s\n"
#: src/cmp.c:571
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s which is empty\n"
-msgstr "cmp: filafslutning på %s\n"
+msgstr "cmp: filafslutning på %s som er tom\n"
#: src/cmp.c:585
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s after byte %s, line %s\n"
-msgstr "%s %s afviger: byte %s, linje %s\n"
+msgstr "cmp: filafslutning på %s efter byte %s, linje %s\n"
#: src/cmp.c:586
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s after byte %s, in line %s\n"
-msgstr "%s %s afviger: byte %s, linje %s\n"
+msgstr "cmp: filafslutning på %s efter byte %s i linje %s\n"
#: src/cmp.c:592
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s after byte %s\n"
-msgstr "cmp: filafslutning på %s\n"
+msgstr "cmp: filafslutning på %s efter byte %s\n"
#. This is a proper name. See the gettext manual, section Names.
#: src/diff.c:50
" --speed-large-files antag store filer og mange spredte, små ændringer"
#: src/diff.c:974
-#, fuzzy
msgid ""
" --color[=WHEN] colorize the output; WHEN can be 'never', "
"'always',\n"
" or 'auto' (the default)"
msgstr ""
" --color[=HVORNÅR] farv udskriften; HVORNÅR kan være \"never\", "
-"\"always\""
+"\"always\"\n"
+" eller \"auto\" (standard)"
-# ikke direkte oversat men det må være ok
#: src/diff.c:976
-#, fuzzy
msgid ""
" --palette=PALETTE the colors to use when --color is active; PALETTE "
"is\n"
" a colon-separated list of terminfo capabilities"
msgstr ""
-" PALET er en kolon-adskilt liste af terminfo-"
-"egenskaber"
+" --palette=PALET farverne der skal bruges sammen med --color; PALET "
+"er\n"
+" en kolon-adskilt liste af terminfo-egenskaber"
#: src/diff.c:979
msgid " --help display this help and exit"
msgid "Compare FILES line by line."
msgstr "Sammenlign filer linjevis."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "modstridende værdi for %s-tilvalget: \"%s\""
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "modstridende valg af uddata-stil"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, c-format
msgid "invalid color '%s'"
msgstr "ugyldig farve \"%s\""
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Kun i %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "kan ikke sammenligne \"-\" med et katalog"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "-D tilvalg understøttes ikke for kataloger"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Identiske underkataloger: %s og %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Filen %s er en %s mens filen %s er en %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "De symbolske lænker %s og %s er forskellige\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Filerne %s og %s er identiske\n"
msgid "unparsable value for --palette"
msgstr "værdi for --palette kan ikke fortolkes"
-#~ msgid " or 'auto' (the default)"
-#~ msgstr " eller \"auto\" (standard)"
-
-#~ msgid ""
-#~ " --palette=PALETTE specify the colors to use when --color is active"
-#~ msgstr ""
-#~ " --palette=PALET angiv farverne, der skal bruges givet --color"
-
#~ msgid "%s: option '--%s' doesn't allow an argument\n"
#~ msgstr "%s: tilvalget \"--%s\" tillader ikke et argument\n"
#~ msgid "%s: option '-W %s' requires an argument\n"
#~ msgstr "%s: tilvalget \"-W %s\" tillader ikke et argument\n"
+#~ msgid " or 'auto' (the default)"
+#~ msgstr " eller \"auto\" (standard)"
+
+#~ msgid ""
+#~ " --palette=PALETTE specify the colors to use when --color is active"
+#~ msgstr ""
+#~ " --palette=PALET angiv farverne, der skal bruges givet --color"
+
#~ msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2"
#~ msgstr "-i SPRING1:SPRING2 --ignore-initial=SPRING1:SPRING2"
# Martin von Löwis <martin@v.loewis.de>, 1997, 2001, 2002
# Jakob Kramer <jakob.kramer@gmx.de>, 2012, 2013.
# Benno Schulenberg <bensberg@justemail.net>, 2013.
-# Mario Blättermann <mario.blaettermann@gmail.com>, 2014, 2017.
+# Mario Blättermann <mario.blaettermann@gmail.com>, 2014-2018.
#
msgid ""
msgstr ""
-"Project-Id-Version: GNU diffutils 3.5.25\n"
+"Project-Id-Version: GNU diffutils 3.6.17\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
-"PO-Revision-Date: 2017-05-11 10:57+0200\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
+"PO-Revision-Date: 2018-12-27 12:56+0100\n"
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"Language: de\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 1.8.12\n"
+"X-Generator: Gtranslator 3.30.0\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: lib/argmatch.c:134
#, c-format
msgid "Valid arguments are:"
msgstr "Gültige Argumente sind:"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "Programmfehler"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "Stacküberlauf"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr "Schließende ) oder \\) ohne öffnende."
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Kein vorhergehender regulärer Ausdruck."
msgid "%s%s argument '%s' too large"
msgstr "%s%s-Argument »%s« ist zu groß"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Paket erstellt von %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Paket erstellt von %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "©"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
"\n"
msgstr ""
"\n"
-"Lizenz GPLv3+: GNU GPL Version 3 oder später <http://www.gnu.org/licenses/"
+"Lizenz GPLv3+: GNU GPL Version 3 oder später <https://www.gnu.org/licenses/"
"gpl.html>.\n"
"Dies ist freie Software: Sie dürfen sie verändern und verbreiten.\n"
"Es gibt KEINE GARANTIE, soweit diese nicht durch das Gesetz vorgeschrieben\n"
#: lib/version-etc.c:253
#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr "Homepage von %s: <http://www.gnu.org/software/%s/>.\n"
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
+msgstr "Homepage von %s: <https://www.gnu.org/software/%s/>.\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
-"Allgemeine Hilfe zur Benutzung von GNU-Software: <http://www.gnu.org/gethelp/"
-">\n"
+"Allgemeine Hilfe zur Benutzung von GNU-Software: <https://www.gnu.org/"
+"gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Dateien %s und %s sind verschieden.\n"
msgid "write failed"
msgstr "Schreibfehler."
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "Standardausgabe"
msgid "Compare FILES line by line."
msgstr "DATEIEN Zeile für Zeile vergleichen."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "Widersprüchlicher %s-Optionswert »%s«."
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "Widersprüchliche Optionen für den Ausgabestil."
-#: src/diff.c:1058
+#: src/diff.c:1061
#, c-format
msgid "invalid color '%s'"
msgstr "Ungültige Farbe »%s«."
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Nur in %s: %s.\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "»-« kann nicht mit Verzeichnis verglichen werden."
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "Option -D nicht unterstützt bei Verzeichnissen"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Gemeinsame Unterverzeichnisse: %s und %s.\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Datei %s ist ein %s, während Datei %s ein %s ist.\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Symbolische Verknüpfungen %s und %s sind verschieden.\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Dateien %s und %s sind identisch.\n"
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: GNU diffutils 3.6\n"
+"Project-Id-Version: GNU diffutils 3.7\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Valid arguments are:"
msgstr ""
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr ""
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr ""
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr ""
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr ""
msgid "%s%s argument '%s' too large"
msgstr ""
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr ""
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr ""
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr ""
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
#: lib/version-etc.c:253
#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr ""
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr ""
msgid "write failed"
msgstr ""
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr ""
msgid "Compare FILES line by line."
msgstr ""
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr ""
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr ""
-#: src/diff.c:1058
+#: src/diff.c:1061
#, c-format
msgid "invalid color '%s'"
msgstr ""
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr ""
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr ""
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr ""
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr ""
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr ""
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr ""
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr ""
msgstr ""
"Project-Id-Version: diffutils-3.5.25\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
"PO-Revision-Date: 2017-05-13 01:10+0300\n"
"Last-Translator: Lefteris Dimitroulakis <ledimitro@gmail.com>\n"
"Language-Team: Greek <team@lists.gnome.gr>\n"
msgid "Valid arguments are:"
msgstr "Έγκυρο ορίσματα είναι:"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "σφάλμα προγράμματος"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "υπερχείλιση στοίβας"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr "Δε βρέθηκε ) ή \\)"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Δεν προηγήθηκε κανονική έκφραση"
msgid "%s%s argument '%s' too large"
msgstr "%s%s όρισμα «%s» πολύ μεγάλο"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Packaged by %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Packaged by %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "(C)"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
+#, fuzzy
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr "%s home page: <%s>\n"
#: lib/version-etc.c:253
-#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+#, fuzzy, c-format
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr "%s home page: <http://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+#, fuzzy
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
"Γενική βοήθεια στη χρήση λογισμικού GNU: <http://www.gnu.org/gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Τα αρχεία %s και %s διαφέρουν\n"
msgid "write failed"
msgstr "η εγγραφή απέτυχε"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "κανονική έξοδος"
msgid "Compare FILES line by line."
msgstr "Σύγκριση αρχείων γραμμή προς γραμμή."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "η επιλογή %s είναι αντικρουόμενη με την τιμή «%s»"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "αντικρουόμενες επιλογές για τη μορφή εξόδου"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, c-format
msgid "invalid color '%s'"
msgstr "μη έγκυρο χρώμα «%s»"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Μόνο στο %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "Αδύνατη η σύγκριση του «-» με ένα κατάλογο"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "Η επιλογή -D δεν υποστηρίζεται για καταλόγους"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Οι υποκατάλογοι %s και %s είναι ταυτόσημοι\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Το αρχείο %s είναι %s ενώ το αρχείο %s είναι %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Οι συμβολικοί σύνδεσμοι %s και %s διαφέρουν\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Τα αρχεία %s καί %s είναι πανομοιότυπα\n"
# Esperantaj mesaĝoj por GNU diffutils.
-# Copyright (C) 1996, 2001, 2002, 2004, 2013 Free Software Foundation, Inc.
+# Copyright (C) 1996, 2001, 2002, 2004, 2013, 2018 Free Software Foundation, Inc.
# This file is distributed under the same license as the diffutils package.
# Edmund GRIMLEY EVANS <edmundo@rano.org>, 2001, 2002, 2003, 2004.
-# Felipe Castro <fefcas@gmail.com>, 2013.
+# Felipe Castro <fefcas@gmail.com>, 2013, 2018.
#
msgid ""
msgstr ""
-"Project-Id-Version: GNU diffutils 3.3-pre1\n"
+"Project-Id-Version: GNU diffutils 3.5.25\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
-"PO-Revision-Date: 2013-10-31 13:16-0300\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
+"PO-Revision-Date: 2018-05-14 21:44-0300\n"
"Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
"Language: eo\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: Poedit 1.5.4\n"
#: lib/argmatch.c:134
-#, fuzzy, c-format
+#, c-format
msgid "invalid argument %s for %s"
-msgstr "malvalida %s%s-argumento '%s'"
+msgstr "malvalida argumento %s por %s"
#: lib/argmatch.c:135
#, c-format
msgid "ambiguous argument %s for %s"
-msgstr ""
+msgstr "plursenca argumento %s por %s"
#: lib/argmatch.c:154
-#, fuzzy
msgid "Valid arguments are:"
-msgstr "malvalida %s%s-argumento '%s'"
+msgstr "Validaj argumentoj estas:"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "program-eraro"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "stako tro granda"
#: lib/file-type.c:72
msgid "contiguous data"
-msgstr ""
+msgstr "kontinua datumaro"
#: lib/file-type.c:75
msgid "fifo"
#: lib/file-type.c:78
msgid "door"
-msgstr ""
+msgstr "pordo"
#: lib/file-type.c:81
-#, fuzzy
msgid "multiplexed block special file"
-msgstr "blok-aparatdosiero"
+msgstr "plektita bloka speciala dosiero"
#: lib/file-type.c:84
-#, fuzzy
msgid "multiplexed character special file"
-msgstr "sign-aparatdosiero"
+msgstr "plektita signaĵa speciala dosiero"
#: lib/file-type.c:87
msgid "multiplexed file"
-msgstr ""
+msgstr "plektita dosiero"
#: lib/file-type.c:90
-#, fuzzy
msgid "named file"
-msgstr "stranga dosiero"
+msgstr "nomigita dosiero"
#: lib/file-type.c:93
-#, fuzzy
msgid "network special file"
-msgstr "blok-aparatdosiero"
+msgstr "reta speciala dosiero"
#: lib/file-type.c:96
msgid "migrated file with data"
-msgstr ""
+msgstr "transmetita dosiero kun datumaro"
#: lib/file-type.c:99
msgid "migrated file without data"
-msgstr ""
+msgstr "transmetita dosiero sen datumaro"
#: lib/file-type.c:102
msgid "port"
-msgstr ""
+msgstr "konektejo"
#: lib/file-type.c:105
msgid "socket"
#: lib/file-type.c:108
msgid "whiteout"
-msgstr ""
+msgstr "'whiteout'"
#: lib/file-type.c:110
msgid "weird file"
msgstr "stranga dosiero"
#: lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: la modifilo '-W %s' estas plursenca\n"
+msgstr "%s: la modifilo '%s%s' estas plursenca\n"
#: lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: la modifilo '%s' estas plursenca; ebloj:"
+msgstr "%s: la modifilo '%s%s' estas plursenca; ebloj:"
#: lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: nerekonata modifilo '%c%s'\n"
+msgstr "%s: nerekonata modifilo '%s%s'\n"
#: lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: la modifilo '%c%s' ne permesas argumenton\n"
+msgstr "%s: la modifilo '%s%s' ne permesas argumenton\n"
#: lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s: la modifilo '--%s' postulas argumenton\n"
+msgstr "%s: la modifilo '%s%s' postulas argumenton\n"
#: lib/getopt.c:621
#, c-format
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgstr "Malvalida retroreferenco"
#: lib/regcomp.c:156
-#, fuzzy
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "Neparigita [ aŭ [^"
+msgstr "Neparigita [, [^, [:, [., aŭ [="
#: lib/regcomp.c:159
msgid "Unmatched ( or \\("
msgid "Unmatched ) or \\)"
msgstr "Neparigita ) aŭ \\)"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Mankas antaŭa regulesprimo"
msgid "%s%s argument '%s' too large"
msgstr "%s%s-argumento '%s' tro larĝas"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Pakigita de %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Pakigita de %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "©"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
+#, fuzzy
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr "%s hejm-paĝo: <%s>\n"
#: lib/version-etc.c:253
-#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+#, fuzzy, c-format
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr "%s hejm-paĝo: <http://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+#, fuzzy
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
"Ĝenerala helpo por uzi programaron GNU: <http://www.gnu.org/gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Dosieroj %s kaj %s estas malsamaj\n"
msgid "write failed"
msgstr "skriberaro"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "normala eligo"
msgstr "%s %s malsamas: bajto %s, linio %s estas %3o %s %3o %s\n"
#: src/cmp.c:571
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s which is empty\n"
-msgstr "cmp: EOF ĉe %s\n"
+msgstr "cmp: EOF ĉe %s, kiu malplenas\n"
#: src/cmp.c:585
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s after byte %s, line %s\n"
-msgstr "%s %s malsamas: bajto %s, linio %s\n"
+msgstr "cmp: EOF ĉe %s post bajto %s, linio %s\n"
#: src/cmp.c:586
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s after byte %s, in line %s\n"
-msgstr "%s %s malsamas: bajto %s, linio %s\n"
+msgstr "cmp: EOF ĉe %s post bajto %s, en linio %s\n"
#: src/cmp.c:592
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s after byte %s\n"
-msgstr "cmp: EOF ĉe %s\n"
+msgstr "cmp: EOF ĉe %s post bajto %s\n"
#. This is a proper name. See the gettext manual, section Names.
#: src/diff.c:50
"-F, --show-function-line=RE montri la plej freŝa linio kongruanta al RE"
#: src/diff.c:905
-#, fuzzy
msgid ""
" --label LABEL use LABEL instead of file name and timestamp\n"
" (can be repeated)"
msgstr ""
-" --label ETIKEDO uzi ETIKEDOn anstataŭ dosiernomo\n"
+" --label ETIKEDO uzi ETIKEDOn anstataŭ dosiernomo kaj "
+"tempindiko\n"
" (povas esti ripetata)"
#: src/diff.c:908
"'always',\n"
" or 'auto' (the default)"
msgstr ""
+" --color[=KIAM] kolorigi la eligon; KIAM povas esti 'never', "
+"'always',\n"
+" aŭ 'auto' (aprioras)"
#: src/diff.c:976
msgid ""
"is\n"
" a colon-separated list of terminfo capabilities"
msgstr ""
+" --palette=PALETRO indiki la uzotajn kolorojn kiam --color aktivas; "
+"PALETRO\n"
+" estas kom-apartita listo de kapabloj de terminfo"
#: src/diff.c:979
msgid " --help display this help and exit"
msgstr "-v, --version montri informon pri versio kaj eliri"
#: src/diff.c:982
-#, fuzzy
msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
msgstr ""
-"DOSIEROJ estas 'DOSIERO1 DOSIERO2' aŭ 'UJO1 UJO2' aŭ 'UJO DOSIERO...' aŭ "
-"'DOSIERO... UJO'."
+"DOSIEROJ estas 'DOSIERO1 DOSIERO2' aŭ 'UJO1 UJO2' aŭ 'UJA DOSIERO' aŭ "
+"'DOSIERA UJO'."
#: src/diff.c:983
msgid ""
msgid "Compare FILES line by line."
msgstr "Kompari DOSIEROJn linion post linio."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "malakorda valoro de opcio %s: '%s'"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "malakordaj modifiloj pri elig-stilo"
-#: src/diff.c:1058
-#, fuzzy, c-format
+#: src/diff.c:1061
+#, c-format
msgid "invalid color '%s'"
-msgstr "malvalida larĝo '%s'"
+msgstr "malvalida koloro '%s'"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Nur en %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "ne eblas kompari '-' al dosierujo"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "modifilo -D ne estas subtenata kun dosierujoj"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Komunaj subdosierujoj: %s kaj %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Dosiero %s estas %s, dum dosiero %s estas %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Simbolaj ligoj %s kaj %s malsamas\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Dosieroj %s kaj %s samas\n"
"q:\tĉesi.\n"
#: src/util.c:662
-#, fuzzy, c-format
+#, c-format
msgid "unrecognized prefix: %s"
-msgstr "%s: nerekonata modifilo '--%s'\n"
+msgstr "nerekonata prefikso: %s"
#: src/util.c:692
#, c-format
msgid "unparsable value for --palette"
-msgstr ""
-
-#, fuzzy
-#~ msgid " or 'auto' (the default)"
-#~ msgstr " --normal montri normalan malsamon (aprioras)"
+msgstr "neanalizebla valoro por --palette"
#~ msgid "%s: option '--%s' doesn't allow an argument\n"
#~ msgstr "%s: la modifilo '--%s' ne permesas argumenton\n"
+#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
+#~ msgstr "%s: la modifilo '-W %s' ne permesas argumenton\n"
+
+#~ msgid "%s: option '-W %s' requires an argument\n"
+#~ msgstr "%s: la modifilo '-W %s' postulas argumenton\n"
+
#~ msgid "%s: unrecognized option '--%s'\n"
#~ msgstr "%s: nerekonata modifilo '--%s'\n"
#~ msgid "%s: option '-W %s' is ambiguous\n"
#~ msgstr "%s: la modifilo '-W %s' estas plursenca\n"
-#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: la modifilo '-W %s' ne permesas argumenton\n"
+#~ msgid " or 'auto' (the default)"
+#~ msgstr " aŭ 'auto' (aprioras)"
-#~ msgid "%s: option '-W %s' requires an argument\n"
-#~ msgstr "%s: la modifilo '-W %s' postulas argumenton\n"
+#~ msgid ""
+#~ " --palette=PALETTE specify the colors to use when --color is active"
+#~ msgstr ""
+#~ " --palette=PALETRO indiki la uzotajn kolorojn kiam --color aktivas"
msgstr ""
"Project-Id-Version: GNU diffutils 3.3-pre1\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
"PO-Revision-Date: 2013-02-19 00:30+0100\n"
"Last-Translator: Santiago Vila Doncel <sanvila@unex.es>\n"
"Language-Team: Spanish <es@li.org>\n"
msgid "Valid arguments are:"
msgstr "argumento de %s%s inválido '%s'"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "error del programa"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "desbordamiento de pila"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr ") ó \\) desemparejado"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "No hay ninguna expresión regular previa"
msgid "%s%s argument '%s' too large"
msgstr "%s%s argumento '%s' demasiado grande"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Empaquetado por %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Empaquetado por %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "©"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
+#, fuzzy
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr "%s página inicial: <%s>\n"
#: lib/version-etc.c:253
-#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+#, fuzzy, c-format
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr "%s página inicial: <http://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+#, fuzzy
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
"Ayuda general sobre el uso de software de GNU: <http://www.gnu.org/gethelp/"
">\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Los ficheros %s y %s son distintos\n"
msgid "write failed"
msgstr "la escritura falló"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "salida estándar"
msgid "Compare FILES line by line."
msgstr "Compara FICHEROS línea por línea."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "la opción %s tiene el valor conflictivo '%s'"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "las especificaciones del estilo de salida son conflictivas"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, fuzzy, c-format
msgid "invalid color '%s'"
msgstr "ancho inválido '%s'"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Sólo en %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "no se puede comparar '-' con un directorio"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "la opción -D no se puede usar con directorios"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Subdirectorios comunes: %s y %s\n"
# Nota: El segundo y el cuarto `%s' son tipos de fichero.
# Por ejemplo, "texto C", "texto FORTRAN", etc.
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "El fichero %s es un %s mientras que el %s es un %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Los enlaces simbólicos %s y %s son distintos\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Los ficheros %s y %s son idénticos\n"
msgstr ""
"Project-Id-Version: diffutils 3.3-pre1\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
"PO-Revision-Date: 2016-05-26 21:28+0300\n"
"Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
msgid "Valid arguments are:"
msgstr "argumentti %s on virheellinen %s:lle"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "ohjelmavirhe"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "pinon ylivuoto"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr "Pariton ) tai \\)"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Ei edellistä säännöllistä lauseketta"
msgid "%s%s argument '%s' too large"
msgstr "lukumäärä %s on liian suuri"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Paketoinut %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Paketoinut %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "©"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
+#, fuzzy
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr "%s-kotisivu: <%s>\n"
#: lib/version-etc.c:253
-#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+#, fuzzy, c-format
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr "%s-kotisivu: <http://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+#, fuzzy
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
"Yleisohjeita GNU-ohjelmistojen käyttöön: <http://www.gnu.org/gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Tiedostot %s ja %s eroavat\n"
msgid "write failed"
msgstr "kirjoitus epäonnistui"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "vakiotuloste"
msgid "Compare FILES line by line."
msgstr "Vertaa TIEDOSTOja rivi riviltä."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, fuzzy, c-format
msgid "conflicting %s option value '%s'"
msgstr "ristiriitaiset tyypit kohteelle %<%c%s%>:lle"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "ristiriitaiset tulostustyylin valinnat"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, fuzzy, c-format
msgid "invalid color '%s'"
msgstr "virheellinen leveys \"%s\""
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Vain hakemistossa %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
#, fuzzy
msgid "cannot compare '-' to a directory"
msgstr "hakemiston %s luominen ei onnistu"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "valitsin -D ei toimi hakemistojen kanssa"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Yhteiset alihakemistot: %s ja %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Tiedosto %s on %s, kun taas tiedosto %s on %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, fuzzy, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Tiedostot %s ja %s eroavat\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Tiedostot %s ja %s ovat identtiset\n"
# Messages français pour GNU concernant diffutils.
-# Copyright (C) 2017 Free Software Foundation, Inc.
+# Copyright (C) 2018 Free Software Foundation, Inc.
# This file is distributed under the same license as the diffutils package.
#
# Michel Robitaille <robitail@IRO.UMontreal.CA>, 1996.
-# Frédéric Marchal <fmarchal@perso.be>, 2017.
+# Frédéric Marchal <fmarchal@perso.be>, 2018.
msgid ""
msgstr ""
-"Project-Id-Version: GNU diffutils 3.5.25\n"
+"Project-Id-Version: GNU diffutils 3.6.17\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
-"PO-Revision-Date: 2017-05-11 17:26+0200\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
+"PO-Revision-Date: 2018-12-28 08:04+0100\n"
"Last-Translator: Frédéric Marchal <fmarchal@perso.be>\n"
"Language-Team: French <traduc@traduc.org>\n"
"Language: fr\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Plural-Forms: nplurals=2; plural=(n >= 2);\n"
#: lib/argmatch.c:134
#, c-format
msgid "Valid arguments are:"
msgstr "Les arguments valables sont:"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "erreur du programme"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "débordement de pile"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr ") or \\) sans vis-à-vis"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "N'est pas précédé d'une expression régulière"
msgid "%s%s argument '%s' too large"
msgstr "%s%s: argument « %s » trop grand"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Empaqueté par %s(%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Empaqueté par %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "(C)"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
"\n"
msgstr ""
"\n"
-"Licence GPLv3+: GNU GPL version 3 ou ultérieure <http://gnu.org/licenses/gpl."
-"html>.\n"
+"Licence GPLv3+: GNU GPL version 3 ou ultérieure <https://www.gnu.org/"
+"licenses/gpl-3.0.fr.html>.\n"
"Ceci est un logiciel libre: vous êtes libre de le changer et de le "
"redistribuer.\n"
"Il n'y a PAS de GARANTIE, dans les limites permises par la loi.\n"
#: lib/version-etc.c:253
#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr "site internet de %s: <http://www.gnu.org/software/%s/>\n"
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
+msgstr "site internet de %s: <https://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
-"Aide générale sur l'utilisation des logiciels GNU: <http://www.gnu.org/"
-"gethelp/>\n"
+"Aide générale sur l'utilisation des logiciels GNU: <https://www.gnu.org/"
+"software/gethelp.fr.html>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Les fichiers %s et %s sont différents\n"
msgid "write failed"
msgstr "échec d'écriture"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "sortie standard"
msgid "Compare FILES line by line."
msgstr "Comparer les fichiers ligne par ligne."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "valeur conflictuelle de l'option %s: « %s »"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "options de style de sortie conflictuelles"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, c-format
msgid "invalid color '%s'"
msgstr "couleur « %s » invalide"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Seulement dans %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "ne peut comparer « - » avec un répertoire"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "L'option -D ne traite pas les répertoires"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Les sous-répertoires %s et %s sont identiques\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Le fichier %s est un %s alors que le fichier %s est un %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Les liens symboliques %s et %s sont différents\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Les fichiers %s et %s sont identiques\n"
msgstr ""
"Project-Id-Version: diffutils 2.8.7\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
"PO-Revision-Date: 2004-12-03 13:47-0500\n"
"Last-Translator: Kevin Patrick Scannell <scannell@SLU.EDU>\n"
"Language-Team: Irish <ga@li.org>\n"
msgid "Valid arguments are:"
msgstr ""
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "earráid chláir"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "cruach thar maoil"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr ") nó \\) corr"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Níl aon slonn ionadaíochta roimhe seo"
msgid "%s%s argument '%s' too large"
msgstr ""
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr ""
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr ""
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr ""
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
#: lib/version-etc.c:253
#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr ""
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Tá difríocht idir na comhaid %s agus %s\n"
msgid "write failed"
msgstr "teipeadh ag scríobh"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "aschur caighdeánach"
msgid "Compare FILES line by line."
msgstr "Déan comparáid idir na comhaid, líne ar líne."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, fuzzy, c-format
msgid "conflicting %s option value '%s'"
msgstr "luach contrártha don rogha %s: `%s'"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "roghanna contrártha le haghaidh na stíle aschuir"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, fuzzy, c-format
msgid "invalid color '%s'"
msgstr "Fad neamhbhailí comhthéacs `%s'"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "I %s amháin: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
#, fuzzy
msgid "cannot compare '-' to a directory"
msgstr "ní féidir `-' a chur i gcomparáid le comhadlann"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "Níl an rogha -D ar fáil do chomhadlanna"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Fochomhadlanna i gcoitianta: %s agus %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Tá comhad %s ina %s ach tá comhad %s ina %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, fuzzy, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Tá difríocht idir na comhaid %s agus %s\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Is comhionann iad na comhaid %s agus %s\n"
msgstr ""
"Project-Id-Version: GNU diffutils 3.2\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
"PO-Revision-Date: 2011-10-17 12:43+0100\n"
"Last-Translator: Leandro Regueiro <leandro.regueiro@gmail.com>\n"
"Language-Team: Galician <proxecto@trasno.net>\n"
msgid "Valid arguments are:"
msgstr "o argumento «%s» de %s%s é incorrecto"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "erro do programa"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "desbordamento da pila"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr ") ou \\) non emparellado"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Non hai unha expresión regular anterior"
msgid "%s%s argument '%s' too large"
msgstr "%s%s argumento «%s» demasiado longo"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Empaquetado por %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Empaquetado por %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "©"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
+#, fuzzy
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr "%s páxina web: <%s>\n"
#: lib/version-etc.c:253
-#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+#, fuzzy, c-format
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr "%s páxina web: <http://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+#, fuzzy
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr "Axuda xeral ao usar software GNU: <http://www.gnu.org/gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Os ficheiros %s e %s son diferentes\n"
msgid "write failed"
msgstr "fallou a escritura"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "saída estándar"
msgid "Compare FILES line by line."
msgstr "Comparar os ficheiros liña a liña."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, fuzzy, c-format
msgid "conflicting %s option value '%s'"
msgstr "valor «%1$s» da opción %2$s conflitivo"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "opcións de estilo da saída conflitivas"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, fuzzy, c-format
msgid "invalid color '%s'"
msgstr "lonxitude do contexto «%s» non válida"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Só en %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
#, fuzzy
msgid "cannot compare '-' to a directory"
msgstr "non se pode comparar «-» cun directorio"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "A opción -D non está admitida con directorios"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Subdirectorios comúns: %s e %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "O ficheiro %s é un %s mentres que o ficheiro %s é un %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, fuzzy, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Os ficheiros %s e %s son diferentes\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Os ficheiros %s e %s son idénticos\n"
msgstr ""
"Project-Id-Version: diffutils 2.8.3\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
"PO-Revision-Date: 2002-06-17 13:03+0300\n"
"Last-Translator: Eli Zaretskii <eliz@gnu.org>\n"
"Language-Team: Hebrew <eliz@gnu.org>\n"
msgid "Valid arguments are:"
msgstr ""
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "úéðëúá äøåîç äì÷ú"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "úéðñçî úùéìâ"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr "âåæ-ïá åì ïéàù \\) åà )"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "íãå÷ éøìåâø éåèéá ïéà"
msgid "%s%s argument '%s' too large"
msgstr ""
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr ""
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr ""
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "©"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
#: lib/version-etc.c:253
#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr ""
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "äæî äæ íéðåù `%s'-å `%s' íéöá÷ä\n"
msgid "write failed"
msgstr "äáéúëá äì÷ú"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "éð÷ú èìô õåøòì"
msgid "Compare FILES line by line."
msgstr ".äøåù äøåù íéöá÷ éðù äååùä"
-#: src/diff.c:1029
+#: src/diff.c:1032
#, fuzzy, c-format
msgid "conflicting %s option value '%s'"
msgstr "%s ïééôàî ìù íãå÷ êøò øúåñ `%s' êøò"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "èìô ïåðâñ ìù íéøúåñ íéðééôàî"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, fuzzy, c-format
msgid "invalid color '%s'"
msgstr "`%s' éåâù øù÷ä êøåà"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "%s-á ÷ø àöîð %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
#, fuzzy
msgid "cannot compare '-' to a directory"
msgstr "äé÷éúì `-' úååùäì úåøùôà ïéà"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "úåé÷éú øåáò -D ïééôàîá äëéîú ïéà"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "%s-å %s :úåäæ úåé÷éú-úú\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "%s %s-ì %s %s úååùäì ïúéð àì\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, fuzzy, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "äæî äæ íéðåù `%s'-å `%s' íéöá÷ä\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "íéäæ íðéä %s-å %s íéöá÷ä\n"
msgstr ""
"Project-Id-Version: GNU diffutils 3.3-pre1\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
"PO-Revision-Date: 2012-12-21 00:37+0100\n"
"Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
msgid "Valid arguments are:"
msgstr "neispravan %s%s argument „%s”"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "programska greška"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "preljev stoga"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr "Neuparena ) ili \\)"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Nedostaje prethodni regularni izraz"
msgid "%s%s argument '%s' too large"
msgstr "%s%s argument „%s” je prevelik"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Pakirao %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Pakirao %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "©"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
+#, fuzzy
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr "%s početna stranica: <%s>\n"
#: lib/version-etc.c:253
-#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+#, fuzzy, c-format
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr "%s početna stranica: <http://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+#, fuzzy
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
"Općenita pomoć za korištenje GNU softvera: <http://www.gnu.org/gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Datoteke %s i %s se razlikuju\n"
msgid "write failed"
msgstr "pisanje nije uspjelo"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "standardni izlaz"
msgstr "Usporedi DATOTEKE redak po redak."
# Ovdje trebam zamijeniti poredak... Pogledati kako se to radi.
-#: src/diff.c:1029
+#: src/diff.c:1032
#, fuzzy, c-format
msgid "conflicting %s option value '%s'"
msgstr "konfliktna vrijednost „%s” opcije „%s”"
#
# Format:
# C
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "konfliktne opcije izlaznog stila"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, fuzzy, c-format
msgid "invalid color '%s'"
msgstr "neispravna širina „%s”"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Samo u %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "ne mogu usporediti „-” s direktorijem"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "opcija -D nije podržana s direktorijima"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Uobičajeni poddirektoriji: %s i %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Datoteka %s je %s, a datoteka %s je %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Simboličke veze %s i %s se razlikuju\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Datoteke %s i %s su identične\n"
# Hungarian traslation for diffutils.
-# Copyright (C) 2002, 2014 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2014, 2018 Free Software Foundation, Inc.
# This file is distributed under the same license as the diffutils package.
#
-#
# Gábor István <stive@mezobereny.hu>, 2002.
# Andras Timar <timar@fsf.hu>, 2004.
-# Balázs Úr <urbalazs@gmail.com>, 2014.
+# Balázs Úr <urbalazs@gmail.com>, 2014, 2018.
msgid ""
msgstr ""
-"Project-Id-Version: diffutils 3.3-pre1\n"
+"Project-Id-Version: diffutils 3.5.25\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
-"PO-Revision-Date: 2014-07-13 22:01+0200\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
+"PO-Revision-Date: 2018-01-20 14:43+0100\n"
"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
"Language: hu\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Lokalize 1.5\n"
+"X-Generator: Lokalize 1.2\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/argmatch.c:134
-#, fuzzy, c-format
+#, c-format
msgid "invalid argument %s for %s"
-msgstr "érvénytelen %s%s argumentum: „%s”"
+msgstr "érvénytelen %s argumentum ehhez: %s"
#: lib/argmatch.c:135
#, c-format
msgid "ambiguous argument %s for %s"
-msgstr ""
+msgstr "nem egyértelmű %s argumentum ehhez: %s"
#: lib/argmatch.c:154
-#, fuzzy
msgid "Valid arguments are:"
-msgstr "érvénytelen %s%s argumentum: „%s”"
+msgstr "Az érvényes argumentumok:"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "programhiba"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "veremtúlcsordulás"
#: lib/file-type.c:72
msgid "contiguous data"
-msgstr ""
+msgstr "egybefüggő adatok"
#: lib/file-type.c:75
msgid "fifo"
#: lib/file-type.c:78
msgid "door"
-msgstr ""
+msgstr "ajtó"
#: lib/file-type.c:81
-#, fuzzy
msgid "multiplexed block special file"
-msgstr "speciális blokkfájl"
+msgstr "multiplexelt blokk speciális fájl"
#: lib/file-type.c:84
-#, fuzzy
msgid "multiplexed character special file"
-msgstr "speciális karakterfájl"
+msgstr "multiplexelt karakter speciális fájl"
#: lib/file-type.c:87
msgid "multiplexed file"
-msgstr ""
+msgstr "multiplexelt fájl"
#: lib/file-type.c:90
-#, fuzzy
msgid "named file"
-msgstr "szokatlan fájl"
+msgstr "elnevezett fájl"
#: lib/file-type.c:93
-#, fuzzy
msgid "network special file"
-msgstr "speciális blokkfájl"
+msgstr "hálózati speciális fájl"
#: lib/file-type.c:96
msgid "migrated file with data"
-msgstr ""
+msgstr "költöztetett fájl adatokkal"
#: lib/file-type.c:99
msgid "migrated file without data"
-msgstr ""
+msgstr "költöztetett fájl adatok nélkül"
#: lib/file-type.c:102
msgid "port"
-msgstr ""
+msgstr "port"
#: lib/file-type.c:105
msgid "socket"
#: lib/file-type.c:108
msgid "whiteout"
-msgstr ""
+msgstr "kifehéredés"
#: lib/file-type.c:110
msgid "weird file"
msgstr "szokatlan fájl"
#: lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: a „-W %s” kapcsoló nem egyértelmű\n"
+msgstr "%s: a(z) „%s%s” kapcsoló nem egyértelmű\n"
#: lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: a(z) „%s” kapcsoló nem egyértelmű; lehetőségek:"
+msgstr "%s: a(z) „%s%s” kapcsoló nem egyértelmű, lehetőségek:"
#: lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: ismeretlen „%c%s” kapcsoló\n"
+msgstr "%s: a(z) „%s%s” kapcsoló ismeretlen\n"
#: lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: a(z) „%c%s” kapcsoló nem enged meg argumentumot\n"
+msgstr "%s: a(z) „%s%s” kapcsoló nem enged meg argumentumot\n"
#: lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s: a(z) „--%s” kapcsolóhoz egy argumentum szükséges\n"
+msgstr "%s: a(z) „%s%s” kapcsolóhoz argumentum szükséges\n"
#: lib/getopt.c:621
#, c-format
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgstr "Érvénytelen visszahivatkozás"
#: lib/regcomp.c:156
-#, fuzzy
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "Pár nélküli [ vagy [^"
+msgstr "Pár nélküli [, [^, [:, [. vagy [="
#: lib/regcomp.c:159
msgid "Unmatched ( or \\("
msgid "Unmatched ) or \\)"
msgstr "Pár nélküli ) vagy \\)"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Nincs megelőző reguláris kifejezés"
msgid "%s%s argument '%s' too large"
msgstr "%s%s: a(z) „%s” argumentum túl nagy"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Csomagolta: %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Csomagolta: %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "©"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
+#, fuzzy
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr "A(z) %s honlapja: <%s>\n"
#: lib/version-etc.c:253
-#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+#, fuzzy, c-format
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr "A(z) %s honlapja: <http://www.gnu.org/software/%s/>.\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+#, fuzzy
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
"Általános segítség a GNU szoftverek használatához: <http://www.gnu.org/"
"gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "A(z) %s és a(z) %s fájlok különböznek\n"
msgid "write failed"
msgstr "az írás sikertelen"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "szabványos kimenet"
msgstr "%s %s eltér: byte %s, sor %s %3o %s %3o %s\n"
#: src/cmp.c:571
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s which is empty\n"
-msgstr "cmp: EOF ennél: %s\n"
+msgstr "cmp: EOF ennél: %s, amely üres\n"
#: src/cmp.c:585
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s after byte %s, line %s\n"
-msgstr "%s %s eltér: byte: %s, sor: %s\n"
+msgstr "cmp: EOF ennél: %s, %s bájt és %s sor után\n"
#: src/cmp.c:586
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s after byte %s, in line %s\n"
-msgstr "%s %s eltér: byte: %s, sor: %s\n"
+msgstr "cmp: EOF ennél: %s, %s bájt után a(z) %s. sorban\n"
#: src/cmp.c:592
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s after byte %s\n"
-msgstr "cmp: EOF ennél: %s\n"
+msgstr "cmp: EOF ennél: %s, %s bájt után\n"
#. This is a proper name. See the gettext manual, section Names.
#: src/diff.c:50
"-F, --show-function-line=RK a legutóbbi RK-ra illeszkedő sor megjelenítése"
#: src/diff.c:905
-#, fuzzy
msgid ""
" --label LABEL use LABEL instead of file name and timestamp\n"
" (can be repeated)"
msgstr ""
-" --label CÍMKE CÍMKE használata fájlnév helyett (ismételhető)"
+" --label CÍMKE CÍMKE használata fájlnév és időbélyeg helyett\n"
+" (ismételhető)"
#: src/diff.c:908
msgid "-t, --expand-tabs expand tabs to spaces in output"
"'always',\n"
" or 'auto' (the default)"
msgstr ""
+" --color[=MIKOR] a kimenet színezése; a MIKOR lehet „never” (soha),\n"
+" „always” (mindig), vagy „auto” (automatikus)\n"
+" (az alapértelmezett)"
#: src/diff.c:976
msgid ""
"is\n"
" a colon-separated list of terminfo capabilities"
msgstr ""
+" --palette=PALETTA a használandó szín, amikor a --color meg van adva;\n"
+" a PALETTA a terminfo képességek kettősponttal\n"
+" elválasztott listája"
#: src/diff.c:979
msgid " --help display this help and exit"
msgstr "-v, --version verzióinformációk kiírása és kilépés"
#: src/diff.c:982
-#, fuzzy
msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
msgstr ""
"A FÁJLOK az alábbiak lehetnek „FÁJL1 FÁJL2” vagy „KÖNYVTÁR1 KÖNYVTÁR2” vagy\n"
-"â\80\9eKÃ\96NYVTÃ\81R FÃ\81JLâ\80¦â\80\9d vagy â\80\9eFÃ\81JLâ\80¦ KÖNYVTÁR”."
+"â\80\9eKÃ\96NYVTÃ\81R FÃ\81JLâ\80\9d vagy â\80\9eFÃ\81JL KÖNYVTÁR”."
#: src/diff.c:983
msgid ""
msgid "Compare FILES line by line."
msgstr "FÁJLOK összehasonlítása sorról sorra."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "ütköző %s kapcsoló érték: „%s”"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "ütköző kimeneti stílus kapcsolók"
-#: src/diff.c:1058
-#, fuzzy, c-format
+#: src/diff.c:1061
+#, c-format
msgid "invalid color '%s'"
-msgstr "érvénytelen szélesség: „%s”"
+msgstr "érvénytelen szÃn: „%s”"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Csak ebben: %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "a „-” nem hasonlítható össze egy könyvtárral"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "A -D kapcsoló könyvtáraknál nem támogatott"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Közös alkönyvtárak: %s és %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "A(z) %s fájl egy %s, viszont a(z) %s fájl egy %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "A(z) %s és a(z) %s szimbolikus linkek különböznek\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "A(z) %s és a(z) %s fájlok azonosak\n"
"q:\tKilépés.\n"
#: src/util.c:662
-#, fuzzy, c-format
+#, c-format
msgid "unrecognized prefix: %s"
-msgstr "%s: ismeretlen „--%s” kapcsoló\n"
+msgstr "azonosítatlan előtag: %s"
#: src/util.c:692
#, c-format
msgid "unparsable value for --palette"
-msgstr ""
-
-#, fuzzy
-#~ msgid " or 'auto' (the default)"
-#~ msgstr ""
-#~ " --normal egy normál diff kimenet (az alapértelmezett)"
-
-#~ msgid "%s: option '--%s' doesn't allow an argument\n"
-#~ msgstr "%s: a(z) „--%s” kapcsoló nem enged meg argumentumot\n"
-
-#~ msgid "%s: unrecognized option '--%s'\n"
-#~ msgstr "%s: ismeretlen „--%s” kapcsoló\n"
-
-#~ msgid "%s: option '-W %s' is ambiguous\n"
-#~ msgstr "%s: a „-W %s” kapcsoló nem egyértelmű\n"
-
-#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: a „-W %s” kapcsoló nem enged meg argumentumot\n"
-
-#~ msgid "%s: option '-W %s' requires an argument\n"
-#~ msgstr "%s: a „-W %s” kapcsolóhoz egy argumentum szükséges\n"
+msgstr "feldolgozhatatlan érték a --palette kapcsolónál"
msgstr ""
"Project-Id-Version: diffutils 3.3-pre1\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
"PO-Revision-Date: 2014-08-03 08:00+0700\n"
"Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
msgid "Valid arguments are:"
msgstr "argumen %s%s tidak valid '%s'"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "kesalahan program"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "overflow stack"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr "Tidak cocok ) atau \\)"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Tidak ada ekspresi reguler sebelumnya"
msgid "%s%s argument '%s' too large"
msgstr "%s%s argumen '%s' terlalu besar"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Dibungkus oleh %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Dibungkus oleh %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "(C)"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
+#, fuzzy
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr "%s halaman rumah: <%s>\n"
#: lib/version-etc.c:253
-#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+#, fuzzy, c-format
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr "%s halaman rumah: <http://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+#, fuzzy
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
"Bantuan umum menggunakan perangkat lunak GNU: <http://www.gnu.org/gethelp>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Berkas %s dan %s berbeda\n"
msgid "write failed"
msgstr "gagal menulis"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "standar keluaran"
msgid "Compare FILES line by line."
msgstr "Bandingkan file baris per baris"
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "Nilai option %s konflik dengan '%s'"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "option gaya output konflik"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, fuzzy, c-format
msgid "invalid color '%s'"
msgstr "lebar tidak valid '%s'"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Hanya dalam %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "tidak dapat membandingkan '-' dg direktori"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "-D option tidak didukung dg direktori"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Subdirektori sama: %s dan %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "File %s adalah %s sementara file %s adalah %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Berkas %s dan %s berbeda\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "File %s dan %s identik\n"
msgstr ""
"Project-Id-Version: diffutils 3.5.14\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
"PO-Revision-Date: 2017-02-28 09:33+0000\n"
"Last-Translator: Marco Colombo <m.colombo@ed.ac.uk>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
msgid "Valid arguments are:"
msgstr "Argomenti validi sono:"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "errore del programma"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "overflow dello stack"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr ") o \\) non accoppiata"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Non c'è una espressione regolare precedente"
msgid "%s%s argument '%s' too large"
msgstr "argomento \"%3$s\" di %1$s%2$s troppo grande"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Impacchettato da %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Impacchettato da %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "(C)"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
+#, fuzzy
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr "%s home page: <%s>\n"
#: lib/version-etc.c:253
-#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+#, fuzzy, c-format
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr "%s home page: <http://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+#, fuzzy
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr "Aiuto sull'uso di software GNU: <http://www.gnu.org/gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "I file %s e %s sono diversi\n"
msgid "write failed"
msgstr "scrittura non riuscita"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "standard output"
msgid "Compare FILES line by line."
msgstr "Confronta i file riga per riga."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "conflitto nell'opzione %s: valore \"%s\""
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "opzioni di stile di output in conflitto"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, c-format
msgid "invalid color '%s'"
msgstr "colore \"%s\" non valido"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Solo in %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "impossibile confrontare \"-\" con una directory"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "opzione -D non supportata con directory"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Sottodirectory in comune: %s e %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "File %s è un %s mentre file %s è un %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "I collegamenti simbolici %s e %s sono diversi\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "I file %s e %s sono identici\n"
msgstr ""
"Project-Id-Version: GNU diffutils 3.2\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
"PO-Revision-Date: 2011-09-08 14:13+0900\n"
"Last-Translator: Yasuaki Taniguchi <yasuakit@gmail.com>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
msgid "Valid arguments are:"
msgstr "引数 `%3$s' に対して %1$s%2$s が無効です"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "プログラムエラー"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "スタックオーバーフロー"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr ") または \\) が不一致です"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "以前に正規表現がありません"
msgid "%s%s argument '%s' too large"
msgstr "引数 `%3$s' に対する %1$s%2$s が大きすぎます"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "パッケージ作成者: %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "パッケージ作成者: %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "(C)"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
+#, fuzzy
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr "%s のホームページ: <%s>\n"
#: lib/version-etc.c:253
-#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+#, fuzzy, c-format
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr "%s のホームページ: <http://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+#, fuzzy
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
"GNU ソフトウェアを使用する際の一般的なヘルプ: <http://www.gnu.org/gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "ファイル %s と %s は異なります\n"
msgid "write failed"
msgstr "書き込みに失敗しました"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "標準出力"
msgid "Compare FILES line by line."
msgstr "FILES を行ごとに比較します。"
-#: src/diff.c:1029
+#: src/diff.c:1032
#, fuzzy, c-format
msgid "conflicting %s option value '%s'"
msgstr "%s オプションの値 `%s' が競合しています"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "出力形式オプションが競合しています"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, fuzzy, c-format
msgid "invalid color '%s'"
msgstr "無効な前後の行数 `%s' です"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "%s のみに存在: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
#, fuzzy
msgid "cannot compare '-' to a directory"
msgstr "`-' とディレクトリーは比較できません"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "-D オプションはディレクトリーにはサポートされません"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "共通のサブディレクトリー: %s と %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "ファイル %s は %s です。一方、ファイル %s は %s です\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, fuzzy, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "ファイル %s と %s は異なります\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "ファイル %s と %s は同一です\n"
msgstr ""
"Project-Id-Version: diffutils-3.3-pre1\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
"PO-Revision-Date: 2014-04-20 15:28+0300\n"
"Last-Translator: Rihards Prieditis <rprieditis@gmail.com>\n"
"Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
msgid "Valid arguments are:"
msgstr "nederīgs %s%s arguments “%s”"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "programmas kļūda"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "steka pārplūšana"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr "Nav atbilstoša ) vai \\)"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Nav iepriekšējas regulārās izteiksmes"
msgid "%s%s argument '%s' too large"
msgstr "%s%s arguments “%s” ir pārāk liels"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Pakoja %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Pakoja %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "(C)"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
+#, fuzzy
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr "%s mājas lapa: <%s>\n"
#: lib/version-etc.c:253
-#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+#, fuzzy, c-format
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr "%s mājas lapa: <http://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+#, fuzzy
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
"Vispārēja palīdzība, izmantojot GNU programmatūru: <http://www.gnu.org/"
"gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Datnes %s un %s atšķiras\n"
msgid "write failed"
msgstr "rakstīšana neizdevās"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "standarta izvade"
msgid "Compare FILES line by line."
msgstr "Salīdzina DATNES rindu pa rindai."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "konfliktējoša %s opcijas vērtība “%s”"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "konfliktējoša izvades stila opcijas"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, fuzzy, c-format
msgid "invalid color '%s'"
msgstr "nederīgs platums “%s”"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Tikai iekš %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "nevar salīdzināt “-” ar direktoriju"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "-D opcija nav atbalstīta ar direktorijām"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Kopējās apakšdirektorijas: %s un %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Datne %s ir %s kamēr datne %s ir %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Simboliskās saites %s un %s atšķiras\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Datnes %s un %s ir identiskas\n"
# diffutils Bahasa Melayu (Malay) (ms).
-# Copyright (C) 2003, 2015 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2015, 2018 Free Software Foundation, Inc.
# This file is distributed under the same license as the diffutils package.
-# Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>, 2003, 2015.
+# Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>, 2003, 2015, 2018.
#
msgid ""
msgstr ""
-"Project-Id-Version: diffutils 3.3-pre1\n"
+"Project-Id-Version: diffutils 3.5.25\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
-"PO-Revision-Date: 2015-09-24 17:50+0800\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
+"PO-Revision-Date: 2018-08-21 21:39+1000\n"
"Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>\n"
"Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
"Language: ms\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 1.8.5\n"
+"X-Generator: Poedit 2.1.1\n"
#: lib/argmatch.c:134
-#, fuzzy, c-format
+#, c-format
msgid "invalid argument %s for %s"
-msgstr "hujah tidak sah %s untuk %s"
+msgstr "hujah tidak sah %s bagi %s"
#: lib/argmatch.c:135
#, c-format
msgid "ambiguous argument %s for %s"
-msgstr ""
+msgstr "hujah kabur %s bagi %s"
#: lib/argmatch.c:154
-#, fuzzy
msgid "Valid arguments are:"
-msgstr "hujah tidak sah %s untuk %s"
+msgstr "Hujah yang sah ialah:"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "ralat program"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "stack melimpah"
msgstr "fail khas aksara"
#: lib/file-type.c:72
+#, fuzzy
msgid "contiguous data"
-msgstr ""
+msgstr "IDENT: data tidak betul."
#: lib/file-type.c:75
msgid "fifo"
#: lib/file-type.c:78
msgid "door"
-msgstr ""
+msgstr "pintu"
#: lib/file-type.c:81
#, fuzzy
msgstr "fail khas aksara"
#: lib/file-type.c:87
+#, fuzzy
msgid "multiplexed file"
-msgstr ""
+msgstr "Fail Baru"
#: lib/file-type.c:90
#, fuzzy
msgid "named file"
-msgstr "fail pelik"
+msgstr "FAIL"
#: lib/file-type.c:93
#, fuzzy
msgid "network special file"
-msgstr "fail khas blok"
+msgstr "fail khas aksara"
#: lib/file-type.c:96
msgid "migrated file with data"
#: lib/file-type.c:102
msgid "port"
-msgstr ""
+msgstr "port"
#: lib/file-type.c:105
msgid "socket"
msgstr "fail pelik"
#: lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: pilihan '%s' adalah kabur; kemungkinan:"
+msgstr "%s: pilihan '%s%s' adalah kabur\n"
#: lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: pilihan '%s' adalah kabur; kemungkinan:"
+msgstr "%s: pilihan '%s%s' adalah kabur; kemungkinan:"
#: lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: -c tidak disokong pada rekabentuk %s\n"
+msgstr "%s: pilihan '%s%s' tidak dikenali\n"
#: lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: pilihan `-W %s' tidak mengizinkan hujah\n"
+msgstr "%s: pilihan '%s%s' tidak membenarkan hujah\n"
#: lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "Pilihan \"%s\" memerlukan hujah"
+msgstr "%s: pilihan '%s%s' memerlukan hujah\n"
#: lib/getopt.c:621
-#, fuzzy, c-format
+#, c-format
msgid "%s: invalid option -- '%c'\n"
-msgstr "Tetapan pilihan lekapan tidak sah: %s\n"
+msgstr "%s: pilihan tidak sah -- '%c'\n"
#: lib/getopt.c:636 lib/getopt.c:682
-#, fuzzy, c-format
+#, c-format
msgid "%s: option requires an argument -- '%c'\n"
-msgstr "Pilihan \"%s\" memerlukan hujah"
+msgstr "%s: pilihan memerlukan hujah -- '%c'\n"
#. TRANSLATORS:
#. Get translations for open and closing quotation marks.
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
#: lib/regcomp.c:156
#, fuzzy
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "[ atau [^ tidak sepadan"
+msgstr "( atau \\( tidak sepadan"
#: lib/regcomp.c:159
msgid "Unmatched ( or \\("
msgid "Unmatched ) or \\)"
msgstr ") atau \\) tidak sepadan"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Tiada regular expression terdahulu"
#: lib/xfreopen.c:38
#, fuzzy
msgid "unknown stream"
-msgstr "Tidak dapat mencipta soket aliran."
+msgstr "<tidak diketahui>"
#: lib/xfreopen.c:39
#, fuzzy, c-format
msgid "failed to reopen %s with mode %s"
-msgstr "regcomp() gagal pada %s: %s."
+msgstr "mod %s kekal sebagai %04lo (%s)\n"
#: lib/xstrtol-error.c:63
#, fuzzy, c-format
#: lib/xstrtol-error.c:72
#, fuzzy, c-format
msgid "%s%s argument '%s' too large"
-msgstr "hujah kabur %s untuk %s"
+msgstr "%s: hujah terlalu panjang untuk %s escape"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, fuzzy, c-format
msgid "Packaged by %s (%s)\n"
-msgstr ""
-"Ditulis oleh by %s, %s, %s,\n"
-"and %s.\n"
+msgstr "< %s ... %s > ? "
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, fuzzy, c-format
msgid "Packaged by %s\n"
-msgstr "Ditulis oleh %s, %s, and %s.\n"
+msgstr "< %s ... %s > ? "
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "(C)"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
#, fuzzy
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
#: lib/version-etc.c:247
#, fuzzy, c-format
msgid "Report %s bugs to: %s\n"
-msgstr ""
-"\n"
-"Lapor pepijat ke <%s>.\n"
+msgstr "Lapor pepijat ke %s.\n"
#: lib/version-etc.c:251
#, fuzzy, c-format
"\n"
#: lib/version-etc.c:253
-#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+#, fuzzy, c-format
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr "Laman web %s: <http://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
#, fuzzy
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
"Bantuan umum menggunakan perisian GNU: <http://www.gnu.org/gethelp/>.\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Fail %s dan %s berbeza\n"
#: src/cmp.c:119 src/diff.c:877 src/diff3.c:462 src/sdiff.c:159
#, fuzzy, c-format
msgid "Try '%s --help' for more information."
-msgstr "Cuba `%s --help' untuk maklumat lanjut."
+msgstr "Cuba `%s --help' untuk lebih maklumat.\n"
#: src/cmp.c:137
#, fuzzy, c-format
msgid "write failed"
msgstr "gagal menulis"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "keluaran piawai"
#: src/cmp.c:168
#, fuzzy
msgid " --help display this help and exit"
-msgstr "Papar teks bantuan ini"
+msgstr " -h, --help paparkan bantuan ini kemudian keluar\n"
#: src/cmp.c:169
#, fuzzy
"LANGKAU1 dan LANGKAU2 adalah jumlah byte untuk dilangkau dalam setiap fail."
#: src/cmp.c:185 src/diff.c:997 src/diff3.c:509 src/sdiff.c:210
-#, fuzzy
msgid ""
"Mandatory arguments to long options are mandatory for short options too.\n"
msgstr ""
#: src/cmp.c:194
#, fuzzy
msgid "If a FILE is '-' or missing, read standard input."
-msgstr "Jika FAIL adalah `-' atau tiada, baca masukan piawai."
+msgstr ""
+"\n"
+"Dengan tiada FAIL, atau bila FAIL adalah -, baca input piawai.\n"
#: src/cmp.c:195 src/diff.c:985 src/sdiff.c:220
msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
#: src/cmp.c:240
#, fuzzy, c-format
msgid "invalid --bytes value '%s'"
-msgstr "nilai --bytes `%s' tidak sah"
+msgstr "bilangan byte tidak sah"
#: src/cmp.c:266 src/diff.c:795 src/diff3.c:356 src/sdiff.c:565
#, fuzzy, c-format
msgid "missing operand after '%s'"
-msgstr "operan hilang selepas `%s'"
+msgstr "\t\tTidak Selepas: %s\n"
#: src/cmp.c:278 src/diff.c:797 src/diff3.c:358 src/sdiff.c:567
#, fuzzy, c-format
msgid "extra operand '%s'"
-msgstr "operan tambahan `%s'"
+msgstr "Ekstra"
#: src/cmp.c:498
#, c-format
#: src/cmp.c:592
#, fuzzy, c-format
msgid "cmp: EOF on %s after byte %s\n"
-msgstr "cmp: EOF pada %s\n"
+msgstr "%s: EOF tidak dijangka selepas membaca %d/%d bins\n"
#. This is a proper name. See the gettext manual, section Names.
#: src/diff.c:50
#: src/diff.c:353
#, fuzzy, c-format
msgid "invalid context length '%s'"
-msgstr "panjang konteks `%s' tidak sah"
+msgstr "Panjang stride tidak sah"
#: src/diff.c:436
#, c-format
#: src/diff.c:528
#, fuzzy, c-format
msgid "invalid width '%s'"
-msgstr "lebar `%s' tidak sah"
+msgstr "lebar baris tidak sah: %s"
#: src/diff.c:532
msgid "conflicting width options"
#: src/diff.c:557
#, fuzzy, c-format
msgid "invalid horizon length '%s'"
-msgstr "panjang horizon `%s' tidak sah"
+msgstr "Panjang stride tidak sah"
#: src/diff.c:613
#, fuzzy, c-format
#: src/diff.c:891
#, fuzzy
msgid " --normal output a normal diff (the default)"
-msgstr "--normal Keluarkan diff normal."
+msgstr "-s, --quiet, --silent sekat semua keluaran normal"
#: src/diff.c:892
#, fuzzy
#: src/diff.c:979
#, fuzzy
msgid " --help display this help and exit"
-msgstr "Papar teks bantuan ini"
+msgstr " -h, --help paparkan bantuan ini kemudian keluar\n"
#: src/diff.c:980
#, fuzzy
#, fuzzy
msgid ""
"If --from-file or --to-file is given, there are no restrictions on FILE(s)."
-msgstr "Jika --from-file atau --to-file diberi, tiada sekatan pada FAIL."
+msgstr "%s: Tak dapat ekstrak -- fail bersambung dari volum lain"
#: src/diff.c:984 src/diff3.c:528 src/sdiff.c:219
#, fuzzy
msgid "If a FILE is '-', read standard input."
-msgstr "Jika FAIL adalah `-', baca masukan piawai."
+msgstr ""
+"\n"
+"Dengan tiada FAIL, atau bila FAIL adalah -, baca input piawai.\n"
#: src/diff.c:994
#, c-format
#: src/diff.c:995
#, fuzzy
msgid "Compare FILES line by line."
-msgstr "Banding fail setiap baris."
+msgstr "Banding tiga fail tiap-tiap baris."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, fuzzy, c-format
msgid "conflicting %s option value '%s'"
-msgstr "nilai pilihan %s berkonflik `%s'"
+msgstr "keluaran berkonflik kepada fail %s"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "pilihan gaya keluaran berkonflik"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, fuzzy, c-format
msgid "invalid color '%s'"
-msgstr "lebar `%s' tidak sah"
+msgstr "Sintaks \"%s\" tidak mempunyai arahan warna"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Hanya dalam %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
#, fuzzy
msgid "cannot compare '-' to a directory"
-msgstr "tidak dapat membandingkan `-' kepada direktori"
+msgstr "tidak dapat menutup direktori `%s'"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "pilihan -D tidak disokong dengan direktori"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Subdirektori umum: %s dan %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Fail %s adalah %s manakala fail %s adalah %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, fuzzy, c-format
msgid "Symbolic links %s and %s differ\n"
-msgstr "%s bukan fail biasa atau pautan simbolik."
+msgstr "Fail %s dan %s berbeza\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Fail %s dan %s adalah serupa\n"
#: src/diff3.c:391
#, fuzzy
msgid "'-' specified for more than one input file"
-msgstr "`-' dinyatakan untuk lebih daripada satu fail masukan"
+msgstr "Amaran: fail sumber %s dinyatakan lebih drpd sekali"
#: src/diff3.c:442 src/diff3.c:1290 src/diff3.c:1693 src/diff3.c:1748
#: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
#: src/diff3.c:495
#, fuzzy
msgid " --help display this help and exit"
-msgstr "Papar teks bantuan ini"
+msgstr " -h, --help paparkan bantuan ini kemudian keluar\n"
#: src/diff3.c:496
#, fuzzy
#: src/diff3.c:1324 src/sdiff.c:275 src/util.c:969
#, fuzzy, c-format
msgid "subsidiary program '%s' could not be invoked"
-msgstr "program subsidiari `%s' tidak dapat dilaksanakan"
+msgstr "program subsidiari '%s' terganggu"
#: src/diff3.c:1349
msgid "invalid diff format; incorrect leading line chars"
#: src/dir.c:156
#, fuzzy, c-format
msgid "cannot compare file names '%s' and '%s'"
-msgstr "tidak dapat membandingkan fail bernama `%s' dan `%s'"
+msgstr "tak boleh banding nama fail %s dan %s"
#: src/dir.c:225
#, fuzzy, c-format
msgid "%s: recursive directory loop"
-msgstr "\"%s\" adalah sebuah direktori"
+msgstr "tak boleh menindih direktori %s dengan direktori"
#. This is a proper name. See the gettext manual, section Names.
#: src/sdiff.c:43
"tersebar."
#: src/sdiff.c:194
-#, fuzzy
msgid " --diff-program=PROGRAM use PROGRAM to compare files"
-msgstr "--diff-program=PROGRAM Guna PROGRAM untuk membanding fail."
+msgstr " --diff-program=PROGRAM guna PROGRAM untuk membanding fail"
#: src/sdiff.c:196
-#, fuzzy
msgid " --help display this help and exit"
-msgstr "Papar teks bantuan ini"
+msgstr " --help paparkan bantuan ini dan keluar"
#: src/sdiff.c:197
-#, fuzzy
msgid "-v, --version output version information and exit"
-msgstr "Papar maklumat versi dan keluar"
+msgstr "-v, --version papar maklumat versi dan keluar"
#: src/sdiff.c:206
#, c-format
msgstr "Penggunaan: %s [PILIHAN]... FAIL1 FAIL2\n"
#: src/sdiff.c:208
-#, fuzzy
msgid "Side-by-side merge of differences between FILE1 and FILE2."
-msgstr "Gabung bersebelahan perbezaaan fail."
+msgstr "Gabung bersebelahan bagi perbezaaan antara FAIL1 dan FAIL2."
#: src/sdiff.c:329
msgid "cannot interactively merge standard input"
msgstr "kedua-dua fail yang akan dibanding adalah direktori"
#: src/sdiff.c:818
-#, fuzzy
msgid ""
"ed:\tEdit then use both versions, each decorated with a header.\n"
"eb:\tEdit then use both versions.\n"
"q:\tQuit.\n"
msgstr ""
"ed:\tSunting kemudian guna kedua-dua versi, setiap satu ditambah dengan "
-"header.\n"
+"pengepala.\n"
"eb:\tSunting kemudian guna kedua-dua versi.\n"
-"el:\tSunting kemudian guna versi kiri.\n"
-"er:\tSunting kemudian guna versi kanan.\n"
-"e:\tSunting versi baru.\n"
-"l:\tGuna versi kiri.\n"
-"r:\tGuna versi kanan.\n"
+"el atau e1:\tSunting kemudian guna versi kiri.\n"
+"er atau e2:\tSunting kemudian guna versi kanan.\n"
+"e:\tBuang kedua-dua versi dan sunting yang baru.\n"
+"l atau 1:\tGuna versi kiri.\n"
+"r atau 2:\tGuna versi kanan.\n"
"s:\tSertakan baris sama dengan senyap.\n"
"v:\tSertakan baris sama dengan berjela.\n"
"q:\tKeluar.\n"
#: src/util.c:662
-#, fuzzy, c-format
+#, c-format
msgid "unrecognized prefix: %s"
-msgstr "%s: pilihan '%s' adalah kabur; kemungkinan:"
+msgstr "prefix tidak dikenali: %s"
#: src/util.c:692
#, c-format
msgid "unparsable value for --palette"
msgstr ""
-
-#, fuzzy
-#~ msgid " or 'auto' (the default)"
-#~ msgstr "--normal Keluarkan diff normal."
-
-#, fuzzy
-#~ msgid "%s: option '--%s' doesn't allow an argument\n"
-#~ msgstr "%s: pilihan `-W %s' tidak mengizinkan hujah\n"
-
-#, fuzzy
-#~ msgid "%s: unrecognized option '--%s'\n"
-#~ msgstr "%s: pilihan '%s' adalah kabur; kemungkinan:"
-
-#, fuzzy
-#~ msgid "%s: option '-W %s' is ambiguous\n"
-#~ msgstr "%s: pilihan '%s' adalah kabur; kemungkinan:"
-
-#, fuzzy
-#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: pilihan `-W %s' tidak mengizinkan hujah\n"
-
-#, fuzzy
-#~ msgid "%s: option '-W %s' requires an argument\n"
-#~ msgstr "Pilihan \"%s\" memerlukan hujah"
# Norwegian bokmål translation of GNU diffutils
# Copyright (C) 2016 Free Software Foundation, Inc.
# This file is distributed under the same license as the diffutils package.
-# Åka Sikrom <a4@hush.com>, 2017.
+# Åka Sikrom <a4@hush.com>, 2017-2018.
#
msgid ""
msgstr ""
-"Project-Id-Version: diffutils-3.5.25\n"
+"Project-Id-Version: diffutils-3.6.17\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
-"PO-Revision-Date: 2017-05-21 15:11+0200\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
+"PO-Revision-Date: 2018-12-29 20:49+0100\n"
"Last-Translator: Åka Sikrom <a4@hush.com>\n"
"Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
"Language: nb\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.8.7.1\n"
+"X-Generator: Poedit 2.0.6\n"
#: lib/argmatch.c:134
#, c-format
msgid "Valid arguments are:"
msgstr "Følgende argumenter kan brukes:"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "programfeil"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "stabel er full"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr "Ingen treff på «)» eller «\\)»"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Intet tidligere regulært uttrykk"
msgid "%s%s argument '%s' too large"
msgstr "%s%s-argumentet «%s» er for stort"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Pakket av %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Pakket av %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "©"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
"\n"
"Lisens GPLv3+: GNU GPL versjon 3 eller senere <http://gnu.org/licenses/gpl."
"html>.\n"
-"Dette er fri programvare. Du kan endre den og dele den videre.\n"
+"Dette er fri programvare. Du kan endre og dele den videre.\n"
"Det stilles INGEN GARANTI, i den grad dette tillates av gjeldende lovverk.\n"
"\n"
#: lib/version-etc.c:253
#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr "Nettside for %s: <http://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
-"Generell hjelp til å bruke GNU-programmer: <http://www.gnu.org/gethelp/>\n"
+"Generell hjelp til bruk av GNU-programvare: <http://www.gnu.org/gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Filene %s og %s er ulike\n"
msgid "write failed"
msgstr "skriving mislyktes"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "standardutdata"
msgid "Compare FILES line by line."
msgstr "Sammenlikn FILER linje for linje."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "valget %s er i konflikt med verdien «%s»"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "utdata-stilvalg er i konflikt med hverandre"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, c-format
msgid "invalid color '%s'"
msgstr "«%s» er en ugyldig farge"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Bare i %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "du kan ikke sammenlikne «-» med en mappe"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "valget «-D» støttes ikke for mapper"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Felles undermapper: %s og %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Fila %s er en %s, og fila %s er en %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "De symbolske lenkene %s og %s er ulike\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Filene %s og %s er identiske\n"
# Dutch translations for GNU diffutils.
-# Copyright (C) 2017 Free Software Foundation, Inc.
+# Copyright (C) 2018 Free Software Foundation, Inc.
# This file is distributed under the same license as the diffutils package.
#
# «We know things, but when they bother us we suddenly forget we knew them.»
#
-# Benno Schulenberg <benno@vertaalt.nl>, 2007, 2008, 2010, 2011, 2012, 2017.
+# Benno Schulenberg <benno@vertaalt.nl>, 2007, 2008, 2010, 2011, 2012, 2017, 2018.
# Elros Cyriatan <cyriatan@fastmail.fm>, 2004.
msgid ""
msgstr ""
-"Project-Id-Version: diffutils-3.5.25\n"
+"Project-Id-Version: diffutils-3.6.17\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
-"PO-Revision-Date: 2017-05-09 19:36+0200\n"
-"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
+"PO-Revision-Date: 2018-12-28 14:08+0100\n"
+"Last-Translator: Benno Schulenberg <vertaling@coevern.nl>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Lokalize 1.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/argmatch.c:134
msgid "Valid arguments are:"
msgstr "Geldige argumenten zijn:"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "programmafout"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "stack-overloop"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr "Ongepaarde ) of \\)"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Geen eerdere reguliere expressie"
msgid "%s%s argument '%s' too large"
msgstr "argument '%3$s' van %1$s%2$s is te groot"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "In pakketvorm gebracht door %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "In pakketvorm gebracht door %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "©"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
"Dit is vrije software: u mag het vrijelijk wijzigen en verder verspreiden.\n"
"De precieze licentie is GPL-3+: GNU General Public License versie 3 of "
"later.\n"
-"Zie http://gnu.org/licenses/gpl.html voor de volledige (Engelse) tekst.\n"
+"Zie https://gnu.org/licenses/gpl.html voor de volledige (Engelse) tekst.\n"
"Deze software kent GEEN GARANTIE, voor zover de wet dit toestaat.\n"
"\n"
#: lib/version-etc.c:253
#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr "Webpagina van %s: <http://www.gnu.org/software/%s/>\n"
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
+msgstr "Webpagina van %s: <https://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
-"Algemene hulp bij gebruik van GNU-software: <http://www.gnu.org/gethelp/>\n"
+"Algemene hulp bij gebruik van GNU-software: <https://www.gnu.org/gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Bestanden %s en %s zijn verschillend\n"
msgid "write failed"
msgstr "schrijven is mislukt"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "standaarduitvoer"
msgid "Compare FILES line by line."
msgstr "Bestanden regel-voor-regel vergelijken."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "conflicterende waarde '%2$s' van optie %1$s"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "conflicterende uitvoerstijl-opties"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, c-format
msgid "invalid color '%s'"
msgstr "ongeldige kleur '%s'"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Alleen in %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "kan '-' niet met een map vergelijken"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "optie '-D' is niet mogelijk bij mappen"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Gemeenschappelijke submappen: %s en %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Bestand %s is een %s terwijl bestand %s een %s is\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Symbolische koppelingen %s en %s zijn verschillend\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Bestanden %s en %s zijn identiek\n"
msgid "unparsable value for --palette"
msgstr "onbegrepen waarde bij '--palette'"
-#~ msgid "%s: option '--%s' doesn't allow an argument\n"
-#~ msgstr "%s: optie '--%s' staat geen argument toe\n"
-
-#~ msgid "%s: unrecognized option '--%s'\n"
-#~ msgstr "%s: onbekende optie '--%s'\n"
-
-#~ msgid "%s: option '-W %s' is ambiguous\n"
-#~ msgstr "%s: optie '-W %s' is niet eenduidig\n"
-
-#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: optie '-W %s' staat geen argument toe\n"
-
-#~ msgid "%s: option '-W %s' requires an argument\n"
-#~ msgstr "%s: optie '-W %s' vereist een argument\n"
-
#~ msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2"
#~ msgstr "-i OVERSLAAN1:OVERSLAAN2 --ignore-initial=OVERSLAAN1:OVERSLAAN2"
msgstr ""
"Project-Id-Version: GNU diffutils 3.5.25\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
"PO-Revision-Date: 2017-05-09 14:30+0200\n"
"Last-Translator: Rafał Maszkowski <rzm@icm.edu.pl>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
msgid "Valid arguments are:"
msgstr "Prawidłowe argumenty to:"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "błąd programu"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "przepełnienie stosu"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr "Nie sparowany ) lub \\)"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Brak poprzedniego wyrażenia regularnego"
msgid "%s%s argument '%s' too large"
msgstr "argument %s%s „%s” jest za duży"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Pakowane przez %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Pakowane przez %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "©"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
+#, fuzzy
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr "strona domowa %s: %s\n"
#: lib/version-etc.c:253
-#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+#, fuzzy, c-format
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr "strona domowa %s: http://www.gnu.org/software/%s/\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+#, fuzzy
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr "Pomoc w używaniu oprogramowania GNU: http://www.gnu.org/gethelp/\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Pliki %s i %s różnią się\n"
msgid "write failed"
msgstr "zapis nieudany"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "standardowe wyjście"
msgid "Compare FILES line by line."
msgstr "Porównanie PLIKÓW kolejnymi liniami."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "sprzeczna wartość opcji %s: „%s”"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "sprzeczne opcje stylu wyniku"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, c-format
msgid "invalid color '%s'"
msgstr "błędny kolor „%s”"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Tylko w %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "nie można porównać „-” z katalogiem"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "opcja -D nie działa dla katalogów"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Wspólne podkatalogi: %s i %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Plik %s jest %s, podczas gdy plik %s jest %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Dowiązania symboliczne %s i %s różnią się\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Pliki %s i %s są identyczne\n"
--- /dev/null
+# Portuguese (Portugal) translation for the diffutils package.
+# Copyright (C) 2018 Free Software Foundation, Inc.
+# This file is distributed under the same license as the diffutils package.
+# Pedro Albuquerque <palbuquerque73@gmail.com>, 2018.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU diffutils 3.6.17\n"
+"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
+"PO-Revision-Date: 2018-12-28 08:29+0000\n"
+"Last-Translator: Pedro Albuquerque <palbuquerque73@gmail.com>\n"
+"Language-Team: Portuguese <translation-team-pt@lists.sourceforge.net>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Gtranslator 2.91.7\n"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argumento %s inválido para %s"
+
+#: lib/argmatch.c:135
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argumento %s ambíguo para %s"
+
+#: lib/argmatch.c:154
+msgid "Valid arguments are:"
+msgstr "Os argumentos válidos são:"
+
+#: lib/c-stack.c:208 lib/c-stack.c:301
+msgid "program error"
+msgstr "erro de programa"
+
+#: lib/c-stack.c:209 lib/c-stack.c:302
+msgid "stack overflow"
+msgstr "transporte da pilha"
+
+#: lib/error.c:195
+msgid "Unknown system error"
+msgstr "Erro de sistema desconhecido"
+
+#: lib/file-type.c:40
+msgid "regular empty file"
+msgstr "ficheiro normal vazio"
+
+#: lib/file-type.c:40
+msgid "regular file"
+msgstr "ficheiro normal"
+
+#: lib/file-type.c:43
+msgid "directory"
+msgstr "pasta"
+
+#: lib/file-type.c:46
+msgid "symbolic link"
+msgstr "ligação simbólica"
+
+#: lib/file-type.c:52
+msgid "message queue"
+msgstr "fila de mensagens"
+
+#: lib/file-type.c:55
+msgid "semaphore"
+msgstr "semáforo"
+
+#: lib/file-type.c:58
+msgid "shared memory object"
+msgstr "objecto de memória partilhado"
+
+#: lib/file-type.c:61
+msgid "typed memory object"
+msgstr "objecto de memória tipificado"
+
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "ficheiro especial de blocos"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "ficheiro especial de caracteres"
+
+#: lib/file-type.c:72
+msgid "contiguous data"
+msgstr "dados contíguos"
+
+#: lib/file-type.c:75
+msgid "fifo"
+msgstr "fifo"
+
+#: lib/file-type.c:78
+msgid "door"
+msgstr "porta"
+
+#: lib/file-type.c:81
+msgid "multiplexed block special file"
+msgstr "ficheiro especial de blocos multiplexado"
+
+#: lib/file-type.c:84
+msgid "multiplexed character special file"
+msgstr "ficheiro especial de caracteres multiplexado"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr "ficheiro multiplexado"
+
+#: lib/file-type.c:90
+msgid "named file"
+msgstr "ficheiro com nome"
+
+#: lib/file-type.c:93
+msgid "network special file"
+msgstr "ficheiro especial de rede"
+
+#: lib/file-type.c:96
+msgid "migrated file with data"
+msgstr "ficheiro migrado com dados"
+
+#: lib/file-type.c:99
+msgid "migrated file without data"
+msgstr "ficheiro migrado sem dados"
+
+#: lib/file-type.c:102
+msgid "port"
+msgstr "porta"
+
+#: lib/file-type.c:105
+msgid "socket"
+msgstr "socket"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr "whiteout"
+
+#: lib/file-type.c:110
+msgid "weird file"
+msgstr "ficheiro estranho"
+
+#: lib/getopt.c:278
+#, c-format
+msgid "%s: option '%s%s' is ambiguous\n"
+msgstr "%s: a opção \"%s%s\" é ambígua\n"
+
+#: lib/getopt.c:284
+#, c-format
+msgid "%s: option '%s%s' is ambiguous; possibilities:"
+msgstr "%s: a opção \"%s%s\" é ambígua; possibilidades:"
+
+#: lib/getopt.c:319
+#, c-format
+msgid "%s: unrecognized option '%s%s'\n"
+msgstr "%s: opção não reconhecida \"%s%s\"\n"
+
+#: lib/getopt.c:345
+#, c-format
+msgid "%s: option '%s%s' doesn't allow an argument\n"
+msgstr "%s: opção \"%s%s\" não permite um argumento\n"
+
+#: lib/getopt.c:360
+#, c-format
+msgid "%s: option '%s%s' requires an argument\n"
+msgstr "%s: opção \"%s%s\" requer um argumento\n"
+
+#: lib/getopt.c:621
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: opção inválida -- \"%c\"\n"
+
+#: lib/getopt.c:636 lib/getopt.c:682
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: opção requer um argumento -- \"%c\"\n"
+
+#. TRANSLATORS:
+#. 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
+#. "'". For example, a French Unicode local should translate
+#. these to U+00AB (LEFT-POINTING DOUBLE ANGLE
+#. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE
+#. QUOTATION MARK), respectively.
+#.
+#. If the catalog has no translation, we will try to
+#. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and
+#. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the
+#. current locale is not Unicode, locale_quoting_style
+#. will quote 'like this', and clocale_quoting_style will
+#. quote "like this". You should always include translations
+#. for "`" and "'" even if U+2018 and U+2019 are appropriate
+#. for your locale.
+#.
+#. If you don't know what to put here, please see
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:362
+msgid "`"
+msgstr "\""
+
+#: lib/quotearg.c:363
+msgid "'"
+msgstr "\""
+
+#: lib/regcomp.c:135
+msgid "Success"
+msgstr "Sucesso"
+
+#: lib/regcomp.c:138
+msgid "No match"
+msgstr "Sem par"
+
+#: lib/regcomp.c:141
+msgid "Invalid regular expression"
+msgstr "Expressão regular inválida"
+
+#: lib/regcomp.c:144
+msgid "Invalid collation character"
+msgstr "Carácter de agrupamento inválido"
+
+#: lib/regcomp.c:147
+msgid "Invalid character class name"
+msgstr "Nome de classe de carácter inválido"
+
+#: lib/regcomp.c:150
+msgid "Trailing backslash"
+msgstr "Barra invertida final"
+
+#: lib/regcomp.c:153
+msgid "Invalid back reference"
+msgstr "Referência de recuo inválida"
+
+#: lib/regcomp.c:156
+msgid "Unmatched [, [^, [:, [., or [="
+msgstr "[, [^, [:, [., ou [= sem par"
+
+#: lib/regcomp.c:159
+msgid "Unmatched ( or \\("
+msgstr "( ou \\( sem par"
+
+#: lib/regcomp.c:162
+msgid "Unmatched \\{"
+msgstr "\\{ sem par"
+
+#: lib/regcomp.c:165
+msgid "Invalid content of \\{\\}"
+msgstr "Conteúdo inválido de \\{\\}"
+
+#: lib/regcomp.c:168
+msgid "Invalid range end"
+msgstr "Final de intervalo inválido"
+
+#: lib/regcomp.c:171
+msgid "Memory exhausted"
+msgstr "Memória esgotada"
+
+#: lib/regcomp.c:174
+msgid "Invalid preceding regular expression"
+msgstr "Expressão regular precedente inválida"
+
+#: lib/regcomp.c:177
+msgid "Premature end of regular expression"
+msgstr "Fim prematuro de expressão regular"
+
+#: lib/regcomp.c:180
+msgid "Regular expression too big"
+msgstr "Expressão regular muito grande"
+
+#: lib/regcomp.c:183
+msgid "Unmatched ) or \\)"
+msgstr ") or \\) sem par"
+
+#: lib/regcomp.c:688
+msgid "No previous regular expression"
+msgstr "Sem expressão regular anterior"
+
+#: lib/xalloc-die.c:34
+msgid "memory exhausted"
+msgstr "memória esgotada"
+
+#: lib/xfreopen.c:35
+msgid "stdin"
+msgstr "stdin"
+
+#: lib/xfreopen.c:36
+msgid "stdout"
+msgstr "stdout"
+
+#: lib/xfreopen.c:37
+msgid "stderr"
+msgstr "stderr"
+
+#: lib/xfreopen.c:38
+msgid "unknown stream"
+msgstr "fluxo desconhecido"
+
+#: lib/xfreopen.c:39
+#, c-format
+msgid "failed to reopen %s with mode %s"
+msgstr "falha ao reabrir %s com modo %s"
+
+#: lib/xstrtol-error.c:63
+#, c-format
+msgid "invalid %s%s argument '%s'"
+msgstr "Argumento \"%s\" de %s%s inválido"
+
+#: lib/xstrtol-error.c:68
+#, c-format
+msgid "invalid suffix in %s%s argument '%s'"
+msgstr "sufixo inválido no argumento \"%s\" de %s%s"
+
+#: lib/xstrtol-error.c:72
+#, c-format
+msgid "%s%s argument '%s' too large"
+msgstr "argumento \"%s\" de %s%s muito grande"
+
+#: lib/version-etc.c:73
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Empacotado por %s (%s)\n"
+
+#: lib/version-etc.c:76
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "Empacotado por %s\n"
+
+#. TRANSLATORS: Translate "(C)" to the copyright symbol
+#. (C-in-a-circle), if this symbol is available in the user's
+#. locale. Otherwise, do not translate "(C)"; leave it as-is.
+#: lib/version-etc.c:83
+msgid "(C)"
+msgstr "(©)"
+
+#: lib/version-etc.c:85
+msgid ""
+"\n"
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
+"html>.\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+msgstr ""
+"\n"
+"Licença GPLv3+: GNU GPL versão 3 ou posterior <https://gnu.org/licenses/gpl."
+"html>\n"
+"Este é um programa grátis: pode alterá-lo e redistribuí-lo.\n"
+"Não há QUALQUER GARANTIA, até ao limite da Lei.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:102
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Escrito por %s\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:106
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr "Escrito por %s e %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:110
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr "Escrito por %s, %s e %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Escrito por %s, %s, %s\n"
+"e %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Escrito por %s, %s, %s,\n"
+"%s e %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:131
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Escrito por %s, %s, %s,\n"
+"%s, %s e %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:139
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Escrito por %s, %s, %s,\n"
+"%s, %s, %s e %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:147
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Escrito por %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"e %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:156
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Escrito por %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s e %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#. You can use line breaks, estimating that each author name occupies
+#. ca. 16 screen columns and that a screen line has ca. 80 columns.
+#: lib/version-etc.c:167
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+"Escrito por %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s e outros.\n"
+
+#. TRANSLATORS: The placeholder indicates the bug-reporting address
+#. for this package. Please add _another line_ saying
+#. "Report translation bugs to <...>\n" with the address for translation
+#. bugs (typically your translation team's web or email address).
+#: lib/version-etc.c:245
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Reportar erros a: %s\n"
+
+#: lib/version-etc.c:247
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Reportar %s erros a: %s\n"
+
+#: lib/version-etc.c:251
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Página inicial %s: <%s>\n"
+
+#: lib/version-etc.c:253
+#, c-format
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
+msgstr "Página inicial %s: <https://www.gnu.org/software/%s/>\n"
+
+#: lib/version-etc.c:256
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
+msgstr "Ajuda geral para usar programas GNU: <https://www.gnu.org/gethelp/>\n"
+
+#: src/analyze.c:454 src/diff.c:1404
+#, c-format
+msgid "Files %s and %s differ\n"
+msgstr "Ficheiros %s e %s diferem\n"
+
+#: src/analyze.c:455
+#, c-format
+msgid "Binary files %s and %s differ\n"
+msgstr "Ficheiros binários %s e %s diferem\n"
+
+#: src/analyze.c:706 src/diff3.c:1465 src/util.c:1254
+msgid "No newline at end of file"
+msgstr "Sem newline no fim do ficheiro"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/cmp.c:44
+msgid "Torbjorn Granlund"
+msgstr "Torbjorn Granlund"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/cmp.c:45
+msgid "David MacKenzie"
+msgstr "David MacKenzie"
+
+#: src/cmp.c:119 src/diff.c:877 src/diff3.c:462 src/sdiff.c:159
+#, c-format
+msgid "Try '%s --help' for more information."
+msgstr "Tente \"%s --help\" para mais informação."
+
+#: src/cmp.c:137
+#, c-format
+msgid "invalid --ignore-initial value '%s'"
+msgstr "valor --ignore-initial \"%s\" inválido"
+
+#: src/cmp.c:147
+#, c-format
+msgid "options -l and -s are incompatible"
+msgstr "as opções -l e -s são incompatíveis"
+
+#: src/cmp.c:155 src/diff.c:885 src/diff3.c:469 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:852 src/util.c:952 src/util.c:959
+msgid "write failed"
+msgstr "falha de escrita"
+
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
+msgid "standard output"
+msgstr "a saída padrão"
+
+#: src/cmp.c:161
+msgid "-b, --print-bytes print differing bytes"
+msgstr "-b, --print-bytes imprime bytes diferentes"
+
+#: src/cmp.c:162
+msgid "-i, --ignore-initial=SKIP skip first SKIP bytes of both inputs"
+msgstr ""
+"-i, --ignore-initial=NÚM salta os primeiros NÚM bytes de ambas as "
+"entradas"
+
+#: src/cmp.c:163
+msgid ""
+"-i, --ignore-initial=SKIP1:SKIP2 skip first SKIP1 bytes of FILE1 and\n"
+" first SKIP2 bytes of FILE2"
+msgstr ""
+"-i, --ignore-initial=NÚM1:NÚM2 salta os primeiros NÚM1 bytes de FICH1 e\n"
+" os primeiros NÚM2 bytes de FICH2"
+
+#: src/cmp.c:165
+msgid ""
+"-l, --verbose output byte numbers and differing byte values"
+msgstr ""
+"-l, --verbose imprime números de byte e valores de byte "
+"diferentes"
+
+#: src/cmp.c:166
+msgid "-n, --bytes=LIMIT compare at most LIMIT bytes"
+msgstr "-n, --bytes=LIMITE compara no máximo LIMITE bytes"
+
+#: src/cmp.c:167
+msgid "-s, --quiet, --silent suppress all normal output"
+msgstr "-s, --quiet, --silent suprime toda a saída normal"
+
+#: src/cmp.c:168
+msgid " --help display this help and exit"
+msgstr " --help mostra esta ajuda e sai"
+
+#: src/cmp.c:169
+msgid "-v, --version output version information and exit"
+msgstr "-v, --version mostra informação da versão e sai"
+
+#: src/cmp.c:178
+#, c-format
+msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
+msgstr "Uso: %s [OPÇÃO]... FICH1 [FICH2 [NÚM1 [NÚM2]]]\n"
+
+#: src/cmp.c:180
+msgid "Compare two files byte by byte."
+msgstr "compara dois ficheiros byte a byte"
+
+#: src/cmp.c:182
+msgid ""
+"The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
+"at the beginning of each file (zero by default)."
+msgstr ""
+"Os NÚM1 e NÚM2 opcionais especificam o número de bytes a saltar\n"
+"no início de cada ficheiro (0 por predefinição)."
+
+#: src/cmp.c:185 src/diff.c:997 src/diff3.c:509 src/sdiff.c:210
+msgid ""
+"Mandatory arguments to long options are mandatory for short options too.\n"
+msgstr ""
+"Argumentos obrigatórios para opções longas também são obrigatórios para "
+"opções curtas.\n"
+
+#: src/cmp.c:191
+msgid ""
+"SKIP values may be followed by the following multiplicative suffixes:\n"
+"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
+"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y."
+msgstr ""
+"Os valores de NÚM1 e NÚM2 podem ser levar os seguintes sufixos "
+"multiplicativos:\n"
+"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
+"GB 1,000,000,000, G 1,073,741,824 e assim por diante para T, P, E, Z, Y."
+
+#: src/cmp.c:194
+msgid "If a FILE is '-' or missing, read standard input."
+msgstr "Se um dos FICH for \"-\" ou omisso, lê a entrada padrão."
+
+#: src/cmp.c:195 src/diff.c:985 src/sdiff.c:220
+msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
+msgstr ""
+"O estado de saída é 0 se as entradas forem iguais, 1 se forem diferentes, 2 "
+"se houver problemas."
+
+#: src/cmp.c:240
+#, c-format
+msgid "invalid --bytes value '%s'"
+msgstr "valor --bytes \"%s\" inválido"
+
+#: src/cmp.c:266 src/diff.c:795 src/diff3.c:356 src/sdiff.c:565
+#, c-format
+msgid "missing operand after '%s'"
+msgstr "operando em falta após \"%s\""
+
+#: src/cmp.c:278 src/diff.c:797 src/diff3.c:358 src/sdiff.c:567
+#, c-format
+msgid "extra operand '%s'"
+msgstr "operando extra \"%s\""
+
+#: src/cmp.c:498
+#, c-format
+msgid "%s %s differ: byte %s, line %s\n"
+msgstr "%s %s diferem: byte %s, linha %s\n"
+
+#: src/cmp.c:514
+#, c-format
+msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
+msgstr "%s %s diferem: byte %s, linha %s é %3o %s %3o %s\n"
+
+#: src/cmp.c:571
+#, c-format
+msgid "cmp: EOF on %s which is empty\n"
+msgstr "cmp: EOF em %s que está vazio\n"
+
+#: src/cmp.c:585
+#, c-format
+msgid "cmp: EOF on %s after byte %s, line %s\n"
+msgstr "cmp: EOF em %s após o byte %s, linha %s\n"
+
+#: src/cmp.c:586
+#, c-format
+msgid "cmp: EOF on %s after byte %s, in line %s\n"
+msgstr "cmp: EOF em %s após o byte %s, na linha %s\n"
+
+#: src/cmp.c:592
+#, c-format
+msgid "cmp: EOF on %s after byte %s\n"
+msgstr "cmp: EOF em %s após o byte %s\n"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:50
+msgid "Paul Eggert"
+msgstr "Paul Eggert"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:51
+msgid "Mike Haertel"
+msgstr "Mike Haertel"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:52
+msgid "David Hayes"
+msgstr "David Hayes"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:53
+msgid "Richard Stallman"
+msgstr "Richard Stallman"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:54
+msgid "Len Tower"
+msgstr "Len Tower"
+
+#: src/diff.c:353
+#, c-format
+msgid "invalid context length '%s'"
+msgstr "tamanho de contexto inválido \"%s\""
+
+#: src/diff.c:436
+#, c-format
+msgid "pagination not supported on this host"
+msgstr "paginação não suportada neste anfitrião"
+
+#: src/diff.c:451 src/diff3.c:336
+#, c-format
+msgid "too many file label options"
+msgstr "demasiadas opções de etiquetas de ficheiro"
+
+#: src/diff.c:528
+#, c-format
+msgid "invalid width '%s'"
+msgstr "largura \"%s\" inválida"
+
+#: src/diff.c:532
+msgid "conflicting width options"
+msgstr "opções de largura em conflito"
+
+#: src/diff.c:557
+#, c-format
+msgid "invalid horizon length '%s'"
+msgstr "tamanho horizontal \"%s\" inválido"
+
+#: src/diff.c:613
+#, c-format
+msgid "invalid tabsize '%s'"
+msgstr "tamanho de tabulação \"%s\" inválido"
+
+#: src/diff.c:617
+msgid "conflicting tabsize options"
+msgstr "opções de tabulação em conflito"
+
+#: src/diff.c:772
+msgid "--from-file and --to-file both specified"
+msgstr "ambas as opções --from-file e --to-file especificadas"
+
+#: src/diff.c:891
+msgid " --normal output a normal diff (the default)"
+msgstr ""
+" --normal imprime uma diferenciação normal (predefinição)"
+
+#: src/diff.c:892
+msgid "-q, --brief report only when files differ"
+msgstr "-q, --brief só reporta quando os ficheiros diferem"
+
+#: src/diff.c:893
+msgid "-s, --report-identical-files report when two files are the same"
+msgstr ""
+"-s, --report-identical-files reporta quando os dois ficheiros forem iguais"
+
+#: src/diff.c:894
+msgid ""
+"-c, -C NUM, --context[=NUM] output NUM (default 3) lines of copied context"
+msgstr ""
+"-c, -C NÚM, --context[=NÚM] imprime NÚM (predefinido como 3) linhas de "
+"contexto copiado"
+
+#: src/diff.c:895
+msgid ""
+"-u, -U NUM, --unified[=NUM] output NUM (default 3) lines of unified context"
+msgstr ""
+"-u, -U NÚM, --unified[=NÚM] imprime NÚM (predefinido como 3) linhas de "
+"contexto unificado"
+
+#: src/diff.c:896
+msgid "-e, --ed output an ed script"
+msgstr "-e, --ed imprime um script ed"
+
+#: src/diff.c:897
+msgid "-n, --rcs output an RCS format diff"
+msgstr "-n, --rcs imprime uma diferenciação de formato RCS"
+
+#: src/diff.c:898
+msgid "-y, --side-by-side output in two columns"
+msgstr "-y, --side-by-side imprime em duas colunas"
+
+#: src/diff.c:899
+msgid ""
+"-W, --width=NUM output at most NUM (default 130) print columns"
+msgstr ""
+"-W, --width=NÚM imprime no máximo NÚM (predefinido como 130) "
+"colunas"
+
+#: src/diff.c:900
+msgid ""
+" --left-column output only the left column of common lines"
+msgstr ""
+" --left-column imprime só a coluna esquerda de linhas comuns"
+
+#: src/diff.c:901
+msgid " --suppress-common-lines do not output common lines"
+msgstr " --suppress-common-lines não imprime linhas comuns"
+
+#: src/diff.c:903
+msgid "-p, --show-c-function show which C function each change is in"
+msgstr ""
+"-p, --show-c-function mostra em que função C está cada alteração"
+
+#: src/diff.c:904
+msgid "-F, --show-function-line=RE show the most recent line matching RE"
+msgstr ""
+"-F, --show-function-line=RE mostra a linha mais recente correspondente a RE"
+
+#: src/diff.c:905
+msgid ""
+" --label LABEL use LABEL instead of file name and timestamp\n"
+" (can be repeated)"
+msgstr ""
+" --label ETIQUETA usa ETIQUETA em vez do nome do ficheiro e do "
+"carimbo\n"
+" (pode ser repetida)"
+
+#: src/diff.c:908
+msgid "-t, --expand-tabs expand tabs to spaces in output"
+msgstr "-t, --expand-tabs expande tabulações para espaços na saída"
+
+#: src/diff.c:909
+msgid "-T, --initial-tab make tabs line up by prepending a tab"
+msgstr "-T, --initial-tab alinha tabulações prepondo tabulações"
+
+#: src/diff.c:910
+msgid ""
+" --tabsize=NUM tab stops every NUM (default 8) print columns"
+msgstr ""
+" --tabsize=NUM tabulações a cada NÚM (predefinido como 8) "
+"colunas"
+
+#: src/diff.c:911
+msgid ""
+" --suppress-blank-empty suppress space or tab before empty output lines"
+msgstr ""
+" --suppress-blank-empty suprime espaços ou tabulações antes de linhas "
+"de saída vazias"
+
+#: src/diff.c:912
+msgid "-l, --paginate pass output through 'pr' to paginate it"
+msgstr "-l, --paginate passa a saída por \"pr\" para a paginar"
+
+#: src/diff.c:914
+msgid ""
+"-r, --recursive recursively compare any subdirectories found"
+msgstr ""
+"-r, --recursive compara recursivamente todas as sub-pastas "
+"encontradas"
+
+#: src/diff.c:915
+msgid " --no-dereference don't follow symbolic links"
+msgstr " --no-dereference não segue ligações simbólicas"
+
+#: src/diff.c:916
+msgid "-N, --new-file treat absent files as empty"
+msgstr "-N, --new-file trata ficheiros ausentes como vazios"
+
+#: src/diff.c:917
+msgid " --unidirectional-new-file treat absent first files as empty"
+msgstr ""
+" --unidirectional-new-file trata primeiros ficheiros ausentes como "
+"vazios"
+
+#: src/diff.c:918
+msgid " --ignore-file-name-case ignore case when comparing file names"
+msgstr ""
+" --ignore-file-name-case ignora maiúsculas ao comparar nomes de "
+"ficheiro"
+
+#: src/diff.c:919
+msgid " --no-ignore-file-name-case consider case when comparing file names"
+msgstr ""
+" --no-ignore-file-name-case considera maiúsculas ao comparar nomes de "
+"ficheiro"
+
+#: src/diff.c:920
+msgid "-x, --exclude=PAT exclude files that match PAT"
+msgstr "-x, --exclude=PADRÃO exclui ficheiros que cumpram PADRÃO"
+
+#: src/diff.c:921
+msgid ""
+"-X, --exclude-from=FILE exclude files that match any pattern in FILE"
+msgstr ""
+"-X, --exclude-from=FICH exclui ficheiros que cumpram qualquer padrão "
+"em FICH"
+
+#: src/diff.c:922
+msgid ""
+"-S, --starting-file=FILE start with FILE when comparing directories"
+msgstr "-S, --starting-file=FICH começa com FICH ao comparar pastas"
+
+#: src/diff.c:923
+msgid ""
+" --from-file=FILE1 compare FILE1 to all operands;\n"
+" FILE1 can be a directory"
+msgstr ""
+" --from-file=FICH1 compara FICH1 a todos os operandos;\n"
+" FICH1 pode ser uma pasta"
+
+#: src/diff.c:925
+msgid ""
+" --to-file=FILE2 compare all operands to FILE2;\n"
+" FILE2 can be a directory"
+msgstr ""
+" --to-file=FICH2 compara todos os operandos a FICH2;\n"
+" FICH2 pode ser uma pasta"
+
+#: src/diff.c:928
+msgid ""
+"-i, --ignore-case ignore case differences in file contents"
+msgstr ""
+"-i, --ignore-case ignora diferenças de maiúsculas no conteúdo "
+"dos ficheiros"
+
+#: src/diff.c:929
+msgid "-E, --ignore-tab-expansion ignore changes due to tab expansion"
+msgstr ""
+"-E, --ignore-tab-expansion ignora alterações devidas a expansão de "
+"tabulações"
+
+#: src/diff.c:930
+msgid "-Z, --ignore-trailing-space ignore white space at line end"
+msgstr "-Z, --ignore-trailing-space ignora espaços no final das linhas"
+
+#: src/diff.c:931
+msgid ""
+"-b, --ignore-space-change ignore changes in the amount of white space"
+msgstr ""
+"-b, --ignore-space-change ignora alterações na quantidade de espaço em "
+"branco"
+
+#: src/diff.c:932
+msgid "-w, --ignore-all-space ignore all white space"
+msgstr "-w, --ignore-all-space ignora todos os espaços em branco"
+
+#: src/diff.c:933
+msgid ""
+"-B, --ignore-blank-lines ignore changes where lines are all blank"
+msgstr ""
+"-B, --ignore-blank-lines ignora alterações onde as linhas estejam "
+"todas em branco"
+
+#: src/diff.c:934
+msgid "-I, --ignore-matching-lines=RE ignore changes where all lines match RE"
+msgstr ""
+"-I, --ignore-matching-lines=RE ignora alterações onde as linhas coincidam "
+"com RE"
+
+#: src/diff.c:936
+msgid "-a, --text treat all files as text"
+msgstr "-a, --text trata todos os ficheiros como texto"
+
+#: src/diff.c:937
+msgid " --strip-trailing-cr strip trailing carriage return on input"
+msgstr ""
+" --strip-trailing-cr remove os carriage return finais na entrada"
+
+#: src/diff.c:939
+msgid " --binary read and write data in binary mode"
+msgstr " --binary lê e escreve dados em modo binário"
+
+#: src/diff.c:942
+msgid ""
+"-D, --ifdef=NAME output merged file with '#ifdef NAME' diffs"
+msgstr ""
+"-D, --ifdef=NOME imprime o ficheiro unido com diferenciação "
+"\"#ifdef NOME\""
+
+#: src/diff.c:943
+msgid " --GTYPE-group-format=GFMT format GTYPE input groups with GFMT"
+msgstr ""
+" --TIPOG-group-format=FMTG formata grupos de entrada TIPOG com FMTG"
+
+#: src/diff.c:944
+msgid " --line-format=LFMT format all input lines with LFMT"
+msgstr ""
+" --line-format=FMTL formata todas as linhas de entrada com FMTL"
+
+#: src/diff.c:945
+msgid " --LTYPE-line-format=LFMT format LTYPE input lines with LFMT"
+msgstr ""
+" --TIPOL-line-format=FMTL formata linhas de entrada TIPOL com FMTL"
+
+#: src/diff.c:946
+msgid ""
+" These format options provide fine-grained control over the output\n"
+" of diff, generalizing -D/--ifdef."
+msgstr ""
+" Estas opções de formato fornecem um controlo preciso sobre a saída\n"
+" da diferenciação, generalizando -D/--ifdef."
+
+#: src/diff.c:948
+msgid " LTYPE is 'old', 'new', or 'unchanged'. GTYPE is LTYPE or 'changed'."
+msgstr ""
+" TIPOL é \"old\", \"new\" ou \"unchanged\". TIPOG é TIPOL ou \"changed\"."
+
+#: src/diff.c:949
+msgid ""
+" GFMT (only) may contain:\n"
+" %< lines from FILE1\n"
+" %> lines from FILE2\n"
+" %= lines common to FILE1 and FILE2\n"
+" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n"
+" LETTERs are as follows for new group, lower case for old group:\n"
+" F first line number\n"
+" L last line number\n"
+" N number of lines = L-F+1\n"
+" E F-1\n"
+" M L+1\n"
+" %(A=B?T:E) if A equals B then T else E"
+msgstr ""
+" FMTG (só) pode conter:\n"
+" %< linhas de FICH1\n"
+" %> linhas de FICH2\n"
+" %= linhas comuns a FICH1 e FICH2\n"
+" %[-][LARG][.[PREC]]{doxX}LETRA especificação estilo printf para LETRA\n"
+" LETRAs são como segue para novo grupo, minúsculas para o grupo "
+"antigo:\n"
+" F primeiro número de linha\n"
+" L último número de linha\n"
+" N número de linhas = L-F+1\n"
+" E F-1\n"
+" M L+1\n"
+" %(A=B?T:E) se A igual a B então T senão E"
+
+#: src/diff.c:961
+msgid ""
+" LFMT (only) may contain:\n"
+" %L contents of line\n"
+" %l contents of line, excluding any trailing newline\n"
+" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number"
+msgstr ""
+" FMTL (só) pode conter:\n"
+" %L conteúdo da linha\n"
+" %l conteúdo da linha, excluindo qualquer newline final\n"
+" %[-][LARG][.[PREC]]{doxX}n especificação estilo printf para número de "
+"linha de entrada"
+
+#: src/diff.c:965
+msgid ""
+" Both GFMT and LFMT may contain:\n"
+" %% %\n"
+" %c'C' the single character C\n"
+" %c'\\OOO' the character with octal code OOO\n"
+" C the character C (other characters represent themselves)"
+msgstr ""
+" Ambos FMTG e FMTL podem conter:\n"
+" %% %\n"
+" %c\"C\" o carácter único C\n"
+" %c\"\\OOO\" o carácter com código octal OOO\n"
+" C o carácter C (outros caracteres representam-se a si mesmos)"
+
+#: src/diff.c:971
+msgid "-d, --minimal try hard to find a smaller set of changes"
+msgstr ""
+"-d, --minimal tenta arduamente encontrar um conjunto de "
+"alterações mais pequeno"
+
+#: src/diff.c:972
+msgid " --horizon-lines=NUM keep NUM lines of the common prefix and suffix"
+msgstr " --horizon-lines=NÚM mantém NÚM linhas dos prefixo e sufixo comuns"
+
+#: src/diff.c:973
+msgid ""
+" --speed-large-files assume large files and many scattered small changes"
+msgstr ""
+" --speed-large-files presume ficheiros grandes e muitas alterações "
+"pequenas espalhadas"
+
+#: src/diff.c:974
+msgid ""
+" --color[=WHEN] colorize the output; WHEN can be 'never', "
+"'always',\n"
+" or 'auto' (the default)"
+msgstr ""
+" --color[=QUANDO] dá cor à saída; QUANDO pode ser \"never\", \"always"
+"\",\n"
+" ou \"auto\" (a predefinição)"
+
+#: src/diff.c:976
+msgid ""
+" --palette=PALETTE the colors to use when --color is active; PALETTE "
+"is\n"
+" a colon-separated list of terminfo capabilities"
+msgstr ""
+" --palette=PALETA as cores a usar quando --color está activa; PALETA "
+"é\n"
+" uma lista separada por vírgulas de capacidades "
+"terminfo"
+
+#: src/diff.c:979
+msgid " --help display this help and exit"
+msgstr " --help mostra esta ajuda e sai"
+
+#: src/diff.c:980
+msgid "-v, --version output version information and exit"
+msgstr "-v, --version mostra informação da versão e sai"
+
+#: src/diff.c:982
+msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
+msgstr ""
+"FICHEIROS são \"FICH1 FICH2\" ou \"PST1 PST2\" or \"PST FICH\" ou \"FICH PST"
+"\"."
+
+#: src/diff.c:983
+msgid ""
+"If --from-file or --to-file is given, there are no restrictions on FILE(s)."
+msgstr ""
+"Se --from-file ou --to-file forem indicados, não há restrições em "
+"FICHEIRO(s)."
+
+#: src/diff.c:984 src/diff3.c:528 src/sdiff.c:219
+msgid "If a FILE is '-', read standard input."
+msgstr "Se FICHEIRO for \"-\", lê a entrada padrão."
+
+#: src/diff.c:994
+#, c-format
+msgid "Usage: %s [OPTION]... FILES\n"
+msgstr "Uso: %s [OPÇÃO]... FICHEIROS\n"
+
+#: src/diff.c:995
+msgid "Compare FILES line by line."
+msgstr "compara FICHEIROS linha a linha."
+
+#: src/diff.c:1032
+#, c-format
+msgid "conflicting %s option value '%s'"
+msgstr "valor \"%s\" da opção %s em conflito"
+
+#: src/diff.c:1045
+#, c-format
+msgid "conflicting output style options"
+msgstr "opções de estilo da saída em conflito"
+
+#: src/diff.c:1061
+#, c-format
+msgid "invalid color '%s'"
+msgstr "cor \"%s\" inválida"
+
+#: src/diff.c:1117 src/diff.c:1327
+#, c-format
+msgid "Only in %s: %s\n"
+msgstr "Só em %s: %s\n"
+
+#: src/diff.c:1251
+msgid "cannot compare '-' to a directory"
+msgstr "impossível comparar \"-\" a uma pasta"
+
+#: src/diff.c:1286
+msgid "-D option not supported with directories"
+msgstr "opção -D não suportada em pastas"
+
+#: src/diff.c:1295
+#, c-format
+msgid "Common subdirectories: %s and %s\n"
+msgstr "Pastas comuns: %s e %s\n"
+
+#: src/diff.c:1337 src/diff.c:1387
+#, c-format
+msgid "File %s is a %s while file %s is a %s\n"
+msgstr "O ficheiro %s é %s enquanto o ficheiro %s é %s\n"
+
+#: src/diff.c:1373
+#, c-format
+msgid "Symbolic links %s and %s differ\n"
+msgstr "As ligações simbólicas %s e %s diferem\n"
+
+#: src/diff.c:1460
+#, c-format
+msgid "Files %s and %s are identical\n"
+msgstr "Os ficheiros %s e %s são idênticos\n"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff3.c:42
+msgid "Randy Smith"
+msgstr "Randy Smith"
+
+#: src/diff3.c:351
+#, c-format
+msgid "incompatible options"
+msgstr "opções incompatíveis"
+
+#: src/diff3.c:391
+msgid "'-' specified for more than one input file"
+msgstr "\"-\" especificado para mais de um ficheiro de entrada"
+
+#: src/diff3.c:442 src/diff3.c:1290 src/diff3.c:1693 src/diff3.c:1748
+#: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
+msgid "read failed"
+msgstr "read falhou"
+
+#: src/diff3.c:475
+msgid "-A, --show-all output all changes, bracketing conflicts"
+msgstr ""
+"-A, --show-all imprime todas as alterações, conflitos entre "
+"chavetas"
+
+#: src/diff3.c:477
+msgid ""
+"-e, --ed output ed script incorporating changes\n"
+" from OLDFILE to YOURFILE into MYFILE"
+msgstr ""
+"-e, --ed imprime um script ed incorporando as alterações\n"
+" de FICHVELHO para SEUFICH para MEUFICH"
+
+#: src/diff3.c:479
+msgid "-E, --show-overlap like -e, but bracket conflicts"
+msgstr "-E, --show-overlap como -e, mas com conflitos entre chavetas"
+
+#: src/diff3.c:480
+msgid ""
+"-3, --easy-only like -e, but incorporate only nonoverlapping "
+"changes"
+msgstr ""
+"-3, --easy-only como -e, mas incorpora só alterações que não se "
+"sobreponham"
+
+#: src/diff3.c:481
+msgid ""
+"-x, --overlap-only like -e, but incorporate only overlapping changes"
+msgstr ""
+"-x, --overlap-only como -e, mas incorpora só alterações que se "
+"sobreponham"
+
+#: src/diff3.c:482
+msgid "-X like -x, but bracket conflicts"
+msgstr "-X como -x, mas com conflitos entre chavetas"
+
+#: src/diff3.c:483
+msgid "-i append 'w' and 'q' commands to ed scripts"
+msgstr "-i anexa comandos \"w\" e \"q\" a scripts ed"
+
+#: src/diff3.c:485
+msgid ""
+"-m, --merge output actual merged file, according to\n"
+" -A if no other options are given"
+msgstr ""
+"-m, --merge imprime o ficheiro unido real, de acordo com\n"
+" -A se nenhuma outra opção for indicada"
+
+#: src/diff3.c:488
+msgid "-a, --text treat all files as text"
+msgstr "-a, --text trata todos os ficheiros como texto"
+
+#: src/diff3.c:489
+msgid " --strip-trailing-cr strip trailing carriage return on input"
+msgstr " --strip-trailing-cr remove carriage return finais na entrada"
+
+#: src/diff3.c:490
+msgid "-T, --initial-tab make tabs line up by prepending a tab"
+msgstr "-T, --initial-tab alinha tabulações prepondo tabulações"
+
+#: src/diff3.c:491
+msgid " --diff-program=PROGRAM use PROGRAM to compare files"
+msgstr " --diff-program=PROGRAMA usa PROGRAMA para comparar ficheiros"
+
+#: src/diff3.c:492
+msgid ""
+"-L, --label=LABEL use LABEL instead of file name\n"
+" (can be repeated up to three times)"
+msgstr ""
+"-L, --label=ETIQUETA usa ETIQUETA em vez do nome de ficheiro\n"
+" (pode ser repetida até três vezes)"
+
+#: src/diff3.c:495
+msgid " --help display this help and exit"
+msgstr " --help mostra esta ajuda e sai"
+
+#: src/diff3.c:496
+msgid "-v, --version output version information and exit"
+msgstr "-v, --version mostra informação da versão e sai"
+
+#: src/diff3.c:505
+#, c-format
+msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
+msgstr "Uso: %s [OPÇÃO]... MEUFICH FICHVELHO SEUFICH\n"
+
+#: src/diff3.c:507
+msgid "Compare three files line by line."
+msgstr "compara três ficheiros linha a linha."
+
+#: src/diff3.c:517
+msgid ""
+"\n"
+"The default output format is a somewhat human-readable representation of\n"
+"the changes.\n"
+"\n"
+"The -e, -E, -x, -X (and corresponding long) options cause an ed script\n"
+"to be output instead of the default.\n"
+"\n"
+"Finally, the -m (--merge) option causes diff3 to do the merge internally\n"
+"and output the actual merged file. For unusual input, this is more\n"
+"robust than using ed.\n"
+msgstr ""
+"\n"
+"O formato de saída predefinido é uma representação razoavelmente legível\n"
+"das alterações.\n"
+"\n"
+"As opções -e, -E, -x, -X (e as longas correspondentes) forçam a impressão\n"
+"de um script ed em vez da predefinição.\n"
+"\n"
+"Fianlmente, a opção -m (--merge) faz com que o diff3 faça a união "
+"internamente\n"
+"e imprima o ficheiro unido real. Para entradas incomuns, isto é mais\n"
+"robusto do que usar o ed.\n"
+
+#: src/diff3.c:529
+msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
+msgstr ""
+"O estado de saída é 0 se tiver sucesso, 1 para conflitos, 2 se houver "
+"problemas."
+
+#: src/diff3.c:722
+msgid "internal error: screwup in format of diff blocks"
+msgstr "erro interno: confusão no formato de blocos de diferença"
+
+#: src/diff3.c:1017
+#, c-format
+msgid "%s: diff failed: "
+msgstr "%s: diff falhou: "
+
+#: src/diff3.c:1039
+msgid "internal error: invalid diff type in process_diff"
+msgstr "erro interno: tipo de diff inválido em process_diff"
+
+#: src/diff3.c:1064
+msgid "invalid diff format; invalid change separator"
+msgstr "formato de diff inválido; separador de alterações inválido"
+
+#: src/diff3.c:1300
+msgid "invalid diff format; incomplete last line"
+msgstr "formato de diff inválido; última linha incompleta"
+
+#: src/diff3.c:1324 src/sdiff.c:275 src/util.c:969
+#, c-format
+msgid "subsidiary program '%s' could not be invoked"
+msgstr "impossível chamar o programa subsidiário \"%s\""
+
+#: src/diff3.c:1349
+msgid "invalid diff format; incorrect leading line chars"
+msgstr "formato de diff inválido; caracteres iniciais de linha incorrectos"
+
+#: src/diff3.c:1422
+msgid "internal error: invalid diff type passed to output"
+msgstr "erro interno: tipo de diff inválido passado à saída"
+
+#: src/diff3.c:1695 src/diff3.c:1752
+msgid "input file shrank"
+msgstr "ficheiro de entrada encolhido"
+
+#: src/dir.c:156
+#, c-format
+msgid "cannot compare file names '%s' and '%s'"
+msgstr "impossível comparar nomes de ficheiro \"%s\" e \"%s\""
+
+#: src/dir.c:225
+#, c-format
+msgid "%s: recursive directory loop"
+msgstr "%s: ciclo de pasta recursiva"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/sdiff.c:43
+msgid "Thomas Lord"
+msgstr "Thomas Lord"
+
+#: src/sdiff.c:173
+msgid ""
+"-o, --output=FILE operate interactively, sending output to FILE"
+msgstr ""
+"-o, --output=FILE opera interactivamente, enviando a saída para "
+"FICH"
+
+#: src/sdiff.c:175
+msgid ""
+"-i, --ignore-case consider upper- and lower-case to be the same"
+msgstr ""
+"-i, --ignore-case considera maiúsculas e minúsculas como sendo "
+"iguais"
+
+#: src/sdiff.c:176
+msgid "-E, --ignore-tab-expansion ignore changes due to tab expansion"
+msgstr ""
+"-E, --ignore-tab-expansion ignora alterações devidas a expansão de "
+"tabulações"
+
+#: src/sdiff.c:177
+msgid "-Z, --ignore-trailing-space ignore white space at line end"
+msgstr "-Z, --ignore-trailing-space ignora espaços no final das linhas"
+
+#: src/sdiff.c:178
+msgid ""
+"-b, --ignore-space-change ignore changes in the amount of white space"
+msgstr ""
+"-b, --ignore-space-change ignora alterações na quantidade de espaço em "
+"branco"
+
+#: src/sdiff.c:179
+msgid "-W, --ignore-all-space ignore all white space"
+msgstr "-W, --ignore-all-space ignora todo o espaço em branco"
+
+#: src/sdiff.c:180
+msgid "-B, --ignore-blank-lines ignore changes whose lines are all blank"
+msgstr ""
+"-B, --ignore-blank-lines ignora alterações cujas linhas estejam todas em "
+"branco"
+
+#: src/sdiff.c:181
+msgid "-I, --ignore-matching-lines=RE ignore changes all whose lines match RE"
+msgstr ""
+"-I, --ignore-matching-lines=RE ignora alterações cujas linhas coincidam com "
+"RE"
+
+#: src/sdiff.c:182
+msgid " --strip-trailing-cr strip trailing carriage return on input"
+msgstr " --strip-trailing-cr remove carriage return finais na entrada"
+
+#: src/sdiff.c:183
+msgid "-a, --text treat all files as text"
+msgstr "-a, --text trata todos os ficheiros como texto"
+
+#: src/sdiff.c:185
+msgid ""
+"-w, --width=NUM output at most NUM (default 130) print columns"
+msgstr ""
+"-w, --width=NUM imprime no máximo NÚM (predefinido como 130) "
+"colunas"
+
+#: src/sdiff.c:186
+msgid ""
+"-l, --left-column output only the left column of common lines"
+msgstr ""
+"-l, --left-column imprime só a coluna esquerda de linhas comuns"
+
+#: src/sdiff.c:187
+msgid "-s, --suppress-common-lines do not output common lines"
+msgstr "-s, --suppress-common-lines não imprime linhas comuns"
+
+#: src/sdiff.c:189
+msgid "-t, --expand-tabs expand tabs to spaces in output"
+msgstr "-t, --expand-tabs expande tabulações para espaços na saída"
+
+#: src/sdiff.c:190
+msgid ""
+" --tabsize=NUM tab stops at every NUM (default 8) print columns"
+msgstr ""
+" --tabsize=NÚM tabulações a cada NÚM (predefinido como 8) "
+"colunas"
+
+#: src/sdiff.c:192
+msgid "-d, --minimal try hard to find a smaller set of changes"
+msgstr ""
+"-d, --minimal tenta arduamente encontrar um conjunto de "
+"alterações mais pequeno"
+
+#: src/sdiff.c:193
+msgid ""
+"-H, --speed-large-files assume large files, many scattered small changes"
+msgstr ""
+"-H, --speed-large-files presume ficheiros grandes, muitas alterações "
+"pequenas espalhadas"
+
+#: src/sdiff.c:194
+msgid " --diff-program=PROGRAM use PROGRAM to compare files"
+msgstr " --diff-program=PROGRAMA usa PROGRAMA para comparar ficheiros"
+
+#: src/sdiff.c:196
+msgid " --help display this help and exit"
+msgstr " --help mostra esta ajuda e sai"
+
+#: src/sdiff.c:197
+msgid "-v, --version output version information and exit"
+msgstr "-v, --version imprime informação da versão e sai"
+
+#: src/sdiff.c:206
+#, c-format
+msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
+msgstr "Uso: %s [OPÇÃO]... FICHEIRO1 FICHEIRO2\n"
+
+#: src/sdiff.c:208
+msgid "Side-by-side merge of differences between FILE1 and FILE2."
+msgstr "União lado-a-lado de diferenças entre FICHEIRO1 e FICHEIRO2."
+
+#: src/sdiff.c:329
+msgid "cannot interactively merge standard input"
+msgstr "impossível unir interactivamente a entrada padrão"
+
+#: src/sdiff.c:595
+msgid "both files to be compared are directories"
+msgstr "ambos os ficheiros a comparar são pastas"
+
+#: src/sdiff.c:818
+msgid ""
+"ed:\tEdit then use both versions, each decorated with a header.\n"
+"eb:\tEdit then use both versions.\n"
+"el or e1:\tEdit then use the left version.\n"
+"er or e2:\tEdit then use the right version.\n"
+"e:\tDiscard both versions then edit a new one.\n"
+"l or 1:\tUse the left version.\n"
+"r or 2:\tUse the right version.\n"
+"s:\tSilently include common lines.\n"
+"v:\tVerbosely include common lines.\n"
+"q:\tQuit.\n"
+msgstr ""
+"ed:\tedita e depois usa ambas as versões, cada uma decorada com um "
+"cabeçalho.\n"
+"eb:\tedita e depois usa ambas as versões.\n"
+"el or e1:\tedita e depois usa a versão esquerda.\n"
+"er or e2:\tedita e depois usa a versão direita.\n"
+"e:\tdescarta ambas as versões e depois edita uma nova.\n"
+"l or 1:\tusa a versão esquerda.\n"
+"r or 2:\tusa a versão direita.\n"
+"s:\tinclui linhas comuns silenciosamente.\n"
+"v:\tinclui linhas comuns verbosamente.\n"
+"q:\tsai.\n"
+
+#: src/util.c:662
+#, c-format
+msgid "unrecognized prefix: %s"
+msgstr "prefixo não reconhecido: %s"
+
+#: src/util.c:692
+#, c-format
+msgid "unparsable value for --palette"
+msgstr "valor não analisável para --palette"
# Brazilian Portuguese translations for diffutis package
# Traduções em português brasileiro para o pacote diffutils
-# Copyright (C) 2017 Free Software Foundation, Inc.
+# Copyright (C) 2018 Free Software Foundation, Inc.
# This file is distributed under the same license as the diffutils package.
# Halley Pacheco de Oliveira <halleypo@ig.com.br>, 2002.
-# Rafael Fontenelle <rffontenelle@gmail.com>, 2016, 2017.
+# Rafael Fontenelle <rafaelff@gnome.org>, 2016-2018.
msgid ""
msgstr ""
-"Project-Id-Version: diffutils 3.5.25\n"
+"Project-Id-Version: diffutils 3.6.17\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
-"PO-Revision-Date: 2017-05-07 15:53-0200\n"
-"Last-Translator: Rafael Fontenelle <rffontenelle@gmail.com>\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
+"PO-Revision-Date: 2018-12-27 15:06-0200\n"
+"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
"net>\n"
"Language: pt_BR\n"
msgid "Valid arguments are:"
msgstr "Argumentos válidos são:"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "erro do programa"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "estouro de pilha"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr ") ou \\) sem correspondente"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Nenhuma expressão regular anterior"
msgid "%s%s argument '%s' too large"
msgstr "argumento grande demais para %s%s: \"%s\""
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Empacotado por %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Empacotado por %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "(C)"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
"\n"
msgstr ""
"\n"
-"Licença GPLv3+: GNU GPL versão 3 ou posterior <http://gnu.org/licenses/gpl."
+"Licença GPLv3+: GNU GPL versão 3 ou posterior <https://gnu.org/licenses/gpl."
"html>\n"
"Este é um software livre: você é livre para alterá-lo e redistribuí-lo.\n"
"NÃO HÁ QUALQUER GARANTIA, na máxima extensão permitida em lei.\n"
#: lib/version-etc.c:253
#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr "Página do %s: <http://www.gnu.org/software/%s/>\n"
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
+msgstr "Página do %s: <https://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-msgstr "Ajuda geral no uso de software GNU: <http://www.gnu.org/gethelp/>\n"
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
+msgstr "Ajuda geral no uso de software GNU: <https://www.gnu.org/gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Os arquivos %s e %s são diferentes\n"
msgid "write failed"
msgstr "erro de escrita"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "saída padrão"
msgid ""
"-c, -C NUM, --context[=NUM] output NUM (default 3) lines of copied context"
msgstr ""
-"-c, -C NÚM, --context[=NÚM] cria em NÚM linhas (padrão 3) de contexto "
-"copiado"
+"-c, -C NÚM, --context[=NÚM] cria NÚM (padrão 3) linhas de contexto copiado"
#: src/diff.c:895
msgid ""
"-u, -U NUM, --unified[=NUM] output NUM (default 3) lines of unified context"
msgstr ""
-"-u, -U NÚM, --unified[=NÚM] cria em NÚM linhas (padrão 3) de contexto "
+"-u, -U NÚM, --unified[=NÚM] cria NÚM (padrão 3) linhas de contexto "
"unificado"
#: src/diff.c:896
#: src/diff.c:934
msgid "-I, --ignore-matching-lines=RE ignore changes where all lines match RE"
msgstr ""
-"-I, --ignore-matching-lines=ER ignora as diferenças nas linhas que "
-"correspondem\n"
-" à Expressão Regular"
+"-I, --ignore-matching-lines=ER ignora as diferenças nas linhas que\n"
+" correspondem à expressão regular ER"
#: src/diff.c:936
msgid "-a, --text treat all files as text"
#: src/diff.c:945
msgid " --LTYPE-line-format=LFMT format LTYPE input lines with LFMT"
msgstr ""
-" --LTYPE-line-format=LFMT formata todas as linhas de entrada LTYPE com "
-"LFMT"
+" --LTYPE-line-format=LFMT formata linhas de entrada LTYPE com LFMT"
#: src/diff.c:946
msgid ""
msgid "Compare FILES line by line."
msgstr "Compara ARQUIVOS linha por linha."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "opção %s com valor conflitante \"%s\""
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "opções conflitantes de estilo de saída"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, c-format
msgid "invalid color '%s'"
msgstr "cor inválida \"%s\""
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Somente em %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "não é possível comparar \"-\" com um diretório"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "Sem suporte à opção -D com diretórios"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Subdiretórios idênticos: %s e %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "O arquivo %s é %s, enquanto o arquivo %s é %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Os links simbólicos %s e %s são diferentes\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Os aquivos %s e %s são idênticos\n"
msgid ""
"-w, --width=NUM output at most NUM (default 130) print columns"
msgstr ""
-"-w, --width=NÚM limita a saída a NÚM colunas por linha (padrão "
-"130)"
+"-w, --width=NÚM emite no máximo NÚM (padrão 130) colunas linhas"
#: src/sdiff.c:186
msgid ""
msgstr ""
"Project-Id-Version: diffutils 2.8.3\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
"PO-Revision-Date: 2003-08-22 08:43+0300\n"
"Last-Translator: Eugen Hoanca <eugenh@urban-grafx.ro>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
msgid "Valid arguments are:"
msgstr ""
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "eroare de program"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "stivã plinã(overflow)"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr ") or \\) nedeschise"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Nu a existat nici o expresie normalã antecedentã"
msgid "%s%s argument '%s' too large"
msgstr ""
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr ""
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr ""
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "(C)"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
#: lib/version-etc.c:253
#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr ""
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Fiºierele %s ºi %s diferã\n"
msgid "write failed"
msgstr "scriere eºuatã"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "ieºire(output) standard"
msgid "Compare FILES line by line."
msgstr "Comparã fiºierele linie cu linie."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, fuzzy, c-format
msgid "conflicting %s option value '%s'"
msgstr "Existã un conflict cu %s în valoarea opþiunii `%s'"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "Conflict în opþiunile stilului de afiºare(output)"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, fuzzy, c-format
msgid "invalid color '%s'"
msgstr "lungime invalidã de context `%s'"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Doar în %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
#, fuzzy
msgid "cannot compare '-' to a directory"
msgstr "nu se poate compara `-' cu un director"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "opþiunea -D nu este compatibilã cu directoarele"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Subdirectoare comune: %s ºi %s.\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Fiºierul %s este un %s pe când fiºierul %s este un %s.\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, fuzzy, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Fiºierele %s ºi %s diferã\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Fiºierele %s ºi %s sunt identice\n"
# This file is distributed under the same license as the diffutils package.
#
# Oleg S. Tihonov <ost@tatnipi.ru>, 1998, 2001, 2002, 2005, 2007.
-# Yuri Kozlov <yuray@komyakino.ru>, 2017.
+# Yuri Kozlov <yuray@komyakino.ru>, 2017, 2018.
msgid ""
msgstr ""
-"Project-Id-Version: diffutils 3.5.25\n"
+"Project-Id-Version: diffutils 3.6.17\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
-"PO-Revision-Date: 2017-05-08 11:12+0300\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
+"PO-Revision-Date: 2018-12-28 05:11+0300\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
"Language-Team: Russian <gnu@d07.ru>\n"
"Language: ru\n"
msgid "Valid arguments are:"
msgstr "Допустимые аргументы:"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "ошибка программы"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "переполнение стека"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr "Непарная ) или \\)"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Регулярное выражение не было задано раньше"
msgid "%s%s argument '%s' too large"
msgstr "аргумент %s%s слишком велик для ?%s?"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Упакован %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Упакован %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "©"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
"\n"
msgstr ""
"\n"
-"Лицензия GPLv3+: GNU GPL версии 3 или новее <http://gnu.org/licenses/gpl."
+"Лицензия GPLv3+: GNU GPL версии 3 или новее <https://gnu.org/licenses/gpl."
"html>\n"
"Это свободное ПО: вы можете продавать и распространять его.\n"
"Нет НИКАКИХ ГАРАНТИЙ до степени, разрешённой законом.\n"
#: lib/version-etc.c:253
#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr "Домашняя страница %s: <http://www.gnu.org/software/%s/>\n"
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
+msgstr "Домашняя страница %s: <https://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-msgstr "Справка по работе с программами GNU: <http://www.gnu.org/gethelp/>\n"
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
+msgstr "Справка по работе с программами GNU: <https://www.gnu.org/gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Файлы %s и %s различаются\n"
msgid "write failed"
msgstr "ошибка при записи"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "стандартный вывод"
msgid "Compare FILES line by line."
msgstr "Построчно сравнивает ФАЙЛЫ."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "противоречивое значение %s для ключа ?%s?"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "противоречивые ключи задания стиля вывода"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, c-format
msgid "invalid color '%s'"
msgstr "неправильное указание цвета ?%s?"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Только в %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "невозможно сравнить ?-? с каталогом"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "ключ -D не поддерживается для каталогов"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Общие подкаталоги: %s и %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Файл %s это %s, тогда как файл %s ? %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Символические ссылки %s и %s различаются\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Файлы %s и %s идентичны\n"
# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2013—2017.
msgid ""
msgstr ""
-"Project-Id-Version: diffutils 3.5.14\n"
+"Project-Id-Version: diffutils 3.5.25\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
-"PO-Revision-Date: 2017-02-05 14:48+0200\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
+"PO-Revision-Date: 2017-06-18 08:29+0200\n"
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n"
"Language: sr\n"
msgid "Valid arguments are:"
msgstr "Исправни аргументи су:"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "грешка програма"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "стек препуњен"
msgstr "чудна датотека"
#: lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: опција „%s“ је нејасна\n"
+msgstr "%s: опција „%s%s“ је нејасна\n"
#: lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: опција „%s“ је нејасна; могућности:"
+msgstr "%s: опција „%s%s“ је нејасна; могућности:"
#: lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: непозната опција „%c%s“\n"
+msgstr "%s: непозната опција „%s%s“\n"
#: lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: опција „%c%s“ не дозвољава аргумент\n"
+msgstr "%s: опција „%s%s“ не дозвољава аргумент\n"
#: lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s: опција „%s“ захтева аргумент\n"
+msgstr "%s: опција „%s%s“ захтева аргумент\n"
#: lib/getopt.c:621
#, c-format
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr "Неупарено ) или \\)"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Нема претходног регуларног израза"
msgid "%s%s argument '%s' too large"
msgstr "%s%s аргумент „%s“ је превелик"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Запаковао је %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Запаковао је %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "©"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
+#, fuzzy
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr "%s матична страница: <%s>\n"
#: lib/version-etc.c:253
-#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+#, fuzzy, c-format
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr "%s матична страница: <http://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+#, fuzzy
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr "Општа помоћ користећи ГНУ софтвер: <http://www.gnu.org/gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Датотеке „%s“ и „%s“ су различите\n"
msgid "write failed"
msgstr "записивање није успело"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "стандардни излаз"
msgstr "%s %s се разликују: бајт %s, ред %s је %3o %s %3o %s\n"
#: src/cmp.c:571
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s which is empty\n"
-msgstr "cmp: крај датотеке на %s\n"
+msgstr "cmp: крај датотеке на %s које је празно\n"
#: src/cmp.c:585
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s after byte %s, line %s\n"
-msgstr "%s %s се разликују: бајт %s, ред %s\n"
+msgstr "cmp: крај датотеке на %s након бајта %s, %s. ред\n"
#: src/cmp.c:586
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s after byte %s, in line %s\n"
-msgstr "%s %s се разликују: бајт %s, ред %s\n"
+msgstr "cmp: крај датотеке на %s након бајта %s, у %s. реду\n"
#: src/cmp.c:592
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s after byte %s\n"
-msgstr "cmp: крај датотеке на %s\n"
+msgstr "cmp: крај датотеке на %s након бајта %s\n"
#. This is a proper name. See the gettext manual, section Names.
#: src/diff.c:50
" --speed-large-files за велике датотеке са много раштрканих малих измена"
#: src/diff.c:974
-#, fuzzy
msgid ""
" --color[=WHEN] colorize the output; WHEN can be 'never', "
"'always',\n"
" or 'auto' (the default)"
msgstr ""
" --color[=КАДА] обојава излаз; КАДА може бити „never“ (никада), "
-"„always“ (увек),"
+"„always“ (увек),\n"
+" или „auto“ (подразумевано)"
#: src/diff.c:976
-#, fuzzy
msgid ""
" --palette=PALETTE the colors to use when --color is active; PALETTE "
"is\n"
" a colon-separated list of terminfo capabilities"
msgstr ""
-" ПАЛЕТА је списак могућности података термина "
-"раздвојен двотачком"
+" --palette=ПАЛЕТА боје за коришћење када је „--color“ активно; ПАЛЕТА "
+"је\n"
+" списак могућности података термина раздвојен "
+"двотачком"
#: src/diff.c:979
msgid " --help display this help and exit"
msgid "Compare FILES line by line."
msgstr "Поредите ДАТОТЕКЕ ред по ред."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "сукоб вредности „%s“ опције „%s“"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "сукобљене опције излазног стила"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, c-format
msgid "invalid color '%s'"
msgstr "неисправна боја „%s“"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Само у %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "не могу поредити „-“ са директоријумом"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "опција „-D“ није подржана за директоријуме"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Заједнички поддиректоријуми: %s и %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Датотека „%s“ је „%s“ док је датотека „%s“ „%s“\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Симболичке везе „%s“ и „%s“ су различите\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Датотеке „%s“ и „%s“ се истоветне\n"
msgid "unparsable value for --palette"
msgstr "необрадива вредност за „--palette“"
-#~ msgid " or 'auto' (the default)"
-#~ msgstr " или „auto“ (подразумевано)"
-
-#~ msgid ""
-#~ " --palette=PALETTE specify the colors to use when --color is active"
-#~ msgstr ""
-#~ " --palette=ПАЛЕТА наводи боје за коришћење када је активно „--"
-#~ "color“"
-
#~ msgid "%s: option '--%s' doesn't allow an argument\n"
#~ msgstr "%s: опција „--%s“ не дозвољава аргумент\n"
#~ msgid "%s: option '-W %s' requires an argument\n"
#~ msgstr "%s: опција „-W %s“ захтева аргумент\n"
+
+#~ msgid " or 'auto' (the default)"
+#~ msgstr " или „auto“ (подразумевано)"
+
+#~ msgid ""
+#~ " --palette=PALETTE specify the colors to use when --color is active"
+#~ msgstr ""
+#~ " --palette=ПАЛЕТА наводи боје за коришћење када је активно „--"
+#~ "color“"
# Swedish messages for diffutils.
-# Copyright © 1996, 2001, 2002, 2004, 2006, 2010, 2011, 2012, 2017 Free Software Foundation, Inc.
+# Copyright © 1996, 2001, 2002, 2004, 2006, 2010, 2011, 2012, 2017, 2018 Free Software Foundation, Inc.
# This file is distributed under the same license as the diffutils package.
-# Göran Uddeborg <goeran@uddeborg.se>, 1996, 2001, 2002, 2004, 2006, 2010, 2011, 2012, 2017.
+# Göran Uddeborg <goeran@uddeborg.se>, 1996, 2001, 2002, 2004, 2006, 2010, 2011, 2012, 2017, 2018.
#
-# $Revision: 1.48 $
+# $Revision: 1.50 $
#
msgid ""
msgstr ""
-"Project-Id-Version: diffutils 3.5.25\n"
+"Project-Id-Version: diffutils 3.6.17\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
-"PO-Revision-Date: 2017-05-13 18:08+0200\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
+"PO-Revision-Date: 2018-12-28 13:31+0100\n"
"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
msgid "Valid arguments are:"
msgstr "Giltiga argument är:"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "programfel"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "stackspill"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr "Oparad ) eller \\)"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Inget föregående reguljäruttryck"
msgid "%s%s argument '%s' too large"
msgstr "argument till %s%s ”%s” är för stort"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Paketerat av %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Paketerat av %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "©"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
"\n"
msgstr ""
"\n"
-"Licens GPLv3+: GNU GPL version 3 eller senare <http://gnu.org/licenses/gpl."
+"Licens GPLv3+: GNU GPL version 3 eller senare <https://gnu.org/licenses/gpl."
"html>.\n"
"Detta är fri programvara: du får fritt ändra och vidaredistribuera den.\n"
"Det finns INGEN GARANTI, så långt lagen tillåter.\n"
#: lib/version-etc.c:253
#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr "%s hemsida: <http://www.gnu.org/software/%s/>\n"
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
+msgstr "%s hemsida: <https://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
-"Allmän hjälp med att använda GNU-program: <http://www.gnu.org/gethelp/>\n"
+"Allmän hjälp med att använda GNU-program: <https://www.gnu.org/gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Filerna %s och %s skiljer\n"
msgid "write failed"
msgstr "skrivning misslyckades"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "standard ut"
msgid "Compare FILES line by line."
msgstr "Jämför FILER rad för rad."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "motstridigt %s-flaggsvärde ”%s”"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "motstridig utmatningsstilsflagga"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, c-format
msgid "invalid color '%s'"
msgstr "ogiltig färg ”%s”"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Endast i %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "kan inte jämföra ”-” med en katalog"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "flaggan -D stödjs ej för kataloger"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Lika underkataloger: %s och %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Filen %s är %s medan filen %s är %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "De symboliska länkarna %s och %s skiljer\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Filerna %s och %s är lika\n"
# This file is distributed under the same license as the diffutils package.
# Deniz Akkus Kanca <deniz@arayan.com>, 2001.
# Volkan Gezer <vlkngzr@gmail.com>, 2013.
-# Mehmet Kececi <mkececi@mehmetkececi.com>, 2017.
+# Mehmet Kececi <mkececi@mehmetkececi.com>, 2017, 2018.
msgid ""
msgstr ""
-"Project-Id-Version: diffutils 3.5.25\n"
+"Project-Id-Version: diffutils 3.6.17\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
-"PO-Revision-Date: 2017-05-08 11:19+0300\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
+"PO-Revision-Date: 2018-12-27 18:51+0300\n"
"Last-Translator: Mehmet Kececi <mkececi@mehmetkececi.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
"Language: tr\n"
msgid "Valid arguments are:"
msgstr "Geçerli argümanlar şunlardır:"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "yazılım hatası"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "yığıt taşması"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr ") ya da \\) eşleşmiyor"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Daha önce düzenli ifade yok"
msgid "%s%s argument '%s' too large"
msgstr "%s%s argümanı '%s' çok uzun"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "%s (%s) tarafından paketlenmiş\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "%s tarafından paketlenmiş\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "(C)"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
"\n"
msgstr ""
"\n"
-"Lisans GPLv3+: GNU GPL sürüm 3 veya sonrası <http://gnu.org/licenses/gpl."
+"Lisans GPLv3+: GNU GPL sürüm 3 veya sonrası <https://gnu.org/licenses/gpl."
"html>.\n"
"Bu ücretsiz bir yazılımdır: değiştirmekte ve tekrar dağıtmakta özgürsünüz.\n"
"İzin verilen yasalar kapsamında hiçbir GARANTİSİ BULUNMAMAKTADIR.\n"
#: lib/version-etc.c:253
#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr "%s ana sayfası: <http://www.gnu.org/software/%s/>\n"
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
+msgstr "%s ana sayfası: <https://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
-"GNU yazılımı kullanımı hakkında genel yardım: <http://www.gnu.org/gethelp/>\n"
+"GNU yazılımı kullanımı hakkında genel yardım: <https://www.gnu.org/gethelp/"
+">\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "%s ve %s dosyaları birbirinden farklı\n"
msgid "write failed"
msgstr "yazma başarısız oldu"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "standart çıktı"
msgid "Compare FILES line by line."
msgstr "DOSYAları satır satır karşılaştırır."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "çelişkili %s seçeneği değeri: '%s'"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "çelişkili çıktı tarz seçenekleri"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, c-format
msgid "invalid color '%s'"
msgstr "geçersiz renk '%s'"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Yalnızca %s'da: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "'-', bir dizinle karşılaştırılamaz"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "-D seçenek dizinler için kullanılamaz."
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Ortak alt dizinler: %s ve %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "%s dosyası, bir %s, halbuki %s dosyası bir %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "%s ve %s sembolik bağlantıları birbirinden farklı\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "%s ve %s dosyaları birbirinin aynı\n"
# This file is distributed under the same license as the diffutils package.
#
# Maxim V. Dziumanenko <dziumanenko@gmail.com>, 2006.
-# Yuri Chornoivan <yurchor@ukr.net>, 2011, 2012, 2017.
+# Yuri Chornoivan <yurchor@ukr.net>, 2011, 2012, 2017, 2018.
msgid ""
msgstr ""
-"Project-Id-Version: diffutils 3.5.25\n"
+"Project-Id-Version: diffutils 3.6.17\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
-"PO-Revision-Date: 2017-05-07 22:08+0300\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
+"PO-Revision-Date: 2018-12-27 13:46+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
"Language: uk\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Lokalize 1.5\n"
+"X-Generator: Lokalize 2.0\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: lib/argmatch.c:134
msgid "Valid arguments are:"
msgstr "Список коректних аргументів:"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "помилка програми"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "переповнення стеку"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr "Непарна ) чи \\)"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Регулярний вираз не було вказано раніше"
msgid "%s%s argument '%s' too large"
msgstr "%s%s, аргумент «%s» є занадто об'ємним"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Пакування виконано %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Пакування виконано %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "©"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
"\n"
msgstr ""
"\n"
-"Умови ліцензування викладено у GPLv3+: GNU GPL версії 3 або новішій, <http://"
-"gnu.org/licenses/gpl.html>\n"
+"Умови ліцензування викладено у GPLv3+: GNU GPL версії 3 або новішій, "
+"<https://gnu.org/licenses/gpl.html>\n"
"Це вільне програмне забезпечення: ви можете вільно змінювати і поширювати "
"його.\n"
"Вам не надається ЖОДНИХ ГАРАНТІЙ, окрім гарантій передбачених "
#: lib/version-etc.c:253
#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr "Домашня сторінка %s: <http://www.gnu.org/software/%s/>\n"
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
+msgstr "Домашня сторінка %s: <https://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
-"Загальна довідка з програмного забезпечення GNU: <http://www.gnu.org/gethelp/"
-">\n"
+"Загальна довідка з програмного забезпечення GNU: <https://www.gnu.org/"
+"gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Файли %s та %s відрізняються\n"
msgid "write failed"
msgstr "запис невдалий"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "стандартний вивід"
msgid "Compare FILES line by line."
msgstr "Порівнює два файли за рядками."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "суперечливі значення %s для ключа «%s»"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "суперечливі ключі визначення стилю виводу"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, c-format
msgid "invalid color '%s'"
msgstr "некоректний колір «%s»"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Лише у %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "не можна порівнювати «-» з каталогом"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "-D параметр не підтримується для каталогів"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Спільні підкаталоги: %s та %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Файл %s це %s, тоді як файл %s -- %s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Символічні посилання %s і %s є різними\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Файли %s та %s ідентичні\n"
# Copyright © 2013 Free Software Foundation, Inc.
# This file is distributed under the same license as the diffutils package.
# Clytie Siddall <clytie@riverland.net.au>, 2005-2010.
-# Trần Ngọc Quân <vnwildman@gmail.com>, 2013, 2017.
+# Trần Ngọc Quân <vnwildman@gmail.com>, 2013, 2017, 2018.
#
msgid ""
msgstr ""
-"Project-Id-Version: diffutils 3.5.25\n"
+"Project-Id-Version: diffutils 3.6.17\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
-"PO-Revision-Date: 2017-05-08 07:10+0700\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
+"PO-Revision-Date: 2018-12-28 13:56+0700\n"
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
"Language: vi\n"
msgid "Valid arguments are:"
msgstr "Các tham số hợp lệ là:"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "lỗi chương trình"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "stack bị tràn"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr "Chưa khớp ) hay \\)"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "Không có biểu thức chính quy đi trước"
msgid "%s%s argument '%s' too large"
msgstr "%s%s nhận đối số “%s” là quá lớn"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "Gói đóng bởi %s (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "Gói đóng bởi %s\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "©"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
"\n"
msgstr ""
"\n"
-"Giấy phép GPL pb3+: Giấy phép Công cộng GNU phiên bản 3 hay sau\n"
-"<http://gnu.org/licenses/gpl.html>\n"
+"Giấy phép GPL pb3+ : Giấy phép Công cộng GNU phiên bản 3 hay sau <https://"
+"gnu.org/licenses/gpl.html>.\n"
"Đây là phần mềm tự do: bạn có quyền sửa đổi và phát hành lại nó.\n"
-"KHÔNG CÓ BẢO HÀNH GÌ CẢ, với điều kiện được pháp luật cho phép.\n"
+"KHÔNG CÓ BẢO HÀNH GÌ CẢ, với điều khiển được pháp luật cho phép.\n"
"\n"
#. TRANSLATORS: %s denotes an author name.
#: lib/version-etc.c:253
#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr "Trang chủ %s: <http://www.gnu.org/software/%s/>\n"
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
+msgstr "Trang chủ %s: <https://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
-"Trợ giúp chung về cách sử dụng phần mềm GNU: <http://www.gnu.org/gethelp/>\n"
+"Trợ giúp chung về cách sử dụng phần mềm GNU: <https://www.gnu.org/gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "Hai tập tin %s và %s là khác nhau.\n"
msgid "write failed"
msgstr "không ghi được"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "thiết bị xuất chuẩn"
msgid "Compare FILES line by line."
msgstr "So sánh các TẬP-TIN theo từng dòng."
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "tùy chọn %s xung đột, giá trị “%s”"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "nhiều tùy chọn điều khiển định dạng xuất xung đột với nhau"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, c-format
msgid "invalid color '%s'"
msgstr "màu không hợp lệ “%s”"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "Chỉ trong %s: %s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "không thể so sánh “-” với một thư mục"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "không hỗ trợ tùy chọn -D với thư mục"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "Thư mục con chung: %s và %s\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "Tập tin %s là một %s trong khi tập tin %s là một %s.\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "Hai liên kết mềm %s và %s là khác nhau\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "Cả %s và %s là cùng một tập tin\n"
# Yingxin Zhou <eerd003@dlut.edu.cn>, 2004.
# Anthony Fok <foka@debian.org>, 2013.
# Mingye Wang (Arthur2e5) <arthur200126@gmail.com>, 2016.
+# Boyuan Yang <073plan@gmail.com>, 2018.
#
msgid ""
msgstr ""
-"Project-Id-Version: diffutils 3.3-pre1\n"
+"Project-Id-Version: diffutils 3.6.17\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
-"PO-Revision-Date: 2016-02-17 19:23+0100\n"
-"Last-Translator: Mingye Wang (Arthur2e5) <arthur200126@gmail.com>\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
+"PO-Revision-Date: 2018-12-28 13:39+0800\n"
+"Last-Translator: Boyuan Yang <073plan@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 1.8.7\n"
+"X-Generator: Poedit 2.2\n"
#: lib/argmatch.c:134
-#, fuzzy, c-format
+#, c-format
msgid "invalid argument %s for %s"
-msgstr "无效的 %s%s 参数 “%s”"
+msgstr "无效的参数 %s 对于 %s"
#: lib/argmatch.c:135
#, c-format
msgid "ambiguous argument %s for %s"
-msgstr ""
+msgstr "有歧义的参数 %s 对于 %s"
#: lib/argmatch.c:154
-#, fuzzy
msgid "Valid arguments are:"
-msgstr "æ\97 æ\95\88ç\9a\84 %s%s å\8f\82æ\95° â\80\9c%sâ\80\9d"
+msgstr "æ\9c\89æ\95\88ç\9a\84å\8f\82æ\95°ä¸ºï¼\9a"
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "程序错误"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "栈溢出"
#: lib/file-type.c:72
msgid "contiguous data"
-msgstr ""
+msgstr "连续数据文件"
#: lib/file-type.c:75
msgid "fifo"
-msgstr "有名管道"
+msgstr "命名管道"
#: lib/file-type.c:78
msgid "door"
-msgstr ""
+msgstr "门(Solaris)"
#: lib/file-type.c:81
-#, fuzzy
msgid "multiplexed block special file"
-msgstr "特殊块文件"
+msgstr "复用块特殊文件"
#: lib/file-type.c:84
-#, fuzzy
msgid "multiplexed character special file"
-msgstr "特殊字符文件"
+msgstr "复用字符特殊文件"
#: lib/file-type.c:87
msgid "multiplexed file"
-msgstr ""
+msgstr "复用文件"
#: lib/file-type.c:90
-#, fuzzy
msgid "named file"
-msgstr "å¥\87æ\80ªç\9a\84æ\96\87件"
+msgstr "å\91½å\90\8dæ\96\87件(XENIX)"
#: lib/file-type.c:93
-#, fuzzy
msgid "network special file"
-msgstr "ç\89¹æ®\8aå\9d\97文件"
+msgstr "ç½\91ç»\9cç\89¹æ®\8a文件"
#: lib/file-type.c:96
msgid "migrated file with data"
-msgstr ""
+msgstr "含数据迁移文件(Cray DMF)"
#: lib/file-type.c:99
msgid "migrated file without data"
-msgstr ""
+msgstr "不含数据迁移文件(Cray DMF)"
#: lib/file-type.c:102
msgid "port"
-msgstr ""
+msgstr "端口"
#: lib/file-type.c:105
msgid "socket"
#: lib/file-type.c:108
msgid "whiteout"
-msgstr ""
+msgstr "whiteout 文件"
#: lib/file-type.c:110
msgid "weird file"
msgstr "奇怪的文件"
#: lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s:选项 “-W %s” 意义不明确\n"
+msgstr "%s:选项“%s%s”是不明确的\n"
#: lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s:选项 “%s” 意义不明确;可能性如下:"
+msgstr "%s:选项“%s%s”是不明确的;可能是:"
#: lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s:选项 “%c%s” 无法识别\n"
+msgstr "%s:无法识别的选项“%s%s”\n"
#: lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s:选项 “%c%s” 不接受参数\n"
+msgstr "%s:选项“%s%s”不允许带参数\n"
#: lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s:选项 “%s” 需要一个参数\n"
+msgstr "%s:选项“%s%s”需要一个参数\n"
#: lib/getopt.c:621
#, c-format
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgstr "无效的向后引用"
#: lib/regcomp.c:156
-#, fuzzy
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "没æ\9c\89å\8c¹é\85\8dç\9a\84 [ æ\88\96 [^"
+msgstr "æ\9cªå\8c¹é\85\8dç\9a\84 [ã\80\81[^ã\80\81[:ã\80\81[. æ\88\96 [="
#: lib/regcomp.c:159
msgid "Unmatched ( or \\("
-msgstr "没æ\9c\89匹配的 ( 或 \\("
+msgstr "æ\9cª匹配的 ( 或 \\("
#: lib/regcomp.c:162
msgid "Unmatched \\{"
-msgstr "没æ\9c\89匹配的 \\{"
+msgstr "æ\9cª匹配的 \\{"
#: lib/regcomp.c:165
msgid "Invalid content of \\{\\}"
msgid "Unmatched ) or \\)"
msgstr "没有匹配的 ) 或 \\)"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "之前没有任何正则表达式"
msgid "%s%s argument '%s' too large"
msgstr "%s %s 参数 “%s” 太大"
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr "由 %s 打包 (%s)\n"
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr "由 %s 打包\n"
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr "©"
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
"\n"
msgstr ""
"\n"
-"许可证:GPLv3+:GNU 通用公共许可证第 3 版或更新版本<http://gnu.org/licenses/"
+"许可证:GPLv3+:GNU 通用公共许可证第 3 版或更新版本<https://gnu.org/licenses/"
"gpl.html>。\n"
"本软件是自由软件:您可以自由修改和重新发布它。\n"
"在法律允许的范围内没有其他保证。\n"
#: lib/version-etc.c:253
#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr "%s 主页: <http://www.gnu.org/software/%s/>\n"
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
+msgstr "%s 主页: <https://www.gnu.org/software/%s/>\n"
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-msgstr "使用 GNU 软件的通用帮助:<http://www.gnu.org/gethelp/>\n"
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
+msgstr "使用 GNU 软件的通用帮助:<https://www.gnu.org/gethelp/>\n"
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "文件 %s 和 %s 不同\n"
#. This is a proper name. See the gettext manual, section Names.
#: src/cmp.c:44
msgid "Torbjorn Granlund"
-msgstr ""
+msgstr "Torbjorn Granlund"
#. This is a proper name. See the gettext manual, section Names.
#: src/cmp.c:45
msgid "David MacKenzie"
-msgstr ""
+msgstr "David MacKenzie"
#: src/cmp.c:119 src/diff.c:877 src/diff3.c:462 src/sdiff.c:159
#, c-format
msgid "write failed"
msgstr "写入失败"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "标准输出"
msgstr ""
"-i, --ignore-initial=跳1:跳2 略过 <文件1> 的前 <跳1> 个字节和文件 <文件"
"2>\n"
-" 的前 <跳2> 个字节。"
+" 的前 <跳2> 个字节"
#: src/cmp.c:165
msgid ""
#: src/cmp.c:166
msgid "-n, --bytes=LIMIT compare at most LIMIT bytes"
-msgstr "-n, --bytes=限制 最多比较 <限制> 个字节"
+msgstr "-n, --bytes=限制 最多比较给定字节数的数据"
#: src/cmp.c:167
msgid "-s, --quiet, --silent suppress all normal output"
-msgstr ""
+msgstr "-s, --quiet, --silent 禁止所有正常输出"
#: src/cmp.c:168
msgid " --help display this help and exit"
msgstr "%1$s %2$s 不同:第 %4$s 行,第 %3$s 字节为 %5$3o %6$s %7$3o %8$s\n"
#: src/cmp.c:571
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s which is empty\n"
-msgstr "cmp:%s 已结束\n"
+msgstr "cmp:%s 已结束且为空\n"
#: src/cmp.c:585
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s after byte %s, line %s\n"
-msgstr "%s %s 不同:第 %s 字节,第 %s 行\n"
+msgstr "cmp:%s 在 %s 字节 %s 行后结束\n"
#: src/cmp.c:586
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s after byte %s, in line %s\n"
-msgstr "%s %s 不同:第 %s 字节,第 %s 行\n"
+msgstr "cmp:%s 在 %s 字节 %s 行中结束\n"
#: src/cmp.c:592
-#, fuzzy, c-format
+#, c-format
msgid "cmp: EOF on %s after byte %s\n"
-msgstr "cmpï¼\9a%s å·²结束\n"
+msgstr "cmpï¼\9a%s å\9c¨ %s å\97è\8a\82å\90\8e结束\n"
#. This is a proper name. See the gettext manual, section Names.
#: src/diff.c:50
msgid "Paul Eggert"
-msgstr ""
+msgstr "Paul Eggert"
#. This is a proper name. See the gettext manual, section Names.
#: src/diff.c:51
msgid "Mike Haertel"
-msgstr ""
+msgstr "Mike Haertel"
#. This is a proper name. See the gettext manual, section Names.
#: src/diff.c:52
msgid "David Hayes"
-msgstr ""
+msgstr "David Hayes"
#. This is a proper name. See the gettext manual, section Names.
#: src/diff.c:53
#. This is a proper name. See the gettext manual, section Names.
#: src/diff.c:54
msgid "Len Tower"
-msgstr ""
+msgstr "Len Tower"
#: src/diff.c:353
#, c-format
msgid "invalid context length '%s'"
-msgstr "无效的上下文行数 “%s”"
+msgstr "无效的上下文长度“%s”"
#: src/diff.c:436
#, c-format
#: src/diff.c:528
#, c-format
msgid "invalid width '%s'"
-msgstr "无效的宽度 “%s”"
+msgstr "无效的宽度“%s”"
#: src/diff.c:532
msgid "conflicting width options"
#: src/diff.c:617
msgid "conflicting tabsize options"
-msgstr "ç\9a\84å\88¶è¡¨ç¬¦é\80\89项å\86²çª\81"
+msgstr "å\88¶è¡¨ç¬¦é\95¿åº¦é\80\89项å\86²çª\81"
#: src/diff.c:772
msgid "--from-file and --to-file both specified"
msgid ""
"-c, -C NUM, --context[=NUM] output NUM (default 3) lines of copied context"
msgstr ""
+"-c, -C NUM, --context[=NUM] 同时输出 NUM 行(默认为 3 行)的复制上下文内容"
#: src/diff.c:895
msgid ""
#: src/diff.c:898
msgid "-y, --side-by-side output in two columns"
-msgstr ""
+msgstr "-y, --side-by-side 以两栏的格式输出"
#: src/diff.c:899
msgid ""
#: src/diff.c:903
msgid "-p, --show-c-function show which C function each change is in"
-msgstr ""
+msgstr "-p, --show-c-function 显示每个变更位于哪个 C 函数中"
#: src/diff.c:904
msgid "-F, --show-function-line=RE show the most recent line matching RE"
-msgstr ""
+msgstr "-F, --show-function-line=正则 显示匹配给定<正则>表达式的最近一行"
#: src/diff.c:905
-#, fuzzy
msgid ""
" --label LABEL use LABEL instead of file name and timestamp\n"
" (can be repeated)"
msgstr ""
-" --from-file=文件1 将<文件1>和操作数中的所有文件/目录作比较;\n"
-" <文件1>可以是目录"
+" --label 标签 使用给定<标签>替代文件名和时间戳\n"
+" (可以重复)"
#: src/diff.c:908
msgid "-t, --expand-tabs expand tabs to spaces in output"
#: src/diff.c:911
msgid ""
" --suppress-blank-empty suppress space or tab before empty output lines"
-msgstr ""
+msgstr " --suppress-blank-empty 在空的输出行之前去除空白或制表符"
#: src/diff.c:912
msgid "-l, --paginate pass output through 'pr' to paginate it"
#: src/diff.c:915
msgid " --no-dereference don't follow symbolic links"
-msgstr ""
+msgstr " --no-dereference 不要跟随符号链接"
#: src/diff.c:916
msgid "-N, --new-file treat absent files as empty"
msgid ""
" These format options provide fine-grained control over the output\n"
" of diff, generalizing -D/--ifdef."
-msgstr ""
+msgstr " 这些格式化选项提供对 diff 输出的精细控制,从而泛化 -D/--ifdef。"
#: src/diff.c:948
msgid " LTYPE is 'old', 'new', or 'unchanged'. GTYPE is LTYPE or 'changed'."
" M L+1\n"
" %(A=B?T:E) if A equals B then T else E"
msgstr ""
-"(仅)GFMT 可包括:\n"
+" (仅)GFMT 可包括:\n"
" %< 该组中每行属于<文件1>的差异\n"
" %> 该组中每行属于<文件2>的差异\n"
" %= 该组中同时在<文件1>和<文件2>出现的每一行\n"
" %l contents of line, excluding any trailing newline\n"
" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number"
msgstr ""
-"(仅)LFMT 可包括:\n"
+" (仅)LFMT 可包括:\n"
" %L 该行的内容\n"
" %l 该行的内容,但不包括结束的换行符\n"
" %[-][宽度][.[精确度]]{doxX}n 以 printf 格式表示的输入行号"
#: src/diff.c:971
msgid "-d, --minimal try hard to find a smaller set of changes"
-msgstr "-d, --minimal 尽可能找出最小的差异。"
+msgstr "-d, --minimal 尽可能找出最小的差异集"
#: src/diff.c:972
msgid " --horizon-lines=NUM keep NUM lines of the common prefix and suffix"
"'always',\n"
" or 'auto' (the default)"
msgstr ""
+" --color[=何时] 给输出上色;“何时”可以是“never”(从不)、\n"
+" “always”(总是)或“auto”(自动,默认)"
#: src/diff.c:976
msgid ""
"is\n"
" a colon-separated list of terminfo capabilities"
msgstr ""
+" --palette=调色板 在 --color 选项启用时使用的颜色;<调色板>参数应当"
+"是\n"
+" 一个冒号分隔的列表以提供 terminfo capabilities 信"
+"息"
#: src/diff.c:979
msgid " --help display this help and exit"
msgstr "-v, --version 输出版本信息并退出"
#: src/diff.c:982
-#, fuzzy
msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
msgstr ""
-"<文件们> 的格式可以是‘文件1 文件2’、‘目录1 目录2’、‘目录 文件...’或\n"
-" â\80\98æ\96\87件... ç\9b®å½\95â\80\99。"
+"<文件列表> 的格式可以是“文件1 文件2”、“目录1 目录2”、“目录 文件”或\n"
+" â\80\9cæ\96\87件 ç\9b®å½\95â\80\9d。"
#: src/diff.c:983
msgid ""
#: src/diff.c:994
#, c-format
msgid "Usage: %s [OPTION]... FILES\n"
-msgstr "用法:%s [选项]... 文件们\n"
+msgstr "用法:%s [选项]... 文件列表\n"
#: src/diff.c:995
msgid "Compare FILES line by line."
-msgstr "逐行比较<文件们>。"
+msgstr "逐行比较<各文件>。"
-#: src/diff.c:1029
+#: src/diff.c:1032
#, c-format
msgid "conflicting %s option value '%s'"
msgstr "互相冲突的 %s 选项,参数值为 “%s”"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
-msgstr "互相冲突的输出风格选项。"
+msgstr "互相冲突的输出风格选项"
-#: src/diff.c:1058
-#, fuzzy, c-format
+#: src/diff.c:1061
+#, c-format
msgid "invalid color '%s'"
-msgstr "无效的宽度 “%s”"
+msgstr "无效的颜色“%s”"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "只在 %s 存在:%s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
msgid "cannot compare '-' to a directory"
msgstr "“-” 无法与目录作比较"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "-D 选项不支持目录使用"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "%s 和 %s 有共同的子目录\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "文件 %s 是%s而文件 %s 是%s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "软链接 %s 和 %s 不同\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "檔案 %s 和 %s 相同\n"
#. This is a proper name. See the gettext manual, section Names.
#: src/diff3.c:42
msgid "Randy Smith"
-msgstr ""
+msgstr "Randy Smith"
#: src/diff3.c:351
#, c-format
"-m, --merge output actual merged file, according to\n"
" -A if no other options are given"
msgstr ""
+"-m, --merge 输出实际的合并后文件,若没有给出其它选项则\n"
+" 根据 -A 操作"
#: src/diff3.c:488
msgid "-a, --text treat all files as text"
"-L, --label=LABEL use LABEL instead of file name\n"
" (can be repeated up to three times)"
msgstr ""
+"-L, --label=标签 使用指定<标签>而非文件名\n"
+" (可以重复最多三次)"
#: src/diff3.c:495
msgid " --help display this help and exit"
"and output the actual merged file. For unusual input, this is more\n"
"robust than using ed.\n"
msgstr ""
+"\n"
+"默认的输出格式基本上是人类可读的变更表示方式。\n"
+"\n"
+"使用 -e, -E, -x, -X(或对应的长)选项将使用 ed 脚本格式输出而非使用默认格"
+"式。\n"
+"\n"
+"另外,-m (--merge) 选项将使得 diff3 在内部完成合并并输出实际的已合并文件。\n"
+"对那些不常见的输入来说,使用它来处理通常比使用 ed 更稳健。\n"
#: src/diff3.c:529
msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
#. This is a proper name. See the gettext manual, section Names.
#: src/sdiff.c:43
msgid "Thomas Lord"
-msgstr ""
+msgstr "Thomas Lord"
#: src/sdiff.c:173
msgid ""
#: src/sdiff.c:175
msgid ""
"-i, --ignore-case consider upper- and lower-case to be the same"
-msgstr "-i, --ignore-case 忽略大小写的区别。"
+msgstr "-i, --ignore-case 忽略大小写的区别"
#: src/sdiff.c:176
msgid "-E, --ignore-tab-expansion ignore changes due to tab expansion"
"q :退出。\n"
#: src/util.c:662
-#, fuzzy, c-format
+#, c-format
msgid "unrecognized prefix: %s"
-msgstr "%s:选项 “--%s” 无法识别\n"
+msgstr "无法识别的前缀:%s"
#: src/util.c:692
#, c-format
msgid "unparsable value for --palette"
-msgstr ""
-
-#, fuzzy
-#~ msgid " or 'auto' (the default)"
-#~ msgstr " --normal 以正常的 diff 方式输出 (默认)"
+msgstr "--palette 的值无法解析"
#~ msgid "%s: option '--%s' doesn't allow an argument\n"
#~ msgstr "%s:选项 “--%s” 不接受参数\n"
-#~ msgid "%s: unrecognized option '--%s'\n"
-#~ msgstr "%s:选项 “--%s” 无法识别\n"
-
-#~ msgid "%s: option '-W %s' is ambiguous\n"
-#~ msgstr "%s:选项 “-W %s” 意义不明确\n"
-
#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
#~ msgstr "%s:选项 “-W %s” 不接受参数\n"
msgstr ""
"Project-Id-Version: diffutils 2.8.7\n"
"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2017-05-21 13:26-0700\n"
+"POT-Creation-Date: 2018-12-31 17:45-0800\n"
"PO-Revision-Date: 2005-04-01 14:31+0800\n"
"Last-Translator: Abel Cheung <maddog@linux.org.hk>\n"
"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
msgid "Valid arguments are:"
msgstr ""
-#: lib/c-stack.c:203 lib/c-stack.c:296
+#: lib/c-stack.c:208 lib/c-stack.c:301
msgid "program error"
msgstr "程式錯誤"
-#: lib/c-stack.c:204 lib/c-stack.c:297
+#: lib/c-stack.c:209 lib/c-stack.c:302
msgid "stack overflow"
msgstr "堆疊溢位"
#. for your locale.
#.
#. If you don't know what to put here, please see
-#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
#. and use glyphs suitable for your language.
#: lib/quotearg.c:362
msgid "`"
msgid "Unmatched ) or \\)"
msgstr "沒有對應的 ) 或 \\)"
-#: lib/regcomp.c:687
+#: lib/regcomp.c:688
msgid "No previous regular expression"
msgstr "之前沒有任何正規表示式"
msgid "%s%s argument '%s' too large"
msgstr ""
-#: lib/version-etc.c:74
+#: lib/version-etc.c:73
#, c-format
msgid "Packaged by %s (%s)\n"
msgstr ""
-#: lib/version-etc.c:77
+#: lib/version-etc.c:76
#, c-format
msgid "Packaged by %s\n"
msgstr ""
#. TRANSLATORS: Translate "(C)" to the copyright symbol
#. (C-in-a-circle), if this symbol is available in the user's
#. locale. Otherwise, do not translate "(C)"; leave it as-is.
-#: lib/version-etc.c:84
+#: lib/version-etc.c:83
msgid "(C)"
msgstr ""
-#: lib/version-etc.c:86
+#: lib/version-etc.c:85
msgid ""
"\n"
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
"html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
#: lib/version-etc.c:253
#, c-format
-msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
msgstr ""
#: lib/version-etc.c:256
-msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n"
msgstr ""
-#: src/analyze.c:454 src/diff.c:1401
+#: src/analyze.c:454 src/diff.c:1404
#, c-format
msgid "Files %s and %s differ\n"
msgstr "檔案 %s 與 %s 不同\n"
msgid "write failed"
msgstr "寫入失敗"
-#: src/cmp.c:157 src/diff.c:887 src/diff.c:1466 src/diff3.c:471 src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:887 src/diff.c:1469 src/diff3.c:471 src/sdiff.c:169
msgid "standard output"
msgstr "標準輸出"
msgid "Compare FILES line by line."
msgstr "比較兩個檔案的每一行。"
-#: src/diff.c:1029
+#: src/diff.c:1032
#, fuzzy, c-format
msgid "conflicting %s option value '%s'"
msgstr "互相矛盾的 %s 選項,參數值為‘%s’"
-#: src/diff.c:1042
+#: src/diff.c:1045
#, c-format
msgid "conflicting output style options"
msgstr "互相矛盾的輸出模式選項"
-#: src/diff.c:1058
+#: src/diff.c:1061
#, fuzzy, c-format
msgid "invalid color '%s'"
msgstr "無效的上下文行數‘%s’"
-#: src/diff.c:1114 src/diff.c:1324
+#: src/diff.c:1117 src/diff.c:1327
#, c-format
msgid "Only in %s: %s\n"
msgstr "只在 %s 存在:%s\n"
-#: src/diff.c:1248
+#: src/diff.c:1251
#, fuzzy
msgid "cannot compare '-' to a directory"
msgstr "‘-’無法與目錄作比較"
-#: src/diff.c:1283
+#: src/diff.c:1286
msgid "-D option not supported with directories"
msgstr "-D 選項不可配合目錄使用"
-#: src/diff.c:1292
+#: src/diff.c:1295
#, c-format
msgid "Common subdirectories: %s and %s\n"
msgstr "%s 和 %s 有共同的副目錄\n"
-#: src/diff.c:1334 src/diff.c:1384
+#: src/diff.c:1337 src/diff.c:1387
#, c-format
msgid "File %s is a %s while file %s is a %s\n"
msgstr "檔案 %s 是%s而檔案 %s 是%s\n"
-#: src/diff.c:1370
+#: src/diff.c:1373
#, fuzzy, c-format
msgid "Symbolic links %s and %s differ\n"
msgstr "檔案 %s 與 %s 不同\n"
-#: src/diff.c:1457
+#: src/diff.c:1460
#, c-format
msgid "Files %s and %s are identical\n"
msgstr "檔案 %s 和 %s 相同\n"
# Automakefile for GNU diffutils programs.
-# Copyright (C) 2001-2002, 2006, 2009-2013, 2015-2017 Free Software Foundation,
+# Copyright (C) 2001-2002, 2006, 2009-2013, 2015-2018 Free Software Foundation,
# Inc.
# This program is free software: you can redistribute it and/or modify
-# Makefile.in generated by automake 1.99a from Makefile.am.
+# Makefile.in generated by automake 1.16a from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2015 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Automakefile for GNU diffutils programs.
-# Copyright (C) 2001-2002, 2006, 2009-2013, 2015-2017 Free Software Foundation,
+# Copyright (C) 2001-2002, 2006, 2009-2013, 2015-2018 Free Software Foundation,
# Inc.
# This program is free software: you can redistribute it and/or modify
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
subdir = src
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
+ $(top_srcdir)/m4/__inline.m4 \
$(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
$(top_srcdir)/m4/arpa_inet_h.m4 $(top_srcdir)/m4/btowc.m4 \
$(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-stack.m4 \
$(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/close.m4 \
$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
- $(top_srcdir)/m4/configmake.m4 $(top_srcdir)/m4/ctype.m4 \
- $(top_srcdir)/m4/dirname.m4 \
+ $(top_srcdir)/m4/ctype.m4 $(top_srcdir)/m4/dirname.m4 \
$(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \
$(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \
$(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \
$(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \
$(top_srcdir)/m4/fdopen.m4 $(top_srcdir)/m4/filenamecat.m4 \
$(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
- $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpieee.m4 \
- $(top_srcdir)/m4/freopen.m4 $(top_srcdir)/m4/fstat.m4 \
- $(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/getcwd.m4 \
- $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getopt.m4 \
- $(top_srcdir)/m4/getpagesize.m4 \
+ $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fnmatch_h.m4 \
+ $(top_srcdir)/m4/fpieee.m4 $(top_srcdir)/m4/freopen.m4 \
+ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/ftruncate.m4 \
+ $(top_srcdir)/m4/getcwd.m4 $(top_srcdir)/m4/getdtablesize.m4 \
+ $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/getpagesize.m4 \
$(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnu-make.m4 \
$(top_srcdir)/m4/gnulib-common.m4 \
$(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \
+ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \
$(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inet_pton.m4 \
$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/intlmacosx.m4 \
$(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbslen.m4 \
$(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \
$(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
- $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mkstemp.m4 \
- $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \
- $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \
+ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mkdir.m4 \
+ $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \
+ $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \
+ $(top_srcdir)/m4/msvc-inval.m4 \
$(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
$(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/netinet_in_h.m4 \
$(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \
+ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/nstrftime.m4 \
+ $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open-cloexec.m4 \
$(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/pathmax.m4 \
$(top_srcdir)/m4/perror.m4 $(top_srcdir)/m4/pipe.m4 \
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
$(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
$(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
$(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/regex.m4 \
- $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/select.m4 \
- $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale.m4 \
- $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \
+ $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/setenv.m4 \
+ $(top_srcdir)/m4/setlocale.m4 $(top_srcdir)/m4/sigaction.m4 \
+ $(top_srcdir)/m4/signal_h.m4 \
$(top_srcdir)/m4/signalblocking.m4 \
$(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
$(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
$(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
$(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
- $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/strftime.m4 \
- $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strings_h.m4 \
- $(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
- $(top_srcdir)/m4/strptime.m4 $(top_srcdir)/m4/strtoull.m4 \
- $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
- $(top_srcdir)/m4/sys_ioctl_h.m4 \
+ $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \
+ $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strndup.m4 \
+ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strptime.m4 \
+ $(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \
+ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_ioctl_h.m4 \
$(top_srcdir)/m4/sys_select_h.m4 \
$(top_srcdir)/m4/sys_socket_h.m4 \
$(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
CONFIG_HEADER = $(top_builddir)/lib/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)"
+PROGRAMS = $(bin_PROGRAMS)
LIBRARIES = $(noinst_LIBRARIES)
AM_V_AR = $(am__v_AR_@AM_V@)
am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
libver_a_LIBADD =
nodist_libver_a_OBJECTS = version.$(OBJEXT)
libver_a_OBJECTS = $(nodist_libver_a_OBJECTS)
-am__installdirs = "$(DESTDIR)$(bindir)"
-PROGRAMS = $(bin_PROGRAMS)
am_cmp_OBJECTS = cmp.$(OBJEXT)
cmp_OBJECTS = $(am_cmp_OBJECTS)
am__DEPENDENCIES_1 =
./$(DEPDIR)/sdiff.Po ./$(DEPDIR)/side.Po ./$(DEPDIR)/util.Po \
./$(DEPDIR)/version.Po
am__mv = mv -f
-am__set_depbase = depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.[^.]*$$||'`
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_@AM_V@)
am__DIST_COMMON = $(srcdir)/Makefile.in \
$(top_srcdir)/build-aux/depcomp
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-pkglibexecdir = @pkglibexecdir@
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
ALLOCA_H = @ALLOCA_H@
GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
GNULIB_ENVIRON = @GNULIB_ENVIRON@
GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
+GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@
GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
GNULIB_FCHDIR = @GNULIB_FCHDIR@
GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
GNULIB_FFSLL = @GNULIB_FFSLL@
GNULIB_FGETC = @GNULIB_FGETC@
GNULIB_FGETS = @GNULIB_FGETS@
+GNULIB_FNMATCH = @GNULIB_FNMATCH@
GNULIB_FOPEN = @GNULIB_FOPEN@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETPASS = @GNULIB_GETPASS@
GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@
GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@
GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@
GNULIB_LINKAT = @GNULIB_LINKAT@
GNULIB_LISTEN = @GNULIB_LISTEN@
GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
+GNULIB_LOCALENAME = @GNULIB_LOCALENAME@
GNULIB_LOCALTIME = @GNULIB_LOCALTIME@
GNULIB_LSEEK = @GNULIB_LSEEK@
GNULIB_LSTAT = @GNULIB_LSTAT@
GNULIB_READ = @GNULIB_READ@
GNULIB_READLINK = @GNULIB_READLINK@
GNULIB_READLINKAT = @GNULIB_READLINKAT@
+GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@
GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
GNULIB_REALPATH = @GNULIB_REALPATH@
GNULIB_RECV = @GNULIB_RECV@
HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@
+HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@
HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
+HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@
HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@
HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
HAVE_DUP3 = @HAVE_DUP3@
HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@
HAVE_FACCESSAT = @HAVE_FACCESSAT@
HAVE_FCHDIR = @HAVE_FCHDIR@
HAVE_FCHMODAT = @HAVE_FCHMODAT@
HAVE_FFS = @HAVE_FFS@
HAVE_FFSL = @HAVE_FFSL@
HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FNMATCH = @HAVE_FNMATCH@
+HAVE_FNMATCH_H = @HAVE_FNMATCH_H@
+HAVE_FREELOCALE = @HAVE_FREELOCALE@
HAVE_FSEEKO = @HAVE_FSEEKO@
HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
HAVE_GETLOGIN = @HAVE_GETLOGIN@
HAVE_GETOPT_H = @HAVE_GETOPT_H@
HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETPASS = @HAVE_GETPASS@
HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
HAVE_GRANTPT = @HAVE_GRANTPT@
HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
HAVE_ISBLANK = @HAVE_ISBLANK@
HAVE_ISWBLANK = @HAVE_ISWBLANK@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@
HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
+HAVE_NEWLOCALE = @HAVE_NEWLOCALE@
HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
HAVE_OPENAT = @HAVE_OPENAT@
HAVE_OS_H = @HAVE_OS_H@
HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
HAVE_READLINK = @HAVE_READLINK@
HAVE_READLINKAT = @HAVE_READLINKAT@
+HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@
HAVE_REALPATH = @HAVE_REALPATH@
HAVE_RENAMEAT = @HAVE_RENAMEAT@
HAVE_RPMATCH = @HAVE_RPMATCH@
HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
HAVE_TIMEGM = @HAVE_TIMEGM@
HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@
-HAVE_TRUNCATE = @HAVE_TRUNCATE@
HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
HAVE_TZSET = @HAVE_TZSET@
HAVE_UNISTD_H = @HAVE_UNISTD_H@
NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
+NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H@
NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@
NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
NEXT_ERRNO_H = @NEXT_ERRNO_H@
NEXT_FCNTL_H = @NEXT_FCNTL_H@
NEXT_FLOAT_H = @NEXT_FLOAT_H@
+NEXT_FNMATCH_H = @NEXT_FNMATCH_H@
NEXT_GETOPT_H = @NEXT_GETOPT_H@
NEXT_ICONV_H = @NEXT_ICONV_H@
NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
REPLACE_DUP = @REPLACE_DUP@
REPLACE_DUP2 = @REPLACE_DUP2@
REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_FACCESSAT = @REPLACE_FACCESSAT@
REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
REPLACE_FCLOSE = @REPLACE_FCLOSE@
REPLACE_FCNTL = @REPLACE_FCNTL@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FNMATCH = @REPLACE_FNMATCH@
REPLACE_FOPEN = @REPLACE_FOPEN@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_FPURGE = @REPLACE_FPURGE@
+REPLACE_FREELOCALE = @REPLACE_FREELOCALE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
REPLACE_FSEEK = @REPLACE_FSEEK@
REPLACE_FSEEKO = @REPLACE_FSEEKO@
REPLACE_GETLINE = @REPLACE_GETLINE@
REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_GETPASS = @REPLACE_GETPASS@
REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
REPLACE_GMTIME = @REPLACE_GMTIME@
REPLACE_ICONV = @REPLACE_ICONV@
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
REPLACE_MKTIME = @REPLACE_MKTIME@
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
+REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@
REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
REPLACE_NULL = @REPLACE_NULL@
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
am__include = @am__include@
+am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
-lispdir = @lispdir@
localedir = $(datadir)/locale
localstatedir = @localstatedir@
mandir = @mandir@
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-libver.a: $(libver_a_OBJECTS) $(libver_a_DEPENDENCIES) $(EXTRA_libver_a_DEPENDENCIES)
- $(AM_V_at)-rm -f libver.a
- $(AM_V_AR)$(libver_a_AR) libver.a $(libver_a_OBJECTS) $(libver_a_LIBADD)
- $(AM_V_at)$(RANLIB) libver.a
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+libver.a: $(libver_a_OBJECTS) $(libver_a_DEPENDENCIES) $(EXTRA_libver_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f libver.a
+ $(AM_V_AR)$(libver_a_AR) libver.a $(libver_a_OBJECTS) $(libver_a_LIBADD)
+ $(AM_V_at)$(RANLIB) libver.a
+
cmp$(EXEEXT): $(cmp_OBJECTS) $(cmp_DEPENDENCIES) $(EXTRA_cmp_DEPENDENCIES)
@rm -f cmp$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(cmp_OBJECTS) $(cmp_LDADD) $(LIBS)
am--depfiles: $(am__depfiles_remade)
.c.o:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(am__set_depbase) && \
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $<; \
-@am__fastdepCC_TRUE@ if test $$? = 0; then $(am__mv) $$depbase.Tpo $$depbase.Po; \
-@am__fastdepCC_TRUE@ else rm -f $$depbase.Tpo; false; fi
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(am__set_depbase) && \
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $$($(CYGPATH_W) $<); \
-@am__fastdepCC_TRUE@ if test $$? = 0; then $(am__mv) $$depbase.Tpo $$depbase.Po; \
-@am__fastdepCC_TRUE@ else rm -f $$depbase.Tpo; false; fi
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $$($(CYGPATH_W) $<)
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
check-am: all-am
check: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
+all-am: Makefile $(PROGRAMS) $(LIBRARIES) $(HEADERS)
installdirs:
for dir in "$(DESTDIR)$(bindir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
/* Analyze file differences for GNU DIFF.
Copyright (C) 1988-1989, 1992-1995, 1998, 2001-2002, 2004, 2006-2007,
- 2009-2013, 2015-2017 Free Software Foundation, Inc.
+ 2009-2013, 2015-2018 Free Software Foundation, Inc.
This file is part of GNU DIFF.
-/* cmp - compare two files byte by byte
+/* GNU cmp - compare two files byte by byte
Copyright (C) 1990-1996, 1998, 2001-2002, 2004, 2006-2007, 2009-2013,
- 2015-2017 Free Software Foundation, Inc.
+ 2015-2018 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
size_t count = 0;
char *p;
char *lim = buf + bufsize;
+ char ch = *lim;
*lim = '\n';
for (p = buf; (p = rawmemchr (p, '\n')) != lim; p++)
count++;
+ *lim = ch;
return count;
}
/* Context-format output routines for GNU DIFF.
Copyright (C) 1988-1989, 1991-1995, 1998, 2001-2002, 2004, 2006, 2009-2013,
- 2015-2017 Free Software Foundation, Inc.
+ 2015-2018 Free Software Foundation, Inc.
This file is part of GNU DIFF.
char const *name,
char const *label)
{
+ set_color_context (HEADER_CONTEXT);
if (label)
- fprintf (outfile, "%s %s\n", mark, label);
+ fprintf (outfile, "%s %s", mark, label);
else
{
char buf[MAX (INT_STRLEN_BOUND (int) + 32,
sprintf (buf, "%"PRIuMAX".%.9d", sec, nsec);
}
}
- fprintf (outfile, "%s %s\t%s\n", mark, name, buf);
+ fprintf (outfile, "%s %s\t%s", mark, name, buf);
}
+ set_color_context (RESET_CONTEXT);
+ putc ('\n', outfile);
}
/* Print a header for a context diff, with the file names and dates. */
void
print_context_header (struct file_data inf[], char const *const *names, bool unidiff)
{
- set_color_context (HEADER_CONTEXT);
if (unidiff)
{
print_context_label ("---", &inf[0], names[0], file_label[0]);
print_context_label ("***", &inf[0], names[0], file_label[0]);
print_context_label ("---", &inf[1], names[1], file_label[1]);
}
- set_color_context (RESET_CONTEXT);
}
/* Print an edit script in context format. */
{
struct change *next = hunk;
- if (first0 <= last0)
- set_color_context (DELETE_CONTEXT);
-
for (i = first0; i <= last0; i++)
{
+ set_color_context (DELETE_CONTEXT);
+
/* Skip past changes that apply (in file 0)
only to lines before line I. */
prefix = (next->inserted > 0 ? "!" : "-");
}
print_1_line_nl (prefix, &files[0].linbuf[i], true);
- if (i == last0)
- set_color_context (RESET_CONTEXT);
+ set_color_context (RESET_CONTEXT);
if (files[0].linbuf[i + 1][-1] == '\n')
putc ('\n', out);
}
{
struct change *next = hunk;
- if (first1 <= last1)
- set_color_context (ADD_CONTEXT);
-
for (i = first1; i <= last1; i++)
{
+ set_color_context (ADD_CONTEXT);
+
/* Skip past changes that apply (in file 1)
only to lines before line I. */
prefix = (next->deleted > 0 ? "!" : "+");
}
print_1_line_nl (prefix, &files[1].linbuf[i], true);
- if (i == last1)
- set_color_context (RESET_CONTEXT);
+ set_color_context (RESET_CONTEXT);
if (files[1].linbuf[i + 1][-1] == '\n')
putc ('\n', out);
}
/* For each difference, first output the deleted part. */
k = next->deleted;
- if (k)
- set_color_context (DELETE_CONTEXT);
while (k--)
{
char const * const *line = &files[0].linbuf[i++];
+ set_color_context (DELETE_CONTEXT);
putc ('-', out);
if (initial_tab && ! (suppress_blank_empty && **line == '\n'))
putc ('\t', out);
print_1_line_nl (NULL, line, true);
- if (!k)
- set_color_context (RESET_CONTEXT);
+ set_color_context (RESET_CONTEXT);
if (line[1][-1] == '\n')
putc ('\n', out);
/* Then output the inserted part. */
k = next->inserted;
- if (k)
- set_color_context (ADD_CONTEXT);
while (k--)
{
char const * const *line = &files[1].linbuf[j++];
+ set_color_context (ADD_CONTEXT);
putc ('+', out);
if (initial_tab && ! (suppress_blank_empty && **line == '\n'))
putc ('\t', out);
print_1_line_nl (NULL, line, true);
- if (!k)
- set_color_context (RESET_CONTEXT);
+ set_color_context (RESET_CONTEXT);
if (line[1][-1] == '\n')
putc ('\n', out);
/* Report an error and exit.
- Copyright 2016-2017 Free Software Foundation, Inc.
+ Copyright 2016-2018 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
-/* diff - compare files line by line
+/* GNU diff - compare files line by line
Copyright (C) 1988-1989, 1992-1994, 1996, 1998, 2001-2002, 2004, 2006-2007,
- 2009-2013, 2015-2017 Free Software Foundation, Inc.
+ 2009-2013, 2015-2018 Free Software Foundation, Inc.
This file is part of GNU DIFF.
while ((nl = strchr (msg, '\n')))
{
int msglen = nl + 1 - msg;
+ /* This assertion is solely to avoid a warning from
+ gcc's -Wformat-overflow=. */
+ assert (msglen < 4096);
printf (" %.*s", msglen, msg);
msg = nl + 1;
}
/* Shared definitions for GNU DIFF
Copyright (C) 1988-1989, 1991-1995, 1998, 2001-2002, 2004, 2009-2013,
- 2015-2017 Free Software Foundation, Inc.
+ 2015-2018 Free Software Foundation, Inc.
This file is part of GNU DIFF.
-/* diff3 - compare three files line by line
+/* GNU diff3 - compare three files line by line
Copyright (C) 1988-1989, 1992-1996, 1998, 2001-2002, 2004, 2006, 2009-2013,
- 2015-2017 Free Software Foundation, Inc.
+ 2015-2018 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
/* Read, sort and compare two directories. Used for GNU DIFF.
Copyright (C) 1988-1989, 1992-1995, 1998, 2001-2002, 2004, 2006-2007,
- 2009-2013, 2015-2017 Free Software Foundation, Inc.
+ 2009-2013, 2015-2018 Free Software Foundation, Inc.
This file is part of GNU DIFF.
/* Output routines for ed-script format.
Copyright (C) 1988-1989, 1991-1993, 1995, 1998, 2001, 2004, 2006, 2009-2013,
- 2015-2017 Free Software Foundation, Inc.
+ 2015-2018 Free Software Foundation, Inc.
This file is part of GNU DIFF.
/* #ifdef-format output routines for GNU DIFF.
- Copyright (C) 1989, 1991-1994, 2001-2002, 2004, 2006, 2009-2013, 2015-2017
+ Copyright (C) 1989, 1991-1994, 2001-2002, 2004, 2006, 2009-2013, 2015-2018
Free Software Foundation, Inc.
This file is part of GNU DIFF.
/* File I/O for GNU DIFF.
Copyright (C) 1988-1989, 1992-1995, 1998, 2001-2002, 2004, 2006, 2009-2013,
- 2015-2017 Free Software Foundation, Inc.
+ 2015-2018 Free Software Foundation, Inc.
This file is part of GNU DIFF.
{
size_t buffered = current->buffered;
char *p = FILE_BUFFER (current);
-
- if (buffered == 0 || p[buffered - 1] == '\n')
- current->missing_newline = false;
- else
- {
- p[buffered++] = '\n';
- current->missing_newline = true;
- }
-
if (!p)
return;
- /* Don't use uninitialized storage when planting or using sentinels. */
- memset (p + buffered, 0, sizeof (word));
-
if (strip_trailing_cr)
{
- char *dst;
char *srclim = p + buffered;
*srclim = '\r';
- dst = rawmemchr (p, '\r');
+ char *dst = rawmemchr (p, '\r');
- if (dst != srclim)
+ for (char const *src = dst; src != srclim; src++)
{
- char const *src = dst;
- do
- {
- *dst = *src++;
- dst += ! (*dst == '\r' && *src == '\n');
- }
- while (src < srclim);
-
- buffered -= src - dst;
+ src += *src == '\r' && src[1] == '\n';
+ *dst++ = *src;
}
+
+ buffered -= srclim - dst;
}
+ if (buffered != 0 && p[buffered - 1] != '\n')
+ {
+ p[buffered++] = '\n';
+ current->missing_newline = true;
+ }
+
+ /* Don't use uninitialized storage when planting or using sentinels. */
+ memset (p + buffered, 0, sizeof (word));
+
current->buffered = buffered;
}
\f
/* Normal-format output routines for GNU DIFF.
- Copyright (C) 1988-1989, 1993, 1995, 1998, 2001, 2006, 2009-2013, 2015-2017
+ Copyright (C) 1988-1989, 1993, 1995, 1998, 2001, 2006, 2009-2013, 2015-2018
Free Software Foundation, Inc.
This file is part of GNU DIFF.
/* Print the lines that the first file has. */
if (changes & OLD)
{
- if (first0 <= last0)
- set_color_context (DELETE_CONTEXT);
for (i = first0; i <= last0; i++)
{
+ set_color_context (DELETE_CONTEXT);
print_1_line_nl ("<", &files[0].linbuf[i], true);
- if (i == last0)
- set_color_context (RESET_CONTEXT);
+ set_color_context (RESET_CONTEXT);
if (files[0].linbuf[i + 1][-1] == '\n')
putc ('\n', outfile);
}
/* Print the lines that the second file has. */
if (changes & NEW)
{
- if (first1 <= last1)
- set_color_context (ADD_CONTEXT);
for (i = first1; i <= last1; i++)
{
+ set_color_context (ADD_CONTEXT);
print_1_line_nl (">", &files[1].linbuf[i], true);
- if (i == last1)
- set_color_context (RESET_CONTEXT);
+ set_color_context (RESET_CONTEXT);
if (files[1].linbuf[i + 1][-1] == '\n')
putc ('\n', outfile);
}
-/* sdiff - side-by-side merge of file differences
+/* GNU sdiff - side-by-side merge of file differences
Copyright (C) 1992-1996, 1998, 2001-2002, 2004, 2006-2007, 2009-2013,
- 2015-2017 Free Software Foundation, Inc.
+ 2015-2018 Free Software Foundation, Inc.
This file is part of GNU DIFF.
/* Yield an exit status indicating that a signal was received. */
untrapsig (s);
- kill (getpid (), s);
+ raise (s);
/* That didn't work, so exit with error status. */
exit (EXIT_TROUBLE);
/* sdiff-format output routines for GNU DIFF.
- Copyright (C) 1991-1993, 1998, 2001-2002, 2004, 2009-2013, 2015-2017 Free
+ Copyright (C) 1991-1993, 1998, 2001-2002, 2004, 2009-2013, 2015-2018 Free
Software Foundation, Inc.
This file is part of GNU DIFF.
/* System dependent declarations.
Copyright (C) 1988-1989, 1992-1995, 1998, 2001-2002, 2004, 2006, 2009-2013,
- 2015-2017 Free Software Foundation, Inc.
+ 2015-2018 Free Software Foundation, Inc.
This file is part of GNU DIFF.
/* Support routines for GNU DIFF.
Copyright (C) 1988-1989, 1992-1995, 1998, 2001-2002, 2004, 2006, 2009-2013,
- 2015-2017 Free Software Foundation, Inc.
+ 2015-2018 Free Software Foundation, Inc.
This file is part of GNU DIFF.
function-line-vs-leading-space \
ignore-matching-lines \
label-vs-func \
+ large-subopt \
new-file \
no-dereference \
no-newline-at-eof \
stdin \
strcoll-0-names \
filename-quoting \
+ strip-trailing-cr \
colors
+XFAIL_TESTS = large-subopt
+
EXTRA_DIST = \
- $(TESTS) init.sh t-local.sh envvar-check
+ $(TESTS) init.cfg init.sh t-local.sh envvar-check \
+ large-subopt.in1 \
+ large-subopt.in2
# Note that the first lines are statements. They ensure that environment
# variables that can perturb tests are unset or set to expected values.
PREFERABLY_POSIX_SHELL='$(PREFERABLY_POSIX_SHELL)' \
REPLACE_GETCWD=$(REPLACE_GETCWD) \
PATH='$(abs_top_builddir)/src$(PATH_SEPARATOR)'"$$PATH" \
- stderr_fileno_=9 \
; 9>&2
LOG_COMPILER= $(SHELL)
-# Makefile.in generated by automake 1.99a from Makefile.am.
+# Makefile.in generated by automake 1.16a from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2015 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
subdir = tests
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
+ $(top_srcdir)/m4/__inline.m4 \
$(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
$(top_srcdir)/m4/arpa_inet_h.m4 $(top_srcdir)/m4/btowc.m4 \
$(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-stack.m4 \
$(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/close.m4 \
$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \
- $(top_srcdir)/m4/configmake.m4 $(top_srcdir)/m4/ctype.m4 \
- $(top_srcdir)/m4/dirname.m4 \
+ $(top_srcdir)/m4/ctype.m4 $(top_srcdir)/m4/dirname.m4 \
$(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \
$(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \
$(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \
$(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \
$(top_srcdir)/m4/fdopen.m4 $(top_srcdir)/m4/filenamecat.m4 \
$(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
- $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpieee.m4 \
- $(top_srcdir)/m4/freopen.m4 $(top_srcdir)/m4/fstat.m4 \
- $(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/getcwd.m4 \
- $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getopt.m4 \
- $(top_srcdir)/m4/getpagesize.m4 \
+ $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fnmatch_h.m4 \
+ $(top_srcdir)/m4/fpieee.m4 $(top_srcdir)/m4/freopen.m4 \
+ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/ftruncate.m4 \
+ $(top_srcdir)/m4/getcwd.m4 $(top_srcdir)/m4/getdtablesize.m4 \
+ $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/getpagesize.m4 \
$(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnu-make.m4 \
$(top_srcdir)/m4/gnulib-common.m4 \
$(top_srcdir)/m4/gnulib-comp.m4 \
- $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \
+ $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/iconv_open.m4 \
$(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inet_pton.m4 \
$(top_srcdir)/m4/inline.m4 $(top_srcdir)/m4/intlmacosx.m4 \
$(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbslen.m4 \
$(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \
$(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
- $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mkstemp.m4 \
- $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \
- $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \
+ $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mkdir.m4 \
+ $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mktime.m4 \
+ $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \
+ $(top_srcdir)/m4/msvc-inval.m4 \
$(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
$(top_srcdir)/m4/nanosleep.m4 $(top_srcdir)/m4/netinet_in_h.m4 \
$(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \
+ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/nstrftime.m4 \
+ $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open-cloexec.m4 \
$(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/pathmax.m4 \
$(top_srcdir)/m4/perror.m4 $(top_srcdir)/m4/pipe.m4 \
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \
$(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
$(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
$(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/regex.m4 \
- $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/select.m4 \
- $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale.m4 \
- $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \
+ $(top_srcdir)/m4/select.m4 $(top_srcdir)/m4/setenv.m4 \
+ $(top_srcdir)/m4/setlocale.m4 $(top_srcdir)/m4/sigaction.m4 \
+ $(top_srcdir)/m4/signal_h.m4 \
$(top_srcdir)/m4/signalblocking.m4 \
$(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
$(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
$(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
$(top_srcdir)/m4/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
- $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/strftime.m4 \
- $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strings_h.m4 \
- $(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
- $(top_srcdir)/m4/strptime.m4 $(top_srcdir)/m4/strtoull.m4 \
- $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
- $(top_srcdir)/m4/sys_ioctl_h.m4 \
+ $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \
+ $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strndup.m4 \
+ $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strptime.m4 \
+ $(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \
+ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_ioctl_h.m4 \
$(top_srcdir)/m4/sys_select_h.m4 \
$(top_srcdir)/m4/sys_socket_h.m4 \
$(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
am__DIST_COMMON = $(srcdir)/Makefile.in \
$(top_srcdir)/build-aux/test-driver
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-pkglibexecdir = @pkglibexecdir@
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
ALLOCA_H = @ALLOCA_H@
GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
GNULIB_ENVIRON = @GNULIB_ENVIRON@
GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
+GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@
GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
GNULIB_FCHDIR = @GNULIB_FCHDIR@
GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
GNULIB_FFSLL = @GNULIB_FFSLL@
GNULIB_FGETC = @GNULIB_FGETC@
GNULIB_FGETS = @GNULIB_FGETS@
+GNULIB_FNMATCH = @GNULIB_FNMATCH@
GNULIB_FOPEN = @GNULIB_FOPEN@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETPASS = @GNULIB_GETPASS@
GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@
GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@
GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@
GNULIB_LINKAT = @GNULIB_LINKAT@
GNULIB_LISTEN = @GNULIB_LISTEN@
GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
+GNULIB_LOCALENAME = @GNULIB_LOCALENAME@
GNULIB_LOCALTIME = @GNULIB_LOCALTIME@
GNULIB_LSEEK = @GNULIB_LSEEK@
GNULIB_LSTAT = @GNULIB_LSTAT@
GNULIB_READ = @GNULIB_READ@
GNULIB_READLINK = @GNULIB_READLINK@
GNULIB_READLINKAT = @GNULIB_READLINKAT@
+GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@
GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
GNULIB_REALPATH = @GNULIB_REALPATH@
GNULIB_RECV = @GNULIB_RECV@
HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@
+HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@
HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
+HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@
HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
+HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@
HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
HAVE_DUP3 = @HAVE_DUP3@
HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@
HAVE_FACCESSAT = @HAVE_FACCESSAT@
HAVE_FCHDIR = @HAVE_FCHDIR@
HAVE_FCHMODAT = @HAVE_FCHMODAT@
HAVE_FFS = @HAVE_FFS@
HAVE_FFSL = @HAVE_FFSL@
HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FNMATCH = @HAVE_FNMATCH@
+HAVE_FNMATCH_H = @HAVE_FNMATCH_H@
+HAVE_FREELOCALE = @HAVE_FREELOCALE@
HAVE_FSEEKO = @HAVE_FSEEKO@
HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
HAVE_GETLOGIN = @HAVE_GETLOGIN@
HAVE_GETOPT_H = @HAVE_GETOPT_H@
HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETPASS = @HAVE_GETPASS@
HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
HAVE_GRANTPT = @HAVE_GRANTPT@
HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
HAVE_ISBLANK = @HAVE_ISBLANK@
HAVE_ISWBLANK = @HAVE_ISWBLANK@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@
HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
+HAVE_NEWLOCALE = @HAVE_NEWLOCALE@
HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
HAVE_OPENAT = @HAVE_OPENAT@
HAVE_OS_H = @HAVE_OS_H@
HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
HAVE_READLINK = @HAVE_READLINK@
HAVE_READLINKAT = @HAVE_READLINKAT@
+HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@
HAVE_REALPATH = @HAVE_REALPATH@
HAVE_RENAMEAT = @HAVE_RENAMEAT@
HAVE_RPMATCH = @HAVE_RPMATCH@
HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
HAVE_TIMEGM = @HAVE_TIMEGM@
HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@
-HAVE_TRUNCATE = @HAVE_TRUNCATE@
HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
HAVE_TZSET = @HAVE_TZSET@
HAVE_UNISTD_H = @HAVE_UNISTD_H@
NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
+NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H@
NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@
NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
NEXT_ERRNO_H = @NEXT_ERRNO_H@
NEXT_FCNTL_H = @NEXT_FCNTL_H@
NEXT_FLOAT_H = @NEXT_FLOAT_H@
+NEXT_FNMATCH_H = @NEXT_FNMATCH_H@
NEXT_GETOPT_H = @NEXT_GETOPT_H@
NEXT_ICONV_H = @NEXT_ICONV_H@
NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
REPLACE_DUP = @REPLACE_DUP@
REPLACE_DUP2 = @REPLACE_DUP2@
REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_FACCESSAT = @REPLACE_FACCESSAT@
REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
REPLACE_FCLOSE = @REPLACE_FCLOSE@
REPLACE_FCNTL = @REPLACE_FCNTL@
REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FNMATCH = @REPLACE_FNMATCH@
REPLACE_FOPEN = @REPLACE_FOPEN@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
REPLACE_FPURGE = @REPLACE_FPURGE@
+REPLACE_FREELOCALE = @REPLACE_FREELOCALE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
REPLACE_FSEEK = @REPLACE_FSEEK@
REPLACE_FSEEKO = @REPLACE_FSEEKO@
REPLACE_GETLINE = @REPLACE_GETLINE@
REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_GETPASS = @REPLACE_GETPASS@
REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
REPLACE_GMTIME = @REPLACE_GMTIME@
REPLACE_ICONV = @REPLACE_ICONV@
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
REPLACE_MKTIME = @REPLACE_MKTIME@
REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
+REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@
REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
REPLACE_NULL = @REPLACE_NULL@
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
am__include = @am__include@
+am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
-lispdir = @lispdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
function-line-vs-leading-space \
ignore-matching-lines \
label-vs-func \
+ large-subopt \
new-file \
no-dereference \
no-newline-at-eof \
stdin \
strcoll-0-names \
filename-quoting \
+ strip-trailing-cr \
colors
+XFAIL_TESTS = large-subopt
EXTRA_DIST = \
- $(TESTS) init.sh t-local.sh envvar-check
+ $(TESTS) init.cfg init.sh t-local.sh envvar-check \
+ large-subopt.in1 \
+ large-subopt.in2
# Note that the first lines are statements. They ensure that environment
PREFERABLY_POSIX_SHELL='$(PREFERABLY_POSIX_SHELL)' \
REPLACE_GETCWD=$(REPLACE_GETCWD) \
PATH='$(abs_top_builddir)/src$(PATH_SEPARATOR)'"$$PATH" \
- stderr_fileno_=9 \
; 9>&2
LOG_COMPILER = $(SHELL)
fi; \
$$success || exit 1
-check-TESTS:
+check-TESTS:
@list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+large-subopt.log: large-subopt
+ @p='large-subopt'; \
+ b='large-subopt'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
new-file.log: new-file
@p='new-file'; \
b='new-file'; \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+strip-trailing-cr.log: strip-trailing-cr
+ @p='strip-trailing-cr'; \
+ b='strip-trailing-cr'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
colors.log: colors
@p='colors'; \
b='colors'; \
@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
#!/bin/sh
# Test 'cmp'.
-# Copyright 2017 Free Software Foundation, Inc.
+# Copyright 2017-2018 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
compare exp1 out1 || fail=1
+printf 'bad\n' >bad
+printf 'bug\n' >bug
+echo LC_ALL=C cmp -b bad bug
+LC_ALL=C cmp -b bad bug
+test $? -eq 1 || fail=1
+case `LC_ALL=C cmp -b bad bug` in
+ 'bad bug differ: byte 2, line 1 is '*' a '*' u') ;;
+ *) echo 'expected cmp -b to report a and u'; fail=1;;
+esac
+
Exit $fail
echo a > a
echo b > b
+# On systems lacking fractional timestamp support, diff -u does not print
+# a decimal point and 9-digit nanosecond suffix.
+nanosecond_zeros=$(diff -u a b|grep -F . > /dev/null && echo .000000000)
+
epoch='1970-01-01 00:00:00'
touch -t 197001010000.00 a b
gen_exp_u()
{
- local epoch_plus="$epoch.000000000 +0000"
+ local epoch_plus="$epoch$nanosecond_zeros +0000"
local rs=$(printf "$e[${rs}m")
local hd=$(printf "$e[${hd}m")
local ad=$(printf "$e[${ad}m")
local de=$(printf "$e[${de}m")
local ln=$(printf "$e[${ln}m")
printf '%s' \
-"$hd--- a$tab$epoch_plus
-+++ b$tab$epoch_plus
-$rs${ln}@@ -1 +1 @@$rs
+"$hd--- a$tab$epoch_plus$rs
+$hd+++ b$tab$epoch_plus$rs
+${ln}@@ -1 +1 @@$rs
$de-a$rs
$ad+b$rs
"
local de=$(printf "$e[${de}m")
local ln=$(printf "$e[${ln}m")
printf '%s' \
-"$hd*** a$tab$epoch_posix_1003_1_2001
---- b$tab$epoch_posix_1003_1_2001
-$rs***************
+"$hd*** a$tab$epoch_posix_1003_1_2001$rs
+$hd--- b$tab$epoch_posix_1003_1_2001$rs
+***************
$ln*** 1 ****$rs
$de! a$rs
$ln--- 1 ----$rs
gen_exp_default > exp || framework_failure_
compare exp out || fail=1
-returns_ 1 env TERM=dumb diff ---presume-output-tty --color=auto a b > out \
+returns_ 1 env PATH="$PATH" TERM=dumb \
+ diff ---presume-output-tty --color=auto a b > out \
|| fail=1
gen_exp_default > exp || framework_failure_
compare exp out || fail=1
# Before the fix in http://debbugs.gnu.org/22067,
# this test would trigger an infinite loop bug.
mkfifo fifo
-printf '%*s-a' 1000000 > a
-printf '%*s-b' 1000000 > b
+printf '%1000000s-a' > a
+printf '%1000000s-b' > b
head -c 10 < fifo > /dev/null &
diff --color=always ---presume-output-tty a b > fifo
test $? = 141 || fail=1
# -*- sh -*-
# Check environment variables for sane values while testing.
-# Copyright (C) 2000-2017 Free Software Foundation, Inc.
+# Copyright (C) 2000-2018 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
# Make sure all these programs work properly
# when invoked with --help or --version.
-# Copyright (C) 2000-2013, 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2000-2013, 2015-2018 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
--- /dev/null
+# This file is sourced by init.sh, *before* its initialization.
+
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+# Skip the current test if valgrind doesn't work,
+# which could happen if not installed,
+# or hasn't support for the built architecture,
+# or hasn't appropriate error suppressions installed etc.
+
+# This goes hand in hand with the "exec 9>&2;" in tests/Makefile.am's
+# TESTS_ENVIRONMENT definition.
+stderr_fileno_=9
+
+# Having an unsearchable directory in PATH causes execve to fail with EACCES
+# when applied to an unresolvable program name, contrary to the desired ENOENT.
+# Avoid the problem by rewriting PATH to exclude unsearchable directories.
+# Also, if PATH lacks /sbin and/or /usr/sbin, append it/them.
+sanitize_path_()
+{
+ # FIXME: remove double quotes around $IFS when all tests use init.sh.
+ # They constitute a work-around for a bug in FreeBSD 8.1's /bin/sh.
+ local saved_IFS="$IFS"
+ IFS=:
+ set -- $PATH
+ IFS=$saved_IFS
+
+ local d d1
+ local colon=
+ local new_path=
+ for d in "$@"; do
+ test -z "$d" && d1=. || d1=$d
+ if ls -d "$d1/." > /dev/null 2>&1; then
+ new_path="$new_path$colon$d"
+ colon=':'
+ fi
+ done
+
+ for d in /sbin /usr/sbin ; do
+ case ":$new_path:" in
+ *:$d:*) ;;
+ *) new_path="$new_path:$d" ;;
+ esac
+ done
+
+ PATH=$new_path
+ export PATH
+}
+
+require_valgrind_()
+{
+ valgrind --error-exitcode=1 true 2>/dev/null ||
+ skip_ "requires a working valgrind"
+}
+
+sanitize_path_
# source this file; set up for tests
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 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
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
# Using this file in a test
# =========================
ME_=`expr "./$0" : '.*/\(.*\)$'`
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
+ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
+ || PATH_SEPARATOR=';'
+ }
+fi
+
# We use a trap below for cleanup. This requires us to go through
# hoops to get the right exit status transported through the handler.
# So use 'Exit STATUS' instead of 'exit STATUS' inside of the tests.
# That is part of the shell-selection test above. Why use aliases rather
# than functions? Because support for hyphen-containing aliases is more
# widespread than that for hyphen-containing function names.
-test -n "$EXEEXT" && shopt -s expand_aliases
+test -n "$EXEEXT" && test -n "$BASH_VERSION" && shopt -s expand_aliases
# Enable glibc's malloc-perturbing option.
# This is useful for exposing code that depends on the fact that
path_dir_=$1
case $path_dir_ in
'') fail_ "invalid path dir: '$1'";;
- /*) abs_path_dir_=$path_dir_;;
+ /* | ?:*) abs_path_dir_=$path_dir_;;
*) abs_path_dir_=$initial_cwd_/$path_dir_;;
esac
case $abs_path_dir_ in
- *:*) fail_ "invalid path dir: '$abs_path_dir_'";;
+ *$PATH_SEPARATOR*) fail_ "invalid path dir: '$abs_path_dir_'";;
esac
- PATH="$abs_path_dir_:$PATH"
+ PATH="$abs_path_dir_$PATH_SEPARATOR$PATH"
# Create an alias, FOO, for each FOO.exe in this directory.
create_exe_shims_ "$abs_path_dir_" \
fi
n_plus_50_=`expr $n_ + 50`
- cmds_='date; date +%N; free; who -a; w; ps auxww; ps ef; netstat -n'
+ cmds_='date; date +%N; free; who -a; w; ps auxww; ps -ef'
data_=` (eval "$cmds_") 2>&1 | gzip `
# Ensure that $data_ has length at least 50+$n_
--- /dev/null
+#!/bin/sh
+# This test is expected to fail at least with diffutils-3.6.
+# Demonstrate how diff can produce suboptimal output.
+# With these two files, diff -u prints output including this:
+# -2
+# +L: 361
+# +L: 361
+# +2
+# The trouble is that "2" line that is both added and removed.
+# This smaller patch could induce the same change:
+# +L: 361
+# +L: 361
+
+. "${srcdir=.}/init.sh"; path_prepend_ ../src
+
+fail=0
+
+diff -u \
+ "$abs_top_srcdir/tests/large-subopt.in1" \
+ "$abs_top_srcdir/tests/large-subopt.in2" \
+ | perl -n0 -e \
+ '/\n-2\n(\+L: 361\n){2}\+2\n/ and do {$e=1; last}; END{exit !$e}' \
+ && fail=1
+
+Exit $fail
--- /dev/null
+L: 491
+L: 2147
+L: 1853
+3
+L: 851
+L: 1264
+L: 1689
+L: 484
+L: 3102
+L: 566
+L: 64
+L: 612
+L: 1192
+L: 3418
+L: 3428
+L: 1247
+2
+L: 1551
+
+L: 2998
+2
+
+1
+L: 945
+
+2
+L: 1677
+L: 1712
+
+
+
+L: 140
+L: 1245
+L: 1245
+L: 3178
+
+
+
+
+L: 955
+L: 1014
+2
+1
+L: 736
+L: 795
+5
+
+0
+0
+5
+L: 2759
+
+
+L: 648
+0
+1
+2
+
+L: 294
+L: 294
+L: 100
+L: 100
+2
+L: 1636
+L: 1006
+L: 463
+
+L: 1283
+L: 1283
+
+L: 1830
+L: 1570
+
+
+
+L: 18
+L: 141
+
+
+L: 212
+L: 212
+
+1
+2
+3
+4
+L: 3213
+L: 3213
+L: 186
+L: 186
+0
+L: 142
+L: 142
+2
+L: 125
+L: 125
+2
+L: 984
+L: 984
+
+L: 198
+
+
+
+L: 1820
+L: 1820
+
+L: 727
+
+
+
+L: 258
+
+
+1
+L: 1303
+L: 1303
+7
+0
+2
+
+
+
+L: 2474
+L: 618
+L: 1329
+L: 1395
+7
+L: 1703
+L: 1769
+L: 2660
+
+L: 841
+L: 113
+L: 113
+
+L: 1187
+L: 69
+L: 69
+
+3
+L: 186
+L: 186
+L: 109
+L: 109
+2
+L: 179
+
+L: 180
+2
+1
+2
+L: 1027
+
+
+L: 101
+L: 68
+2
+
+L: 13
+7
+2
+
+L: 1881
+L: 1881
+L: 4801
+2
+
+L: 367
+L: 976
+L: 40
+L: 40
+2
+L: 186
+L: 515
+
+1
+
+L: 172
+
+L: 827
+L: 202
+
+1
+2
+2
+L: 472
+2
+L: 1916
+L: 1382
+
+L: 913
+L: 471
+L: 942
+
+L: 205
+L: 205
+2
+L: 869
+L: 61
+L: 775
+L: 775
+L: 249
+L: 289
+2
+0
+0
+L: 33
+
+L: 427
+L: 374
+L: 374
+L: 3378
+L: 3378
+
+1
+2
+L: 191
+
+L: 489
+L: 1088
+
+1
+
+L: 1477
+L: 1477
+L: 1062
+L: 1062
+L: 185
+L: 185
+L: 140
+
+L: 5296
+L: 2126
+
+1
+L: 254
+
+L: 465
+
+1
+
+L: 561
+
+
+L: 663
+
+L: 328
+L: 328
+2
+L: 245
+
+L: 2325
+
+1
+2
+0
+L: 179
+L: 803
+
+
+
+
+
+L: 171
+7
+L: 308
+L: 77
+L: 77
+L: 228
+L: 228
+L: 297
+0
+L: 73
+L: 73
+L: 288
+2
+L: 1486
+3
+L: 3902
+2
+L: 884
+L: 1496
+L: 1496
+
+L: 713
+L: 107
+L: 107
+L: 2755
+L: 2755
+2
+1
+L: 411
+L: 411
+L: 121
+
+L: 2208
+
+
+L: 1116
+
+2
+L: 480
+L: 480
+2
+3
+
+L: 63
+L: 832
+L: 1768
+L: 1768
+L: 115
+L: 115
+2
+
+2
+L: 23
+L: 23
+2
+L: 113
+L: 113
+
+2
+L: 469
+L: 509
+2
+
+
+L: 176
+L: 176
+2
+L: 153
+
+
+
+
+L: 1892
+
+L: 114
+
+L: 574
+L: 3080
+
+
+
+L: 992
+L: 1731
+L: 11878
+2
+L: 2877
+2
+7
+
+L: 2011
+L: 2011
+2
+
+L: 30
+L: 337
+L: 337
+2
+
+L: 485
+
+L: 345
+2
+7
+L: 186
+2
+1
+L: 89
+L: 89
+L: 775
+L: 775
+
+
+L: 48
+4
+
+L: 136
+
+L: 62
+
+L: 194
+L: 194
+L: 849
+
+1
+2
+L: 57
+L: 57
+6
+L: 30
+L: 58
+
+L: 1541
+L: 268
+2
+L: 1554
+L: 1554
+2
+L: 287
+L: 1575
+2
+L: 2275
+
+7
+L: 235
+L: 235
+5
+
+L: 219
+L: 219
+L: 261
+L: 261
+L: 833
+6
+L: 2111
+2
+L: 218
+L: 218
+2
+
+
+
+L: 2016
+3
+L: 2984
+5
+L: 1929
+
+
+L: 113
+
+L: 1231
+
+L: 32
+L: 304
+
+L: 621
+L: 2228
+L: 290
+L: 676
+L: 282
+
+6
+L: 232
+
+2
+1
+L: 554
+L: 236
+L: 1488
+L: 1488
+5
+6
+L: 2477
+
+
+3
+L: 1182
+L: 1182
+L: 302
+L: 302
+2
+L: 508
+3
+6
+7
+L: 447
+
+L: 132
+L: 132
+L: 590
+L: 78
+L: 545
+L: 545
+7
+
+L: 167
+L: 167
+2
+
+L: 938
+2
+L: 92
+L: 92
+
+L: 236
+L: 236
+
+2
+L: 343
+L: 343
+4
+L: 41
+L: 41
+L: 323
+
+L: 1245
+L: 2034
+5
+6
+
+
+L: 77
+
+L: 1591
+L: 197
+L: 197
+
+
+2
+
+
+
+L: 48
+
+L: 241
+
+
+
+
+L: 28
+2
+1
+L: 897
+2
+L: 333
+L: 333
+L: 711
+L: 711
+7
+L: 420
+L: 156
+
+
+
+L: 224
+
+L: 301
+L: 92
+L: 92
+4
+5
+L: 149
+L: 149
+L: 1108
+
+
+
+
+
+L: 210
+2
+
+L: 2841
+2
+L: 505
+
+2
+
+L: 2460
+L: 393
+L: 393
+L: 142
+L: 142
+L: 1120
+L: 1120
+L: 188
+L: 188
+L: 35
+L: 210
+L: 210
+L: 358
+5
+L: 346
+
+
+
+L: 655
+L: 1198
+2
+
+L: 71
+L: 71
+
+L: 259
+L: 318
+5
+
+L: 184
+
+
+L: 10459
+2
+L: 1468
+2
+L: 268
+3
+4
+L: 5171
+L: 5171
+L: 78
+
+L: 1945
+L: 1945
+L: 1003
+L: 1003
+L: 166
+L: 166
+L: 490
+L: 490
+L: 219
+L: 219
+
+
+L: 158
+L: 21
+L: 21
+2
+L: 35
+L: 35
+L: 139
+L: 139
+L: 662
+L: 66
+L: 66
+L: 741
+L: 741
+L: 26
+L: 26
+2
+2
+0
+L: 110
+
+
+
+
+1
+L: 743
+L: 393
+L: 773
+L: 773
+L: 359
+
+0
+L: 35367
+4
+L: 4139
+L: 2593
+L: 2593
+L: 306
+L: 306
+1
+L: 67
+L: 139
+L: 139
+3
+4
+5
+
+L: 146
+L: 905
+L: 1677
+L: 1677
+6
+L: 2726
+L: 2726
+L: 48
+L: 48
+L: 424
+L: 424
+2
+1
+L: 39
+2
+3
+L: 385
+2
+L: 843
+2
+
+L: 38
+2
+L: 460
+L: 460
+L: 40
+L: 361
+L: 3419
+L: 3419
+2
+L: 321
+1
+L: 381
+L: 2285
+2
+
+
+
+L: 19224
+2
+L: 35
+L: 35
+
+L: 233
+L: 63
+L: 63
+2
+
+
+
+
+2
+1
+L: 41
+L: 41
+L: 134
+L: 226
+
+6
+L: 452
+L: 452
+L: 963
+L: 973
+L: 876
+L: 876
+0
+
+
+L: 94
+2
+
+L: 10459
+L: 244
+L: 244
+L: 2139
+L: 2139
+2
+L: 434
+2
+5
+2
+L: 2734
+L: 2887
+
+
+L: 35
+L: 330
+L: 330
+
+L: 111
+L: 125
+L: 125
+
+
+1
+L: 421
+
+3
+6
+
+1
+L: 2779
+2
+
+2
+5
+L: 77
+L: 77
+
+L: 954
+L: 906
+
+L: 922
+L: 528
+L: 117
+L: 117
+2
+1
+L: 562
+2
+1
+2
+L: 340
+L: 1168
+
+
+L: 127
+L: 135
+L: 297
+L: 297
+1
+L: 175
+2
+
+L: 48
+L: 560
+L: 50
+1
+L: 70
+L: 402
+L: 402
+
+1
+L: 842
+L: 842
+1
+1
+L: 2422
+L: 2422
+L: 4834
+L: 4834
+L: 36
+
+2
+L: 183
+L: 183
+L: 785
+L: 785
+2
+1
+L: 404
+L: 600
+L: 640
+
+2
+
+
+
+L: 1135
+L: 1238
+
+
+
+
+L: 142
+L: 922
+L: 1073
+
+
+
+L: 578
+L: 578
+L: 2051
+
+3
+
+
+2
+
+
+6
+
+L: 196
+L: 227
+L: 227
+L: 55
+L: 55
+2
+L: 123
+2
+1
+L: 6290
+L: 6338
+
+
+L: 784
+L: 708
+0
+L: 35
+1
+L: 2265
+
+L: 217
+L: 619
+L: 2055
+L: 207
+
+
+L: 453
+
+L: 483
+2
+1
+L: 827
+L: 827
+
+L: 1218
+
+L: 633
+5
+6
+3
+L: 340
+L: 340
+
+
+2
+L: 4711
+
+
+7
+L: 606
+
+2
+1
+L: 1130
+L: 1130
+2
+L: 844
+
+L: 53
+L: 1603
+L: 1603
+L: 96
+L: 96
+L: 1296
+L: 1296
+L: 36
+
+
+L: 1712
+L: 1712
+2
+6
+L: 48
+
+1
+2
+L: 247
+L: 247
+L: 2789
+
+
+L: 1608
+L: 341
+1
+
+L: 629
+
+0
+
+
+2
+7
+1
+L: 134
+L: 134
+2
+1
+L: 392
+L: 48
+L: 48
+L: 61
+L: 61
+L: 655
+L: 655
+2
+L: 1624
+L: 846
+1
+L: 213
+
+
+
+L: 3780
+L: 3780
+2
+1
+L: 382
+L: 333
+
+0
+
+
+
+1
+2
+L: 56
+L: 96
+
+L: 693
+L: 237
+
+L: 278
+L: 278
+
+1
+2
+L: 977
+4
+L: 2383
+0
+L: 889
+L: 929
+L: 123
+L: 123
+2
+L: 35
+L: 684
+L: 684
+L: 131
+L: 131
+2
+0
+6
+L: 479
+
+
+L: 386
+
+L: 12612
+
+
+L: 478
+
+
+
+
+
+
+L: 170
+
+L: 189
+
+
+L: 2168
+L: 646
+
+2
+7
+L: 615
+
+
+L: 45
+L: 45
+
+2
+
+
+L: 149
+
+2
+L: 1199
+
+4
+
+L: 129
+L: 129
+L: 892
+6
+L: 112
+
+
+4
+
+L: 85
+L: 346
+0
+L: 1926
+
+L: 657
+L: 657
+L: 556
+L: 556
+L: 366
+
+L: 3731
+L: 95
+L: 95
+
+L: 176
+
+L: 196
+
+L: 150
+L: 150
+L: 852
+2
+0
+
+L: 61
+
+L: 77
+0
+
+2
+
+L: 71
+
+
+L: 342
+
+L: 157
+1
+
+
+L: 166
+L: 166
+L: 166
+L: 166
+
+L: 44
+2
+L: 305
+4
+L: 5254
+
+7
+L: 35
+L: 35
+L: 137
+L: 250
+2
+5
+L: 832
+L: 3030
+L: 3073
+2
+
+
+
+L: 336
+L: 176
+L: 176
+5
+
+L: 397
+
+2
+L: 285
+
+L: 102
+L: 786
+L: 169
+
+L: 136
+
+
+L: 87
+6
+L: 1142
+L: 1142
+L: 660
+L: 580
+6
+L: 948
+L: 948
+L: 66
+L: 66
+L: 58
+
+L: 35
+L: 35
+L: 184
+L: 184
+L: 148
+L: 148
+L: 1491
+L: 1491
+L: 45
+L: 85
+L: 159
+L: 159
+2
+4
+L: 252
+L: 1479
+L: 1479
+2
+3
+L: 363
+L: 363
+L: 57
+
+2
+L: 52
+
+L: 231
+L: 1371
+L: 303
+L: 303
+4
+
+L: 184
+L: 2137
+L: 2177
+
+
+L: 230
+L: 827
+L: 355
+
+L: 204
+L: 239
+L: 625
+L: 88
+L: 88
+2
+7
+
+L: 952
+L: 952
+
+7
+L: 971
+0
+
+L: 679
+
+L: 178
+L: 178
+L: 271
+L: 1182
+L: 1182
+2
+7
+L: 53
+L: 53
+7
+
+L: 176
+
+L: 345
+5
+6
+L: 1820
+
+L: 2801
+
+
+L: 240
+
+
+L: 944
+L: 78
+L: 78
+4
+L: 104
+L: 104
+4
+L: 334
+2
+L: 191
+L: 698
+L: 698
+
+L: 1574
+2
+1
+2
+1
+2
+L: 29
+
+L: 546
+L: 91
+L: 91
+1
+L: 699
+L: 1077
+L: 1077
+L: 380
+L: 380
+L: 36
+L: 36
+5
+7
+L: 68
+L: 9527
+L: 9527
+
+L: 1021
+2
+L: 74
+L: 72
+L: 72
+L: 2008
+L: 176
+L: 176
+0
+L: 1240
+L: 1240
+2
+L: 284
+6
+
+2
+L: 206
+L: 206
+L: 106
+L: 106
+L: 398
+L: 35
+L: 103
+L: 103
+L: 174
+L: 174
+L: 1206
+L: 1769
+L: 1769
+L: 721
+
+L: 130
+2
+L: 51
+L: 51
+L: 41
+L: 41
+L: 173
+L: 173
+1
+L: 669
+L: 669
+L: 537
+5
+L: 847
+L: 847
+2
+2
+1
+
+L: 75
+L: 75
+
+L: 148
+
+L: 311
+L: 1503
+L: 9762
+
+L: 1163
+
+L: 61
+2
+
+
+L: 401
+
+
+L: 181
+
+L: 285
+L: 285
+
+1
+L: 75
+L: 75
+
+
+
+
+L: 3510
+L: 3510
+L: 99
+
+L: 1865
+
+L: 670
+L: 1219
+L: 1219
+
+L: 265
+L: 293
+
+L: 433
+L: 433
+2
+L: 260
+
+L: 703
+
+
+L: 727
+L: 727
+
+
+
+L: 61
+2
+
+L: 47
+L: 67
+L: 67
+
+L: 78
+L: 78
+
+L: 101
+L: 101
+
+L: 14026
+L: 1588
+L: 103
+L: 103
+L: 54
+L: 54
+L: 765
+
+2
+L: 1443
+1
+L: 118
+L: 118
+2
+L: 277
+2
+2
+2
+
+L: 59
+2
+1
+2
+L: 155
+L: 155
+
+
+
+
+L: 81
+
+L: 412
+2
+L: 35
+L: 35
+
+L: 2394
+L: 48
+L: 572
+L: 363
+L: 363
+7
+L: 514
+L: 514
+2
+L: 684
+L: 553
+L: 33
+L: 33
+2
+5
+
+L: 844
+2
+
+L: 1031
+L: 1031
+L: 386
+L: 319
+2
+L: 930
+L: 930
+
+2
+L: 2869
+L: 2869
+L: 230
+2
+L: 111
+L: 111
+2
+L: 35
+
+
+L: 275
+2
+L: 127
+
+
+L: 61
+L: 85
+L: 85
+L: 88
+L: 88
+2
+
+1
+L: 68
+L: 68
+L: 266
+L: 266
+4
+L: 3056
+
+
+L: 11878
+L: 221
+L: 221
+2
+L: 106
+L: 106
+
+1
+
+L: 1278
+
+L: 179
+L: 179
+L: 88
+
+2
+1
+L: 176
+
+L: 1416
+L: 103
+L: 106
+L: 54
+L: 54
+
+L: 1604
+
+L: 598
+L: 673
+
+6
+1
+L: 1485
+
+
+
+L: 265
+L: 124
+L: 124
+L: 158
+L: 158
+L: 912
+L: 43
+
+L: 3063
+L: 3063
+2
+1
+2
+L: 140
+L: 73
+L: 73
+3
+2
+L: 19
+
+5
+6
+L: 1128
+1
+6
+L: 35
+L: 35
+
+1
+L: 294
+L: 294
+0
+3
+6
+3
+L: 1067
+
+0
+1
+L: 450
+L: 71
+L: 498
+L: 498
+2
+1
+4
+L: 823
+L: 136
+L: 136
+L: 88
+
+4
+
+6
+2
+1
+1
+L: 315
+L: 315
+2
+
+
+
+6
+L: 218
+
+
+L: 1255
+L: 1255
+1
+6
+L: 94
+
+
+L: 295
+2
+
+
+
+L: 407
+
+2
+L: 122
+L: 122
+1
+L: 745
+L: 745
+1
+5
+
+7
+L: 1010
+L: 203
+
+L: 258
+
+L: 1981
+L: 1981
+2
+L: 1508
+L: 1508
+2
+1
+
+L: 111
+L: 360
+L: 360
+L: 63
+L: 2921
+L: 2961
+2
+L: 3533
+2
+7
+
+L: 423
+
+L: 1146
+2
+3
+L: 263
+0
+L: 476
+L: 476
+L: 60
+
+L: 920
+L: 17
+
+2
+4
+L: 27
+L: 27
+
+
+L: 27
+1
+L: 1156
+
+L: 112
+L: 75
+2
+
+L: 532
+L: 931
+L: 751
+3
+
+L: 980
+
+L: 101
+L: 101
+2
+L: 837
+L: 223
+L: 223
+2
+1
+L: 458
+3
+0
+
+L: 488
+
+3
+L: 723
+
+L: 15
+2
+1
+2
+L: 509
+
+
+1
+L: 3303
+L: 3303
+L: 249
+2
+2
+3
+L: 152
+L: 152
+L: 184
+L: 184
+L: 850
+L: 850
+2
+2
+6
+7
+L: 534
+L: 57
+L: 291
+L: 291
+
+
+
+L: 776
+L: 222
+
+L: 226
+L: 408
+L: 408
+1
+L: 1183
+L: 1183
+L: 495
+
+L: 158
+L: 158
+L: 165
+L: 165
+L: 169
+
+5
+L: 3111
+2
+L: 120
+L: 120
+L: 332
+L: 491
+2
+L: 97
+L: 35
+
+L: 695
+L: 695
+L: 206
+
+L: 66
+L: 47
+L: 47
+
+1
+2
+
+L: 1160
+L: 95
+L: 95
+5
+7
+L: 1919
+L: 450
+L: 450
+L: 534
+
+L: 268
+L: 441
+2
+L: 100
+L: 100
+2
+L: 1148
+
+1
+L: 635
+L: 1935
+3
+
+
+1
+L: 533
+
+L: 935
+3
+L: 451
+L: 184
+
+L: 815
+L: 581
+L: 581
+2
+L: 569
+2
+
+L: 40
+L: 1266
+
+L: 134
+L: 134
+L: 1574
+3
+4
+L: 35
+L: 35
+L: 338
+L: 25
+L: 25
+L: 404
+L: 404
+4
+L: 873
+L: 700
+L: 190
+L: 190
+
+L: 160
+L: 160
+0
+1
+2
+
+L: 220
+L: 220
+L: 1846
+L: 90
+L: 90
+
+L: 52
+2
+5
+
+
+2
+L: 3655
+6
+7
+0
+L: 432
+
+L: 80
+L: 80
+L: 116
+L: 116
+2
+
+
+
+7
+L: 1462
+
+5
+
+L: 2841
+
+5
+
+L: 2953
+L: 262
+
+L: 770
+L: 665
+7
+L: 166
+L: 211
+L: 857
+L: 857
+L: 331
+L: 116
+L: 116
+L: 731
+L: 364
+L: 1042
+L: 1042
+2
+1
+
+L: 1822
+L: 479
+L: 489
+
+
+L: 73
+L: 956
+
+L: 965
+L: 965
+
+
+L: 429
+L: 71
+L: 71
+
+L: 179
+
+0
+6
+L: 101
+L: 101
+3
+4
+L: 48
+L: 48
+L: 949
+
+L: 970
+L: 2953
+
+2
+
+L: 1050
+
+
+L: 3904
+
+
+L: 118
+L: 118
+L: 438
+L: 438
+2
+
+2
+L: 5415
+
+L: 82
+
+L: 148
+L: 148
+0
+L: 54235
+
+3
+L: 2033
+L: 2033
+3
+1
+
+
+L: 404
+
+
+
+2
+4
+5
+6
+
+2
+L: 2111
+L: 2111
+L: 89
+
+L: 349
+L: 349
+L: 6646
+L: 6646
+L: 254
+
+
+
+
+L: 1063
+
+
+L: 242
+L: 36
+
+1
+
+
+
+L: 225
+
+
+
+L: 204
+L: 204
+
+L: 707
+L: 422
+L: 422
+L: 2271
+
+2
+L: 860
+L: 860
+1
+L: 157
+2
+L: 1939
+
+
+
+L: 75
+L: 2859
+L: 1919
+L: 1919
+L: 2829
+L: 2829
+L: 330
+
+L: 1241
+L: 201
+L: 241
+2
+L: 555
+L: 555
+
+
+L: 326
+L: 96
+
+
+L: 2862
+
+L: 290
+L: 158
+
+L: 41
+L: 41
+L: 300
+
+L: 643
+
+
+
+
+L: 389
+
+
+L: 240
+
+L: 177
+L: 420
+L: 420
+L: 35
+L: 35
+L: 683
+
+
+L: 107
+L: 107
+L: 1155
+L: 254
+
+
+
+L: 125
+L: 125
+3
+7
+
+L: 885
+L: 405
+L: 185
+4
+L: 289
+
+L: 578
+L: 578
+1
+
+
+L: 377
+
+L: 1835
+L: 1835
+L: 3731
+L: 3731
+L: 780
+L: 2929
+
+L: 160
+L: 160
+L: 98
+6
+7
+
+
+L: 2075
+
+L: 305
+L: 305
+4
+
+
+
+
+L: 362
+L: 362
+
+L: 208
+
+L: 3592
+
+L: 40
+L: 1117
+L: 1117
+L: 48
+L: 639
+
+L: 449
+
+L: 3858
+L: 1488
+1
+3
+
+
+6
+L: 762
+L: 762
+L: 848
+
+
+6
+7
+L: 309
+
+L: 240
+L: 240
+
+L: 1976
+
+
+L: 197
+1
+7
+
+L: 3655
+3
+L: 77
+L: 77
+L: 1313
+L: 1313
+L: 292
+
+L: 37
+L: 37
+2
+L: 287
+L: 287
+4
+L: 178
+L: 178
+
+L: 8454
+L: 216
+L: 216
+1
+2
+0
+1
+L: 216
+L: 216
+3
+L: 66
+L: 66
+6
+L: 564
+
+L: 190
+4
+2
+L: 310
+L: 310
+6
+
+0
+L: 396
+
+L: 855
+L: 365
+L: 365
+2
+L: 620
+L: 18332
+
+L: 418
+L: 1945
+L: 2047
+
+L: 185
+7
+L: 42
+L: 112
+L: 112
+4
+L: 214
+L: 214
+L: 440
+L: 483
+
+0
+
+L: 1490
+
+L: 187
+
+
+1
+L: 477
+L: 477
+L: 371
+
+2
+3
+L: 739
+L: 739
+L: 611
+2
+
+
+
+
+2
+5
+7
+
+L: 3520
+L: 977
+L: 977
+L: 128
+L: 128
+
+L: 1288
+L: 1039
+L: 1077
+L: 1077
+L: 142
+L: 142
+2
+L: 1070
+L: 1070
+L: 53
+L: 53
+L: 58
+2
+L: 233
+L: 233
+L: 66
+
+2
+L: 62
+L: 62
+L: 59
+L: 59
+2
+1
+
+2
+L: 127
+2
+1
+
+L: 256
+5
+
+L: 556
+2
+4
+
+L: 522
+2
+
+L: 409
+2
+L: 610
+
+L: 352
+
+L: 164
+5
+L: 55
+L: 55
+
+
+
+L: 71
+L: 3824
+L: 41
+L: 41
+
+1
+L: 475
+L: 903
+
+L: 174
+
+
+
+1
+L: 106
+L: 134
+
+
+L: 128
+L: 34
+L: 84
+L: 84
+L: 92
+5
+L: 427
+7
+L: 143
+L: 143
+3
+L: 109
+L: 109
+L: 107
+
+0
+
+
+
+L: 183
+
+L: 246
+L: 116
+0
+
+
+
+
+L: 387
+L: 98
+
+
+1
+L: 1522
+
+L: 4818
+2
+L: 8454
+1
+L: 2031
+
+
+L: 1508
+7
+L: 2343
+L: 2386
+L: 5211
+L: 5254
+
+6
+1
+L: 1594
+0
+L: 1225
+L: 8021
+
+2
+
+L: 1526
+L: 1569
+
+
+3
+
+L: 810
+L: 2755
+6
+L: 2448
+2
+
+
+1
+L: 1124
+L: 1167
+6
+
+L: 3206
+L: 320
+1
+L: 3063
+L: 3106
+L: 925
+L: 968
+2
+
+L: 1956
+
+L: 1779
+
+
+L: 1490
+L: 1207
+2
+L: 2397
+L: 3676
+2
+2
+L: 12612
+L: 2740
+L: 4834
+
+
+2
+
+1
+
+L: 1491
+
+L: 1924
+L: 3600
+L: 3643
+2
+
+L: 1025
+L: 330
+L: 370
+L: 1592
+2
+L: 4280
+
+
+
+L: 2862
+
+
+
+L: 1219
+L: 2678
+L: 2721
+L: 1096
+L: 1139
+L: 664
+
+L: 31
+L: 265
+L: 7350
+L: 7350
+3
+
+L: 412
+L: 1248
+L: 1248
+L: 224
+L: 224
+L: 280
+L: 280
+2
+L: 632
+L: 632
+L: 154
+L: 154
+L: 1731
+L: 93
+L: 93
+L: 108
+L: 108
+L: 147
+
+
+L: 210
+L: 210
+L: 11816
+L: 11816
+L: 1798
+
+L: 79
+L: 79
+L: 876
+L: 951
+2
+
+L: 236
+L: 236
+
+L: 182
+L: 63
+L: 63
+L: 5268
+L: 5268
+L: 114
+L: 114
+L: 439
+5
+
+L: 1098
+L: 128
+L: 128
+L: 54245
+
+
+L: 716
+2
+
+0
+
+2
+3
+L: 837
+1
+2
+3
+
+2
+1
+5
+L: 86
+
+L: 145
+L: 1811
+2
+6
+L: 86
+L: 86
+L: 72
+2
+L: 206
+L: 206
+L: 266
+L: 287
+L: 287
+L: 689
+1
+L: 463
+0
+
+L: 72
+L: 72
+L: 183
+
+L: 493
+
+
+
+1
+
+L: 122
+
+0
+1
+2
+L: 777
+L: 699
+L: 699
+0
+
+L: 211
+2
+L: 153
+L: 171
+L: 171
+L: 75
+2
+L: 84
+2
+L: 2011
+L: 630
+1
+2
+3
+L: 174
+
+2
+L: 428
+2
+L: 767
+L: 767
+L: 611
+L: 611
+2
+1
+2
+6
+7
+0
+6
+
+6
+2
+3
+4
+2
+2
+
+L: 415
+L: 415
+2
+
+0
+
+
+
+0
+5
+
+3
+
+6
+
+
+
+
+3
+1
+
+
+1
+
+
+
+
+2
+7
+2
+
+
+
+
+0
+7
+
+
+5
+3
+3
+6
+2
+
+
+3
+1
+7
+
+
+
+L: 837
+
+
+1
+7
+0
+
+L: 351
+2
+1
+2
+
+5
+
+5
+7
+
+L: 273
+
+1
+
+0
+4
+L: 169
+2
+
+6
+0
+
+7
+0
+1
+2
+L: 265
+2
+1
+2
+
+7
+L: 249
+
+7
+
+
+
+
+
+
+7
+
+0
+2
+1
+2
+
+
+6
+5
+L: 193
+L: 268
+2
+
+
+3
+3
+3
+L: 20
+
+L: 192
+
+1
+
+0
+1
+2
+3
+2
+1
+5
+
+1
+
+
+
+
+7
+0
+2
+
+
+
+
+
+
+
+5
+1
+
+5
+
+0
+
+
+2
+3
+
+L: 233
+L: 233
+2
+
+6
+6
+7
+
+
+2
+0
+3
+1
+6
+7
+L: 37
+L: 37
+2
+
+
+0
+
+
+
+
+
+3
+
+
+
+5
+
+
+7
+
+7
+
+
+
+0
+
+
+
+
+
+2
+3
+
+
+
+
+
+
+
+7
+
+5
+2
+3
+2
+
+
+
+
+
+
+
+
+
+1
+3
+
+3
+
+
+
+5
+L: 357
+1
+0
+3
+3
+
+1
+L: 286
+4
+3
+1
+
+
+
+
+
+
+
+1
+
+
+3
+
+
+
+
+L: 536
+
+0
+0
+2
+
+6
+6
+
+5
+6
+
+
+
+
+
+L: 24
+2
+
+
+0
+3
+1
+4
+5
+
+0
+
+
+
+0
+3
+
+5
+
+
+
+2
+
+
+1
+
+L: 138
+
+
+
+
+0
+
+7
+
+2
+1
+
+
+
+
+
+
+
+
+
+2
+
+1
+
+1
+
+6
+
+2
+
+3
+
+L: 747
+
+
+
+
+
+6
+7
+
+
+
+
+
+0
+0
+
+1
+L: 283
+
+0
+
+
+
+
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+1
+7
+1
+2
+0
+6
+0
+
+3
+6
+
+2
+
+
+
+4
+5
+L: 101
+
+1
+
+6
+
+
+
+5
+6
+
+
+7
+0
+7
+
+0
+0
+2
+3
+0
+1
+
+2
+L: 74257
+L: 74310
+2
+6
+7
+3
+
+2
+
+2
+
+
+L: 367
+2
+5
+6
+7
+0
+6
+7
+
+5
+
+
+6
+7
+0
+
+3
+
+
+3
+0
+1
+5
+6
+7
+0
+L: 53775
+L: 53775
+1
+0
+0
+1
+2
+6
+L: 22961
+
+4
+
+1
+
+
+
+0
+L: 24672
+2
+6
+
+3
+0
+
+
+0
+6
+
+
+6
+2
+3
+
+7
+2
+L: 653
+L: 728
+
+7
+2
+4
+
+
+3
+
+
+2
+
+
+1
+1
+
+
+L: 218
+
+
+1
+
+
+
+
+7
+2
+1
+
+
+
+
+
+
+
+
+
+
+L: 205
+0
+3
+
+3
+2
+2
+
+L: 369
+3
+4
+L: 130
+
+
+
+
+L: 470
+
+2
+
+
+0
+
+
+7
+0
+
+7
+0
+
+2
+
+
+
+2
+
+3
+
+3
+
+L: 199
+
+
+1
+
+2
+
+
+
+
+
+
+
+2
+
+
+
+
+
+
+
+
+
+6
+
+
+2
+2
+3
+5
+3
+L: 200
+2
+5
+
+
+
+
+
+
+2
+
+
+
+
+1
+
+
+
+2
+2
+
+2
+
+6
+
+
+2
+1
+7
+
+L: 453
+
+
+
+0
+6
+
+2
+
+3
+
+5
+
+
+7
+
+L: 267
+2
+1
+2
+
+
+
+
+6
+7
+0
+
+
+
+L: 637
+
+1
+
+5
+1
+2
+
+
+1
+6
+7
+0
+1
+2
+
+2
+4
+0
+
+1
+2
+3
+
+5
+L: 409
+
+2
+1
+
+
+7
+1
+
+6
+
+
+
+
+
+
+
+
+L: 1388
+5
+6
+
+3
+
+
+
+L: 477
+
+
+
+
+
+
+
+2
+2
+
+
+
+5
+
+
+
+4
+L: 1806
+
+6
+
+7
+
+
+L: 253
+
+
+7
+
+0
+
+
+
+
+7
+
+
+
+
+
+
+
+L: 782
+
+
+7
+
+
+
+
+
+L: 2805
+
+
+7
+
+
+0
+
+
+
+
+7
+L: 9246
+
+
+5
+
+
+
+6
+7
+
+
+0
+3
+
+
+
+5
+
+L: 65
+
+
+
+L: 354
+
+
+
+
+1
+
+2
+
+
+0
+
+
+
+
+4
+6
+7
+3
+
+
+
+
+3
+3
+
+
+
+
+
+3
+
+
+
+
+L: 22
+
+
+
+
+
+
+
+
+
+1
+L: 2837
+
+2
+2
+
+2
+L: 172
+2
+
+
+
+
+6
+
+
+3
+
+
+2
+
+
+
+
+0
+1
+
+
+L: 953
+L: 1025
+
+
+
+L: 1744
+
+6
+
+
+
+
+
+
+
+
+
+
+
+L: 1614
+
+
+
+
+4
+
+3
+
+
+
+
+3
+L: 2769
+L: 2769
+
+
+
+
+
+
+6
+
+0
+
+
+
+3
+
+6
+
+
+
+L: 223
+
+
+0
+
+
+
+
+3
+4
+
+
+
+
+
+
+
+
+L: 753
+
+
+
+
+
+
+
+
+1
+
+
+
+
+
+3
+4
+
+
+3
+
+6
+7
+0
+
+
+
+
+5
+5
+5
+
+
+1
+
+
+1
+
+L: 5022
+1
+3
+
+
+
+
+
+
+
+1
+L: 1059
+
+L: 879
+
+2
+
+
+
+
+
+
+
+L: 1174
+
+
+
+0
+
+
+
+
+L: 1037
+L: 1080
+
+
+7
+
+0
+
+7
+
+
+
+
+2
+L: 257
+2
+
+
+
+6
+
+
+3
+
+
+1
+3
+L: 636
+
+L: 565
+
+
+
+4
+L: 281
+
+
+
+
+
+
+
+
+
+
+
+1
+
+
+L: 462
+L: 2513
+3
+
+
+1
+
+
+L: 234
+
+1
+
+
+
+
+
+5
+
+
+
+1
+
+0
+0
+1
+
+
+1
+
+
+
+
+
+
+
+
+
+
+L: 160
+
+
+
+7
+2
+0
+
+
+
+
+1
+L: 1387
+
+
+
+
+
+7
+
+3
+
+0
+1
+
+0
+
+
+
+
+
+7
+
+
+
+
+
+
+1
+
+7
+
+7
+
+
+
+L: 2996
+7
+
+
+
+
+
+
+
+
+0
+
+
+
+
+
+
+
+
+
+
+2
+
+
+0
+
+5
+L: 868
+2
+7
+3
+6
+
+
+7
+
+
+
+
+
+
+3
+
+3
+
+
+
+1
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+L: 1966
+
+7
+
+
+
+
+
+
+1
+L: 1684
+L: 1729
+
+0
+
+
+
+
+
+
+L: 1000
+L: 1045
+
+
+
+
+
+
+
+
+
+2
+
+3
+7
+
+
+
+4
+
+
+
+
+
+
+3
+
+3
+0
+6
+
+
+
+
+
+
+L: 35357
+
+1
+1
+
+
+
+7
+0
+
+7
+0
+
+
+
+0
+
+
+
+0
+
+
+
+
+L: 801
+
+
+L: 162
+
+
+
+
+
+
+
+6
+
+0
+7
+
+0
+
+
+
+
+
+
+
+1
+
+2
+
+2
+
+
+L: 2005
+3
+1
+0
+2
+2
+
+
+
+1
+
+2
+
+
+
+
+
+1
+
+
+
+L: 2269
+L: 2328
+
+
+4
+
+
+2
+
+2
+
+7
+
+
+
+7
+
+
+
+
+
+2
+
+
+0
+
+
+4
+L: 2725
+2
+
+
+L: 165
+
+5
+6
+0
+
+7
+
+
+
+
+
+3
+1
+
+
+
+
+
+
+
+
+0
+
+
+
+L: 3620
+
+
+
+1
+
+2
+
+0
+
+
+4
+L: 7591
+L: 7638
+
+1
+4
+
+3
+
+
+L: 766
+L: 766
+
+
+
+
+3
+1
+0
+
+
+L: 588
+
+L: 1664
+6
+
+7
+2
+
+
+L: 168
+
+
+7
+
+
+1
+
+0
+0
+
+L: 2001
+
+
+
+
+
+7
+
+2
+
+
+L: 120
+L: 120
+
+
+2
+
+L: 216
+2
+7
+0
+6
+0
+0
+
+
+
+
+6
+6
+2
+1
+
+6
+0
+
+
+
+
+
+
+
+0
+
+4
+5
+1
+L: 2739
+
+
+
+
+6
+7
+5
+6
+
+
+
+
+1
+6
+
+
+L: 991
+6
+
+
+
+0
+
+
+
+1
+3
+3
+
+
+
+3
+L: 5258
+L: 5300
+
+1
+
+4
+
+
+
+7
+
+1
+1
+
+
+
+
+
+
+7
+0
+
+L: 10430
+7
+
+1
+7
+
+
+
+7
+3
+
+2
+2
+
+
+7
+
+L: 1060
+
+
+0
+
+
+
+
+L: 1023
+
+
+2
+5
+
+
+1
+3
+
+L: 1154
+
+0
+
+
+
+
+
+L: 1209
+L: 1255
+
+L: 1236
+L: 1282
+2
+6
+
+
+0
+1
+3
+
+
+L: 1089
+L: 1135
+2
+2
+6
+
+0
+
+
+
+L: 1215
+L: 1261
+
+0
+1
+3
+2
+6
+3
+
+
+
+6
+7
+
+2
+2
+2
+
+
+
+
+
+
+7
+
+L: 163
+
+6
+
+6
+
+3
+
+
+
+
+
+0
+L: 4619
+
+
+
+
+
+
+
+
+0
+
+0
+1
+
+
+
+
+5
+
+
+
+
+
+6
+
+4
+5
+5
+L: 2719
+
+6
+3
+
+
+
+5
+
+
+
+5
+2
+
+
+
+7
+0
+1
+L: 416
+
+
+
+
+
+
+1
+5
+
+
+3
+
+
+
+
+0
+1
+
+L: 1129
+
+
+
+
+
+
+
+L: 5188
+
+
+
+
+
+0
+0
+
+3
+2
+3
+
+2
+
+2
+
+0
+2
+
+
+1
+0
+1
+2
+
+2
+7
+
+5
+2
+2
+3
+0
+0
+1
+
+7
+2
+6
+5
+2
+1
+
+
+
+1
+L: 10
+2
+2
+2
+2
+
+L: 10
+2
+
+2
+2
+
+
+0
+1
+1
+L: 919
+L: 959
+L: 23
+2
+0
+7
+
+L: 10
+2
+
+
+
+
+0
+
+
+5
+6
+L: 539
+L: 586
+5
+L: 239
+5
+6
+0
+
+
+
+
+
+
+
+6
+L: 137
+2
+5
+
+7
+7
+0
+7
+
+3
+1
+0
+2
+
+
+
+
+
+
+4
+
+L: 726
+
+0
+
+5
+4
+L: 1896
+4
+L: 1470
+1
+2
+0
+1
+
+
+L: 2380
+2
+
+
+
+L: 153
+
+
+
+
+
+7
+0
+2
+3
+3
+
+
+
+
+L: 3842
+L: 3884
+
+
+4
+
+3
+3
+
+
+0
+2
+
+
+
+L: 3212
+
+
+
+2
+
+
+L: 144
+
+
+7
+0
+6
+
+
+2
+5
+
+
+0
+
+
+
+
+L: 3450
+
+2
+
+0
+
+
+
+
+
+
+4
+
+
+
+L: 356
+
+
+6
+6
+7
+3
+
+
+0
+0
+0
+
+
+4
+
+
+
+
+4
+
+
+
+
+5
+
+
+L: 2919
+
+
+7
+
+7
+2
+2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3
+
+3
+
+
+L: 25
+L: 25
+
+
+6
+L: 170
+2
+
+6
+
+
+L: 990
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3
+
+
+L: 2879
+
+
+
+7
+
+
+
+1
+
+L: 160
+
+
+6
+
+1
+4
+1
+
+7
+0
+1
+
+L: 131
+
+
+
+L: 153
+
+
+
+
+L: 850
+
+
+6
+L: 130
+
+5
+
+
+
+
+0
+L: 1112
+L: 1112
+
+4
+0
+
+1
+
+
+1
+5
+5
+
+6
+7
+
+7
+4
+
+5
+0
+
+
+5
+
+L: 1721
+L: 1797
+
+5
+6
+3
+
+5
+
+0
+3
+
+
+
+
+
+
+6
+7
+L: 2305
+
+
+0
+3
+
+1
+
+
+
+5
+
+
+
+
+1
+7
+0
+0
+
+0
+
+
+
+
+
+
+0
+1
+
+1
+L: 124
+
+1
+
+
+1
+
+
+
+
+L: 1466
+
+L: 1873
+2
+1
+
+0
+
+1
+
+
+L: 32
+
+
+6
+0
+
+1
+2
+3
+4
+L: 481
+0
+
+
+4
+
+0
+
+
+4
+L: 4168
+2
+2
+
+4
+0
+0
+
+
+
+
+
+
+
+
+
+2
+
+
+6
+
+0
+
+
+
+4
+3
+1
+0
+1
+7
+4
+
+
+
+
+1
+
+
+L: 552
+
+6
+0
+6
+
+6
+7
+
+
+
+4
+2
+
+5
+6
+
+
+6
+
+
+2
+
+
+
+3
+
+L: 724
+L: 724
+
+1
+
+
+
+
+
+1
+
+3
+
+5
+L: 307
+L: 307
+1
+
+3
+0
+
+1
+L: 343
+1
+0
+3
+2
+
+4
+7
+
+1
+L: 270
+L: 270
+1
+
+
+
+5
+
+
+
+
+3
+
+
+
+
+2
+
+
+3
+L: 161
+6
+7
+0
+7
+0
+
+
+
+
+
+5
+
+
+
+L: 3419
+0
+
+
+6
+
+0
+L: 496
+2
+
+
+0
+1
+
+L: 3516
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+7
+
+
+
+3
+
+
+
+
+
+
+
+2
+4
+3
+
+1
+2
+6
+1
+L: 153
+2
+5
+6
+7
+0
+
+L: 132
+
+3
+
+L: 133
+
+
+7
+0
+
+
+0
+4
+
+0
+0
+
+
+4
+
+2
+L: 2937
+L: 2937
+2
+3
+
+L: 154
+
+
+
+
+
+
+
+
+
+6
+3
+4
+7
+
+
+
+
+
+
+L: 4067
+
+5
+
+
+2
+2
+7
+2
+L: 128
+2
+7
+0
+6
+1
+L: 3888
+L: 3888
+
+
+
+
+3
+1
+
+
+
+0
+
+
+5
+4
+L: 966
+
+6
+
+5
+
+
+
+
+
+
+
+
+
+0
+1
+2
+3
+6
+L: 87308
+
+
+
+
+
+0
+0
+1
+2
+3
+2
+
+7
+3
+6
+1
+4
+5
+5
+
+1
+0
+3
+1
+4
+5
+L: 644
+L: 644
+2
+
+
+1
+1
+2
+
+3
+7
+0
+
+L: 3069
+L: 3069
+1
+3
+5
+6
+L: 20
+2
+3
+L: 272
+
+6
+7
+0
+6
+7
+0
+1
+
+3
+3
+2
+2
+5
+L: 173
+2
+
+6
+0
+6
+7
+
+2
+3
+7
+2
+2
+6
+
+0
+
+
+7
+L: 3592
+7
+0
+3
+
+2
+
+1
+3
+4
+L: 1047
+L: 126
+
+1
+4
+1
+2
+5
+6
+7
+0
+6
+4
+L: 133
+6
+
+0
+4
+5
+5
+
+
+
+
+
+
+1
+L: 62
+L: 62
+
+1
+
+
+
+3
+0
+0
+2
+3
+L: 41
+2
+1
+2
+
+
+L: 182
+6
+7
+0
+7
+L: 697
+
+0
+
+
+
+
+
+
+
+
+
+3
+4
+
+
+
+L: 778
+
+1
+6
+L: 75014
+
+
+
+
+0
+3
+1
+3
+4
+L: 468
+2
+
+
+
+
+6
+
+L: 763
+
+0
+L: 141
+5
+7
+0
+
+7
+0
+
+
+
+
+
+L: 723
+
+
+
+4
+0
+
+
+5
+
+L: 1927
+L: 1927
+
+
+4
+
+3
+
+3
+L: 254
+
+
+0
+3
+5
+
+
+
+
+
+7
+
+
+4
+0
+
+
+
+L: 1022
+L: 1097
+
+
+1
+3
+
+0
+
+7
+
+7
+2
+0
+
+
+
+
+2
+3
+0
+0
+1
+
+5
+L: 853
+L: 928
+
+
+4
+1
+
+
+
+
+
+
+4
+
+0
+
+
+
+
+L: 12769
+
+7
+
+
+
+
+3
+4
+
+
+
+0
+3
+5
+
+0
+
+
+7
+L: 4084
+3
+
+2
+3
+1
+
+
+0
+1
+2
+L: 106
+L: 151
+0
+
+2
+1
+0
+2
+
+
+
+2
+2
+2
+3
+1
+
+
+5
+L: 2952
+L: 2952
+
+1
+
+6
+3
+1
+
+0
+6
+
+
+2
+1
+
+
+4
+4
+2
+6
+7
+7
+
+
+L: 239
+
+6
+7
+0
+6
+
+
+
+
+
+
+
+
+
+1
+2
+4
+4
+L: 139
+
+
+7
+
+7
+0
+5
+0
+
+
+
+
+
+
+
+1
+
+0
+
+L: 1768
+L: 1768
+2
+
+6
+
+
+0
+2
+2
+3
+3
+3
+2
+
+3
+0
+
+
+
+
+3
+0
+1
+
+L: 737
+L: 737
+2
+1
+1
+0
+1
+L: 23
+1
+1
+
+2
+L: 984
+L: 984
+
+
+
+
+
+
+
+L: 109
+L: 109
+
+2
+
+
+
+7
+2
+2
+1
+0
+
+
+
+
+
+
+
+
+
+0
+
+7
+
+
+5
+6
+
+
+0
+
+7
+0
+7
+L: 821
+2
+
+7
+3
+
+
+0
+3
+
+
+4
+5
+
+
+
+7
+
+1
+
+
+6
+
+2
+L: 155
+2
+5
+
+1
+
+0
+3
+0
+
+
+3
+L: 139
+2
+2
+
+
+L: 172
+2
+5
+6
+0
+
+7
+
+4
+
+
+0
+
+5
+4
+0
+1
+
+6
+7
+L: 271
+L: 271
+
+2
+
+6
+
+0
+2
+4
+L: 380
+2
+
+
+
+3
+L: 1013
+1
+
+
+5
+2
+
+
+2
+0
+0
+1
+3
+4
+6
+2
+6
+
+6
+6
+0
+1
+L: 1869
+L: 1879
+0
+0
+0
+1
+
+L: 5199
+
+
+
+6
+
+
+2
+3
+6
+
+3
+1
+3
+4
+L: 154
+6
+7
+L: 8765
+1
+1
+L: 383
+
+0
+
+
+
+
+
+
+6
+2
+
+
+0
+
+
+
+
+
+
+L: 497
+
+
+
+
+
+
+
+
+L: 119
+
+
+
+
+
+
+7
+0
+
+
+
+6
+
+
+
+1
+7
+
+
+2
+6
+7
+
+7
+0
+0
+3
+3
+0
+
+
+L: 4843
+
+6
+
+
+
+7
+
+7
+
+
+
+3
+0
+
+0
+
+L: 16837
+
+
+0
+
+1
+3
+
+
+
+5
+6
+
+L: 347
+2
+
+2
+1
+5
+L: 173
+
+
+2
+2
+3
+7
+4
+1
+5
+
+
+0
+
+7
+0
+6
+7
+
+3
+4
+2
+2
+6
+0
+
+2
+5
+0
+
+4
+
+6
+7
+L: 29
+L: 29
+
+
+L: 235
+L: 235
+5
+6
+L: 517
+L: 517
+
+
+2
+
+
+
+4
+6
+L: 3395
+
+
+
+7
+
+
+0
+
+
+L: 783
+2
+1
+
+
+
+7
+0
+
+7
+0
+
+2
+3
+2
+
+0
+
+
+
+0
+
+
+2
+
+
+
+
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+L: 1917
+
+
+
+
+
+
+
+
+
+
+
+
+
+L: 5017
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+L: 908
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+L: 627
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+L: 692
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+L: 687
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+L: 3692
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+L: 28479
--- /dev/null
+L: 484
+
+L: 1003
+L: 1853
+L: 1835
+
+
+L: 9527
+L: 783
+
+L: 1264
+L: 1689
+
+
+
+L: 711
+
+L: 1192
+
+
+
+L: 3428
+1
+L: 1247
+
+
+L: 1551
+L: 1591
+2
+L: 2998
+1
+L: 980
+
+L: 1677
+L: 1712
+
+2
+
+3
+
+L: 992
+
+L: 3178
+2
+2
+
+2
+L: 1006
+L: 955
+L: 1014
+
+
+L: 736
+
+
+L: 556
+L: 615
+
+
+1
+5
+L: 2759
+
+L: 4711
+L: 648
+
+L: 850
+L: 860
+L: 23
+
+
+L: 282
+
+L: 1614
+L: 1614
+
+L: 1000
+
+
+L: 1160
+
+2
+L: 1830
+L: 1570
+L: 5296
+L: 699
+
+L: 33
+L: 33
+
+L: 2265
+
+
+
+2
+L: 2001
+
+
+
+L: 3206
+
+
+L: 111
+
+
+L: 726
+
+
+L: 857
+
+
+
+L: 332
+
+2
+L: 281
+
+
+L: 1806
+
+L: 3111
+L: 727
+
+L: 129
+L: 241
+
+L: 90
+
+2
+1
+
+
+
+
+L: 2513
+
+L: 139
+
+L: 618
+L: 1329
+7
+L: 1703
+L: 1769
+1
+
+1
+
+L: 331
+
+
+L: 1187
+
+
+
+3
+L: 114
+L: 153
+
+5
+6
+
+
+
+
+0
+L: 976
+L: 976
+
+
+0
+
+L: 266
+
+
+L: 230
+
+
+
+
+L: 362
+L: 362
+L: 36
+L: 36
+
+L: 14026
+L: 127
+L: 127
+L: 515
+L: 167
+
+
+L: 823
+
+L: 165
+1
+L: 693
+
+L: 472
+
+
+5
+L: 913
+2
+
+
+
+
+L: 1163
+
+L: 56
+L: 775
+L: 775
+L: 200
+L: 240
+L: 26
+
+L: 210
+
+L: 356
+4
+L: 295
+L: 1939
+0
+1
+L: 208
+L: 488
+
+L: 452
+2
+L: 1010
+L: 1010
+5
+L: 306
+L: 1470
+L: 1470
+L: 1027
+0
+
+2
+L: 140
+
+L: 231
+L: 231
+L: 451
+L: 451
+
+L: 495
+
+
+0
+L: 438
+
+L: 703
+
+L: 291
+
+
+L: 192
+L: 2285
+L: 2325
+L: 365
+
+
+
+L: 179
+L: 803
+L: 843
+
+2
+L: 1303
+L: 434
+
+L: 118
+
+L: 374
+1
+L: 223
+L: 223
+
+
+
+
+L: 288
+2
+
+L: 1486
+3
+
+L: 884
+L: 1088
+
+
+
+L: 635
+
+L: 38
+L: 38
+
+L: 2678
+
+L: 358
+
+L: 121
+
+
+L: 2168
+L: 2208
+2
+
+L: 1031
+
+L: 402
+
+
+L: 625
+
+L: 821
+
+
+L: 424
+L: 1744
+
+
+
+1
+2
+L: 18
+
+
+L: 60
+
+
+
+L: 469
+L: 509
+
+
+
+
+
+
+
+L: 153
+
+L: 107
+L: 3858
+L: 1846
+L: 1846
+L: 56
+L: 56
+L: 566
+L: 566
+L: 2996
+L: 2996
+
+L: 992
+
+L: 2660
+L: 11878
+2
+L: 2877
+L: 2887
+
+
+L: 745
+L: 1924
+
+
+
+
+
+L: 300
+
+1
+L: 307
+
+
+
+
+
+
+
+
+
+L: 741
+2
+
+
+
+
+
+
+L: 28
+
+L: 140
+
+
+
+
+
+
+
+L: 28
+
+L: 25
+
+5
+
+
+L: 1503
+
+
+
+
+
+L: 2228
+
+
+
+L: 1098
+4
+L: 3620
+
+
+
+L: 225
+
+
+
+L: 2111
+
+L: 212
+L: 212
+
+L: 326
+L: 326
+L: 2937
+2
+5
+L: 1917
+L: 1917
+
+
+L: 109
+L: 433
+4
+
+L: 20
+L: 267
+L: 267
+
+L: 177
+L: 676
+
+L: 282
+
+L: 223
+L: 175
+L: 175
+
+
+4
+5
+
+5
+6
+L: 2474
+
+3
+3
+L: 1142
+
+
+1
+
+L: 31
+L: 713
+
+L: 447
+
+
+
+4
+
+
+2
+1
+L: 480
+L: 480
+7
+L: 162
+L: 162
+L: 130
+L: 884
+L: 884
+1
+L: 86
+L: 86
+2
+
+
+
+
+
+
+L: 31
+
+
+1
+L: 1245
+L: 2034
+
+5
+
+7
+L: 62
+L: 62
+
+
+1
+3
+2
+L: 970
+L: 970
+
+2
+
+
+
+1
+2
+
+2
+
+L: 897
+2
+
+6
+L: 620
+
+L: 490
+L: 420
+
+L: 110
+0
+L: 219
+2
+1
+L: 301
+L: 21
+
+4
+5
+
+L: 1042
+L: 1108
+2
+
+L: 5017
+L: 5017
+L: 119
+4
+L: 284
+L: 284
+L: 2841
+2
+L: 505
+L: 545
+2
+
+L: 2397
+
+L: 389
+L: 133
+L: 133
+L: 1067
+
+
+L: 184
+L: 31
+
+L: 207
+
+
+5
+L: 303
+2
+L: 655
+L: 108
+1
+L: 96
+L: 66
+
+L: 259
+L: 318
+2
+
+L: 166
+
+L: 158
+
+L: 4139
+L: 10459
+L: 1382
+
+L: 262
+
+L: 161
+
+L: 24
+L: 1896
+
+
+L: 966
+
+L: 75
+
+
+
+L: 214
+
+
+
+L: 18
+
+L: 1199
+L: 31
+L: 31
+L: 102
+
+L: 662
+L: 62
+L: 62
+
+L: 737
+
+
+
+L: 8765
+
+2
+
+
+
+
+L: 249
+
+L: 723
+L: 393
+L: 716
+
+L: 1288
+L: 1288
+L: 35357
+2
+
+L: 4067
+L: 75014
+L: 75014
+
+
+
+
+
+
+
+
+1
+6
+L: 852
+L: 852
+L: 1664
+L: 1664
+6
+
+
+L: 44
+
+L: 387
+L: 30
+
+3
+
+L: 308
+0
+1
+
+L: 35
+L: 451
+
+
+L: 31
+L: 3395
+
+2
+
+L: 144
+
+
+6
+L: 2952
+L: 770
+L: 770
+
+2
+L: 31
+L: 190
+L: 190
+L: 43
+L: 43
+
+
+L: 71
+L: 724
+L: 47
+
+1
+
+
+2
+L: 37
+L: 37
+L: 222
+L: 222
+L: 341
+L: 341
+L: 963
+L: 973
+L: 853
+L: 853
+
+L: 429
+
+L: 90
+
+L: 10430
+L: 10430
+7
+L: 176
+1
+2
+
+L: 428
+L: 428
+L: 2719
+
+L: 2869
+L: 2869
+L: 31
+L: 31
+L: 293
+L: 293
+2
+L: 78
+L: 78
+
+L: 108
+L: 184
+L: 184
+L: 421
+
+
+3
+L: 508
+6
+1
+L: 2769
+L: 2769
+2
+4
+5
+
+
+L: 868
+L: 906
+L: 920
+L: 920
+2
+2
+7
+L: 135
+L: 475
+
+L: 155
+L: 663
+L: 663
+L: 562
+L: 340
+
+L: 1089
+
+L: 29
+L: 29
+
+L: 292
+1
+L: 175
+L: 44
+L: 44
+L: 517
+L: 517
+6
+5
+6
+L: 50
+L: 398
+
+
+L: 4084
+
+
+2
+1
+L: 2343
+
+
+
+L: 4818
+L: 22
+L: 22
+
+L: 201
+L: 136
+L: 751
+L: 751
+2
+1
+L: 326
+L: 326
+
+L: 640
+2
+L: 751
+L: 751
+L: 1129
+L: 1129
+L: 1198
+L: 1198
+L: 185
+
+L: 31
+L: 31
+L: 99
+L: 99
+
+L: 903
+2
+0
+L: 267
+2
+L: 564
+0
+L: 19
+L: 19
+
+L: 124
+L: 124
+
+
+L: 115
+L: 115
+
+L: 189
+L: 51
+L: 51
+L: 85
+L: 85
+L: 69
+L: 69
+L: 6338
+2
+L: 196
+L: 196
+
+L: 778
+L: 630
+L: 31
+L: 31
+L: 2147
+L: 2147
+L: 217
+L: 619
+2
+3
+L: 1218
+
+L: 453
+
+
+L: 776
+
+
+L: 1206
+
+L: 633
+L: 673
+5
+
+3
+L: 297
+2
+1
+
+L: 4619
+
+2
+
+L: 954
+7
+
+L: 660
+
+
+L: 1117
+
+L: 844
+L: 3842
+
+
+5
+L: 532
+L: 92
+
+L: 1236
+
+
+L: 1128
+7
+
+
+
+L: 4280
+6
+L: 44
+L: 44
+1
+
+L: 204
+L: 204
+3
+L: 1594
+L: 1594
+L: 341
+
+7
+
+L: 695
+L: 84
+L: 84
+2
+5
+
+7
+
+L: 522
+1
+
+
+
+1
+L: 392
+L: 44
+
+
+L: 13
+L: 629
+L: 629
+
+L: 846
+
+
+
+1
+
+
+
+L: 321
+
+L: 333
+
+
+L: 26
+L: 26
+
+1
+
+L: 51
+L: 91
+L: 653
+L: 653
+L: 237
+
+
+L: 244
+
+
+
+L: 977
+
+L: 2383
+
+L: 889
+L: 929
+L: 62
+
+
+
+L: 630
+L: 630
+L: 88
+
+2
+L: 422
+
+1
+L: 366
+L: 63
+L: 63
+L: 478
+L: 55
+L: 55
+L: 197
+L: 197
+L: 125
+L: 125
+L: 128
+L: 128
+L: 72
+L: 72
+L: 2137
+L: 2137
+L: 935
+2
+
+7
+L: 610
+L: 632
+L: 35
+L: 35
+L: 1264
+L: 1264
+L: 780
+L: 780
+2
+
+
+
+L: 47
+L: 44
+1
+3
+L: 1112
+4
+5
+L: 1050
+L: 86
+L: 892
+6
+
+L: 65
+L: 79
+L: 79
+L: 3213
+L: 3213
+L: 75
+L: 289
+L: 346
+0
+L: 1926
+2
+
+
+L: 644
+
+
+
+
+L: 3731
+L: 44
+L: 44
+L: 169
+L: 169
+2
+L: 189
+
+L: 141
+L: 786
+L: 852
+2
+0
+L: 54
+0
+L: 73
+L: 73
+
+
+L: 67
+2
+L: 323
+L: 323
+5
+L: 79
+
+L: 113
+L: 113
+L: 126
+L: 126
+L: 140
+L: 140
+L: 17
+L: 17
+2
+L: 305
+4
+7
+L: 31
+L: 31
+
+
+
+L: 189
+L: 832
+L: 3030
+L: 3073
+
+6
+
+2
+L: 336
+
+L: 126
+5
+L: 66
+L: 66
+
+L: 392
+L: 285
+L: 31
+L: 31
+L: 855
+L: 716
+L: 123
+
+1
+
+1
+L: 82
+
+L: 5300
+7
+
+
+L: 600
+6
+L: 944
+L: 944
+L: 278
+
+
+
+L: 31
+L: 31
+
+L: 138
+
+
+L: 88
+L: 88
+
+1
+L: 22
+L: 62
+
+
+2
+L: 246
+
+L: 1466
+
+
+
+L: 343
+
+
+
+
+L: 48
+
+L: 347
+2
+L: 1371
+
+
+4
+L: 72
+L: 72
+L: 2177
+L: 1023
+L: 1023
+L: 161
+L: 827
+L: 355
+3
+
+L: 234
+L: 555
+
+
+
+L: 620
+L: 620
+4
+L: 908
+L: 908
+
+
+L: 971
+0
+L: 643
+L: 679
+2
+
+L: 127
+L: 271
+L: 1174
+
+
+
+
+L: 44
+
+7
+L: 171
+
+2
+L: 345
+
+6
+L: 1820
+L: 2779
+L: 2779
+
+L: 432
+
+2
+L: 3780
+
+L: 944
+
+L: 4168
+
+
+
+
+
+L: 224
+
+
+
+L: 636
+0
+
+
+
+L: 180
+L: 180
+
+
+
+
+L: 87
+
+
+L: 590
+
+L: 1073
+L: 342
+
+
+7
+0
+
+L: 55
+
+
+L: 968
+
+L: 70
+
+
+L: 2008
+L: 2051
+
+0
+L: 411
+L: 1154
+L: 1154
+
+6
+L: 280
+
+L: 182
+L: 102
+
+
+L: 31
+2
+L: 21
+
+
+
+L: 885
+2
+L: 1721
+L: 721
+L: 90
+2
+L: 40
+
+2
+L: 37
+
+L: 133
+L: 133
+1
+L: 627
+
+L: 537
+5
+L: 737
+
+2
+L: 6290
+
+
+L: 66
+L: 66
+L: 117
+L: 117
+L: 273
+L: 12769
+L: 12769
+L: 1486
+L: 1486
+2
+L: 801
+L: 801
+2
+L: 9762
+L: 1155
+L: 1155
+
+0
+L: 401
+L: 86
+2
+1
+0
+L: 103
+L: 103
+L: 173
+
+
+L: 581
+L: 581
+L: 396
+2
+
+L: 959
+
+7
+
+L: 3418
+L: 3418
+L: 88
+L: 88
+L: 1853
+L: 670
+L: 1206
+L: 1206
+L: 233
+L: 233
+L: 261
+L: 261
+2
+L: 338
+L: 338
+
+
+L: 692
+
+5
+6
+L: 716
+L: 716
+2
+L: 136
+
+L: 61
+L: 29
+L: 29
+L: 63
+L: 63
+
+L: 74
+L: 74
+L: 266
+L: 266
+L: 66
+L: 66
+2
+
+L: 1588
+
+L: 97
+L: 50
+
+L: 721
+
+L: 1443
+
+
+
+2
+L: 277
+2
+
+
+L: 2739
+2
+2
+
+L: 42
+2
+1
+2
+L: 150
+L: 150
+L: 218
+L: 218
+L: 412
+L: 2380
+L: 2380
+2
+L: 2394
+L: 2460
+
+L: 572
+L: 359
+L: 359
+6
+
+L: 476
+
+L: 684
+L: 553
+L: 25
+
+2
+
+L: 841
+
+
+
+L: 953
+L: 306
+L: 306
+
+L: 18332
+
+L: 2859
+
+
+0
+
+
+2
+5
+
+
+
+
+
+L: 237
+
+
+L: 66
+L: 36
+
+L: 59
+L: 59
+
+
+L: 36
+
+
+L: 228
+
+
+L: 216
+
+
+
+L: 2725
+2
+
+L: 102
+2
+L: 1225
+L: 1225
+0
+2
+
+L: 84
+2
+1
+L: 1416
+L: 39
+2
+1
+2
+L: 88
+
+2
+
+L: 44
+L: 382
+L: 1592
+L: 1592
+L: 471
+
+L: 450
+2
+
+
+4
+
+
+2
+
+3
+L: 912
+
+
+L: 2998
+L: 2998
+1
+2
+
+2
+L: 140
+L: 68
+
+2
+5
+
+L: 1124
+0
+
+L: 18
+1
+6
+L: 9246
+
+
+
+1
+L: 256
+
+2
+0
+L: 191
+
+
+6
+3
+L: 990
+0
+
+L: 397
+
+
+L: 460
+
+2
+
+4
+
+
+L: 82
+L: 21
+L: 21
+
+L: 106
+
+
+
+
+0
+L: 66
+L: 3069
+
+L: 79
+L: 152
+
+1
+L: 1148
+L: 1148
+1
+
+
+
+
+L: 295
+2
+
+L: 256
+L: 1541
+L: 1541
+1
+4
+L: 407
+L: 449
+2
+L: 109
+
+1
+
+L: 662
+
+
+7
+
+
+
+
+L: 258
+2
+
+L: 1916
+L: 239
+
+2
+
+
+
+L: 95
+
+
+L: 50
+
+L: 2879
+L: 2919
+L: 3450
+
+
+L: 336
+L: 336
+
+2
+L: 1146
+
+
+
+
+L: 472
+
+L: 60
+2
+
+6
+
+L: 17
+
+L: 17
+
+L: 17
+
+
+L: 28479
+
+
+
+
+
+
+
+L: 27
+
+L: 498
+L: 3419
+
+L: 1238
+
+
+0
+
+L: 97
+2
+
+L: 753
+
+
+
+
+
+
+
+
+
+L: 480
+L: 480
+L: 670
+L: 15
+
+
+L: 250
+
+
+L: 416
+L: 3212
+L: 3212
+
+
+L: 578
+
+
+L: 95
+
+
+
+
+
+2
+
+
+L: 534
+
+L: 253
+
+L: 185
+L: 698
+L: 698
+L: 202
+L: 202
+
+L: 226
+L: 349
+
+L: 1167
+L: 1167
+L: 458
+L: 458
+
+
+L: 160
+L: 3102
+
+L: 84
+
+L: 491
+
+4
+L: 93
+
+L: 31
+
+
+L: 657
+
+L: 188
+L: 56
+
+
+L: 24
+0
+1
+L: 1156
+
+
+L: 82
+
+L: 1919
+L: 41
+L: 441
+
+L: 497
+L: 254
+L: 441
+
+
+2
+L: 1080
+
+L: 1935
+3
+4
+L: 869
+L: 869
+2
+L: 931
+
+3
+L: 451
+
+L: 810
+
+L: 588
+
+L: 304
+
+L: 16837
+L: 569
+
+2
+2
+L: 35
+L: 35
+L: 1261
+L: 1261
+L: 117
+L: 117
+L: 173
+L: 173
+L: 1574
+3
+
+
+
+
+L: 357
+
+
+L: 795
+
+L: 687
+
+
+
+L: 161
+
+
+
+2
+3
+L: 160
+L: 160
+L: 1846
+L: 29
+L: 29
+2
+
+
+L: 47
+L: 1182
+
+L: 3655
+6
+7
+L: 409
+
+
+2
+L: 71
+L: 71
+L: 110
+L: 110
+2
+3
+L: 47
+L: 47
+
+L: 404
+
+
+L: 1395
+
+L: 2837
+L: 2837
+
+L: 2869
+
+L: 149
+L: 770
+L: 665
+L: 785
+
+L: 318
+
+
+
+2
+
+L: 360
+
+
+
+2
+1
+L: 1798
+L: 1798
+L: 479
+L: 489
+L: 63
+L: 63
+2
+L: 956
+
+
+L: 906
+2
+1
+2
+L: 23
+
+L: 552
+
+1
+0
+
+L: 2139
+
+L: 97
+
+
+L: 43
+L: 912
+L: 912
+L: 970
+L: 2953
+L: 546
+L: 546
+2
+1
+
+
+L: 1047
+L: 1047
+L: 3888
+L: 3888
+4
+L: 39
+L: 39
+
+L: 386
+
+1
+L: 67
+L: 67
+L: 86
+0
+
+3
+
+3
+L: 639
+3
+
+L: 326
+1
+L: 263
+L: 263
+2
+4
+
+L: 118
+L: 2055
+6
+L: 85
+L: 85
+
+L: 239
+L: 203
+1
+L: 683
+L: 560
+L: 560
+L: 1059
+L: 1059
+L: 233
+6
+L: 32
+7
+L: 155
+L: 155
+2
+L: 178
+L: 178
+L: 159
+L: 159
+2
+L: 187
+3
+L: 630
+2
+L: 385
+L: 385
+2
+L: 782
+
+1
+L: 157
+2
+L: 1935
+L: 1935
+2
+L: 942
+L: 71
+L: 71
+L: 2805
+L: 2805
+L: 237
+L: 237
+L: 1241
+
+
+2
+
+L: 546
+1
+L: 302
+
+L: 60
+L: 60
+
+L: 235
+2
+L: 290
+
+L: 30
+
+L: 300
+2
+L: 565
+L: 565
+
+L: 58
+2
+L: 387
+L: 387
+
+1
+L: 180
+L: 120
+L: 120
+L: 363
+L: 31
+L: 31
+L: 646
+L: 646
+2
+1
+L: 536
+L: 99
+
+
+
+
+
+2
+
+
+
+
+L: 169
+
+
+L: 270
+L: 496
+L: 496
+
+0
+1
+L: 377
+2
+5
+
+
+L: 780
+5
+
+L: 117
+L: 117
+
+
+L: 94
+
+L: 470
+L: 1956
+L: 1956
+4
+L: 287
+L: 108
+L: 108
+2
+L: 310
+L: 310
+L: 204
+L: 204
+L: 3510
+L: 3510
+L: 33
+L: 33
+L: 1096
+L: 1096
+L: 44
+L: 44
+L: 621
+L: 621
+L: 440
+
+2
+
+L: 1488
+1
+3
+L: 747
+L: 747
+L: 833
+L: 833
+L: 122
+L: 122
+7
+L: 272
+0
+L: 236
+
+2
+
+L: 1873
+
+2
+
+L: 193
+1
+L: 1329
+
+7
+L: 3643
+
+3
+
+L: 514
+7
+L: 286
+
+L: 15
+L: 15
+
+L: 240
+
+4
+L: 166
+
+L: 143
+L: 143
+
+
+1
+
+L: 8021
+L: 211
+L: 211
+
+4
+
+
+
+L: 938
+
+
+L: 186
+4
+
+7
+L: 180
+2
+L: 200
+L: 200
+6
+L: 851
+L: 851
+
+L: 381
+L: 381
+L: 418
+L: 1945
+L: 2047
+
+2
+L: 101
+
+4
+L: 203
+
+
+L: 483
+
+L: 849
+L: 1485
+L: 1485
+
+L: 1879
+L: 104
+L: 104
+1
+L: 468
+L: 468
+L: 364
+
+1
+
+
+
+L: 662
+L: 611
+
+L: 168
+
+
+
+L: 2726
+L: 2801
+2
+
+7
+L: 3516
+
+
+
+
+
+
+
+L: 991
+L: 991
+
+L: 1060
+
+L: 1067
+L: 1067
+
+L: 1927
+
+L: 18
+2
+L: 54
+L: 54
+
+L: 770
+
+
+
+
+
+
+
+L: 53
+
+1
+2
+
+L: 528
+
+2
+L: 123
+
+L: 148
+
+L: 252
+5
+
+4
+5
+L: 485
+L: 485
+2
+L: 405
+L: 405
+L: 533
+
+2
+7
+L: 965
+L: 1037
+1
+L: 493
+L: 166
+L: 166
+L: 34
+L: 3824
+L: 963
+L: 963
+2
+L: 28
+L: 28
+
+
+L: 475
+2
+L: 135
+
+L: 1624
+
+
+L: 100
+
+L: 128
+3
+4
+
+
+L: 3692
+
+L: 65
+L: 73
+
+L: 612
+L: 612
+L: 427
+0
+L: 35
+
+2
+3
+L: 91
+
+L: 80
+L: 1097
+
+
+
+
+L: 22
+L: 22
+
+
+0
+2
+3
+L: 69
+L: 69
+L: 3056
+L: 3056
+
+1
+
+L: 1522
+
+L: 8454
+1
+L: 2031
+1
+
+L: 1508
+7
+L: 2386
+L: 5211
+L: 5254
+2
+
+
+L: 1594
+
+L: 1225
+
+L: 1604
+2
+1
+L: 1526
+L: 1569
+
+L: 574
+3
+1
+L: 767
+
+L: 2755
+2
+6
+L: 2448
+2
+7
+L: 11816
+0
+
+
+
+6
+
+L: 320
+1
+L: 3063
+L: 3106
+L: 925
+
+
+6
+
+
+L: 1779
+L: 1822
+L: 1477
+L: 1490
+L: 1207
+2
+L: 2397
+L: 3676
+2
+2
+L: 12612
+L: 2740
+L: 4834
+1
+L: 2789
+2
+3
+1
+L: 1491
+L: 1881
+L: 3600
+L: 3643
+2
+6
+L: 1025
+L: 330
+L: 370
+
+L: 1592
+2
+
+L: 1021
+2
+6
+L: 2862
+L: 3080
+
+L: 3904
+L: 1219
+L: 2678
+L: 2721
+L: 1096
+L: 1139
+L: 664
+L: 707
+
+
+
+L: 265
+2
+2
+
+
+
+L: 213
+
+
+L: 554
+L: 554
+L: 146
+L: 146
+L: 1731
+L: 78
+
+L: 58
+L: 58
+2
+
+L: 104
+L: 104
+L: 131
+L: 206
+
+
+
+
+2
+
+L: 43
+
+L: 876
+L: 951
+L: 184
+L: 184
+
+
+
+L: 59
+L: 59
+
+L: 5188
+L: 5188
+L: 110
+
+
+L: 3902
+2
+
+L: 1045
+L: 70
+L: 70
+L: 54235
+
+L: 189
+
+2
+L: 606
+2
+L: 326
+
+L: 848
+L: 848
+2
+3
+L: 837
+1
+2
+
+L: 147
+
+
+L: 81
+L: 423
+L: 1966
+L: 145
+L: 371
+L: 1797
+L: 1797
+2
+L: 77
+L: 77
+
+L: 68
+
+L: 175
+L: 175
+L: 196
+
+L: 689
+
+L: 463
+
+L: 18
+L: 18
+L: 89
+L: 89
+L: 465
+
+L: 481
+
+2
+L: 97
+L: 97
+
+L: 739
+7
+1
+2
+L: 766
+
+L: 697
+
+
+
+L: 154
+2
+L: 132
+
+
+L: 78
+L: 78
+2
+L: 2011
+L: 630
+L: 114
+
+L: 743
+
+L: 428
+
+
+L: 763
+2
+
+
+
+2
+1
+
+1
+2
+L: 415
+L: 415
+2
+1
+4
+5
+
+5
+
+3
+7
+6
+6
+
+
+L: 211
+L: 211
+2
+1
+2
+
+2
+
+2
+
+
+
+
+6
+
+0
+
+
+0
+0
+4
+
+
+
+7
+0
+
+2
+L: 784
+
+
+2
+
+6
+L: 205
+2
+5
+6
+0
+6
+
+0
+4
+
+
+0
+
+5
+2
+
+3
+
+3
+4
+2
+
+4
+5
+0
+2
+3
+
+2
+2
+
+0
+
+3
+4
+5
+
+
+
+1
+6
+4
+5
+
+
+
+6
+1
+L: 199
+
+
+
+L: 268
+7
+
+6
+
+0
+3
+2
+7
+0
+L: 337
+2
+5
+6
+7
+
+
+
+1
+2
+4
+
+3
+
+2
+0
+0
+
+6
+3
+L: 127
+6
+
+
+7
+0
+3
+3
+4
+6
+2
+1
+
+2
+3
+4
+
+L: 176
+2
+5
+0
+0
+3
+
+1
+2
+3
+L: 181
+L: 181
+
+
+1
+2
+7
+0
+2
+1
+0
+0
+6
+7
+3
+6
+4
+6
+0
+1
+L: 184
+2
+1
+2
+2
+
+L: 154
+2
+
+7
+7
+0
+2
+
+1
+L: 27
+
+
+1
+2
+
+
+L: 221
+5
+0
+6
+7
+
+
+2
+3
+4
+5
+L: 162
+L: 162
+2
+1
+2
+0
+3
+
+
+L: 328
+2
+2
+1
+L: 168
+
+
+7
+0
+
+0
+7
+2
+3
+2
+
+2
+1
+4
+0
+
+L: 96
+L: 96
+2
+
+
+4
+
+6
+
+0
+6
+
+3
+4
+
+6
+L: 580
+L: 580
+
+3
+1
+2
+7
+1
+6
+1
+L: 28
+1
+2
+2
+
+2
+
+0
+3
+
+
+2
+3
+L: 24
+
+2
+1
+1
+2
+1
+2
+3
+L: 300
+L: 300
+
+1
+1
+
+3
+2
+
+
+3
+1
+4
+
+7
+L: 54
+L: 54
+L: 170
+5
+6
+
+
+L: 200
+L: 200
+
+1
+2
+2
+6
+L: 220
+2
+5
+7
+6
+4
+
+
+7
+0
+
+3
+2
+0
+
+
+2
+6
+
+L: 152
+
+2
+4
+6
+L: 242
+7
+6
+3
+7
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+0
+2
+2
+
+
+2
+4
+5
+L: 101
+L: 101
+1
+2
+6
+6
+
+6
+
+6
+7
+0
+7
+2
+3
+0
+0
+2
+2
+0
+0
+1
+1
+2
+2
+L: 74257
+L: 74310
+2
+
+7
+3
+3
+2
+1
+2
+
+4
+L: 367
+2
+5
+6
+7
+
+6
+
+0
+5
+
+3
+6
+7
+0
+1
+2
+3
+4
+2
+2
+
+0
+3
+1
+5
+6
+7
+0
+L: 53775
+L: 53775
+1
+2
+3
+0
+0
+
+1
+2
+L: 22961
+
+
+5
+4
+2
+1
+2
+
+0
+4
+0
+L: 24672
+2
+6
+7
+3
+0
+2
+1
+2
+5
+L: 172
+2
+0
+6
+7
+0
+6
+2
+3
+4
+7
+2
+0
+L: 653
+L: 728
+2
+6
+
+7
+0
+6
+7
+6
+2
+5
+L: 112
+L: 187
+2
+7
+6
+2
+5
+
+L: 165
+
+6
+7
+6
+7
+6
+
+0
+7
+0
+6
+
+6
+L: 205
+5
+6
+0
+6
+7
+5
+2
+3
+0
+6
+7
+
+5
+0
+3
+0
+1
+L: 369
+L: 369
+
+
+3
+2
+2
+6
+2
+3
+1
+
+7
+
+7
+L: 462
+2
+2
+2
+6
+
+7
+
+1
+
+4
+1
+
+5
+5
+L: 199
+2
+6
+0
+7
+6
+2
+1
+0
+3
+
+L: 194
+2
+
+
+2
+3
+
+4
+2
+2
+1
+0
+3
+1
+
+6
+L: 247
+L: 247
+5
+6
+L: 43
+L: 43
+2
+1
+2
+0
+2
+
+
+3
+1
+4
+5
+6
+7
+7
+5
+2
+1
+2
+1
+0
+0
+
+4
+7
+2
+6
+
+
+1
+1
+
+3
+
+
+5
+6
+3
+2
+0
+
+1
+0
+1
+2
+3
+L: 2126
+L: 2126
+2
+1
+2
+3
+0
+1
+2
+5
+3
+
+5
+6
+
+
+7
+7
+0
+3
+1
+2
+4
+
+3
+1
+6
+2
+4
+0
+1
+2
+3
+5
+L: 361
+L: 361
+2
+1
+2
+4
+
+3
+1
+6
+
+0
+1
+L: 72
+2
+1
+2
+2
+
+
+
+0
+6
+0
+3
+2
+L: 1313
+L: 1388
+5
+2
+
+
+6
+L: 139
+5
+6
+0
+6
+7
+0
+7
+L: 477
+L: 477
+0
+3
+4
+6
+L: 45
+L: 45
+0
+7
+L: 253
+7
+0
+6
+7
+0
+2
+4
+2
+0
+1
+6
+L: 43
+L: 43
+6
+7
+2
+6
+3
+4
+1
+6
+7
+2
+7
+1
+7
+1
+6
+7
+2
+7
+2
+2
+3
+1
+2
+2
+1
+2
+0
+0
+6
+L: 65
+L: 65
+2
+1
+2
+7
+7
+0
+0
+
+3
+1
+
+2
+2
+6
+3
+
+2
+6
+0
+0
+L: 1296
+L: 1371
+2
+5
+6
+7
+3
+7
+0
+3
+2
+6
+0
+L: 231
+5
+7
+0
+6
+7
+0
+7
+2
+3
+2
+0
+
+2
+2
+2
+3
+2
+1
+3
+2
+4
+4
+2
+2
+5
+5
+7
+0
+L: 20
+1
+2
+1
+1
+5
+7
+1
+2
+2
+2
+L: 212
+2
+5
+6
+7
+0
+
+
+
+
+
+
+
+6
+7
+5
+2
+3
+7
+6
+2
+2
+4
+6
+7
+7
+L: 64
+L: 64
+2
+2
+0
+1
+L: 153
+6
+0
+6
+7
+0
+2
+1
+L: 1608
+2
+
+4
+L: 223
+6
+6
+3
+1
+3
+4
+L: 315
+1
+L: 165
+L: 165
+1
+3
+6
+7
+4
+4
+1
+6
+L: 1976
+2
+5
+
+6
+7
+2
+2
+3
+
+5
+
+7
+6
+7
+2
+5
+6
+7
+2
+L: 5022
+L: 5022
+2
+2
+6
+1
+4
+6
+L: 352
+L: 352
+2
+1
+2
+7
+0
+L: 245
+2
+5
+
+0
+0
+3
+L: 879
+L: 922
+
+6
+7
+2
+3
+
+2
+3
+0
+0
+5
+6
+L: 1168
+7
+2
+3
+2
+1
+2
+L: 1266
+7
+2
+3
+2
+1
+L: 254
+L: 254
+2
+1
+
+0
+1
+L: 257
+2
+1
+5
+6
+L: 700
+5
+2
+1
+2
+0
+4
+L: 139
+2
+
+
+2
+5
+L: 765
+
+5
+6
+7
+7
+2
+3
+0
+4
+1
+5
+
+
+
+L: 439
+2
+3
+
+
+1
+1
+3
+1
+
+1
+
+L: 5171
+2
+
+2
+2
+3
+L: 167
+5
+6
+6
+2
+3
+5
+4
+2
+3
+5
+2
+3
+2
+2
+1
+1
+4
+1
+5
+L: 1387
+L: 1462
+
+2
+1
+2
+2
+2
+L: 198
+2
+5
+0
+3
+2
+
+L: 294
+
+
+0
+0
+0
+1
+1
+4
+L: 1063
+2
+2
+1
+2
+
+0
+3
+3
+2
+L: 169
+2
+2
+3
+2
+L: 198
+5
+2
+3
+2
+5
+2
+2
+3
+3
+1
+3
+4
+2
+1
+
+7
+7
+3
+7
+
+
+1
+6
+4
+L: 156
+
+5
+0
+6
+7
+2
+
+6
+2
+L: 194
+
+7
+1
+5
+L: 905
+4
+L: 139
+2
+
+6
+0
+0
+7
+
+
+
+
+
+
+
+
+2
+2
+
+0
+2
+5
+2
+2
+L: 1684
+L: 1729
+2
+7
+0
+0
+0
+2
+3
+7
+L: 930
+2
+7
+
+0
+2
+2
+2
+4
+L: 948
+2
+6
+7
+0
+0
+2
+0
+0
+0
+2
+2
+
+7
+3
+6
+6
+2
+2
+2
+2
+
+2
+3
+7
+
+L: 1278
+2
+
+
+3
+6
+L: 29
+L: 29
+2
+2
+
+
+
+3
+3
+3
+4
+2
+6
+
+1
+5
+6
+
+2
+
+1
+3
+L: 127
+2
+2
+1
+2
+2
+0
+2
+2
+0
+0
+3
+1
+3
+2
+2
+2
+2
+
+3
+1
+2
+
+L: 1929
+L: 2005
+
+6
+4
+4
+
+6
+2
+1
+6
+L: 2016
+L: 2269
+L: 2328
+2
+
+7
+4
+
+0
+0
+1
+3
+5
+L: 5268
+2
+6
+7
+4
+1
+2
+2
+1
+1
+4
+6
+7
+L: 137
+L: 137
+2
+1
+6
+7
+5
+7
+2
+
+2
+5
+3
+L: 127
+2
+5
+7
+6
+7
+
+2
+3
+3
+4
+5
+
+L: 43
+L: 43
+2
+1
+2
+5
+1
+2
+L: 1077
+L: 1077
+2
+1
+2
+5
+7
+6
+0
+4
+L: 7591
+L: 7638
+2
+6
+7
+1
+2
+0
+0
+0
+1
+3
+4
+4
+2
+7
+1
+2
+2
+L: 588
+L: 588
+2
+
+L: 127
+2
+5
+6
+7
+5
+
+3
+6
+2
+2
+6
+3
+6
+2
+2
+
+3
+3
+2
+0
+
+4
+5
+1
+0
+1
+3
+1
+1
+3
+L: 147
+6
+
+0
+2
+2
+3
+5
+3
+2
+2
+0
+3
+2
+2
+3
+0
+
+3
+4
+L: 1603
+2
+3
+7
+6
+L: 35367
+2
+6
+7
+7
+2
+
+
+
+L: 1070
+2
+6
+7
+2
+
+0
+0
+1
+1
+L: 952
+2
+6
+7
+2
+L: 991
+2
+6
+7
+2
+2
+1
+2
+0
+0
+1
+
+1
+1
+
+L: 193
+2
+6
+7
+2
+2
+L: 5258
+L: 5300
+2
+6
+7
+5
+7
+2
+1
+
+5
+7
+L: 135
+2
+5
+6
+7
+7
+6
+2
+0
+7
+2
+2
+7
+2
+2
+3
+7
+6
+7
+0
+5
+3
+0
+
+1
+2
+1
+2
+6
+7
+2
+2
+1
+2
+3
+3
+L: 127
+0
+
+6
+2
+L: 2422
+2
+6
+1
+
+
+2
+L: 1116
+2
+7
+2
+1
+1
+2
+
+L: 1135
+6
+2
+1
+L: 1209
+2
+6
+
+5
+2
+
+0
+0
+7
+0
+2
+L: 1236
+L: 1282
+2
+6
+7
+2
+6
+2
+2
+L: 1215
+L: 1261
+6
+7
+2
+2
+L: 1062
+L: 1108
+6
+7
+
+5
+2
+1
+2
+3
+5
+L: 311
+5
+7
+0
+4
+7
+4
+5
+6
+7
+2
+5
+0
+
+
+1
+L: 847
+L: 847
+1
+1
+6
+7
+L: 1468
+L: 1468
+1
+1
+L: 141
+6
+7
+
+
+
+
+3
+
+L: 116
+1
+
+7
+L: 352
+2
+5
+5
+7
+L: 71
+0
+3
+1
+1
+L: 33
+L: 33
+1
+3
+7
+L: 319
+6
+7
+6
+
+5
+6
+7
+0
+7
+3
+7
+0
+
+2
+1
+0
+
+1
+
+
+
+
+
+
+6
+7
+L: 2477
+L: 2477
+2
+2
+1
+6
+L: 134
+5
+6
+6
+0
+2
+2
+2
+4
+7
+5
+6
+7
+6
+0
+5
+3
+1
+6
+1
+7
+6
+7
+7
+3
+6
+0
+2
+2
+
+3
+1
+
+2
+1
+2
+7
+0
+1
+7
+1
+2
+L: 189
+L: 138
+
+6
+0
+5
+2
+3
+2
+
+2
+3
+
+1
+2
+
+0
+1
+0
+1
+2
+L: 2929
+6
+7
+5
+
+0
+1
+3
+
+2
+2
+L: 919
+2
+5
+6
+2
+2
+3
+5
+L: 309
+2
+5
+6
+
+
+
+4
+2
+4
+L: 539
+L: 586
+2
+6
+7
+1
+2
+2
+
+
+
+1
+1
+4
+6
+7
+L: 50
+L: 50
+1
+2
+7
+L: 318
+
+2
+2
+1
+
+1
+3
+4
+L: 37
+L: 37
+2
+6
+7
+6
+3
+4
+L: 708
+
+6
+0
+3
+2
+7
+L: 598
+
+7
+6
+
+1
+2
+L: 773
+L: 815
+2
+
+5
+7
+5
+7
+2
+1
+5
+0
+1
+0
+1
+4
+L: 3884
+2
+
+7
+5
+7
+
+6
+7
+6
+3
+6
+4
+2
+2
+2
+0
+1
+5
+7
+L: 6646
+L: 6646
+1
+2
+0
+L: 158
+5
+6
+7
+2
+2
+3
+2
+3
+2
+3
+1
+4
+5
+
+
+L: 57
+2
+1
+0
+4
+L: 194
+
+
+3
+1
+0
+3
+7
+L: 1231
+2
+7
+2
+3
+
+1
+6
+7
+7
+L: 842
+1
+3
+4
+L: 949
+
+
+0
+2
+1
+0
+0
+
+1
+5
+1
+
+
+6
+L: 2961
+2
+
+5
+7
+
+
+
+1
+5
+6
+2
+3
+
+2
+2
+3
+3
+3
+
+
+
+
+
+
+
+
+
+
+6
+5
+2
+1
+2
+2
+L: 7350
+
+6
+
+5
+1
+2
+1
+6
+2
+
+
+
+
+7
+3
+4
+0
+2
+2
+2
+4
+L: 2829
+0
+1
+2
+2
+
+2
+
+5
+
+
+L: 1865
+
+6
+3
+2
+1
+5
+1
+L: 160
+2
+
+7
+0
+7
+6
+3
+3
+2
+7
+0
+1
+0
+1
+2
+3
+L: 107
+5
+
+
+3
+2
+3
+3
+4
+2
+0
+6
+
+2
+2
+1
+0
+1
+7
+0
+1
+2
+L: 227
+1
+2
+1
+2
+4
+3
+1
+5
+7
+0
+L: 164
+2
+1
+2
+L: 77
+2
+1
+2
+1
+3
+0
+2
+6
+2
+2
+
+0
+L: 197
+2
+5
+6
+7
+0
+6
+7
+0
+7
+3
+3
+0
+7
+L: 2305
+L: 2305
+2
+2
+3
+4
+L: 1892
+L: 1892
+2
+1
+4
+0
+3
+5
+6
+L: 398
+L: 398
+2
+1
+
+4
+
+
+
+0
+1
+
+2
+2
+L: 10
+2
+
+2
+
+0
+2
+3
+4
+6
+7
+3
+
+
+5
+6
+
+0
+6
+
+7
+2
+3
+3
+2
+1
+1
+2
+3
+L: 481
+
+2
+1
+6
+
+1
+5
+0
+L: 63
+L: 63
+2
+1
+1
+7
+L: 135
+
+
+0
+0
+1
+0
+4
+L: 3533
+2
+6
+7
+1
+1
+2
+3
+
+1
+
+3
+4
+L: 2075
+7
+2
+2
+2
+
+3
+1
+1
+2
+
+L: 275
+2
+1
+2
+
+
+
+
+7
+L: 1575
+1
+0
+2
+2
+5
+0
+0
+5
+2
+4
+
+2
+2
+2
+0
+
+L: 1120
+2
+1
+L: 408
+L: 408
+2
+1
+2
+2
+2
+2
+5
+4
+5
+6
+L: 1248
+L: 1248
+2
+1
+1
+6
+0
+1
+L: 669
+2
+1
+7
+0
+3
+1
+2
+
+2
+1
+L: 334
+L: 334
+1
+3
+
+
+3
+
+L: 283
+1
+2
+0
+3
+1
+0
+1
+1
+6
+0
+3
+
+6
+1
+L: 260
+L: 260
+2
+
+3
+3
+3
+5
+L: 2033
+2
+7
+1
+7
+0
+1
+L: 3378
+2
+2
+1
+2
+6
+2
+3
+
+3
+2
+2
+4
+
+7
+L: 140
+
+
+4
+3
+2
+2
+1
+0
+
+4
+
+0
+6
+7
+1
+2
+3
+4
+
+
+
+
+
+
+
+L: 91
+L: 91
+6
+2
+L: 150
+0
+
+0
+L: 5415
+L: 5415
+2
+2
+0
+0
+3
+5
+6
+7
+L: 153
+5
+0
+6
+
+0
+2
+1
+1
+2
+4
+L: 1241
+L: 1283
+2
+5
+
+5
+2
+2
+2
+1
+5
+6
+7
+0
+L: 2275
+L: 2275
+2
+1
+2
+1
+2
+L: 172
+L: 155
+2
+2
+4
+4
+L: 133
+2
+6
+6
+2
+3
+1
+5
+
+
+2
+
+1
+
+L: 153
+
+
+
+
+4
+0
+L: 128
+2
+7
+6
+7
+0
+
+3
+2
+3
+4
+5
+L: 89
+L: 89
+2
+2
+6
+
+
+
+2
+5
+
+
+6
+7
+0
+7
+3
+2
+
+
+
+
+
+
+
+
+
+
+L: 87308
+2
+6
+7
+4
+1
+
+4
+5
+L: 54245
+2
+6
+7
+5
+4
+3
+6
+7
+0
+3
+
+1
+L: 1636
+2
+5
+6
+7
+3
+6
+3
+2
+2
+6
+L: 150
+6
+7
+3
+2
+1
+2
+4
+3
+4
+
+
+
+4
+2
+1
+2
+7
+L: 173
+2
+
+7
+0
+0
+0
+2
+4
+2
+2
+2
+0
+3
+4
+6
+7
+
+2
+1
+6
+1
+2
+L: 160
+2
+7
+L: 3520
+L: 3592
+
+5
+6
+7
+3
+6
+1
+1
+L: 153
+2
+7
+7
+5
+7
+
+5
+2
+L: 150
+2
+5
+7
+6
+7
+6
+2
+5
+0
+1
+4
+L: 777
+L: 561
+1
+1
+L: 1240
+L: 241
+
+6
+7
+0
+
+7
+
+
+
+2
+2
+2
+0
+2
+5
+7
+0
+6
+7
+2
+6
+6
+7
+2
+2
+0
+0
+1
+1
+L: 1183
+2
+
+
+0
+3
+
+4
+
+L: 778
+
+5
+6
+7
+0
+0
+0
+2
+3
+2
+2
+7
+6
+0
+
+2
+3
+
+1
+2
+2
+
+
+3
+5
+L: 56
+7
+1
+L: 1811
+2
+2
+
+3
+1
+3
+
+L: 91
+L: 91
+
+
+7
+5
+2
+5
+6
+1
+2
+3
+4
+L: 197
+L: 197
+2
+1
+1
+7
+
+L: 354
+
+2
+1
+1
+
+
+3
+
+L: 1022
+L: 1097
+2
+5
+6
+
+
+
+0
+
+1
+4
+
+
+1
+2
+
+2
+6
+0
+0
+
+6
+7
+3
+
+L: 928
+
+6
+7
+3
+
+0
+3
+2
+5
+3
+5
+7
+6
+5
+7
+
+
+
+
+
+5
+2
+5
+6
+3
+6
+5
+7
+6
+7
+0
+4
+2
+3
+0
+5
+6
+2
+0
+1
+1
+2
+7
+2
+
+3
+6
+0
+6
+7
+0
+4
+
+3
+5
+
+2
+
+3
+L: 98
+L: 143
+2
+6
+7
+0
+3
+1
+2
+
+0
+0
+1
+5
+2
+4
+
+6
+7
+0
+6
+0
+3
+6
+
+4
+0
+2
+2
+0
+
+3
+2
+
+4
+1
+
+5
+5
+5
+7
+0
+6
+0
+
+
+7
+7
+0
+
+
+L: 19224
+2
+
+2
+3
+7
+6
+5
+L: 192
+6
+5
+2
+3
+6
+6
+2
+2
+0
+0
+6
+
+
+L: 1130
+2
+2
+2
+2
+L: 150
+L: 1768
+L: 1768
+1
+2
+3
+L: 206
+
+3
+3
+5
+4
+5
+2
+2
+7
+L: 2984
+5
+6
+6
+7
+5
+7
+1
+2
+6
+3
+L: 151
+4
+5
+6
+L: 23
+1
+7
+L: 984
+
+2
+4
+3
+1
+L: 1255
+L: 1255
+4
+
+
+L: 351
+2
+5
+6
+7
+0
+6
+1
+1
+1
+2
+7
+L: 873
+L: 945
+
+
+
+
+
+L: 2921
+2
+1
+4
+1
+
+L: 31
+1
+2
+2
+4
+L: 169
+3
+6
+7
+5
+7
+2
+1
+2
+0
+0
+0
+1
+1
+2
+5
+L: 562
+L: 637
+2
+5
+7
+7
+3
+2
+2
+L: 136
+2
+5
+6
+6
+3
+5
+4
+2
+2
+L: 762
+L: 139
+L: 139
+2
+0
+7
+3
+1
+5
+L: 94
+L: 94
+2
+1
+0
+0
+L: 144
+2
+5
+
+1
+2
+5
+L: 1496
+L: 1496
+1
+2
+6
+5
+L: 163
+2
+5
+L: 211
+1
+1
+1
+L: 174
+
+3
+3
+L: 380
+L: 380
+1
+
+
+
+L: 1013
+L: 1013
+7
+L: 1981
+L: 1981
+2
+1
+4
+
+1
+0
+1
+1
+0
+1
+3
+6
+1
+L: 1869
+
+0
+
+1
+4
+5
+0
+L: 5199
+2
+2
+2
+0
+7
+L: 10
+2
+2
+
+
+4
+3
+L: 154
+2
+
+1
+0
+L: 8765
+2
+4
+L: 383
+
+
+
+
+0
+3
+1
+1
+2
+L: 68
+L: 68
+2
+1
+2
+3
+0
+0
+
+
+
+
+
+4
+4
+
+1
+7
+L: 731
+L: 731
+4
+3
+1
+1
+3
+L: 2734
+L: 2734
+5
+L: 20
+1
+2
+4
+3
+1
+3
+3
+1
+2
+2
+5
+0
+L: 4801
+L: 4843
+2
+7
+5
+7
+L: 144
+2
+5
+6
+6
+7
+5
+3
+2
+6
+2
+
+5
+1
+1
+1
+2
+1
+2
+1
+1
+7
+2
+1
+2
+3
+0
+1
+4
+1
+L: 3303
+2
+0
+1
+0
+0
+3
+7
+4
+1
+4
+7
+L: 2593
+
+1
+0
+L: 2271
+2
+2
+7
+5
+L: 161
+5
+2
+5
+L: 1479
+L: 1554
+2
+L: 52
+1
+2
+7
+2
+1
+0
+3
+1
+3
+1
+2
+4
+L: 183
+2
+6
+L: 517
+2
+1
+3
+L: 246
+L: 246
+1
+2
+1
+L: 153
+2
+4
+2
+2
+0
+3
+1
+3
+4
+5
+6
+L: 198
+L: 198
+2
+7
+5
+L: 142
+2
+2
+2
+4
+0
+3
+1
+5
+6
+L: 25
+L: 25
+1
+L: 232
+2
+6
+4
+2
+3
+6
+3
+1
+5
+6
+L: 1039
--- /dev/null
+#!/bin/sh
+# Before diff-3.7, this would provoke a UMR
+
+. "${srcdir=.}/init.sh"; path_prepend_ ../src
+
+fail=0
+
+require_valgrind_
+
+printf '\r' > r || framework_failure_
+echo b > b || framework_failure_
+
+# Use valgrind only when no Sanitizer is in use:
+ASAN_OPTIONS=help=true diff --help 2>&1 |grep Sanitizer > /dev/null \
+ && eval 'valgrind() { "$@"; }' \
+ || eval 'valgrind() { env valgrind --quiet --error-exitcode=3 "$@"; }'
+
+for opt in '' u c Dfoo; do
+ returns_ 1 valgrind \
+ diff -a$opt --strip-trailing-cr r b > out 2> err || fail=1
+done
+
+compare /dev/null err || fail=1
+
+Exit $fail