summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClint Adams <clint@debian.org>2017-02-04 10:14:44 -0500
committerClint Adams <clint@debian.org>2017-02-04 10:29:57 -0500
commita2a4f555c44abda322dabcdf570401434caa52f2 (patch)
tree0ecaeee14d787bf89c309645f97dfa9b23be79ac
parent815ec1bf6545c1b2650a467af09b61213ef4895e (diff)
New upstream version 4.4
-rw-r--r--.tarball-version2
-rw-r--r--.version2
-rw-r--r--COPYING.DOC451
-rw-r--r--ChangeLog185
-rw-r--r--GNUmakefile2
-rw-r--r--Makefile.am4
-rw-r--r--Makefile.in102
-rw-r--r--NEWS10
-rw-r--r--README5
-rw-r--r--THANKS1
-rw-r--r--aclocal.m42
-rw-r--r--basicdefs.h2
-rwxr-xr-xbootstrap44
-rw-r--r--bootstrap.conf2
-rwxr-xr-xbuild-aux/announce-gen2
-rwxr-xr-xbuild-aux/config.guess6
-rwxr-xr-xbuild-aux/config.rpath2
-rwxr-xr-xbuild-aux/config.sub6
-rwxr-xr-xbuild-aux/depcomp2
-rwxr-xr-xbuild-aux/do-release-commit-and-tag6
-rwxr-xr-xbuild-aux/gendocs.sh6
-rwxr-xr-xbuild-aux/git-version-gen6
-rwxr-xr-xbuild-aux/gitlog-to-changelog2
-rwxr-xr-xbuild-aux/gnu-web-doc-update2
-rwxr-xr-xbuild-aux/gnupload2
-rwxr-xr-xbuild-aux/help2man2
-rwxr-xr-xbuild-aux/mdate-sh2
-rw-r--r--build-aux/snippet/arg-nonnull.h2
-rw-r--r--build-aux/snippet/c++defs.h2
-rw-r--r--build-aux/snippet/unused-parameter.h2
-rw-r--r--build-aux/snippet/warn-on-use.h2
-rw-r--r--build-aux/texinfo.tex33
-rwxr-xr-xbuild-aux/update-copyright2
-rwxr-xr-xbuild-aux/useless-if-before-free2
-rwxr-xr-xbuild-aux/vc-list-files2
-rw-r--r--config_h.in4
-rwxr-xr-xconfigure358
-rw-r--r--configure.ac40
-rw-r--r--doc/local.mk15
-rw-r--r--doc/sed-dummy.117
-rw-r--r--doc/sed.14
-rw-r--r--doc/sed.info630
-rw-r--r--doc/sed.texi679
-rw-r--r--doc/stamp-vti8
-rw-r--r--doc/version.texi8
-rw-r--r--gnulib-tests/Makefile.in31
-rw-r--r--gnulib-tests/binary-io.h2
-rw-r--r--gnulib-tests/close.c2
-rw-r--r--gnulib-tests/closedir.c2
-rwxr-xr-xgnulib-tests/dfa-invalid-char-class.sh2
-rw-r--r--gnulib-tests/dfa-match-aux.c2
-rwxr-xr-xgnulib-tests/dfa-match.sh2
-rw-r--r--gnulib-tests/dirent-private.h2
-rw-r--r--gnulib-tests/dirent.in.h2
-rw-r--r--gnulib-tests/dirfd.c2
-rw-r--r--gnulib-tests/dup2.c2
-rw-r--r--gnulib-tests/fd-hook.c2
-rw-r--r--gnulib-tests/fd-hook.h2
-rw-r--r--gnulib-tests/fdopen.c2
-rw-r--r--gnulib-tests/fflush.c10
-rw-r--r--gnulib-tests/file-has-acl.c2
-rw-r--r--gnulib-tests/filename.h2
-rw-r--r--gnulib-tests/flexmember.h2
-rw-r--r--gnulib-tests/fpurge.c6
-rw-r--r--gnulib-tests/freading.c4
-rw-r--r--gnulib-tests/freading.h2
-rw-r--r--gnulib-tests/fseek.c2
-rw-r--r--gnulib-tests/fseeko.c10
-rw-r--r--gnulib-tests/ftell.c2
-rw-r--r--gnulib-tests/ftello.c2
-rw-r--r--gnulib-tests/getcwd-lgpl.c2
-rw-r--r--gnulib-tests/getdtablesize.c2
-rw-r--r--gnulib-tests/getpagesize.c2
-rw-r--r--gnulib-tests/gnulib.mk2
-rw-r--r--gnulib-tests/init.sh2
-rw-r--r--gnulib-tests/inttypes.in.h2
-rw-r--r--gnulib-tests/link.c2
-rw-r--r--gnulib-tests/localename.c15
-rw-r--r--gnulib-tests/localename.h2
-rw-r--r--gnulib-tests/lseek.c2
-rw-r--r--gnulib-tests/macros.h2
-rw-r--r--gnulib-tests/open.c2
-rw-r--r--gnulib-tests/opendir.c2
-rw-r--r--gnulib-tests/putenv.c2
-rw-r--r--gnulib-tests/read-file.c2
-rw-r--r--gnulib-tests/read-file.h2
-rw-r--r--gnulib-tests/readdir.c2
-rw-r--r--gnulib-tests/realloc.c2
-rw-r--r--gnulib-tests/setenv.c2
-rw-r--r--gnulib-tests/setlocale.c2
-rw-r--r--gnulib-tests/signature.h2
-rw-r--r--gnulib-tests/stdio-impl.h6
-rw-r--r--gnulib-tests/strdup.c2
-rw-r--r--gnulib-tests/symlink.c2
-rw-r--r--gnulib-tests/test-alignof.c2
-rw-r--r--gnulib-tests/test-alloca-opt.c2
-rw-r--r--gnulib-tests/test-binary-io.c2
-rw-r--r--gnulib-tests/test-btowc.c2
-rw-r--r--gnulib-tests/test-c-ctype.c2
-rw-r--r--gnulib-tests/test-c-strcasecmp.c2
-rw-r--r--gnulib-tests/test-c-strncasecmp.c2
-rw-r--r--gnulib-tests/test-canonicalize-lgpl.c2
-rw-r--r--gnulib-tests/test-chdir.c2
-rw-r--r--gnulib-tests/test-close.c2
-rw-r--r--gnulib-tests/test-copy-acl.c2
-rw-r--r--gnulib-tests/test-ctype.c2
-rw-r--r--gnulib-tests/test-dirent.c2
-rw-r--r--gnulib-tests/test-dup2.c2
-rw-r--r--gnulib-tests/test-environ.c2
-rw-r--r--gnulib-tests/test-errno.c2
-rw-r--r--gnulib-tests/test-fcntl-h.c2
-rw-r--r--gnulib-tests/test-fdopen.c2
-rw-r--r--gnulib-tests/test-fflush.c2
-rw-r--r--gnulib-tests/test-fflush2.c2
-rw-r--r--gnulib-tests/test-fgetc.c2
-rw-r--r--gnulib-tests/test-file-has-acl.c2
-rw-r--r--gnulib-tests/test-fpending.c2
-rw-r--r--gnulib-tests/test-fpurge.c2
-rw-r--r--gnulib-tests/test-fputc.c2
-rw-r--r--gnulib-tests/test-fread.c2
-rw-r--r--gnulib-tests/test-freading.c2
-rw-r--r--gnulib-tests/test-fseek.c2
-rw-r--r--gnulib-tests/test-fseeko.c2
-rw-r--r--gnulib-tests/test-fseeko3.c2
-rw-r--r--gnulib-tests/test-fseeko4.c2
-rw-r--r--gnulib-tests/test-fstat.c2
-rw-r--r--gnulib-tests/test-ftell.c2
-rw-r--r--gnulib-tests/test-ftell3.c2
-rw-r--r--gnulib-tests/test-ftello.c2
-rw-r--r--gnulib-tests/test-ftello3.c2
-rw-r--r--gnulib-tests/test-ftello4.c2
-rw-r--r--gnulib-tests/test-fwrite.c2
-rw-r--r--gnulib-tests/test-fwriting.c2
-rw-r--r--gnulib-tests/test-getcwd-lgpl.c2
-rw-r--r--gnulib-tests/test-getdelim.c2
-rw-r--r--gnulib-tests/test-getdtablesize.c2
-rw-r--r--gnulib-tests/test-getopt-gnu.c2
-rw-r--r--gnulib-tests/test-getopt-main.h2
-rw-r--r--gnulib-tests/test-getopt-posix.c2
-rw-r--r--gnulib-tests/test-getopt.h2
-rw-r--r--gnulib-tests/test-getopt_long.h2
-rw-r--r--gnulib-tests/test-getprogname.c2
-rw-r--r--gnulib-tests/test-gettimeofday.c2
-rw-r--r--gnulib-tests/test-ignore-value.c2
-rwxr-xr-xgnulib-tests/test-init.sh2
-rw-r--r--gnulib-tests/test-intprops.c2
-rw-r--r--gnulib-tests/test-inttypes.c2
-rw-r--r--gnulib-tests/test-isblank.c2
-rw-r--r--gnulib-tests/test-langinfo.c2
-rw-r--r--gnulib-tests/test-limits-h.c2
-rw-r--r--gnulib-tests/test-link.c2
-rw-r--r--gnulib-tests/test-link.h2
-rw-r--r--gnulib-tests/test-locale.c2
-rw-r--r--gnulib-tests/test-localeconv.c2
-rw-r--r--gnulib-tests/test-localename.c20
-rw-r--r--gnulib-tests/test-lseek.c2
-rw-r--r--gnulib-tests/test-lstat.c2
-rw-r--r--gnulib-tests/test-lstat.h2
-rw-r--r--gnulib-tests/test-malloca.c2
-rw-r--r--gnulib-tests/test-mbrtowc-w32.c2
-rw-r--r--gnulib-tests/test-mbrtowc.c2
-rw-r--r--gnulib-tests/test-mbsinit.c2
-rw-r--r--gnulib-tests/test-memchr.c2
-rw-r--r--gnulib-tests/test-memrchr.c2
-rw-r--r--gnulib-tests/test-nl_langinfo.c2
-rw-r--r--gnulib-tests/test-open.c2
-rw-r--r--gnulib-tests/test-open.h2
-rw-r--r--gnulib-tests/test-pathmax.c2
-rw-r--r--gnulib-tests/test-quotearg-simple.c2
-rw-r--r--gnulib-tests/test-quotearg.h2
-rw-r--r--gnulib-tests/test-read-file.c2
-rw-r--r--gnulib-tests/test-readlink.c2
-rw-r--r--gnulib-tests/test-readlink.h2
-rw-r--r--gnulib-tests/test-regex.c2
-rw-r--r--gnulib-tests/test-rename.c2
-rw-r--r--gnulib-tests/test-rename.h2
-rw-r--r--gnulib-tests/test-rmdir.c2
-rw-r--r--gnulib-tests/test-rmdir.h2
-rw-r--r--gnulib-tests/test-sameacls.c2
-rw-r--r--gnulib-tests/test-set-mode-acl.c2
-rw-r--r--gnulib-tests/test-setenv.c2
-rw-r--r--gnulib-tests/test-setlocale1.c2
-rw-r--r--gnulib-tests/test-setlocale2.c2
-rw-r--r--gnulib-tests/test-stat.c2
-rw-r--r--gnulib-tests/test-stat.h2
-rw-r--r--gnulib-tests/test-stdalign.c2
-rw-r--r--gnulib-tests/test-stdbool.c2
-rw-r--r--gnulib-tests/test-stddef.c2
-rw-r--r--gnulib-tests/test-stdint.c2
-rw-r--r--gnulib-tests/test-stdio.c2
-rw-r--r--gnulib-tests/test-stdlib.c2
-rw-r--r--gnulib-tests/test-strerror.c2
-rw-r--r--gnulib-tests/test-string.c2
-rw-r--r--gnulib-tests/test-strverscmp.c2
-rw-r--r--gnulib-tests/test-symlink.c2
-rw-r--r--gnulib-tests/test-symlink.h2
-rw-r--r--gnulib-tests/test-sys_stat.c2
-rw-r--r--gnulib-tests/test-sys_time.c2
-rw-r--r--gnulib-tests/test-sys_types.c2
-rw-r--r--gnulib-tests/test-sys_wait.h2
-rw-r--r--gnulib-tests/test-time.c2
-rw-r--r--gnulib-tests/test-unistd.c2
-rw-r--r--gnulib-tests/test-unsetenv.c2
-rwxr-xr-xgnulib-tests/test-update-copyright.sh2
-rwxr-xr-xgnulib-tests/test-vc-list-files-cvs.sh2
-rwxr-xr-xgnulib-tests/test-vc-list-files-git.sh2
-rw-r--r--gnulib-tests/test-verify.c2
-rw-r--r--gnulib-tests/test-version-etc.c2
-rwxr-xr-xgnulib-tests/test-version-etc.sh2
-rw-r--r--gnulib-tests/test-wchar.c2
-rw-r--r--gnulib-tests/test-wcrtomb-w32.c2
-rw-r--r--gnulib-tests/test-wcrtomb.c2
-rw-r--r--gnulib-tests/test-wctype-h.c2
-rw-r--r--gnulib-tests/test-xalloc-die.c2
-rwxr-xr-xgnulib-tests/test-xalloc-die.sh2
-rw-r--r--gnulib-tests/unsetenv.c2
-rw-r--r--gnulib-tests/zerosize-ptr.h2
-rw-r--r--init.cfg9
-rw-r--r--lib/acl-errno-valid.c2
-rw-r--r--lib/acl-internal.c2
-rw-r--r--lib/acl-internal.h2
-rw-r--r--lib/acl.h2
-rw-r--r--lib/acl_entries.c2
-rw-r--r--lib/alignof.h2
-rw-r--r--lib/alloca.in.h2
-rw-r--r--lib/basename-lgpl.c2
-rw-r--r--lib/btowc.c2
-rw-r--r--lib/c-ctype.h22
-rw-r--r--lib/c-strcase.h2
-rw-r--r--lib/c-strcasecmp.c2
-rw-r--r--lib/c-strcaseeq.h2
-rw-r--r--lib/c-strncasecmp.c2
-rw-r--r--lib/canonicalize-lgpl.c2
-rw-r--r--lib/close-stream.c2
-rw-r--r--lib/closeout.c2
-rw-r--r--lib/closeout.h2
-rw-r--r--lib/config.charset2
-rw-r--r--lib/copy-acl.c2
-rw-r--r--lib/ctype.in.h2
-rw-r--r--lib/dfa.c1076
-rw-r--r--lib/dfa.h2
-rw-r--r--lib/dirname-lgpl.c2
-rw-r--r--lib/dirname.h2
-rw-r--r--lib/dosname.h2
-rw-r--r--lib/errno.in.h2
-rw-r--r--lib/error.c2
-rw-r--r--lib/error.h2
-rw-r--r--lib/exitfail.c2
-rw-r--r--lib/exitfail.h2
-rw-r--r--lib/fcntl.in.h2
-rw-r--r--lib/fpending.c4
-rw-r--r--lib/fpending.h2
-rw-r--r--lib/fstat.c2
-rw-r--r--lib/fwriting.c4
-rw-r--r--lib/fwriting.h2
-rw-r--r--lib/get-permissions.c2
-rw-r--r--lib/getdelim.c2
-rw-r--r--lib/getfilecon.c2
-rw-r--r--lib/getopt.c2
-rw-r--r--lib/getopt.in.h2
-rw-r--r--lib/getopt1.c2
-rw-r--r--lib/getopt_int.h2
-rw-r--r--lib/getprogname.c36
-rw-r--r--lib/getprogname.h2
-rw-r--r--lib/gettext.h2
-rw-r--r--lib/gettimeofday.c2
-rw-r--r--lib/glthread/lock.c184
-rw-r--r--lib/glthread/lock.h62
-rw-r--r--lib/glthread/threadlib.c2
-rw-r--r--lib/gnulib.mk2
-rw-r--r--lib/hard-locale.c2
-rw-r--r--lib/hard-locale.h2
-rw-r--r--lib/ignore-value.h2
-rw-r--r--lib/intprops.h12
-rw-r--r--lib/isblank.c2
-rw-r--r--lib/langinfo.in.h2
-rw-r--r--lib/limits.in.h2
-rw-r--r--lib/local.mk2
-rw-r--r--lib/localcharset.c2
-rw-r--r--lib/localcharset.h2
-rw-r--r--lib/locale.in.h2
-rw-r--r--lib/localeconv.c2
-rw-r--r--lib/localeinfo.c6
-rw-r--r--lib/localeinfo.h4
-rw-r--r--lib/lstat.c2
-rw-r--r--lib/malloc.c2
-rw-r--r--lib/malloca.c2
-rw-r--r--lib/malloca.h2
-rw-r--r--lib/mbrlen.c2
-rw-r--r--lib/mbrtowc.c2
-rw-r--r--lib/mbsinit.c2
-rw-r--r--lib/mbtowc-impl.h2
-rw-r--r--lib/mbtowc.c2
-rw-r--r--lib/memchr.c2
-rw-r--r--lib/memrchr.c2
-rw-r--r--lib/minmax.h2
-rw-r--r--lib/mkostemp.c2
-rw-r--r--lib/msvc-inval.c2
-rw-r--r--lib/msvc-inval.h2
-rw-r--r--lib/msvc-nothrow.c2
-rw-r--r--lib/msvc-nothrow.h2
-rw-r--r--lib/nl_langinfo.c2
-rw-r--r--lib/obstack.c2
-rw-r--r--lib/obstack.h2
-rw-r--r--lib/pathmax.h2
-rw-r--r--lib/progname.c2
-rw-r--r--lib/progname.h2
-rw-r--r--lib/qcopy-acl.c2
-rw-r--r--lib/qset-acl.c2
-rw-r--r--lib/quote.h2
-rw-r--r--lib/quotearg.c2
-rw-r--r--lib/quotearg.h2
-rw-r--r--lib/readlink.c2
-rw-r--r--lib/ref-add.sin2
-rw-r--r--lib/ref-del.sin2
-rw-r--r--lib/regcomp.c2
-rw-r--r--lib/regex.c2
-rw-r--r--lib/regex.h2
-rw-r--r--lib/regex_internal.c2
-rw-r--r--lib/regex_internal.h2
-rw-r--r--lib/regexec.c2
-rw-r--r--lib/rename.c2
-rw-r--r--lib/rmdir.c2
-rw-r--r--lib/same-inode.h2
-rw-r--r--lib/se-selinux.in.h2
-rw-r--r--lib/secure_getenv.c2
-rw-r--r--lib/set-acl.c2
-rw-r--r--lib/set-permissions.c2
-rw-r--r--lib/stat.c2
-rw-r--r--lib/stdalign.in.h2
-rw-r--r--lib/stdarg.in.h2
-rw-r--r--lib/stdbool.in.h2
-rw-r--r--lib/stddef.in.h2
-rw-r--r--lib/stdint.in.h2
-rw-r--r--lib/stdio-impl.h6
-rw-r--r--lib/stdio.in.h2
-rw-r--r--lib/stdlib.in.h2
-rw-r--r--lib/streq.h2
-rw-r--r--lib/strerror-override.c2
-rw-r--r--lib/strerror-override.h2
-rw-r--r--lib/strerror.c2
-rw-r--r--lib/string.in.h2
-rw-r--r--lib/stripslash.c2
-rw-r--r--lib/strverscmp.c2
-rw-r--r--lib/sys_stat.in.h2
-rw-r--r--lib/sys_time.in.h2
-rw-r--r--lib/sys_types.in.h2
-rw-r--r--lib/tempname.c2
-rw-r--r--lib/tempname.h2
-rw-r--r--lib/time.in.h4
-rw-r--r--lib/unistd.in.h2
-rw-r--r--lib/unlocked-io.h2
-rw-r--r--lib/verify.h9
-rw-r--r--lib/version-etc-fsf.c2
-rw-r--r--lib/version-etc.c4
-rw-r--r--lib/version-etc.h2
-rw-r--r--lib/wchar.in.h2
-rw-r--r--lib/wcrtomb.c2
-rw-r--r--lib/wctob.c2
-rw-r--r--lib/wctomb-impl.h2
-rw-r--r--lib/wctomb.c2
-rw-r--r--lib/wctype.in.h2
-rw-r--r--lib/xalloc-die.c2
-rw-r--r--lib/xalloc-oversized.h14
-rw-r--r--lib/xalloc.h2
-rw-r--r--lib/xmalloc.c2
-rw-r--r--m4/00gnulib.m42
-rw-r--r--m4/absolute-header.m42
-rw-r--r--m4/acl.m42
-rw-r--r--m4/alloca.m42
-rw-r--r--m4/assert.m42
-rw-r--r--m4/btowc.m42
-rw-r--r--m4/builtin-expect.m42
-rw-r--r--m4/canonicalize.m42
-rw-r--r--m4/close-stream.m42
-rw-r--r--m4/close.m42
-rw-r--r--m4/closedir.m42
-rw-r--r--m4/closeout.m42
-rw-r--r--m4/configmake.m42
-rw-r--r--m4/ctype.m42
-rw-r--r--m4/dirent_h.m42
-rw-r--r--m4/dirfd.m42
-rw-r--r--m4/dirname.m42
-rw-r--r--m4/double-slash-root.m42
-rw-r--r--m4/dup2.m42
-rw-r--r--m4/eealloc.m42
-rw-r--r--m4/environ.m42
-rw-r--r--m4/errno_h.m42
-rw-r--r--m4/error.m42
-rw-r--r--m4/extensions.m42
-rw-r--r--m4/extern-inline.m42
-rw-r--r--m4/fcntl-o.m42
-rw-r--r--m4/fcntl_h.m42
-rw-r--r--m4/fdopen.m42
-rw-r--r--m4/fflush.m42
-rw-r--r--m4/flexmember.m42
-rw-r--r--m4/fpending.m42
-rw-r--r--m4/fpurge.m42
-rw-r--r--m4/freading.m42
-rw-r--r--m4/fseek.m42
-rw-r--r--m4/fseeko.m42
-rw-r--r--m4/fstat.m42
-rw-r--r--m4/ftell.m42
-rw-r--r--m4/ftello.m42
-rw-r--r--m4/fwriting.m42
-rw-r--r--m4/getcwd.m42
-rw-r--r--m4/getdelim.m42
-rw-r--r--m4/getdtablesize.m42
-rw-r--r--m4/getopt.m42
-rw-r--r--m4/getpagesize.m42
-rw-r--r--m4/getprogname.m42
-rw-r--r--m4/gettimeofday.m42
-rw-r--r--m4/glibc21.m42
-rw-r--r--m4/gnulib-common.m42
-rw-r--r--m4/gnulib-comp.m46
-rw-r--r--m4/hard-locale.m42
-rw-r--r--m4/include_next.m42
-rw-r--r--m4/inttypes-pri.m42
-rw-r--r--m4/inttypes.m42
-rw-r--r--m4/isblank.m42
-rw-r--r--m4/langinfo_h.m42
-rw-r--r--m4/largefile.m42
-rw-r--r--m4/lib-ld.m42
-rw-r--r--m4/lib-link.m42
-rw-r--r--m4/lib-prefix.m42
-rw-r--r--m4/limits-h.m42
-rw-r--r--m4/link.m42
-rw-r--r--m4/localcharset.m42
-rw-r--r--m4/locale-fr.m42
-rw-r--r--m4/locale-ja.m42
-rw-r--r--m4/locale-tr.m42
-rw-r--r--m4/locale-zh.m42
-rw-r--r--m4/locale_h.m42
-rw-r--r--m4/localeconv.m42
-rw-r--r--m4/localename.m42
-rw-r--r--m4/lock.m411
-rw-r--r--m4/longlong.m42
-rw-r--r--m4/lseek.m42
-rw-r--r--m4/lstat.m42
-rw-r--r--m4/malloc.m42
-rw-r--r--m4/malloca.m42
-rw-r--r--m4/manywarnings.m42
-rw-r--r--m4/mbrlen.m42
-rw-r--r--m4/mbrtowc.m42
-rw-r--r--m4/mbsinit.m42
-rw-r--r--m4/mbstate_t.m42
-rw-r--r--m4/mbtowc.m42
-rw-r--r--m4/memchr.m42
-rw-r--r--m4/memrchr.m42
-rw-r--r--m4/minmax.m42
-rw-r--r--m4/mkostemp.m42
-rw-r--r--m4/mmap-anon.m42
-rw-r--r--m4/mode_t.m42
-rw-r--r--m4/msvc-inval.m42
-rw-r--r--m4/msvc-nothrow.m42
-rw-r--r--m4/multiarch.m42
-rw-r--r--m4/nl_langinfo.m42
-rw-r--r--m4/nocrash.m42
-rw-r--r--m4/non-recursive-gnulib-prefix-hack.m42
-rw-r--r--m4/obstack.m42
-rw-r--r--m4/off_t.m42
-rw-r--r--m4/open.m42
-rw-r--r--m4/opendir.m42
-rw-r--r--m4/pathmax.m42
-rw-r--r--m4/pthread_rwlock_rdlock.m4163
-rw-r--r--m4/putenv.m42
-rw-r--r--m4/quote.m42
-rw-r--r--m4/quotearg.m42
-rw-r--r--m4/read-file.m42
-rw-r--r--m4/readdir.m42
-rw-r--r--m4/readlink.m42
-rw-r--r--m4/realloc.m42
-rw-r--r--m4/regex.m42
-rw-r--r--m4/rename.m42
-rw-r--r--m4/rmdir.m42
-rw-r--r--m4/secure_getenv.m42
-rw-r--r--m4/selinux-context-h.m42
-rw-r--r--m4/selinux-selinux-h.m42
-rw-r--r--m4/setenv.m42
-rw-r--r--m4/setlocale.m42
-rw-r--r--m4/ssize_t.m42
-rw-r--r--m4/stat.m42
-rw-r--r--m4/std-gnu11.m4824
-rw-r--r--m4/stdalign.m42
-rw-r--r--m4/stdarg.m42
-rw-r--r--m4/stdbool.m42
-rw-r--r--m4/stddef_h.m42
-rw-r--r--m4/stdint.m42
-rw-r--r--m4/stdio_h.m42
-rw-r--r--m4/stdlib_h.m42
-rw-r--r--m4/strdup.m42
-rw-r--r--m4/strerror.m42
-rw-r--r--m4/string_h.m42
-rw-r--r--m4/strverscmp.m42
-rw-r--r--m4/symlink.m42
-rw-r--r--m4/sys_socket_h.m42
-rw-r--r--m4/sys_stat_h.m42
-rw-r--r--m4/sys_time_h.m42
-rw-r--r--m4/sys_types_h.m42
-rw-r--r--m4/tempname.m42
-rw-r--r--m4/threadlib.m42
-rw-r--r--m4/time_h.m42
-rw-r--r--m4/ungetc.m42
-rw-r--r--m4/unistd_h.m42
-rw-r--r--m4/unlocked-io.m42
-rw-r--r--m4/version-etc.m42
-rw-r--r--m4/warn-on-use.m42
-rw-r--r--m4/warnings.m42
-rw-r--r--m4/wchar_h.m42
-rw-r--r--m4/wchar_t.m42
-rw-r--r--m4/wcrtomb.m42
-rw-r--r--m4/wctob.m42
-rw-r--r--m4/wctomb.m42
-rw-r--r--m4/wctype_h.m42
-rw-r--r--m4/wint_t.m42
-rw-r--r--m4/xalloc.m42
-rw-r--r--maint.mk35
-rw-r--r--po/af.gmobin2980 -> 2980 bytes
-rw-r--r--po/af.po14
-rw-r--r--po/ast.gmobin8685 -> 8685 bytes
-rw-r--r--po/ast.po14
-rw-r--r--po/bg.gmobin20003 -> 20003 bytes
-rw-r--r--po/bg.po14
-rw-r--r--po/ca.gmobin9210 -> 9210 bytes
-rw-r--r--po/ca.po14
-rw-r--r--po/cs.gmobin10084 -> 10084 bytes
-rw-r--r--po/cs.po14
-rw-r--r--po/da.gmobin9471 -> 9471 bytes
-rw-r--r--po/da.po14
-rw-r--r--po/de.gmobin14480 -> 14480 bytes
-rw-r--r--po/de.po14
-rw-r--r--po/el.gmobin11966 -> 11966 bytes
-rw-r--r--po/el.po14
-rw-r--r--po/eo.gmobin9449 -> 15127 bytes
-rw-r--r--po/eo.po169
-rw-r--r--po/es.gmobin9401 -> 9401 bytes
-rw-r--r--po/es.po14
-rw-r--r--po/et.gmobin14676 -> 14676 bytes
-rw-r--r--po/et.po14
-rw-r--r--po/eu.gmobin1750 -> 1750 bytes
-rw-r--r--po/eu.po14
-rw-r--r--po/fi.gmobin16180 -> 16180 bytes
-rw-r--r--po/fi.po14
-rw-r--r--po/fr.gmobin9421 -> 9421 bytes
-rw-r--r--po/fr.po14
-rw-r--r--po/ga.gmobin8665 -> 15907 bytes
-rw-r--r--po/ga.po188
-rw-r--r--po/gl.gmobin10032 -> 10032 bytes
-rw-r--r--po/gl.po14
-rw-r--r--po/he.gmobin1333 -> 1333 bytes
-rw-r--r--po/he.po14
-rw-r--r--po/hr.gmobin9086 -> 9086 bytes
-rw-r--r--po/hr.po14
-rw-r--r--po/hu.gmobin10145 -> 10145 bytes
-rw-r--r--po/hu.po14
-rw-r--r--po/id.gmobin9027 -> 9027 bytes
-rw-r--r--po/id.po14
-rw-r--r--po/it.gmobin8506 -> 8506 bytes
-rw-r--r--po/it.po14
-rw-r--r--po/ja.gmobin13921 -> 13921 bytes
-rw-r--r--po/ja.po14
-rw-r--r--po/ko.gmobin1382 -> 1382 bytes
-rw-r--r--po/ko.po14
-rw-r--r--po/nb.gmobin9484 -> 9484 bytes
-rw-r--r--po/nb.po14
-rw-r--r--po/nl.gmobin15637 -> 15637 bytes
-rw-r--r--po/nl.po14
-rw-r--r--po/pl.gmobin9515 -> 9515 bytes
-rw-r--r--po/pl.po14
-rw-r--r--po/pt.gmobin8692 -> 8692 bytes
-rw-r--r--po/pt.po14
-rw-r--r--po/pt_BR.gmobin15888 -> 15940 bytes
-rw-r--r--po/pt_BR.po73
-rw-r--r--po/ro.gmobin7820 -> 7820 bytes
-rw-r--r--po/ro.po14
-rw-r--r--po/ru.gmobin20080 -> 20080 bytes
-rw-r--r--po/ru.po14
-rw-r--r--po/sed.pot16
-rw-r--r--po/sk.gmobin15848 -> 15848 bytes
-rw-r--r--po/sk.po14
-rw-r--r--po/sl.gmobin8959 -> 8959 bytes
-rw-r--r--po/sl.po14
-rw-r--r--po/sr.gmobin18868 -> 18868 bytes
-rw-r--r--po/sr.po14
-rw-r--r--po/sv.gmobin9718 -> 9718 bytes
-rw-r--r--po/sv.po14
-rw-r--r--po/tr.gmobin8983 -> 8983 bytes
-rw-r--r--po/tr.po14
-rw-r--r--po/uk.gmobin19993 -> 19993 bytes
-rw-r--r--po/uk.po14
-rw-r--r--po/vi.gmobin17239 -> 17239 bytes
-rw-r--r--po/vi.po14
-rw-r--r--po/zh_CN.gmobin7918 -> 7918 bytes
-rw-r--r--po/zh_CN.po14
-rw-r--r--po/zh_TW.gmobin8632 -> 8632 bytes
-rw-r--r--po/zh_TW.po14
-rw-r--r--sed/compile.c4
-rw-r--r--sed/execute.c2
-rw-r--r--sed/local.mk2
-rw-r--r--sed/mbcs.c2
-rw-r--r--sed/regexp.c5
-rw-r--r--sed/sed.c2
-rw-r--r--sed/sed.h4
-rw-r--r--sed/utils.c2
-rw-r--r--sed/utils.h2
-rw-r--r--testsuite/bug-regex10.c2
-rw-r--r--testsuite/bug-regex11.c2
-rw-r--r--testsuite/bug-regex12.c2
-rw-r--r--testsuite/bug-regex13.c2
-rw-r--r--testsuite/bug-regex14.c2
-rw-r--r--testsuite/bug-regex21.c2
-rw-r--r--testsuite/bug-regex27.c2
-rw-r--r--testsuite/bug-regex28.c2
-rw-r--r--testsuite/bug-regex7.c2
-rw-r--r--testsuite/bug-regex8.c2
-rw-r--r--testsuite/bug-regex9.c2
-rw-r--r--testsuite/cmd-R.sh2
-rwxr-xr-xtestsuite/cmd-l.sh2
-rwxr-xr-xtestsuite/colon-with-no-label.sh2
-rw-r--r--testsuite/comment-n.sh2
-rw-r--r--testsuite/compile-errors.sh2
-rw-r--r--testsuite/compile-tests.sh2
-rwxr-xr-xtestsuite/convert-number.sh2
-rw-r--r--testsuite/envvar-check2
-rw-r--r--testsuite/execute-tests.sh2
-rwxr-xr-xtestsuite/follow-symlinks-stdin.sh2
-rw-r--r--testsuite/follow-symlinks.sh2
-rw-r--r--testsuite/get-mb-cur-max.c2
-rwxr-xr-xtestsuite/help-version.sh2
-rwxr-xr-xtestsuite/in-place-hyphen.sh2
-rw-r--r--testsuite/in-place-suffix-backup.sh2
-rw-r--r--testsuite/init.sh94
-rwxr-xr-xtestsuite/invalid-mb-seq-UMR.sh2
-rw-r--r--testsuite/local.mk3
-rwxr-xr-xtestsuite/mb-bad-delim.sh2
-rwxr-xr-xtestsuite/mb-charclass-non-utf8.sh2
-rwxr-xr-xtestsuite/mb-match-slash.sh2
-rwxr-xr-xtestsuite/mb-y-translate.sh2
-rwxr-xr-xtestsuite/newline-dfa-bug.sh38
-rw-r--r--testsuite/normalize-text.sh2
-rwxr-xr-xtestsuite/nulldata.sh2
-rw-r--r--testsuite/panic-tests.sh2
-rw-r--r--testsuite/posix-char-class.sh2
-rwxr-xr-xtestsuite/posix-mode-N.sh2
-rw-r--r--testsuite/posix-mode-addr.sh2
-rwxr-xr-xtestsuite/posix-mode-bad-ref.sh2
-rw-r--r--testsuite/posix-mode-s.sh2
-rwxr-xr-xtestsuite/range-overlap.sh2
-rw-r--r--testsuite/recursive-escape-c.sh2
-rw-r--r--testsuite/regex-errors.sh2
-rw-r--r--testsuite/runptests.c2
-rwxr-xr-xtestsuite/sandbox.sh2
-rw-r--r--testsuite/stdin-prog.sh2
-rwxr-xr-xtestsuite/subst-mb-incomplete.sh2
-rw-r--r--testsuite/subst-options.sh2
-rw-r--r--testsuite/subst-replacement.sh2
-rwxr-xr-xtestsuite/temp-file-cleanup.sh2
-rw-r--r--testsuite/test-mbrtowc.c2
-rwxr-xr-xtestsuite/title-case.sh2
-rw-r--r--testsuite/tst-boost.c2
-rw-r--r--testsuite/tst-pcre.c2
-rw-r--r--testsuite/tst-rxspencer.c2
-rw-r--r--testsuite/unbuffered.sh2
-rw-r--r--testsuite/xemacs.good2
-rw-r--r--testsuite/xemacs.inp2
665 files changed, 4835 insertions, 2542 deletions
diff --git a/.tarball-version b/.tarball-version
index 69df05f..515be8f 100644
--- a/.tarball-version
+++ b/.tarball-version
@@ -1 +1 @@
-4.3
+4.4
diff --git a/.version b/.version
index 69df05f..515be8f 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-4.3
+4.4
diff --git a/COPYING.DOC b/COPYING.DOC
deleted file mode 100644
index ea854f0..0000000
--- a/COPYING.DOC
+++ /dev/null
@@ -1,451 +0,0 @@
-
- GNU Free Documentation License
- Version 1.3, 3 November 2008
-
-
- Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
- <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-0. PREAMBLE
-
-The purpose of this License is to make a manual, textbook, or other
-functional and useful document "free" in the sense of freedom: to
-assure everyone the effective freedom to copy and redistribute it,
-with or without modifying it, either commercially or noncommercially.
-Secondarily, this License preserves for the author and publisher a way
-to get credit for their work, while not being considered responsible
-for modifications made by others.
-
-This License is a kind of "copyleft", which means that derivative
-works of the document must themselves be free in the same sense. It
-complements the GNU General Public License, which is a copyleft
-license designed for free software.
-
-We have designed this License in order to use it for manuals for free
-software, because free software needs free documentation: a free
-program should come with manuals providing the same freedoms that the
-software does. But this License is not limited to software manuals;
-it can be used for any textual work, regardless of subject matter or
-whether it is published as a printed book. We recommend this License
-principally for works whose purpose is instruction or reference.
-
-
-1. APPLICABILITY AND DEFINITIONS
-
-This License applies to any manual or other work, in any medium, that
-contains a notice placed by the copyright holder saying it can be
-distributed under the terms of this License. Such a notice grants a
-world-wide, royalty-free license, unlimited in duration, to use that
-work under the conditions stated herein. The "Document", below,
-refers to any such manual or work. Any member of the public is a
-licensee, and is addressed as "you". You accept the license if you
-copy, modify or distribute the work in a way requiring permission
-under copyright law.
-
-A "Modified Version" of the Document means any work containing the
-Document or a portion of it, either copied verbatim, or with
-modifications and/or translated into another language.
-
-A "Secondary Section" is a named appendix or a front-matter section of
-the Document that deals exclusively with the relationship of the
-publishers or authors of the Document to the Document's overall
-subject (or to related matters) and contains nothing that could fall
-directly within that overall subject. (Thus, if the Document is in
-part a textbook of mathematics, a Secondary Section may not explain
-any mathematics.) The relationship could be a matter of historical
-connection with the subject or with related matters, or of legal,
-commercial, philosophical, ethical or political position regarding
-them.
-
-The "Invariant Sections" are certain Secondary Sections whose titles
-are designated, as being those of Invariant Sections, in the notice
-that says that the Document is released under this License. If a
-section does not fit the above definition of Secondary then it is not
-allowed to be designated as Invariant. The Document may contain zero
-Invariant Sections. If the Document does not identify any Invariant
-Sections then there are none.
-
-The "Cover Texts" are certain short passages of text that are listed,
-as Front-Cover Texts or Back-Cover Texts, in the notice that says that
-the Document is released under this License. A Front-Cover Text may
-be at most 5 words, and a Back-Cover Text may be at most 25 words.
-
-A "Transparent" copy of the Document means a machine-readable copy,
-represented in a format whose specification is available to the
-general public, that is suitable for revising the document
-straightforwardly with generic text editors or (for images composed of
-pixels) generic paint programs or (for drawings) some widely available
-drawing editor, and that is suitable for input to text formatters or
-for automatic translation to a variety of formats suitable for input
-to text formatters. A copy made in an otherwise Transparent file
-format whose markup, or absence of markup, has been arranged to thwart
-or discourage subsequent modification by readers is not Transparent.
-An image format is not Transparent if used for any substantial amount
-of text. A copy that is not "Transparent" is called "Opaque".
-
-Examples of suitable formats for Transparent copies include plain
-ASCII without markup, Texinfo input format, LaTeX input format, SGML
-or XML using a publicly available DTD, and standard-conforming simple
-HTML, PostScript or PDF designed for human modification. Examples of
-transparent image formats include PNG, XCF and JPG. Opaque formats
-include proprietary formats that can be read and edited only by
-proprietary word processors, SGML or XML for which the DTD and/or
-processing tools are not generally available, and the
-machine-generated HTML, PostScript or PDF produced by some word
-processors for output purposes only.
-
-The "Title Page" means, for a printed book, the title page itself,
-plus such following pages as are needed to hold, legibly, the material
-this License requires to appear in the title page. For works in
-formats which do not have any title page as such, "Title Page" means
-the text near the most prominent appearance of the work's title,
-preceding the beginning of the body of the text.
-
-The "publisher" means any person or entity that distributes copies of
-the Document to the public.
-
-A section "Entitled XYZ" means a named subunit of the Document whose
-title either is precisely XYZ or contains XYZ in parentheses following
-text that translates XYZ in another language. (Here XYZ stands for a
-specific section name mentioned below, such as "Acknowledgements",
-"Dedications", "Endorsements", or "History".) To "Preserve the Title"
-of such a section when you modify the Document means that it remains a
-section "Entitled XYZ" according to this definition.
-
-The Document may include Warranty Disclaimers next to the notice which
-states that this License applies to the Document. These Warranty
-Disclaimers are considered to be included by reference in this
-License, but only as regards disclaiming warranties: any other
-implication that these Warranty Disclaimers may have is void and has
-no effect on the meaning of this License.
-
-2. VERBATIM COPYING
-
-You may copy and distribute the Document in any medium, either
-commercially or noncommercially, provided that this License, the
-copyright notices, and the license notice saying this License applies
-to the Document are reproduced in all copies, and that you add no
-other conditions whatsoever to those of this License. You may not use
-technical measures to obstruct or control the reading or further
-copying of the copies you make or distribute. However, you may accept
-compensation in exchange for copies. If you distribute a large enough
-number of copies you must also follow the conditions in section 3.
-
-You may also lend copies, under the same conditions stated above, and
-you may publicly display copies.
-
-
-3. COPYING IN QUANTITY
-
-If you publish printed copies (or copies in media that commonly have
-printed covers) of the Document, numbering more than 100, and the
-Document's license notice requires Cover Texts, you must enclose the
-copies in covers that carry, clearly and legibly, all these Cover
-Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
-the back cover. Both covers must also clearly and legibly identify
-you as the publisher of these copies. The front cover must present
-the full title with all words of the title equally prominent and
-visible. You may add other material on the covers in addition.
-Copying with changes limited to the covers, as long as they preserve
-the title of the Document and satisfy these conditions, can be treated
-as verbatim copying in other respects.
-
-If the required texts for either cover are too voluminous to fit
-legibly, you should put the first ones listed (as many as fit
-reasonably) on the actual cover, and continue the rest onto adjacent
-pages.
-
-If you publish or distribute Opaque copies of the Document numbering
-more than 100, you must either include a machine-readable Transparent
-copy along with each Opaque copy, or state in or with each Opaque copy
-a computer-network location from which the general network-using
-public has access to download using public-standard network protocols
-a complete Transparent copy of the Document, free of added material.
-If you use the latter option, you must take reasonably prudent steps,
-when you begin distribution of Opaque copies in quantity, to ensure
-that this Transparent copy will remain thus accessible at the stated
-location until at least one year after the last time you distribute an
-Opaque copy (directly or through your agents or retailers) of that
-edition to the public.
-
-It is requested, but not required, that you contact the authors of the
-Document well before redistributing any large number of copies, to
-give them a chance to provide you with an updated version of the
-Document.
-
-
-4. MODIFICATIONS
-
-You may copy and distribute a Modified Version of the Document under
-the conditions of sections 2 and 3 above, provided that you release
-the Modified Version under precisely this License, with the Modified
-Version filling the role of the Document, thus licensing distribution
-and modification of the Modified Version to whoever possesses a copy
-of it. In addition, you must do these things in the Modified Version:
-
-A. Use in the Title Page (and on the covers, if any) a title distinct
- from that of the Document, and from those of previous versions
- (which should, if there were any, be listed in the History section
- of the Document). You may use the same title as a previous version
- if the original publisher of that version gives permission.
-B. List on the Title Page, as authors, one or more persons or entities
- responsible for authorship of the modifications in the Modified
- Version, together with at least five of the principal authors of the
- Document (all of its principal authors, if it has fewer than five),
- unless they release you from this requirement.
-C. State on the Title page the name of the publisher of the
- Modified Version, as the publisher.
-D. Preserve all the copyright notices of the Document.
-E. Add an appropriate copyright notice for your modifications
- adjacent to the other copyright notices.
-F. Include, immediately after the copyright notices, a license notice
- giving the public permission to use the Modified Version under the
- terms of this License, in the form shown in the Addendum below.
-G. Preserve in that license notice the full lists of Invariant Sections
- and required Cover Texts given in the Document's license notice.
-H. Include an unaltered copy of this License.
-I. Preserve the section Entitled "History", Preserve its Title, and add
- to it an item stating at least the title, year, new authors, and
- publisher of the Modified Version as given on the Title Page. If
- there is no section Entitled "History" in the Document, create one
- stating the title, year, authors, and publisher of the Document as
- given on its Title Page, then add an item describing the Modified
- Version as stated in the previous sentence.
-J. Preserve the network location, if any, given in the Document for
- public access to a Transparent copy of the Document, and likewise
- the network locations given in the Document for previous versions
- it was based on. These may be placed in the "History" section.
- You may omit a network location for a work that was published at
- least four years before the Document itself, or if the original
- publisher of the version it refers to gives permission.
-K. For any section Entitled "Acknowledgements" or "Dedications",
- Preserve the Title of the section, and preserve in the section all
- the substance and tone of each of the contributor acknowledgements
- and/or dedications given therein.
-L. Preserve all the Invariant Sections of the Document,
- unaltered in their text and in their titles. Section numbers
- or the equivalent are not considered part of the section titles.
-M. Delete any section Entitled "Endorsements". Such a section
- may not be included in the Modified Version.
-N. Do not retitle any existing section to be Entitled "Endorsements"
- or to conflict in title with any Invariant Section.
-O. Preserve any Warranty Disclaimers.
-
-If the Modified Version includes new front-matter sections or
-appendices that qualify as Secondary Sections and contain no material
-copied from the Document, you may at your option designate some or all
-of these sections as invariant. To do this, add their titles to the
-list of Invariant Sections in the Modified Version's license notice.
-These titles must be distinct from any other section titles.
-
-You may add a section Entitled "Endorsements", provided it contains
-nothing but endorsements of your Modified Version by various
-parties--for example, statements of peer review or that the text has
-been approved by an organization as the authoritative definition of a
-standard.
-
-You may add a passage of up to five words as a Front-Cover Text, and a
-passage of up to 25 words as a Back-Cover Text, to the end of the list
-of Cover Texts in the Modified Version. Only one passage of
-Front-Cover Text and one of Back-Cover Text may be added by (or
-through arrangements made by) any one entity. If the Document already
-includes a cover text for the same cover, previously added by you or
-by arrangement made by the same entity you are acting on behalf of,
-you may not add another; but you may replace the old one, on explicit
-permission from the previous publisher that added the old one.
-
-The author(s) and publisher(s) of the Document do not by this License
-give permission to use their names for publicity for or to assert or
-imply endorsement of any Modified Version.
-
-
-5. COMBINING DOCUMENTS
-
-You may combine the Document with other documents released under this
-License, under the terms defined in section 4 above for modified
-versions, provided that you include in the combination all of the
-Invariant Sections of all of the original documents, unmodified, and
-list them all as Invariant Sections of your combined work in its
-license notice, and that you preserve all their Warranty Disclaimers.
-
-The combined work need only contain one copy of this License, and
-multiple identical Invariant Sections may be replaced with a single
-copy. If there are multiple Invariant Sections with the same name but
-different contents, make the title of each such section unique by
-adding at the end of it, in parentheses, the name of the original
-author or publisher of that section if known, or else a unique number.
-Make the same adjustment to the section titles in the list of
-Invariant Sections in the license notice of the combined work.
-
-In the combination, you must combine any sections Entitled "History"
-in the various original documents, forming one section Entitled
-"History"; likewise combine any sections Entitled "Acknowledgements",
-and any sections Entitled "Dedications". You must delete all sections
-Entitled "Endorsements".
-
-
-6. COLLECTIONS OF DOCUMENTS
-
-You may make a collection consisting of the Document and other
-documents released under this License, and replace the individual
-copies of this License in the various documents with a single copy
-that is included in the collection, provided that you follow the rules
-of this License for verbatim copying of each of the documents in all
-other respects.
-
-You may extract a single document from such a collection, and
-distribute it individually under this License, provided you insert a
-copy of this License into the extracted document, and follow this
-License in all other respects regarding verbatim copying of that
-document.
-
-
-7. AGGREGATION WITH INDEPENDENT WORKS
-
-A compilation of the Document or its derivatives with other separate
-and independent documents or works, in or on a volume of a storage or
-distribution medium, is called an "aggregate" if the copyright
-resulting from the compilation is not used to limit the legal rights
-of the compilation's users beyond what the individual works permit.
-When the Document is included in an aggregate, this License does not
-apply to the other works in the aggregate which are not themselves
-derivative works of the Document.
-
-If the Cover Text requirement of section 3 is applicable to these
-copies of the Document, then if the Document is less than one half of
-the entire aggregate, the Document's Cover Texts may be placed on
-covers that bracket the Document within the aggregate, or the
-electronic equivalent of covers if the Document is in electronic form.
-Otherwise they must appear on printed covers that bracket the whole
-aggregate.
-
-
-8. TRANSLATION
-
-Translation is considered a kind of modification, so you may
-distribute translations of the Document under the terms of section 4.
-Replacing Invariant Sections with translations requires special
-permission from their copyright holders, but you may include
-translations of some or all Invariant Sections in addition to the
-original versions of these Invariant Sections. You may include a
-translation of this License, and all the license notices in the
-Document, and any Warranty Disclaimers, provided that you also include
-the original English version of this License and the original versions
-of those notices and disclaimers. In case of a disagreement between
-the translation and the original version of this License or a notice
-or disclaimer, the original version will prevail.
-
-If a section in the Document is Entitled "Acknowledgements",
-"Dedications", or "History", the requirement (section 4) to Preserve
-its Title (section 1) will typically require changing the actual
-title.
-
-
-9. TERMINATION
-
-You may not copy, modify, sublicense, or distribute the Document
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense, or distribute it is void, and
-will automatically terminate your rights under this License.
-
-However, if you cease all violation of this License, then your license
-from a particular copyright holder is reinstated (a) provisionally,
-unless and until the copyright holder explicitly and finally
-terminates your license, and (b) permanently, if the copyright holder
-fails to notify you of the violation by some reasonable means prior to
-60 days after the cessation.
-
-Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
-Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, receipt of a copy of some or all of the same material does
-not give you any rights to use it.
-
-
-10. FUTURE REVISIONS OF THIS LICENSE
-
-The Free Software Foundation may publish new, revised versions 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
-http://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
-License "or any later version" applies to it, you have the option of
-following the terms and conditions either of that specified version or
-of any later version that has been published (not as a draft) by the
-Free Software Foundation. If the Document does not specify a version
-number of this License, you may choose any version ever published (not
-as a draft) by the Free Software Foundation. If the Document
-specifies that a proxy can decide which future versions of this
-License can be used, that proxy's public statement of acceptance of a
-version permanently authorizes you to choose that version for the
-Document.
-
-11. RELICENSING
-
-"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
-World Wide Web server that publishes copyrightable works and also
-provides prominent facilities for anybody to edit those works. A
-public wiki that anybody can edit is an example of such a server. A
-"Massive Multiauthor Collaboration" (or "MMC") contained in the site
-means any set of copyrightable works thus published on the MMC site.
-
-"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
-license published by Creative Commons Corporation, a not-for-profit
-corporation with a principal place of business in San Francisco,
-California, as well as future copyleft versions of that license
-published by that same organization.
-
-"Incorporate" means to publish or republish a Document, in whole or in
-part, as part of another Document.
-
-An MMC is "eligible for relicensing" if it is licensed under this
-License, and if all works that were first published under this License
-somewhere other than this MMC, and subsequently incorporated in whole or
-in part into the MMC, (1) had no cover texts or invariant sections, and
-(2) were thus incorporated prior to November 1, 2008.
-
-The operator of an MMC Site may republish an MMC contained in the site
-under CC-BY-SA on the same site at any time before August 1, 2009,
-provided the MMC is eligible for relicensing.
-
-
-ADDENDUM: How to use this License for your documents
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and
-license notices just after the title page:
-
- Copyright (c) YEAR YOUR NAME.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.3
- or any later version published by the Free Software Foundation;
- with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
- A copy of the license is included in the section entitled "GNU
- Free Documentation License".
-
-If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
-replace the "with...Texts." line with this:
-
- with the Invariant Sections being LIST THEIR TITLES, with the
- Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
-
-If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
-If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License,
-to permit their use in free software.
diff --git a/ChangeLog b/ChangeLog
index 441f929..17e9003 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,173 @@
+2017-02-03 Jim Meyering <meyering@fb.com>
+
+ version 4.4
+ * NEWS: Record release date.
+
+ gnulib: update to latest
+
+ maint: avoid %x-format argument type mismatch
+ * sed/compile.c (savchar): Cast %x-format argument to "unsigned int"
+ rather than to "unsigned char". Reported by Eric Blake in
+ https://lists.gnu.org/archive/html/sed-devel/2017-02/msg00000.html
+
+2017-02-02 Assaf Gordon <assafgordon@gmail.com>
+
+ doc: fix broken xref
+ Remove an extraneous space after @xref. Older 'makeinfo' would fail with:
+
+ ./doc/sed.texi:3461: @xref expected braces.
+ ./doc/sed.texi:3461: ` {Execution Cycle} and @ref{Addresses ov...' is
+ too long for expansion; not expanded.
+
+ Introduced in sed-4.3-15-gb0009b8.
+
+ * doc/sed.texi: Remove space after @xref.
+
+2017-01-31 Jim Meyering <meyering@fb.com>
+
+ gnulib: update to latest
+
+2017-01-31 Assaf Gordon <assafgordon@gmail.com>
+
+ doc: add NEWS entry for recent newline bugfix
+ Bugfix in sed-4.3-12-g44d99bf (for https://bugs.gnu.org/25390) did not
+ included a corresponding NEWS entry.
+
+ * NEWS: Mention bugfix.
+
+2017-01-28 Assaf Gordon <assafgordon@gmail.com>
+
+ doc: new 'multiple commands syntax' section
+ Explain which commands can be separated by semicolon and which require
+ newlines. Requested by Ori Avtalion in https://bugs.gnu.org/21845 .
+
+ * doc/sed.texi (Multiple commands syntax): New section in "sed scripts"
+ chapter.
+
+2017-01-24 Assaf Gordon <assafgordon@gmail.com>
+
+ doc: update 'other resources' chapter
+ Remove broken link and update other resources in the manual.
+ Reported by olszkocj@aol.com in https://bugs.gnu.org/24770 .
+
+ * doc/sed.texi (Other Resources): Update wording.
+
+2017-01-18 Jim Meyering <meyering@fb.com>
+
+ maint: update bootstrap and init.sh
+ * bootstrap: Update from gnulib.
+ * testsuite/init.sh: Likewise.
+
+2017-01-16 Assaf Gordon <assafgordon@gmail.com>
+
+ doc: add 'branching and flow control' section
+ * doc/sed.texi (Branching and flow control): New section under 'Advanced
+ Sed' chapter.
+
+ doc: add 'join lines' example
+ * doc/sed.texi (Joining lines): Add example of joining SMTP header
+ lines.
+
+2017-01-16 Norihiro Tanaka <noritnk@kcn.ne.jp>
+
+ tests: new test for dfa newline bug
+ sed-4.3 would segfault with:
+ printf '$LINENO $LINEN\nB\n' | sed -e 'N;s/\$LINENO\(.*\n\)/\1/'
+
+ Culprit is dfa crash if multi-lines are read in pattern space.
+ It is fixed at gnulib commit v0.1-1117-g823b5cb .
+ Reported by S. Gilles in https://bugs.gnu.org/25390
+
+ * testsuite/newline-dfa-bug.sh: New test.
+ * testsuite/local.mk: Add the test.
+
+2017-01-16 Assaf Gordon <assafgordon@gmail.com>
+
+ gnulib: update to latest (with fix for dfa newline bug)
+ sed-4.3 would segfault due to dfa bug, see https://bugs.gnu.org/25390 .
+
+ * gnulib: Update to latest with various dfa fixes and improvement.
+ * m4/.gitignore: Add 'std-gnu11.m4', 'pthread_rwlock_rdlock.m4'.
+
+2017-01-16 Assaf Gordon <assafgordon@gmail.com>
+
+ doc: improve README installation instructions
+ Mention README-hacking for git users.
+ Issue raised by Jean-Christophe Manciot in https://bugs.gnu.org/25377 .
+
+ * README: Improve installation paragraph based on coreutils' README.
+
+2017-01-16 Jim Meyering <meyering@fb.com>
+
+ maint: avoid syntax-check-exposed nit
+ * doc/local.mk (doc/sed.1): Use $(...) rather than @...@.
+
+2017-01-15 Jim Meyering <meyering@fb.com>
+
+ maint: do not distribute COPYING.DOC
+ * COPYING.DOC: Remove this file, now that we have doc/fdl.texi.
+ * Makefile.am (EXTRA_DIST): Don't distribute it.
+
+2017-01-14 Jim Meyering <meyering@fb.com>
+
+ tests: skip valgrind-running tests when ASAN-enabled
+ * init.cfg (require_valgrind_): Skip when we detect that the
+ binary is ASAN-enabled.
+
+2017-01-13 Vagelis Prokopiou <drz4007@gmail.com> (tiny change)
+
+ maint: insert missing word in comment
+ * sed/sed.h (struct vector)[v_allocated]: Insert "of".
+
+2017-01-09 Assaf Gordon <assafgordon@gmail.com>
+
+ build: skip building man page if needed
+ Skip building the man page if building from tarball (where 'doc/sed.1'
+ is already prebuilt). Build a stub if building from git but generating
+ the man page isn't possible (if there's no Perl or cross-compiling).
+ Cross-compilation issue reported by Vishal Biswas in
+ https://bugs.gnu.org/25358 .
+ Problematic 'perl' is related to https://bugs.gnu.org/25367 .
+
+ * configure.ac: Check for Perl, cross-compilation and tarball build;
+ Set automake variable BUILD_MAN_PAGE, BUILD_DUMMY_MAN_PAGE accordingly.
+ * doc/local.mk (doc/sed.1): Build conditionally if BUILD_MAN_PAGE is true;
+ Create a dummy man page if BUILD_DUMMY_MAN_PAGE is true.
+ * doc/sed-dummy.1: Stub man page.
+
+2017-01-08 Assaf Gordon <assafgordon@gmail.com>
+
+ build: fix out-of-tree builds without dep-tracking
+ Create sed,lib,doc,testsuite subdirectories at the end of
+ 'configure', preventing build problems when building out of tree
+ with --disable-dependency-tracking.
+ Reported by Juan M. Guerrero in https://bugs.gnu.org/25371 .
+
+ * configure.ac: Call AS_MKDIR_P() to create subdirectories.
+
+2017-01-07 Jim Meyering <meyering@fb.com>
+
+ doc: fix NEWS typo
+ * NEWS: Fix typo s/introducted/introduced/
+ * cfg.mk (old_NEWS_hash): Update.
+ Reported by Karl Berry.
+
+2017-01-01 Jim Meyering <meyering@fb.com>
+
+ maint: update gnulib and copyright dates for 2017
+ * gnulib: Update to latest.
+ * all files: Run "make update-copyright".
+
+ maint: compile warning-free with -DDEBUG_LEAKS
+ * sed/regexp.c (release_regex) [DEBUG_LEAKS]: Modernize declaration.
+
2016-12-30 Jim Meyering <meyering@fb.com>
+ maint: post-release administrivia
+ * NEWS: Add header line for next release.
+ * .prev-version: Record previous version.
+ * cfg.mk (old_NEWS_hash): Auto-update.
+
version 4.3
* NEWS: Record release date.
@@ -1626,20 +1794,3 @@
fixup: add the properly-named new test files
* testsuite/Makefile.am (EXTRA_DIST): Add y-zero.*,
not y-NUL.* here.
-
- maint: correct failing "version" test
- * configure.ac (COPYRIGHT_YEAR): Update to 2014, so
- the "version" test passes once again.
- * doc/sed.1: Also commit this auto-generated-yet-VC'd file.
-
- fix "y" to work with NUL in the RHS
- * sed/execute.c (do_list) [case 'y']: Handle NUL bytes
- in the RHS of a y/LHS/RHS/ transliteration.
- * testsuite/y-zero.good: New test-related files.
- * testsuite/y-zero.inp:
- * testsuite/y-zero.sed:
- * testsuite/Makefile.am (SEDTESTS): Add y-zero here.
- * testsuite/Makefile.tests: And here.
- * NEWS (Bug fixes): Describe it.
- The bug was reported by table@inventati.org,
- with the execute.c change mostly by Paolo Bonzini.
diff --git a/GNUmakefile b/GNUmakefile
index a869da5..a2f8111 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -5,7 +5,7 @@
# It is necessary if you want to build targets usually of interest
# only to the maintainer.
-# Copyright (C) 2001, 2003, 2006-2016 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 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
diff --git a/Makefile.am b/Makefile.am
index cc1fdbe..77ea85a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
-# Copyright (C) 1990-2016 Free Software Foundation, Inc.
+# Copyright (C) 1990-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
@@ -38,7 +38,7 @@ noinst_DATA =
noinst_HEADERS = basicdefs.h
DISTCLEANFILES =
-EXTRA_DIST += BUGS THANKS.in COPYING.DOC \
+EXTRA_DIST += BUGS THANKS.in \
.version \
.mailmap ChangeLog-2014 po/ChangeLog-2014 \
bootstrap bootstrap.conf build-aux/help2man \
diff --git a/Makefile.in b/Makefile.in
index 6cf9e32..d8ee6df 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -14,7 +14,7 @@
@SET_MAKE@
-# Copyright (C) 1990-2016 Free Software Foundation, Inc.
+# Copyright (C) 1990-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
@@ -29,7 +29,7 @@
# 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 1997-2016 Free Software Foundation, Inc.
+# Copyright 1997-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
@@ -45,7 +45,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-# Copyright (C) 2002-2016 Free Software Foundation, Inc.
+# Copyright (C) 2002-2017 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
@@ -68,7 +68,7 @@
# Generated by gnulib-tool.
# Reproduce by: gnulib-tool --import --local-dir=gl --lib=libsed --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=gnulib-tests --aux-dir=build-aux --with-tests --avoid=lock-tests --makefile-name=gnulib.mk --no-conditional-dependencies --no-libtool --macro-prefix=gl acl alloca btowc c-ctype closeout dfa extensions fdl fwriting getdelim getopt gettext-h git-version-gen gitlog-to-changelog ignore-value localcharset manywarnings mbrlen mbrtowc mbsinit memchr memrchr mkostemp non-recursive-gnulib-prefix-hack obstack progname readme-release regex rename selinux-h ssize_t stat-macros stdalign stdbool strerror strverscmp threadlib unlocked-io update-copyright verify version-etc-fsf wcrtomb wctob
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -83,7 +83,7 @@
# 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) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -98,7 +98,7 @@
# 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) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -263,23 +263,25 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
$(top_srcdir)/m4/obstack.m4 $(top_srcdir)/m4/off_t.m4 \
$(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/opendir.m4 \
$(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/po.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/putenv.m4 \
- $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/readdir.m4 \
- $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \
- $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rename.m4 \
- $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/secure_getenv.m4 \
+ $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \
+ $(top_srcdir)/m4/putenv.m4 $(top_srcdir)/m4/quote.m4 \
+ $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/read-file.m4 \
+ $(top_srcdir)/m4/readdir.m4 $(top_srcdir)/m4/readlink.m4 \
+ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/regex.m4 \
+ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir.m4 \
+ $(top_srcdir)/m4/secure_getenv.m4 \
$(top_srcdir)/m4/selinux-context-h.m4 \
$(top_srcdir)/m4/selinux-selinux-h.m4 \
$(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale.m4 \
$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat.m4 \
- $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \
- $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
- $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdio_h.m4 \
- $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strdup.m4 \
- $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/string_h.m4 \
- $(top_srcdir)/m4/strverscmp.m4 $(top_srcdir)/m4/symlink.m4 \
- $(top_srcdir)/m4/sys_socket_h.m4 \
+ $(top_srcdir)/m4/std-gnu11.m4 $(top_srcdir)/m4/stdalign.m4 \
+ $(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \
+ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \
+ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
+ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \
+ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strverscmp.m4 \
+ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_socket_h.m4 \
$(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
$(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/tempname.m4 \
$(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/m4/time_h.m4 \
@@ -846,7 +848,6 @@ DIST_SUBDIRS = $(SUBDIRS)
am__DIST_COMMON = $(dist_man_MANS) $(doc_sed_TEXINFOS) \
$(srcdir)/Makefile.in $(srcdir)/config_h.in \
$(srcdir)/lib/gnulib.mk $(top_srcdir)/build-aux/ar-lib \
- $(top_srcdir)/build-aux/compile \
$(top_srcdir)/build-aux/config.guess \
$(top_srcdir)/build-aux/config.rpath \
$(top_srcdir)/build-aux/config.sub \
@@ -858,11 +859,11 @@ am__DIST_COMMON = $(dist_man_MANS) $(doc_sed_TEXINFOS) \
$(top_srcdir)/build-aux/texinfo.tex $(top_srcdir)/doc/local.mk \
$(top_srcdir)/lib/alloca.c $(top_srcdir)/lib/local.mk \
$(top_srcdir)/sed/local.mk $(top_srcdir)/testsuite/local.mk \
- ABOUT-NLS AUTHORS COPYING COPYING.DOC ChangeLog INSTALL NEWS \
- README THANKS build-aux/ar-lib build-aux/compile \
- build-aux/config.guess build-aux/config.rpath \
- build-aux/config.sub build-aux/depcomp build-aux/install-sh \
- build-aux/mdate-sh build-aux/missing build-aux/texinfo.tex
+ ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS \
+ build-aux/ar-lib build-aux/compile build-aux/config.guess \
+ build-aux/config.rpath build-aux/config.sub build-aux/depcomp \
+ build-aux/install-sh build-aux/mdate-sh build-aux/missing \
+ build-aux/texinfo.tex
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
@@ -1527,6 +1528,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
POSUB = @POSUB@
PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
@@ -1803,10 +1805,10 @@ BUILT_SOURCES = .version $(ALLOCA_H) lib/configmake.h lib/ctype.h \
CLEANFILES = lib/configmake.h lib/configmake.h-t lib/charset.alias \
lib/ref-add.sed lib/ref-del.sed tmp* core *.core \
$(EXTRA_PROGRAMS) *.*out *.log eval.in2
-EXTRA_DIST = BUGS THANKS.in COPYING.DOC .version .mailmap \
- ChangeLog-2014 po/ChangeLog-2014 bootstrap bootstrap.conf \
- build-aux/help2man thanks-gen lib/acl-internal.h lib/acl.h \
- lib/acl_entries.c lib/alignof.h lib/alloca.c lib/alloca.in.h \
+EXTRA_DIST = BUGS THANKS.in .version .mailmap ChangeLog-2014 \
+ po/ChangeLog-2014 bootstrap bootstrap.conf build-aux/help2man \
+ thanks-gen lib/acl-internal.h lib/acl.h lib/acl_entries.c \
+ lib/alignof.h lib/alloca.c lib/alloca.in.h \
$(top_srcdir)/build-aux/announce-gen lib/btowc.c \
lib/c-strcaseeq.h lib/canonicalize-lgpl.c lib/close-stream.h \
lib/closeout.h lib/ctype.in.h lib/dfa.h lib/localeinfo.h \
@@ -2045,7 +2047,7 @@ nodist_sed_libver_a_SOURCES = sed/version.c sed/version.h
info_TEXINFOS = doc/sed.texi
doc_sed_TEXINFOS = doc/config.texi doc/version.texi doc/fdl.texi
dist_man_MANS = doc/sed.1
-dist_noinst_DATA = doc/sed.x
+dist_noinst_DATA = doc/sed.x doc/sed-dummy.1
HELP2MAN = $(top_srcdir)/build-aux/help2man
SEDBIN = sed/sed
AM_MAKEINFOHTMLFLAGS = --no-split
@@ -2062,14 +2064,15 @@ T = testsuite/cmd-l.sh testsuite/cmd-R.sh \
testsuite/in-place-suffix-backup.sh \
testsuite/invalid-mb-seq-UMR.sh testsuite/mb-bad-delim.sh \
testsuite/mb-charclass-non-utf8.sh testsuite/mb-match-slash.sh \
- testsuite/mb-y-translate.sh testsuite/normalize-text.sh \
- testsuite/nulldata.sh testsuite/panic-tests.sh \
- testsuite/posix-char-class.sh testsuite/posix-mode-addr.sh \
- testsuite/posix-mode-bad-ref.sh testsuite/posix-mode-s.sh \
- testsuite/posix-mode-N.sh testsuite/range-overlap.sh \
- testsuite/recursive-escape-c.sh testsuite/regex-errors.sh \
- testsuite/sandbox.sh testsuite/stdin-prog.sh \
- testsuite/subst-options.sh testsuite/subst-mb-incomplete.sh \
+ testsuite/mb-y-translate.sh testsuite/newline-dfa-bug.sh \
+ testsuite/normalize-text.sh testsuite/nulldata.sh \
+ testsuite/panic-tests.sh testsuite/posix-char-class.sh \
+ testsuite/posix-mode-addr.sh testsuite/posix-mode-bad-ref.sh \
+ testsuite/posix-mode-s.sh testsuite/posix-mode-N.sh \
+ testsuite/range-overlap.sh testsuite/recursive-escape-c.sh \
+ testsuite/regex-errors.sh testsuite/sandbox.sh \
+ testsuite/stdin-prog.sh testsuite/subst-options.sh \
+ testsuite/subst-mb-incomplete.sh \
testsuite/subst-replacement.sh testsuite/temp-file-cleanup.sh \
testsuite/title-case.sh testsuite/unbuffered.sh \
$(am__append_1)
@@ -5769,15 +5772,20 @@ sed/version.h: Makefile
$(AM_V_at)chmod a-w $@t
$(AM_V_at)mv $@t $@
-doc/sed.1: sed/sed$(EXEEXT) .version $(srcdir)/doc/sed.x
- $(AM_V_GEN)$(MKDIR_P) doc
- $(AM_V_at)rm -rf $@ $@-t
- $(AM_V_at)$(HELP2MAN) \
- --name 'stream editor for filtering and transforming text' \
- -p sed --include $(srcdir)/doc/sed.x \
- -o $@-t $(SEDBIN) \
- && chmod a-w $@-t \
- && mv $@-t $@
+@BUILD_MAN_PAGE_TRUE@doc/sed.1: sed/sed$(EXEEXT) .version $(srcdir)/doc/sed.x
+@BUILD_MAN_PAGE_TRUE@ $(AM_V_GEN)$(MKDIR_P) doc
+@BUILD_MAN_PAGE_TRUE@ $(AM_V_at)rm -rf $@ $@-t
+@BUILD_MAN_PAGE_TRUE@ $(AM_V_at)$(HELP2MAN) \
+@BUILD_MAN_PAGE_TRUE@ --name 'stream editor for filtering and transforming text' \
+@BUILD_MAN_PAGE_TRUE@ -p sed --include $(srcdir)/doc/sed.x \
+@BUILD_MAN_PAGE_TRUE@ -o $@-t $(SEDBIN) \
+@BUILD_MAN_PAGE_TRUE@ && chmod a-w $@-t \
+@BUILD_MAN_PAGE_TRUE@ && mv $@-t $@
+
+@BUILD_DUMMY_MAN_PAGE_TRUE@@BUILD_MAN_PAGE_FALSE@doc/sed.1: doc/sed-dummy.1
+@BUILD_DUMMY_MAN_PAGE_TRUE@@BUILD_MAN_PAGE_FALSE@ $(AM_V_at)$(SED) 's/VERSION/$(PACKAGE_VERSION)/' $< > $@-t \
+@BUILD_DUMMY_MAN_PAGE_TRUE@@BUILD_MAN_PAGE_FALSE@ && chmod a-w $@-t \
+@BUILD_DUMMY_MAN_PAGE_TRUE@@BUILD_MAN_PAGE_FALSE@ && mv $@-t $@
# automake makes `check' depend on $(TESTS). Declare
# dummy targets for $(TESTS) so that make does not complain.
diff --git a/NEWS b/NEWS
index 6c610f2..9feb52b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,13 @@
GNU sed NEWS -*- outline -*-
+* Noteworthy changes in release 4.4 (2017-02-03) [stable]
+
+** Bug fixes
+
+ sed could segfault when invoked with specific combination of newlines
+ in the input and regex pattern. [Bug introduced in sed-4.3]
+
+
* Noteworthy changes in release 4.3 (2016-12-30) [stable]
** Improvements
@@ -12,7 +20,7 @@ GNU sed NEWS -*- outline -*-
** Bug fixes
sed no longer mishandles anchors ^/$ in multiline regex (s///mg)
- with -z option (NUL terminated lines). [Bug introducted in sed-4.2.2
+ with -z option (NUL terminated lines). [Bug introduced in sed-4.2.2
with the initial implementation of -z]
sed no longer accepts a ":" command without a label; before, it would
diff --git a/README b/README
index b746b5c..73ab337 100644
--- a/README
+++ b/README
@@ -5,8 +5,9 @@ GNU Sed website: https://www.gnu.org/software/sed/
See the NEWS file for a brief summary and the ChangeLog for
more detailed descriptions of changes.
-See the file INSTALL for generic compilation and installation
-instructions.
+If you obtained this file as part of a "git clone", then see the
+README-hacking file. If this file came to you as part of a tar archive,
+then see the file INSTALL for compilation and installation instructions.
See the file BUGS for instructions about reporting bugs.
diff --git a/THANKS b/THANKS
index 4f611ba..9be5920 100644
--- a/THANKS
+++ b/THANKS
@@ -69,6 +69,7 @@ Timothy J Luoma luomat@peak.org
Tom R.Hageman tom@basil.icce.rug.nl
Tristan Verniquet tverniquet@gmail.com
Ulrich Drepper drepper@redhat.com
+Vagelis Prokopiou drz4007@gmail.com
Vincenzo Romano vincenzo.romano@notorand.it
Vladimir Marek vladimir.marek@sun.com
Vladimir Volovich vvv@vvv.vsu.ru
diff --git a/aclocal.m4 b/aclocal.m4
index f4e972f..a648414 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1309,6 +1309,7 @@ m4_include([m4/opendir.m4])
m4_include([m4/pathmax.m4])
m4_include([m4/po.m4])
m4_include([m4/progtest.m4])
+m4_include([m4/pthread_rwlock_rdlock.m4])
m4_include([m4/putenv.m4])
m4_include([m4/quote.m4])
m4_include([m4/quotearg.m4])
@@ -1326,6 +1327,7 @@ m4_include([m4/setenv.m4])
m4_include([m4/setlocale.m4])
m4_include([m4/ssize_t.m4])
m4_include([m4/stat.m4])
+m4_include([m4/std-gnu11.m4])
m4_include([m4/stdalign.m4])
m4_include([m4/stdarg.m4])
m4_include([m4/stdbool.m4])
diff --git a/basicdefs.h b/basicdefs.h
index 0b574b3..4831236 100644
--- a/basicdefs.h
+++ b/basicdefs.h
@@ -1,5 +1,5 @@
/* GNU SED, a batch stream editor.
- Copyright (C) 1998-2016 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
diff --git a/bootstrap b/bootstrap
index 294c0bc..932ff85 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,10 +1,10 @@
#! /bin/sh
# Print a version string.
-scriptversion=2014-12-08.12; # UTC
+scriptversion=2017-01-09.19; # UTC
# Bootstrap this package from checked-out sources.
-# Copyright (C) 2003-2016 Free Software Foundation, Inc.
+# Copyright (C) 2003-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
@@ -42,7 +42,7 @@ export LC_ALL
local_gl_dir=gl
-# Honour $PERL, but work even if there is none
+# Honor $PERL, but work even if there is none.
PERL="${PERL-perl}"
me=$0
@@ -418,28 +418,30 @@ sort_ver() { # sort -V is not generally available
done
}
-get_version() {
- app=$1
+get_version_sed='
+# Move version to start of line.
+s/.*[v ]\([0-9]\)/\1/
- $app --version >/dev/null 2>&1 || { $app --version; return 1; }
+# Skip lines that do not start with version.
+/^[0-9]/!d
- $app --version 2>&1 |
- sed -n '# Move version to start of line.
- s/.*[v ]\([0-9]\)/\1/
+# Remove characters after the version.
+s/[^.a-z0-9-].*//
- # Skip lines that do not start with version.
- /^[0-9]/!d
+# The first component must be digits only.
+s/^\([0-9]*\)[a-z-].*/\1/
- # Remove characters after the version.
- s/[^.a-z0-9-].*//
+#the following essentially does s/5.005/5.5/
+s/\.0*\([1-9]\)/.\1/g
+p
+q'
- # The first component must be digits only.
- s/^\([0-9]*\)[a-z-].*/\1/
+get_version() {
+ app=$1
+
+ $app --version >/dev/null 2>&1 || { $app --version; return 1; }
- #the following essentially does s/5.005/5.5/
- s/\.0*\([1-9]\)/.\1/g
- p
- q'
+ $app --version 2>&1 | sed -n "$get_version_sed"
}
check_versions() {
@@ -788,7 +790,7 @@ symlink_to_dir()
# Leave any existing symlink alone, if it already points to the source,
# so that broken build tools that care about symlink times
# aren't confused into doing unnecessary builds. Conversely, if the
- # existing symlink's time stamp is older than the source, make it afresh,
+ # 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>.
test -h "$dst" &&
@@ -1021,6 +1023,6 @@ echo "$0: done. Now you can run './configure'."
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
diff --git a/bootstrap.conf b/bootstrap.conf
index fdbf3d7..99df71e 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -1,6 +1,6 @@
# Bootstrap configuration.
-# Copyright (C) 2006-2016 Free Software Foundation, Inc.
+# Copyright (C) 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
diff --git a/build-aux/announce-gen b/build-aux/announce-gen
index b461174..e789b13 100755
--- a/build-aux/announce-gen
+++ b/build-aux/announce-gen
@@ -9,7 +9,7 @@ my $VERSION = '2016-01-12 23:09'; # UTC
# If you change this file with Emacs, please let the write hook
# do its job. Otherwise, update this string manually.
-# Copyright (C) 2002-2016 Free Software Foundation, Inc.
+# Copyright (C) 2002-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
diff --git a/build-aux/config.guess b/build-aux/config.guess
index 2e9ad7f..bbd48b6 100755
--- a/build-aux/config.guess
+++ b/build-aux/config.guess
@@ -1,8 +1,8 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2016 Free Software Foundation, Inc.
+# Copyright 1992-2017 Free Software Foundation, Inc.
-timestamp='2016-10-02'
+timestamp='2017-01-01'
# 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
@@ -50,7 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2016 Free Software Foundation, Inc.
+Copyright 1992-2017 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."
diff --git a/build-aux/config.rpath b/build-aux/config.rpath
index 98183ff..af3c415 100755
--- a/build-aux/config.rpath
+++ b/build-aux/config.rpath
@@ -2,7 +2,7 @@
# Output a system dependent set of variables, describing how to set the
# run time search path of shared libraries in an executable.
#
-# Copyright 1996-2016 Free Software Foundation, Inc.
+# Copyright 1996-2017 Free Software Foundation, Inc.
# Taken from GNU libtool, 2001
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
diff --git a/build-aux/config.sub b/build-aux/config.sub
index 62b8259..7e792b4 100755
--- a/build-aux/config.sub
+++ b/build-aux/config.sub
@@ -1,8 +1,8 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2016 Free Software Foundation, Inc.
+# Copyright 1992-2017 Free Software Foundation, Inc.
-timestamp='2016-12-24'
+timestamp='2017-01-01'
# 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
@@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2016 Free Software Foundation, Inc.
+Copyright 1992-2017 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."
diff --git a/build-aux/depcomp b/build-aux/depcomp
index 28ce42a..b687232 100755
--- a/build-aux/depcomp
+++ b/build-aux/depcomp
@@ -3,7 +3,7 @@
scriptversion=2016-01-11.22; # UTC
-# Copyright (C) 1999-2015 Free Software Foundation, Inc.
+# Copyright (C) 1999-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
diff --git a/build-aux/do-release-commit-and-tag b/build-aux/do-release-commit-and-tag
index b4f3251..b72b15c 100755
--- a/build-aux/do-release-commit-and-tag
+++ b/build-aux/do-release-commit-and-tag
@@ -3,11 +3,11 @@
# 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-01-12.23 # UTC
+VERSION=2016-12-31.14 # UTC
# Note: this is a bash script (could be zsh or dash)
-# Copyright (C) 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 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
@@ -143,7 +143,7 @@ esac
# Ensure the current branch name is correct:
curr_br=$(git rev-parse --symbolic-full-name HEAD)
-test "$curr_br" = refs/heads/$branch || die not on branch $branch
+test "$curr_br" = "refs/heads/$branch" || die not on branch $branch
# Extract package name from Makefile.
Makefile=$builddir/Makefile
diff --git a/build-aux/gendocs.sh b/build-aux/gendocs.sh
index fef6280..3b71b36 100755
--- a/build-aux/gendocs.sh
+++ b/build-aux/gendocs.sh
@@ -2,9 +2,9 @@
# 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-05-20.09
+scriptversion=2016-12-31.18
-# Copyright 2003-2016 Free Software Foundation, Inc.
+# Copyright 2003-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
@@ -72,7 +72,7 @@ texarg="-t @finalout"
version="gendocs.sh $scriptversion
-Copyright 2016 Free Software Foundation, Inc.
+Copyright 2017 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."
diff --git a/build-aux/git-version-gen b/build-aux/git-version-gen
index bd2c4b6..079849d 100755
--- a/build-aux/git-version-gen
+++ b/build-aux/git-version-gen
@@ -1,8 +1,8 @@
#!/bin/sh
# Print a version string.
-scriptversion=2016-05-08.18; # UTC
+scriptversion=2017-01-09.19; # UTC
-# Copyright (C) 2007-2016 Free Software Foundation, Inc.
+# Copyright (C) 2007-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
@@ -200,7 +200,7 @@ v=`echo "$v" |sed "s/^$prefix//"`
# string we're using came from git. I.e., skip the test if it's "UNKNOWN"
# or if it came from .tarball-version.
if test "x$v_from_git" != x; then
- # Don't declare a version "dirty" merely because a time stamp has changed.
+ # Don't declare a version "dirty" merely because a timestamp has changed.
git update-index --refresh > /dev/null 2>&1
dirty=`exec 2>/dev/null;git diff-index --name-only HEAD` || dirty=
diff --git a/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog
index 83bafdf..cf16425 100755
--- a/build-aux/gitlog-to-changelog
+++ b/build-aux/gitlog-to-changelog
@@ -9,7 +9,7 @@ my $VERSION = '2016-03-22 21:49'; # UTC
# If you change this file with Emacs, please let the write hook
# do its job. Otherwise, update this string manually.
-# Copyright (C) 2008-2016 Free Software Foundation, Inc.
+# Copyright (C) 2008-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
diff --git a/build-aux/gnu-web-doc-update b/build-aux/gnu-web-doc-update
index 271e693..a8ed609 100755
--- a/build-aux/gnu-web-doc-update
+++ b/build-aux/gnu-web-doc-update
@@ -4,7 +4,7 @@
VERSION=2016-01-12.23; # UTC
-# Copyright (C) 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 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
diff --git a/build-aux/gnupload b/build-aux/gnupload
index 8d0299d..d4d95ee 100755
--- a/build-aux/gnupload
+++ b/build-aux/gnupload
@@ -3,7 +3,7 @@
scriptversion=2016-01-11.22; # UTC
-# Copyright (C) 2004-2016 Free Software Foundation, Inc.
+# Copyright (C) 2004-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
diff --git a/build-aux/help2man b/build-aux/help2man
index 262b947..ac3b293 100755
--- a/build-aux/help2man
+++ b/build-aux/help2man
@@ -1,7 +1,7 @@
#!/usr/bin/env perl
# Generate a short man page from --help and --version output.
-# Copyright (C) 1997-2016 Free Software Foundation, Inc.
+# Copyright (C) 1997-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
diff --git a/build-aux/mdate-sh b/build-aux/mdate-sh
index 6022eff..f80075c 100755
--- a/build-aux/mdate-sh
+++ b/build-aux/mdate-sh
@@ -3,7 +3,7 @@
scriptversion=2016-01-11.22; # UTC
-# Copyright (C) 1995-2015 Free Software Foundation, Inc.
+# Copyright (C) 1995-2017 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
diff --git a/build-aux/snippet/arg-nonnull.h b/build-aux/snippet/arg-nonnull.h
index 584649f..1e62cc8 100644
--- a/build-aux/snippet/arg-nonnull.h
+++ b/build-aux/snippet/arg-nonnull.h
@@ -1,5 +1,5 @@
/* A C macro for declaring that specific arguments must not be NULL.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/build-aux/snippet/c++defs.h b/build-aux/snippet/c++defs.h
index 2b819da..f03f359 100644
--- a/build-aux/snippet/c++defs.h
+++ b/build-aux/snippet/c++defs.h
@@ -1,5 +1,5 @@
/* C++ compatible function declaration macros.
- Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
diff --git a/build-aux/snippet/unused-parameter.h b/build-aux/snippet/unused-parameter.h
index 843db76..b300055 100644
--- a/build-aux/snippet/unused-parameter.h
+++ b/build-aux/snippet/unused-parameter.h
@@ -1,5 +1,5 @@
/* A C macro for declaring that specific function parameters are not used.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/build-aux/snippet/warn-on-use.h b/build-aux/snippet/warn-on-use.h
index 2948b47..3c0eb57 100644
--- a/build-aux/snippet/warn-on-use.h
+++ b/build-aux/snippet/warn-on-use.h
@@ -1,5 +1,5 @@
/* A C macro for emitting warnings if a function is used.
- Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
diff --git a/build-aux/texinfo.tex b/build-aux/texinfo.tex
index c8913ab..338bcf6 100644
--- a/build-aux/texinfo.tex
+++ b/build-aux/texinfo.tex
@@ -3,7 +3,7 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2016-09-18.18}
+\def\texinfoversion{2017-01-14.15}
%
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@@ -165,6 +165,9 @@
% Give the space character the catcode for a space.
\def\spaceisspace{\catcode`\ =10\relax}
+% Likewise for ^^M, the end of line character.
+\def\endlineisspace{\catcode13=10\relax}
+
\chardef\dashChar = `\-
\chardef\slashChar = `\/
\chardef\underChar = `\_
@@ -950,21 +953,14 @@ where each line of input produces a line of output.}
% @comment ...line which is ignored...
% @c is the same as @comment
% @ignore ... @end ignore is another way to write a comment
-%
-\def\comment{\begingroup \catcode`\^^M=\active%
-\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other\commentxxx}%
-{\catcode`\^^M=\active%
-\gdef\commentxxx#1^^M{\endgroup%
-\futurelet\nexttoken\commentxxxx}%
-\gdef\commentxxxx{\ifx\nexttoken\aftermacro\expandafter\comment\fi}%
-}
\def\c{\begingroup \catcode`\^^M=\active%
\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
\cxxx}
{\catcode`\^^M=\active \gdef\cxxx#1^^M{\endgroup}}
-% See comment in \scanmacro about why the definitions of @c and @comment differ
+%
+\let\comment\c
% @paragraphindent NCHARS
% We'll use ems for NCHARS, close enough.
@@ -8031,9 +8027,6 @@ end
}
\fi
-\let\aftermacroxxx\relax
-\def\aftermacro{\aftermacroxxx}
-
% alias because \c means cedilla in @tex or @math
\let\texinfoc=\c
@@ -8055,18 +8048,13 @@ end
\catcode`\\=\active
%
% Process the macro body under the current catcode regime.
- \scantokens{#1@texinfoc}\aftermacro%
+ \scantokens{#1@texinfoc}%
%
\catcode`\@=\savedcatcodeone
\catcode`\\=\savedcatcodetwo
%
% The \texinfoc is to remove the \newlinechar added by \scantokens, and
% can be noticed by \parsearg.
- % The \aftermacro allows a \comment at the end of the macro definition
- % to duplicate itself past the final \newlinechar added by \scantokens:
- % this is used in the definition of \group to comment out a newline. We
- % don't do the same for \c to support Texinfo files with macros that ended
- % with a @c, which should no longer be necessary.
% We avoid surrounding the call to \scantokens with \bgroup and \egroup
% to allow macros to open or close groups themselves.
}
@@ -8538,6 +8526,13 @@ end
\ifcase\paramno
% 0
\expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup
+ \noexpand\spaceisspace
+ \noexpand\endlineisspace
+ \noexpand\expandafter % skip any whitespace after the macro name.
+ \expandafter\noexpand\csname\the\macname @@@\endcsname}%
+ \expandafter\xdef\csname\the\macname @@@\endcsname{%
+ \egroup
\noexpand\scanmacro{\macrobody}}%
\or % 1
\expandafter\xdef\csname\the\macname\endcsname{%
diff --git a/build-aux/update-copyright b/build-aux/update-copyright
index 17ee6b1..2d20d21 100755
--- a/build-aux/update-copyright
+++ b/build-aux/update-copyright
@@ -5,7 +5,7 @@ eval '(exit $?0)' && eval 'exec perl -wS -0777 -pi "$0" "$@"'
my $VERSION = '2016-01-12.23:13'; # UTC
-# Copyright (C) 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 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
diff --git a/build-aux/useless-if-before-free b/build-aux/useless-if-before-free
index d7a8c0d..4e3f3a2 100755
--- a/build-aux/useless-if-before-free
+++ b/build-aux/useless-if-before-free
@@ -10,7 +10,7 @@ my $VERSION = '2016-08-01 17:47'; # UTC
# If you change this file with Emacs, please let the write hook
# do its job. Otherwise, update this string manually.
-# Copyright (C) 2008-2016 Free Software Foundation, Inc.
+# Copyright (C) 2008-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
diff --git a/build-aux/vc-list-files b/build-aux/vc-list-files
index c5c420a..2d17eaf 100755
--- a/build-aux/vc-list-files
+++ b/build-aux/vc-list-files
@@ -4,7 +4,7 @@
# Print a version string.
scriptversion=2016-01-11.22; # UTC
-# Copyright (C) 2006-2016 Free Software Foundation, Inc.
+# Copyright (C) 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
diff --git a/config_h.in b/config_h.in
index d6bf61d..1a4e470 100644
--- a/config_h.in
+++ b/config_h.in
@@ -762,6 +762,10 @@
/* Define if the POSIX multithreading library has read/write locks. */
#undef HAVE_PTHREAD_RWLOCK
+/* Define if the 'pthread_rwlock_rdlock' function prefers a writer to a
+ reader. */
+#undef HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER
+
/* Define to 1 if alphasort is declared even after undefining macros. */
#undef HAVE_RAW_DECL_ALPHASORT
diff --git a/configure b/configure
index c886aeb..e1ff0cb 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69.183-96821 for GNU sed 4.3.
+# Generated by GNU Autoconf 2.69.183-96821 for GNU sed 4.4.
#
# Report bugs to <bug-sed@gnu.org>.
#
@@ -565,8 +565,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='GNU sed'
PACKAGE_TARNAME='sed'
-PACKAGE_VERSION='4.3'
-PACKAGE_STRING='GNU sed 4.3'
+PACKAGE_VERSION='4.4'
+PACKAGE_STRING='GNU sed 4.4'
PACKAGE_BUGREPORT='bug-sed@gnu.org'
PACKAGE_URL='http://www.gnu.org/software/sed/'
@@ -612,6 +612,13 @@ am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
LIBOBJS
+BUILD_DUMMY_MAN_PAGE_FALSE
+BUILD_DUMMY_MAN_PAGE_TRUE
+BUILD_MAN_PAGE_FALSE
+BUILD_MAN_PAGE_TRUE
+PERL
+CROSS_COMPILING_FALSE
+CROSS_COMPILING_TRUE
GNULIB_TEST_WARN_CFLAGS
WARN_CFLAGS
WERROR_CFLAGS
@@ -2074,7 +2081,7 @@ if test "$ac_init_help" = "long"; then
# 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 sed 4.3 to adapt to many kinds of systems.
+\`configure' configures GNU sed 4.4 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -2145,7 +2152,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of GNU sed 4.3:";;
+ short | recursive ) echo "Configuration of GNU sed 4.4:";;
esac
cat <<\_ACEOF
@@ -2270,7 +2277,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-GNU sed configure 4.3
+GNU sed configure 4.4
generated by GNU Autoconf 2.69.183-96821
Copyright (C) 2016 Free Software Foundation, Inc.
@@ -2907,7 +2914,7 @@ 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 sed $as_me 4.3, which was
+It was created by GNU sed $as_me 4.4, which was
generated by GNU Autoconf 2.69.183-96821. Invocation command line was
$ $0 $@
@@ -3864,7 +3871,7 @@ fi
# Define the identity of the package.
PACKAGE='sed'
- VERSION='4.3'
+ VERSION='4.4'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -5421,66 +5428,6 @@ 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
-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 $CC understands -c and -o together" >&5
-printf %s "checking whether $CC understands -c and -o together... " >&6; }
-if test ${am_cv_prog_cc_c_o+y}
-then :
- printf %s "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
- ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-printf "%s\n" "$am_cv_prog_cc_c_o" >&6; }
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-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
-
-
depcc="$CC" am_compiler_list=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
@@ -6924,6 +6871,7 @@ fi
# Code from module c-strcase:
# Code from module c-strcase-tests:
# Code from module c-strcaseeq:
+ # Code from module c99:
# Code from module canonicalize-lgpl:
# Code from module canonicalize-lgpl-tests:
# Code from module chdir:
@@ -7114,6 +7062,7 @@ fi
# Code from module stat:
# Code from module stat-macros:
# Code from module stat-tests:
+ # Code from module std-gnu11:
# Code from module stdalign:
# Code from module stdalign-tests:
# Code from module stdarg:
@@ -19313,15 +19262,171 @@ printf "%s\n" "#define GNULIB_TEST_LOCALECONV 1" >>confdefs.h
if test "$gl_threads_api" = posix; then
# OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the
# pthread_rwlock_* functions.
+ has_rwlock=false
ac_fn_c_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include <pthread.h>
"
if test "x$ac_cv_type_pthread_rwlock_t" = xyes
then :
+ has_rwlock=true
printf "%s\n" "#define HAVE_PTHREAD_RWLOCK 1" >>confdefs.h
fi
+ if $has_rwlock; then
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthread_rwlock_rdlock prefers a writer to a reader" >&5
+printf %s "checking whether pthread_rwlock_rdlock prefers a writer to a reader... " >&6; }
+if test ${gl_cv_pthread_rwlock_rdlock_prefer_writer+y}
+then :
+ printf %s "(cached) " >&6
+else
+ save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBMULTITHREAD"
+ if test "$cross_compiling" = yes
+then :
+ gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing yes"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <errno.h>
+#include <pthread.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#define SUCCEED() exit (0)
+#define FAILURE() exit (1)
+#define UNEXPECTED(n) (exit (10 + (n)))
+
+/* The main thread creates the waiting writer and the requesting reader threads
+ in the default way; this guarantees that they have the same priority.
+ We can reuse the main thread as first reader thread. */
+
+static pthread_rwlock_t lock;
+static pthread_t reader1;
+static pthread_t writer;
+static pthread_t reader2;
+static pthread_t timer;
+/* Used to pass control from writer to reader2 and from reader2 to timer,
+ as in a relay race.
+ Passing control from one running thread to another running thread
+ is most likely faster than to create the second thread. */
+static pthread_mutex_t baton;
+
+static void *
+timer_func (void *ignored)
+{
+ /* Step 13 (can be before or after step 12):
+ The timer thread takes the baton, then waits a moment to make sure
+ it can tell whether the second reader thread is blocked at step 12. */
+ if (pthread_mutex_lock (&baton))
+ UNEXPECTED (13);
+ usleep (100000);
+ /* By the time we get here, it's clear that the second reader thread is
+ blocked at step 12. This is the desired behaviour. */
+ SUCCEED ();
+}
+
+static void *
+reader2_func (void *ignored)
+{
+ int err;
+
+ /* Step 8 (can be before or after step 7):
+ The second reader thread takes the baton, then waits a moment to make sure
+ the writer thread has reached step 7. */
+ if (pthread_mutex_lock (&baton))
+ UNEXPECTED (8);
+ usleep (100000);
+ /* Step 9: The second reader thread requests the lock. */
+ err = pthread_rwlock_tryrdlock (&lock);
+ if (err == 0)
+ FAILURE ();
+ else if (err != EBUSY)
+ UNEXPECTED (9);
+ /* Step 10: Launch a timer, to test whether the next call blocks. */
+ if (pthread_create (&timer, NULL, timer_func, NULL))
+ UNEXPECTED (10);
+ /* Step 11: Release the baton. */
+ if (pthread_mutex_unlock (&baton))
+ UNEXPECTED (11);
+ /* Step 12: The second reader thread requests the lock. */
+ err = pthread_rwlock_rdlock (&lock);
+ if (err == 0)
+ FAILURE ();
+ else
+ UNEXPECTED (12);
+}
+
+static void *
+writer_func (void *ignored)
+{
+ /* Step 4: Take the baton, so that the second reader thread does not go ahead
+ too early. */
+ if (pthread_mutex_lock (&baton))
+ UNEXPECTED (4);
+ /* Step 5: Create the second reader thread. */
+ if (pthread_create (&reader2, NULL, reader2_func, NULL))
+ UNEXPECTED (5);
+ /* Step 6: Release the baton. */
+ if (pthread_mutex_unlock (&baton))
+ UNEXPECTED (6);
+ /* Step 7: The writer thread requests the lock. */
+ if (pthread_rwlock_wrlock (&lock))
+ UNEXPECTED (7);
+ return NULL;
+}
+
+int
+main ()
+{
+ reader1 = pthread_self ();
+
+ /* Step 1: The main thread initializes the lock and the baton. */
+ if (pthread_rwlock_init (&lock, NULL))
+ UNEXPECTED (1);
+ if (pthread_mutex_init (&baton, NULL))
+ UNEXPECTED (1);
+ /* Step 2: The main thread acquires the lock as a reader. */
+ if (pthread_rwlock_rdlock (&lock))
+ UNEXPECTED (2);
+ /* Step 3: Create the writer thread. */
+ if (pthread_create (&writer, NULL, writer_func, NULL))
+ UNEXPECTED (3);
+ /* Job done. Go to sleep. */
+ for (;;)
+ {
+ sleep (1);
+ }
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+ gl_cv_pthread_rwlock_rdlock_prefer_writer=yes
+else
+ gl_cv_pthread_rwlock_rdlock_prefer_writer=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ LIBS="$save_LIBS"
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pthread_rwlock_rdlock_prefer_writer" >&5
+printf "%s\n" "$gl_cv_pthread_rwlock_rdlock_prefer_writer" >&6; }
+ case "$gl_cv_pthread_rwlock_rdlock_prefer_writer" in
+ *yes)
+
+printf "%s\n" "#define HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER 1" >>confdefs.h
+
+ ;;
+ esac
+
+ fi
# glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -33344,6 +33449,107 @@ printf "%s\n" "#define GNULIB_PORTCHECK 1" >>confdefs.h
fi
+ if test "$cross_compiling" = yes; then
+ CROSS_COMPILING_TRUE=
+ CROSS_COMPILING_FALSE='#'
+else
+ CROSS_COMPILING_TRUE='#'
+ CROSS_COMPILING_FALSE=
+fi
+
+
+# Perl is needed for help2man
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PERL+y}
+then :
+ printf %s "(cached) " >&6
+else
+ case $PERL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PERL="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PERL=$ac_cv_path_PERL
+if test -n "$PERL"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+printf "%s\n" "$PERL" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+
+# building from tarball?
+built_from_tarball=no
+test -f "$srcdir"/.tarball-version && \
+ ! test -d "$srcdir/.git" && \
+ built_from_tarball=yes
+
+# Can the man page be built?
+# Perl needed for help2man, executing sed needed for 'sed --help'
+can_rebuild_man_page=no
+test -n "$PERL" && \
+ test "$cross_compiling" != yes && \
+ can_rebuild_man_page=yes
+
+# Build the man page when
+# building from git and rebuilding is possible.
+ if test "$built_from_tarball" = no && \
+ test "$can_rebuild_man_page" = yes; then
+ BUILD_MAN_PAGE_TRUE=
+ BUILD_MAN_PAGE_FALSE='#'
+else
+ BUILD_MAN_PAGE_TRUE='#'
+ BUILD_MAN_PAGE_FALSE=
+fi
+
+
+# Create a stub man page instead of failing when
+# building from git and rebuilding is not possible.
+ if test "$built_from_tarball" = no && \
+ test "$can_rebuild_man_page" = no; then
+ BUILD_DUMMY_MAN_PAGE_TRUE=
+ BUILD_DUMMY_MAN_PAGE_FALSE='#'
+else
+ BUILD_DUMMY_MAN_PAGE_TRUE='#'
+ BUILD_DUMMY_MAN_PAGE_FALSE=
+fi
+
+
+
+# This is needed when building outside the source dir
+# with --disable-dependency-tracking, see https://bugs.gnu.org/25371
+as_dir=lib; as_fn_mkdir_p
+as_dir=sed; as_fn_mkdir_p
+as_dir=doc; as_fn_mkdir_p
+as_dir=testsuite; as_fn_mkdir_p
+
ac_config_files="$ac_config_files Makefile po/Makefile.in gnulib-tests/Makefile"
cat >confcache <<\_ACEOF
@@ -33593,6 +33799,18 @@ if test -z "${TEST_REGEX_TRUE}" && test -z "${TEST_REGEX_FALSE}"; then
as_fn_error $? "conditional \"TEST_REGEX\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${CROSS_COMPILING_TRUE}" && test -z "${CROSS_COMPILING_FALSE}"; then
+ as_fn_error $? "conditional \"CROSS_COMPILING\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${BUILD_MAN_PAGE_TRUE}" && test -z "${BUILD_MAN_PAGE_FALSE}"; then
+ as_fn_error $? "conditional \"BUILD_MAN_PAGE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${BUILD_DUMMY_MAN_PAGE_TRUE}" && test -z "${BUILD_DUMMY_MAN_PAGE_FALSE}"; then
+ as_fn_error $? "conditional \"BUILD_DUMMY_MAN_PAGE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
@@ -33962,7 +34180,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by GNU sed $as_me 4.3, which was
+This file was extended by GNU sed $as_me 4.4, which was
generated by GNU Autoconf 2.69.183-96821. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -34034,7 +34252,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`printf "%s\n" "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-GNU sed config.status 4.3
+GNU sed config.status 4.4
configured by $0, generated by GNU Autoconf 2.69.183-96821,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 1b121d9..8076382 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-# Copyright (C) 1993-2016 Free Software Foundation, Inc.
+# Copyright (C) 1993-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
@@ -294,6 +294,44 @@ if test "$gl_gcc_warnings" = yes; then
AC_SUBST([GNULIB_TEST_WARN_CFLAGS])
fi
+AM_CONDITIONAL([CROSS_COMPILING], [test "$cross_compiling" = yes])
+
+# Perl is needed for help2man
+AC_PATH_PROG([PERL], [perl])
+
+# building from tarball?
+built_from_tarball=no
+test -f "$srcdir"/.tarball-version && \
+ ! test -d "$srcdir/.git" && \
+ built_from_tarball=yes
+
+# Can the man page be built?
+# Perl needed for help2man, executing sed needed for 'sed --help'
+can_rebuild_man_page=no
+test -n "$PERL" && \
+ test "$cross_compiling" != yes && \
+ can_rebuild_man_page=yes
+
+# Build the man page when
+# building from git and rebuilding is possible.
+AM_CONDITIONAL([BUILD_MAN_PAGE],
+ [test "$built_from_tarball" = no && \
+ test "$can_rebuild_man_page" = yes])
+
+# Create a stub man page instead of failing when
+# building from git and rebuilding is not possible.
+AM_CONDITIONAL([BUILD_DUMMY_MAN_PAGE],
+ [test "$built_from_tarball" = no && \
+ test "$can_rebuild_man_page" = no])
+
+
+# This is needed when building outside the source dir
+# with --disable-dependency-tracking, see https://bugs.gnu.org/25371
+AS_MKDIR_P([lib])
+AS_MKDIR_P([sed])
+AS_MKDIR_P([doc])
+AS_MKDIR_P([testsuite])
+
AC_CONFIG_FILES([
Makefile
po/Makefile.in
diff --git a/doc/local.mk b/doc/local.mk
index 21d9344..3026c64 100644
--- a/doc/local.mk
+++ b/doc/local.mk
@@ -1,4 +1,4 @@
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -16,12 +16,13 @@
info_TEXINFOS = doc/sed.texi
doc_sed_TEXINFOS = doc/config.texi doc/version.texi doc/fdl.texi
dist_man_MANS = doc/sed.1
-dist_noinst_DATA = doc/sed.x
+dist_noinst_DATA = doc/sed.x doc/sed-dummy.1
HELP2MAN = $(top_srcdir)/build-aux/help2man
SEDBIN = sed/sed
AM_MAKEINFOHTMLFLAGS = --no-split
+if BUILD_MAN_PAGE
doc/sed.1: sed/sed$(EXEEXT) .version $(srcdir)/doc/sed.x
$(AM_V_GEN)$(MKDIR_P) doc
$(AM_V_at)rm -rf $@ $@-t
@@ -31,3 +32,13 @@ doc/sed.1: sed/sed$(EXEEXT) .version $(srcdir)/doc/sed.x
-o $@-t $(SEDBIN) \
&& chmod a-w $@-t \
&& mv $@-t $@
+else !BUILD_MAN_PAGE
+
+if BUILD_DUMMY_MAN_PAGE
+doc/sed.1: doc/sed-dummy.1
+ $(AM_V_at)$(SED) 's/VERSION/$(PACKAGE_VERSION)/' $< > $@-t \
+ && chmod a-w $@-t \
+ && mv $@-t $@
+endif BUILD_DUMMY_MAN_PAGE
+
+endif !BUILD_MAN_PAGE
diff --git a/doc/sed-dummy.1 b/doc/sed-dummy.1
new file mode 100644
index 0000000..3832baf
--- /dev/null
+++ b/doc/sed-dummy.1
@@ -0,0 +1,17 @@
+.TH SED "1" "VERSION" "User Commands"
+.SH NAME
+sed \- stream editor for filtering and transforming text
+.SH SYNOPSIS
+.B sed
+[\fIOPTION\fR]... \fI{script-only-if-no-other-script} \fR[\fIinput-file\fR]...
+.SH DESCRIPTION
+.B OOOPS!
+.B sed
+manual page could not be built (missing perl or
+cross-compilation).
+.PP
+For the full documentation for
+.B sed
+see
+.UR http://www.gnu.org/software/sed
+GNU SED Website (http://www.gnu.org/software/sed)
diff --git a/doc/sed.1 b/doc/sed.1
index 3d71e44..2db3cdc 100644
--- a/doc/sed.1
+++ b/doc/sed.1
@@ -1,5 +1,5 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.28.
-.TH SED "1" "December 2016" "sed 4.3" "User Commands"
+.TH SED "1" "February 2017" "sed 4.4" "User Commands"
.SH NAME
sed \- stream editor for filtering and transforming text
.SH SYNOPSIS
@@ -387,7 +387,7 @@ GNU sed home page: <http://www.gnu.org/software/sed/>.
General help using GNU software: <http://www.gnu.org/gethelp/>.
E-mail bug reports to: <bug-sed@gnu.org>.
.SH COPYRIGHT
-Copyright \(co 2016 Free Software Foundation, Inc.
+Copyright \(co 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
.br
This is free software: you are free to change and redistribute it.
diff --git a/doc/sed.info b/doc/sed.info
index 6caa43c..92e42d4 100644
--- a/doc/sed.info
+++ b/doc/sed.info
@@ -1,8 +1,8 @@
This is sed.info-t, produced by makeinfo version 6.3 from sed.texi.
-This file documents version 4.3 of GNU 'sed', a stream editor.
+This file documents version 4.4 of GNU 'sed', a stream editor.
- Copyright (C) 1998-2016 Free Software Foundation, Inc.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@@ -22,9 +22,9 @@ File: sed.info-t, Node: Top, Next: Introduction, Up: (dir)
GNU 'sed'
*********
-This file documents version 4.3 of GNU 'sed', a stream editor.
+This file documents version 4.4 of GNU 'sed', a stream editor.
- Copyright (C) 1998-2016 Free Software Foundation, Inc.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@@ -348,6 +348,7 @@ File: sed.info-t, Node: sed scripts, Next: sed addresses, Prev: Invoking sed,
* Other Commands:: Less frequently used commands
* Programming Commands:: Commands for 'sed' gurus
* Extended Commands:: Commands specific of GNU 'sed'
+* Multiple commands syntax:: Extension for easier scripting

File: sed.info-t, Node: sed script overview, Next: sed commands list, Up: sed scripts
@@ -409,7 +410,7 @@ and replacing all occurrences of the string 'hello' with 'world':
semicolons working as command separators and thus should be terminated
with newlines or be placed at the end of a SCRIPT or SCRIPT-FILE.
Commands can also be preceded with optional non-significant whitespace
-characters.
+characters. *Note Multiple commands syntax::.

File: sed.info-t, Node: sed commands list, Next: The "s" Command, Prev: sed script overview, Up: sed scripts
@@ -675,10 +676,10 @@ FLAGS:
command show their effect just once. This behavior, although
documented, might change in future versions.
-'w FILE-NAME'
+'w FILENAME'
If the substitution was made, then write out the result to the
named file. As a GNU 'sed' extension, two special values of
- FILE-NAME are supported: '/dev/stderr', which writes the result to
+ FILENAME are supported: '/dev/stderr', which writes the result to
the standard error, and '/dev/stdout', which writes to the standard
output.(1)
@@ -849,7 +850,7 @@ commands.
hello
3
- Leading whitespaces after the 'a' command are ignored. The text to
+ Leading whitespace after the 'a' command is ignored. The text to
add is read until the end of the line.
'a\'
@@ -908,7 +909,7 @@ commands.
2
3
- Leading whitespaces after the 'i' command are ignored. The text to
+ Leading whitespace after the 'i' command is ignored. The text to
add is read until the end of the line.
'i\'
@@ -961,7 +962,7 @@ commands.
hello
10
- Leading whitespaces after the 'c' command are ignored. The text to
+ Leading whitespace after the 'c' command is ignored. The text to
add is read until the end of the line.
'c\'
@@ -1050,7 +1051,7 @@ commands.
'w FILENAME'
Write the pattern space to FILENAME. As a GNU 'sed' extension, two
- special values of FILE-NAME are supported: '/dev/stderr', which
+ special values of FILENAME are supported: '/dev/stderr', which
writes the result to the standard error, and '/dev/stdout', which
writes to the standard output.(1)
@@ -1130,7 +1131,7 @@ can enable one to write quite convoluted scripts.
The LABEL may be omitted, in which case the next cycle is started.

-File: sed.info-t, Node: Extended Commands, Prev: Programming Commands, Up: sed scripts
+File: sed.info-t, Node: Extended Commands, Next: Multiple commands syntax, Prev: Programming Commands, Up: sed scripts
3.7 Commands Specific to GNU 'sed'
==================================
@@ -1222,6 +1223,177 @@ required quite often, yet are unsupported by standard 'sed's.
the script in most multibyte locales (including UTF-8 locales).

+File: sed.info-t, Node: Multiple commands syntax, Prev: Extended Commands, Up: sed scripts
+
+3.8 Multiple commands syntax
+============================
+
+There are several methods to specify multiple commands in a 'sed'
+program.
+
+ Using newlines is most natural when running a sed script from a file
+(using the '-f' option).
+
+ On the command line, all 'sed' commands may be separated by newlines.
+Alternatively, you may specify each command as an argument to an '-e'
+option:
+
+ $ seq 6 | sed '1d
+ 3d
+ 5d'
+ 2
+ 4
+ 6
+
+ $ seq 6 | sed -e 1d -e 3d -e 5d
+ 2
+ 4
+ 6
+
+ A semicolon (';') may be used to separate most simple commands:
+
+ $ seq 6 | sed '1d;3d;5d'
+ 2
+ 4
+ 6
+
+ The '{','}','b','t','T',':' commands can be separated with a
+semicolon (this is a non-portable GNU 'sed' extension).
+
+ $ seq 4 | sed '{1d;3d}'
+ 2
+ 4
+
+ $ seq 6 | sed '{1d;3d};5d'
+ 2
+ 4
+ 6
+
+ Labels used in 'b','t','T',':' commands are read until a semicolon.
+Leading and trailing whitespace is ignored. In the examples below the
+label is 'x'. The first example works with GNU 'sed'. The second is a
+portable equivalent. For more information about branching and labels
+*note Branching and flow control::.
+
+ $ seq 3 | sed '/1/b x ; s/^/=/ ; :x ; 3d'
+ 1
+ =2
+
+ $ seq 3 | sed -e '/1/bx' -e 's/^/=/' -e ':x' -e '3d'
+ 1
+ =2
+
+3.8.1 Commands Requiring a newline
+----------------------------------
+
+The following commands cannot be separated by a semicolon and require a
+newline:
+
+'a','c','i' (append/change/insert)
+
+ All characters following 'a','c','i' commands are taken as the text
+ to append/change/insert. Using a semicolon leads to undesirable
+ results:
+
+ $ seq 2 | sed '1aHello ; 2d'
+ 1
+ Hello ; 2d
+ 2
+
+ Separate the commands using '-e' or a newline:
+
+ $ seq 2 | sed -e 1aHello -e 2d
+ 1
+ Hello
+
+ $ seq 2 | sed '1aHello
+ 2d'
+ 1
+ Hello
+
+ Note that specifying the text to add ('Hello') immediately after
+ 'a','c','i' is itself a GNU 'sed' extension. A portable,
+ POSIX-compliant alternative is:
+
+ $ seq 2 | sed '1a\
+ Hello
+ 2d'
+ 1
+ Hello
+
+'#' (comment)
+
+ All characters following '#' until the next newline are ignored.
+
+ $ seq 3 | sed '# this is a comment ; 2d'
+ 1
+ 2
+ 3
+
+
+ $ seq 3 | sed '# this is a comment
+ 2d'
+ 1
+ 3
+
+'r','R','w','W' (reading and writing files)
+
+ The 'r','R','w','W' commands parse the filename until end of the
+ line. If whitespace, comments or semicolons are found, they will
+ be included in the filename, leading to unexpected results:
+
+ $ seq 2 | sed '1w hello.txt ; 2d'
+ 1
+ 2
+
+ $ ls -log
+ total 4
+ -rw-rw-r-- 1 2 Jan 23 23:03 hello.txt ; 2d
+
+ $ cat 'hello.txt ; 2d'
+ 1
+
+ Note that 'sed' silently ignores read/write errors in
+ 'r','R','w','W' commands (such as missing files). In the following
+ example, 'sed' tries to read a file named ''hello.txt ; N''. The
+ file is missing, and the error is silently ignored:
+
+ $ echo x | sed '1rhello.txt ; N'
+ x
+
+'e' (command execution)
+
+ Any characters following the 'e' command until the end of the line
+ will be sent to the shell. If whitespace, comments or semicolons
+ are found, they will be included in the shell command, leading to
+ unexpected results:
+
+ $ echo a | sed '1e touch foo#bar'
+ a
+
+ $ ls -1
+ foo#bar
+
+ $ echo a | sed '1e touch foo ; s/a/b/'
+ sh: 1: s/a/b/: not found
+ a
+
+'s///[we]' (substitute with 'e' or 'w' flags)
+
+ In a substitution command, the 'w' flag writes the substitution
+ result to a file, and the 'e' flag executes the subsitution result
+ as a shell command. As with the 'r/R/w/W/e' commands, these must
+ be terminated with a newline. If whitespace, comments or
+ semicolons are found, they will be included in the shell command or
+ filename, leading to unexpected results:
+
+ $ echo a | sed 's/a/b/w1.txt#foo'
+ b
+
+ $ ls -1
+ 1.txt#foo
+
+
File: sed.info-t, Node: sed addresses, Next: sed regular expressions, Prev: sed scripts, Up: Top
4 Addresses: selecting lines
@@ -2290,7 +2462,7 @@ commands:
and the next line to the pattern space (i.e. '1', '\n', '2' in the
first cycle).
3. The 'l' command prints the content of the pattern space
- unambigiously.
+ unambiguously.
4. The 'D' command then removes the content of pattern space up to the
first newline (leaving '2' at the end of the first cycle).
5. At the next cycle the 'N' command appends a newline and the next
@@ -2355,7 +2527,207 @@ File: sed.info-t, Node: Branching and flow control, Prev: Multiline techniques
6.4 Branching and Flow Control
==============================
-TODO
+The branching commands 'b', 't', and 'T' enable changing the flow of
+'sed' programs.
+
+ By default, 'sed' reads an input line into the pattern buffer, then
+continues to processes all commands in order. Commands without
+addresses affect all lines. Commands with addresses affect only
+matching lines. *Note Execution Cycle:: and *note Addresses overview::.
+
+ 'sed' does not support a typical 'if/then' construct. Instead, some
+commands can be used as conditionals or to change the default flow
+control:
+
+'d'
+ delete (clears) the current pattern space, and restart the program
+ cycle without processing the rest of the commands and without
+ printing the pattern space.
+
+'D'
+ delete the contents of the pattern space _up to the first newline_,
+ and restart the program cycle without processing the rest of the
+ commands and without printing the pattern space.
+
+'[addr]X'
+'[addr]{ X ; X ; X }'
+'/regexp/X'
+'/regexp/{ X ; X ; X }'
+ Addresses and regular expressions can be used as an 'if/then'
+ conditional: If [ADDR] matches the current pattern space, execute
+ the command(s). For example: The command '/^#/d' means: _if_ the
+ current pattern matches the regular expression '^#' (a line
+ starting with a hash), _then_ execute the 'd' command: delete the
+ line without printing it, and restart the program cycle
+ immediately.
+
+'b'
+ branch unconditionally (that is: always jump to a label, skipping
+ or repeating other commands, without restarting a new cycle).
+ Combined with an address, the branch can be conditionally executed
+ on matched lines.
+
+'t'
+ branch conditionally (that is: jump to a label) _only if_ a 's///'
+ command has succeeded since the last input line was read or another
+ conditional branch was taken.
+
+'T'
+ similar but opposite to the 't' command: branch only if there has
+ been _no_ successful substitutions since the last input line was
+ read.
+
+ The following two 'sed' programs are equivalent. The first
+(contrived) example uses the 'b' command to skip the 's///' command on
+lines containing '1'. The second example uses an address with negation
+('!') to perform substitution only on desired lines. The 'y///' command
+is still executed on all lines:
+
+ $ printf '%s\n' a1 a2 a3 | sed -E '/1/bx ; s/a/z/ ; :x ; y/123/456/'
+ a4
+ z5
+ z6
+
+ $ printf '%s\n' a1 a2 a3 | sed -E '/1/!s/a/z/ ; y/123/456/'
+ a4
+ z5
+ z6
+
+6.4.1 Branching and Cycles
+--------------------------
+
+The 'b','t' and 'T' commands can be followed by a label (typically a
+single letter). Labels are defined with a colon followed by one or more
+letters (e.g. ':x'). If the label is omitted the branch commands
+restart the cycle. Note the difference between branching to a label and
+restarting the cycle: when a cycle is restarted, 'sed' first prints the
+current content of the pattern space, then reads the next input line
+into the pattern space; Jumping to a label (even if it is at the
+beginning of the program) does not print the pattern space and does not
+read the next input line.
+
+ The following program is a no-op. The 'b' command (the only command
+in the program) does not have a label, and thus simply restarts the
+cycle. On each cycle, the pattern space is printed and the next input
+line is read:
+
+ $ seq 3 | sed b
+ 1
+ 2
+ 3
+
+ The following example is an infinite-loop - it doesn't terminate and
+doesn't print anything. The 'b' command jumps to the 'x' label, and a
+new cycle is never started:
+
+ $ seq 3 | sed ':x ; bx'
+
+ # The above command requires gnu sed (which supports additional
+ # commands following a label, without a newline). A portable equivalent:
+ # sed -e ':x' -e bx
+
+ Branching is often complemented with the 'n' or 'N' commands: both
+commands read the next input line into the pattern space without waiting
+for the cycle to restart. Before reading the next input line, 'n'
+prints the current pattern space then empties it, while 'N' appends a
+newline and the next input line to the pattern space.
+
+ Consider the following two examples:
+
+ $ seq 3 | sed ':x ; n ; bx'
+ 1
+ 2
+ 3
+
+ $ seq 3 | sed ':x ; N ; bx'
+ 1
+ 2
+ 3
+
+ * Both examples do not inf-loop, despite never starting a new cycle.
+
+ * In the first example, the 'n' commands first prints the content of
+ the pattern space, empties the pattern space then reads the next
+ input line.
+
+ * In the second example, the 'N' commands appends the next input line
+ to the pattern space (with a newline). Lines are accumulated in
+ the pattern space until there are no more input lines to read, then
+ the 'N' command terminates the 'sed' program. When the program
+ terminates, the end-of-cycle actions are performed, and the entire
+ pattern space is printed.
+
+ * The second example requires GNU 'sed', because it uses the
+ non-POSIX-standard behavior of 'N'. See the "'N' command on the
+ last line" paragraph in *note Reporting Bugs::.
+
+ * To further examine the difference between the two examples, try the
+ following commands:
+ printf '%s\n' aa bb cc dd | sed ':x ; n ; = ; bx'
+ printf '%s\n' aa bb cc dd | sed ':x ; N ; = ; bx'
+ printf '%s\n' aa bb cc dd | sed ':x ; n ; s/\n/***/ ; bx'
+ printf '%s\n' aa bb cc dd | sed ':x ; N ; s/\n/***/ ; bx'
+
+6.4.2 Branching example: joining lines
+--------------------------------------
+
+As a real-world example of using branching, consider the case of
+quoted-printable (https://en.wikipedia.org/wiki/Quoted-printable) files,
+typically used to encode email messages. In these files long lines are
+split and marked with a "soft line break" consisting of a single '='
+character at the end of the line:
+
+ $ cat jaques.txt
+ All the wor=
+ ld's a stag=
+ e,
+ And all the=
+ men and wo=
+ men merely =
+ players:
+ They have t=
+ heir exits =
+ and their e=
+ ntrances;
+ And one man=
+ in his tim=
+ e plays man=
+ y parts.
+
+ The following program uses an address match '/=$/' as a conditional:
+If the current pattern space ends with a '=', it reads the next input
+line using 'N', replaces all '=' characters which are followed by a
+newline, and unconditionally branches ('b') to the beginning of the
+program without restarting a new cycle. If the pattern space does not
+ends with '=', the default action is performed: the pattern space is
+printed and a new cycle is started:
+
+ $ sed ':x ; /=$/ { N ; s/=\n//g ; bx }' jaques.txt
+ All the world's a stage,
+ And all the men and women merely players:
+ They have their exits and their entrances;
+ And one man in his time plays many parts.
+
+ Here's an alternative program with a slightly different approach: On
+all lines except the last, 'N' appends the line to the pattern space. A
+substitution command then removes soft line breaks ('=' at the end of a
+line, i.e. followed by a newline) by replacing them with an empty
+string. _if_ the substitution was successful (meaning the pattern space
+contained a line which should be joined), The conditional branch command
+'t' jumps to the beginning of the program without completing or
+restarting the cycle. If the substitution failed (meaning there were no
+soft line breaks), The 't' command will _not_ branch. Then, 'P' will
+print the pattern space content until the first newline, and 'D' will
+delete the pattern space content until the first new line. (To learn
+more about 'N', 'P' and 'D' commands *note Multiline techniques::).
+
+ $ sed ':x ; $!N ; s/=\n// ; tx ; P ; D' jaques.txt
+ All the world's a stage,
+ And all the men and women merely players:
+ They have their exits and their entrances;
+ And one man in his time plays many parts.
+
+ For more line-joining examples *note Joining lines::.

File: sed.info-t, Node: Examples, Next: Limitations, Prev: advanced sed, Up: Top
@@ -2400,7 +2772,11 @@ File: sed.info-t, Node: Joining lines, Next: Centering lines, Up: Examples
7.1 Joining lines
=================
-Join specific lines (e.g. if lines 2 and 3 need to be joined):
+This section uses 'N', 'D' and 'P' commands to process multiple lines,
+and the 'b' and 't' commands for branching. *Note Multiline
+techniques:: and *note Branching and flow control::.
+
+ Join specific lines (e.g. if lines 2 and 3 need to be joined):
$ cat lines.txt
hello
@@ -2413,7 +2789,7 @@ Join specific lines (e.g. if lines 2 and 3 need to be joined):
hello
hello
- Join lines ending with backslashes:
+ Join backslash-continued lines:
$ cat 1.txt
this \
@@ -2432,6 +2808,33 @@ Join specific lines (e.g. if lines 2 and 3 need to be joined):
#TODO: The above requires gnu sed.
# non-gnu seds need newlines after ':' and 'b'
+ Join lines that start with whitespace (e.g SMTP headers):
+
+ $ cat 2.txt
+ Subject: Hello
+ World
+ Content-Type: multipart/alternative;
+ boundary=94eb2c190cc6370f06054535da6a
+ Date: Tue, 3 Jan 2017 19:41:16 +0000 (GMT)
+ Authentication-Results: mx.gnu.org;
+ dkim=pass header.i=@gnu.org;
+ spf=pass
+ Message-ID: <abcdef@gnu.org>
+ From: John Doe <jdoe@gnu.org>
+ To: Jane Smith <jsmith@gnu.org>
+
+ $ sed -E ':a ; $!N ; s/\n\s+/ / ; ta ; P ; D' 2.txt
+ Subject: Hello World
+ Content-Type: multipart/alternative; boundary=94eb2c190cc6370f06054535da6a
+ Date: Tue, 3 Jan 2017 19:41:16 +0000 (GMT)
+ Authentication-Results: mx.gnu.org; dkim=pass header.i=@gnu.org; spf=pass
+ Message-ID: <abcdef@gnu.org>
+ From: John Doe <jdoe@gnu.org>
+ To: Jane Smith <jsmith@gnu.org>
+
+ # A portable (non-gnu) variation:
+ # sed -e :a -e '$!N;s/\n */ /;ta' -e 'P;D'
+

File: sed.info-t, Node: Centering lines, Next: Increment a number, Prev: Joining lines, Up: Examples
@@ -3415,20 +3818,26 @@ File: sed.info-t, Node: Other Resources, Next: Reporting Bugs, Prev: Limitati
9 Other Resources for Learning About 'sed'
******************************************
-In addition to several books that have been written about 'sed' (either
-specifically or as chapters in books which discuss shell programming),
-one can find out more about 'sed' (including suggestions of a few books)
-from the FAQ for the 'sed-users' mailing list, available from:
- <http://sed.sourceforge.net/sedfaq.html>
+For up to date information about GNU 'sed' please visit
+<https://www.gnu.org/software/sed/>.
+
+ Send general questions and suggestions to <sed-devel@gnu.org>. Visit
+the mailing list archives for past discussions at
+<https://lists.gnu.org/archive/html/sed-devel/>.
+
+ The following resources provide information about 'sed' (both GNU
+'sed' and other variations). Note these not maintained by GNU 'sed'
+developers.
- Also of interest are
-<http://www.student.northpark.edu/pemente/sed/index.htm> and
-<http://sed.sf.net/grabbag>, which include 'sed' tutorials and other
-'sed'-related goodies.
+ * sed '$HOME': <http://sed.sf.net>
- The 'sed-users' mailing list itself maintained by Sven Guckes. To
-subscribe, visit <http://groups.yahoo.com> and search for the
-'sed-users' mailing list.
+ * sed FAQ: <http://sed.sf.net/sedfaq.html>
+
+ * seder's grabbag: <http://sed.sf.net/grabbag>
+
+ * The 'sed-users' mailing list maintained by Sven Guckes:
+ <http://groups.yahoo.com/group/sed-users/> (note this is _not_ the
+ GNU 'sed' mailing list).

File: sed.info-t, Node: Reporting Bugs, Next: GNU Free Documentation License, Prev: Other Resources, Up: Top
@@ -4096,7 +4505,7 @@ exception of the 'sed' commands and command-line options.
* 0 address: Reporting Bugs. (line 114)
* ;, command separator: sed script overview. (line 37)
* a, and semicolons: sed script overview. (line 56)
-* Additional reading about sed: Other Resources. (line 6)
+* Additional reading about sed: Other Resources. (line 13)
* ADDR1,+N: Range Addresses. (line 31)
* ADDR1,~N: Range Addresses. (line 31)
* address range, example: sed script overview. (line 23)
@@ -4118,6 +4527,10 @@ exception of the 'sed' commands and command-line options.
* Append next input line to pattern space: Other Commands. (line 257)
* Append pattern space to hold space: Other Commands. (line 276)
* Appending text after a line: Other Commands. (line 45)
+* b, joining lines with: Branching and flow control.
+ (line 150)
+* b, versus t: Branching and flow control.
+ (line 150)
* back-reference: Back-references and Subexpressions.
(line 6)
* Backreferences, in regular expressions: The "s" Command. (line 18)
@@ -4130,6 +4543,12 @@ exception of the 'sed' commands and command-line options.
(line 22)
* Branch to a label, unconditionally: Programming Commands.
(line 18)
+* branching and n, N: Branching and flow control.
+ (line 105)
+* branching, infinite loop: Branching and flow control.
+ (line 95)
+* branching, joining lines: Branching and flow control.
+ (line 150)
* Buffer spaces, pattern and hold: Execution Cycle. (line 6)
* Bugs, reporting: Reporting Bugs. (line 6)
* c, and semicolons: sed script overview. (line 56)
@@ -4151,6 +4570,8 @@ exception of the 'sed' commands and command-line options.
(line 57)
* Copy hold space into pattern space: Other Commands. (line 280)
* Copy pattern space into hold space: Other Commands. (line 272)
+* cycle, restarting: Branching and flow control.
+ (line 75)
* d, example: sed script overview. (line 23)
* Delete first line from pattern space: Other Commands. (line 251)
* digit characters: Character Classes and Bracket Expressions.
@@ -4272,7 +4693,15 @@ exception of the 'sed' commands and command-line options.
(line 40)
* In-place editing, Perl-style backup file names: Command-Line Options.
(line 51)
+* infinite loop, branching: Branching and flow control.
+ (line 95)
* Inserting text before a line: Other Commands. (line 104)
+* joining lines with branching: Branching and flow control.
+ (line 150)
+* joining quoted-printable lines: Branching and flow control.
+ (line 150)
+* labels: Branching and flow control.
+ (line 75)
* Labels, in scripts: Programming Commands.
(line 14)
* Last line, selecting: Numeric Addresses. (line 13)
@@ -4292,6 +4721,10 @@ exception of the 'sed' commands and command-line options.
(line 80)
* multiple files: Overview. (line 37)
* multiple sed commands: sed script overview. (line 37)
+* n, and branching: Branching and flow control.
+ (line 105)
+* N, and branching: Branching and flow control.
+ (line 105)
* named character classes: Character Classes and Bracket Expressions.
(line 43)
* newline, command separator: sed script overview. (line 37)
@@ -4307,6 +4740,8 @@ exception of the 'sed' commands and command-line options.
* numeric addresses: Addresses overview. (line 6)
* numeric characters: Character Classes and Bracket Expressions.
(line 62)
+* omitting labels: Branching and flow control.
+ (line 75)
* output: Overview. (line 23)
* output, suppressing: Overview. (line 30)
* p, example: Overview. (line 30)
@@ -4338,6 +4773,8 @@ exception of the 'sed' commands and command-line options.
* q, example: sed script overview. (line 28)
* Quitting: Common Commands. (line 28)
* Quitting <1>: Extended Commands. (line 36)
+* quoted-printable lines, joining: Branching and flow control.
+ (line 150)
* range addresses: Addresses overview. (line 24)
* range expression: Character Classes and Bracket Expressions.
(line 18)
@@ -4358,6 +4795,8 @@ exception of the 'sed' commands and command-line options.
(line 78)
* Replacing selected lines with other text: Other Commands. (line 157)
* Requiring GNU sed: Extended Commands. (line 69)
+* restarting a cycle: Branching and flow control.
+ (line 75)
* Sandbox mode: Command-Line Options.
(line 124)
* script parameter: Overview. (line 43)
@@ -4393,6 +4832,10 @@ exception of the 'sed' commands and command-line options.
* suppressing output: Overview. (line 30)
* syntax, addresses: sed script overview. (line 13)
* syntax, sed commands: sed script overview. (line 13)
+* t, joining lines with: Branching and flow control.
+ (line 150)
+* t, versus b: Branching and flow control.
+ (line 150)
* Text, appending: Other Commands. (line 45)
* Text, deleting: Common Commands. (line 44)
* Text, insertion: Other Commands. (line 104)
@@ -4562,69 +5005,70 @@ Ref: Command-Line Options-Footnote-111851
Ref: Command-Line Options-Footnote-212043
Node: Exit status12142
Node: sed scripts13046
-Node: sed script overview13561
-Node: sed commands list16049
-Node: The "s" Command20854
-Ref: The "s" Command-Footnote-126320
-Node: Common Commands26392
-Node: Other Commands29424
-Ref: Other Commands-Footnote-138450
-Node: Programming Commands38522
-Node: Extended Commands39436
-Node: sed addresses43302
-Node: Addresses overview43733
-Node: Numeric Addresses45511
-Node: Regexp Addresses46864
-Ref: Regexp Addresses-Footnote-150251
-Node: Range Addresses50391
-Node: sed regular expressions52873
-Node: Regular Expressions Overview53675
-Node: BRE vs ERE55184
-Node: BRE syntax56778
-Node: ERE syntax63165
-Node: Character Classes and Bracket Expressions64639
-Node: regexp extensions69479
-Node: Back-references and Subexpressions71869
-Node: Escapes74275
-Ref: Escapes-Footnote-176473
-Node: Locale Considerations76664
-Node: advanced sed77935
-Node: Execution Cycle78296
-Ref: Execution Cycle-Footnote-179493
-Node: Hold and Pattern Buffers79794
-Node: Multiline techniques79984
-Node: Branching and flow control83200
-Node: Examples83372
-Node: Joining lines84574
-Node: Centering lines85229
-Node: Increment a number86148
-Ref: Increment a number-Footnote-187627
-Node: Rename files to lower case87747
-Node: Print bash environment90522
-Node: Reverse chars of lines91279
-Ref: Reverse chars of lines-Footnote-192312
-Node: Text search across multiple lines92529
-Node: Line length adjustment95756
-Node: tac98182
-Node: cat -n98951
-Node: cat -b100775
-Node: wc -c101526
-Ref: wc -c-Footnote-1103438
-Node: wc -w103507
-Node: wc -l104973
-Node: head105220
-Node: tail105553
-Node: uniq107236
-Node: uniq -d108025
-Node: uniq -u108738
-Node: cat -s109449
-Node: Limitations111298
-Node: Other Resources112141
-Node: Reporting Bugs112988
-Ref: N_command_last_line114153
-Ref: Reporting Bugs-Footnote-1120298
-Node: GNU Free Documentation License120369
-Node: Concept Index145524
-Node: Command and Option Index170108
+Node: sed script overview13621
+Node: sed commands list16144
+Node: The "s" Command20949
+Ref: The "s" Command-Footnote-126413
+Node: Common Commands26485
+Node: Other Commands29517
+Ref: Other Commands-Footnote-138536
+Node: Programming Commands38608
+Node: Extended Commands39522
+Node: Multiple commands syntax43421
+Node: sed addresses47740
+Node: Addresses overview48171
+Node: Numeric Addresses49949
+Node: Regexp Addresses51302
+Ref: Regexp Addresses-Footnote-154689
+Node: Range Addresses54829
+Node: sed regular expressions57311
+Node: Regular Expressions Overview58113
+Node: BRE vs ERE59622
+Node: BRE syntax61216
+Node: ERE syntax67603
+Node: Character Classes and Bracket Expressions69077
+Node: regexp extensions73917
+Node: Back-references and Subexpressions76307
+Node: Escapes78713
+Ref: Escapes-Footnote-180911
+Node: Locale Considerations81102
+Node: advanced sed82373
+Node: Execution Cycle82734
+Ref: Execution Cycle-Footnote-183931
+Node: Hold and Pattern Buffers84232
+Node: Multiline techniques84422
+Node: Branching and flow control87638
+Node: Examples95689
+Node: Joining lines96891
+Node: Centering lines98680
+Node: Increment a number99599
+Ref: Increment a number-Footnote-1101078
+Node: Rename files to lower case101198
+Node: Print bash environment103973
+Node: Reverse chars of lines104730
+Ref: Reverse chars of lines-Footnote-1105763
+Node: Text search across multiple lines105980
+Node: Line length adjustment109207
+Node: tac111633
+Node: cat -n112402
+Node: cat -b114226
+Node: wc -c114977
+Ref: wc -c-Footnote-1116889
+Node: wc -w116958
+Node: wc -l118424
+Node: head118671
+Node: tail119004
+Node: uniq120687
+Node: uniq -d121476
+Node: uniq -u122189
+Node: cat -s122900
+Node: Limitations124749
+Node: Other Resources125592
+Node: Reporting Bugs126495
+Ref: N_command_last_line127660
+Ref: Reporting Bugs-Footnote-1133805
+Node: GNU Free Documentation License133876
+Node: Concept Index159031
+Node: Command and Option Index186029

End Tag Table
diff --git a/doc/sed.texi b/doc/sed.texi
index 121e405..7cc67d6 100644
--- a/doc/sed.texi
+++ b/doc/sed.texi
@@ -34,7 +34,7 @@
This file documents version @value{VERSION} of
@value{SSED}, a stream editor.
-Copyright @copyright{} 1998-2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1998-2017 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@@ -484,6 +484,7 @@ $ echo | sed 'Q42' ; echo $?
* Other Commands:: Less frequently used commands
* Programming Commands:: Commands for @command{sed} gurus
* Extended Commands:: Commands specific of @value{SSED}
+* Multiple commands syntax:: Extension for easier scripting
@end menu
@node sed script overview
@@ -586,6 +587,7 @@ thus should be terminated
with newlines or be placed at the end of a @var{script} or @var{script-file}.
Commands can also be preceded with optional non-significant
whitespace characters.
+@xref{Multiple commands syntax}.
@@ -903,12 +905,12 @@ while in general flags for the @code{s} command show their
effect just once. This behavior, although documented, might
change in future versions.
-@item w @var{file-name}
+@item w @var{filename}
@cindex Text, writing to a file after substitution
@cindex @value{SSEDEXT}, @file{/dev/stdout} file
@cindex @value{SSEDEXT}, @file{/dev/stderr} file
If the substitution was made, then write out the result to the named file.
-As a @value{SSED} extension, two special values of @var{file-name} are
+As a @value{SSED} extension, two special values of @var{filename} are
supported: @file{/dev/stderr}, which writes the result to the standard
error, and @file{/dev/stdout}, which writes to the standard
output.@footnote{This is equivalent to @code{p} unless the @option{-i}
@@ -1149,7 +1151,7 @@ hello
@codequoteundirected off
@codequotebacktick off
-Leading whitespaces after the @code{a} command are ignored.
+Leading whitespace after the @code{a} command is ignored.
The text to add is read until the end of the line.
@@ -1238,7 +1240,7 @@ hello
@codequoteundirected off
@codequotebacktick off
-Leading whitespaces after the @code{i} command are ignored.
+Leading whitespace after the @code{i} command is ignored.
The text to add is read until the end of the line.
@item i\
@@ -1319,7 +1321,7 @@ hello
@codequoteundirected off
@codequotebacktick off
-Leading whitespaces after the @code{c} command are ignored.
+Leading whitespace after the @code{c} command is ignored.
The text to add is read until the end of the line.
@item c\
@@ -1464,7 +1466,7 @@ file will then be reread and inserted on each of the addressed lines.
@cindex @value{SSEDEXT}, @file{/dev/stdout} file
@cindex @value{SSEDEXT}, @file{/dev/stderr} file
Write the pattern space to @var{filename}.
-As a @value{SSED} extension, two special values of @var{file-name} are
+As a @value{SSED} extension, two special values of @var{filename} are
supported: @file{/dev/stderr}, which writes the result to the standard
error, and @file{/dev/stdout}, which writes to the standard
output.@footnote{This is equivalent to @code{p} unless the @option{-i}
@@ -1706,7 +1708,283 @@ script in most multibyte locales (including UTF-8 locales).
@end table
+@node Multiple commands syntax
+@section Multiple commands syntax
+
+@c POSIX says:
+@c Editing commands other than {...}, a, b, c, i, r, t, w, :, and #
+@c can be followed by a <semicolon>, optional <blank> characters, and
+@c another editing command. However, when an s editing command is used
+@c with the w flag, following it with another command in this manner
+@c produces undefined results.
+
+There are several methods to specify multiple commands in a @command{sed}
+program.
+
+Using newlines is most natural when running a sed script from a file
+(using the @option{-f} option).
+
+On the command line, all @command{sed} commands may be separated by newlines.
+Alternatively, you may specify each command as an argument to an @option{-e}
+option:
+
+@codequoteundirected on
+@codequotebacktick on
+@example
+@group
+$ seq 6 | sed '1d
+3d
+5d'
+2
+4
+6
+
+$ seq 6 | sed -e 1d -e 3d -e 5d
+2
+4
+6
+@end group
+@end example
+@codequoteundirected off
+@codequotebacktick off
+
+A semicolon (@samp{;}) may be used to separate most simple commands:
+
+@codequoteundirected on
+@codequotebacktick on
+@example
+@group
+$ seq 6 | sed '1d;3d;5d'
+2
+4
+6
+@end group
+@end example
+@codequoteundirected off
+@codequotebacktick off
+
+The @code{@{},@code{@}},@code{b},@code{t},@code{T},@code{:} commands can
+be separated with a semicolon (this is a non-portable @value{SSED} extension).
+
+@codequoteundirected on
+@codequotebacktick on
+@example
+@group
+$ seq 4 | sed '@{1d;3d@}'
+2
+4
+
+$ seq 6 | sed '@{1d;3d@};5d'
+2
+4
+6
+@end group
+@end example
+@codequoteundirected off
+@codequotebacktick off
+
+Labels used in @code{b},@code{t},@code{T},@code{:} commands are read
+until a semicolon. Leading and trailing whitespace is ignored. In
+the examples below the label is @samp{x}. The first example works
+with @value{SSED}. The second is a portable equivalent. For more
+information about branching and labels @pxref{Branching and flow
+control}.
+@codequoteundirected on
+@codequotebacktick on
+@example
+@group
+$ seq 3 | sed '/1/b x ; s/^/=/ ; :x ; 3d'
+1
+=2
+
+$ seq 3 | sed -e '/1/bx' -e 's/^/=/' -e ':x' -e '3d'
+1
+=2
+@end group
+@end example
+@codequoteundirected off
+@codequotebacktick off
+
+
+
+@subsection Commands Requiring a newline
+
+The following commands cannot be separated by a semicolon and
+require a newline:
+
+@table @asis
+
+@item @code{a},@code{c},@code{i} (append/change/insert)
+
+All characters following @code{a},@code{c},@code{i} commands are taken
+as the text to append/change/insert. Using a semicolon leads to
+undesirable results:
+
+@codequoteundirected on
+@codequotebacktick on
+@example
+@group
+$ seq 2 | sed '1aHello ; 2d'
+1
+Hello ; 2d
+2
+@end group
+@end example
+@codequoteundirected off
+@codequotebacktick off
+
+Separate the commands using @option{-e} or a newline:
+
+@codequoteundirected on
+@codequotebacktick on
+@example
+@group
+$ seq 2 | sed -e 1aHello -e 2d
+1
+Hello
+
+$ seq 2 | sed '1aHello
+2d'
+1
+Hello
+@end group
+@end example
+@codequoteundirected off
+@codequotebacktick off
+
+Note that specifying the text to add (@samp{Hello}) immediately
+after @code{a},@code{c},@code{i} is itself a @value{SSED} extension.
+A portable, POSIX-compliant alternative is:
+
+@codequoteundirected on
+@codequotebacktick on
+@example
+@group
+$ seq 2 | sed '1a\
+Hello
+2d'
+1
+Hello
+@end group
+@end example
+@codequoteundirected off
+@codequotebacktick off
+
+@item @code{#} (comment)
+
+All characters following @samp{#} until the next newline are ignored.
+
+@codequoteundirected on
+@codequotebacktick on
+@example
+@group
+$ seq 3 | sed '# this is a comment ; 2d'
+1
+2
+3
+
+
+$ seq 3 | sed '# this is a comment
+2d'
+1
+3
+@end group
+@end example
+@codequoteundirected off
+@codequotebacktick off
+
+@item @code{r},@code{R},@code{w},@code{W} (reading and writing files)
+
+The @code{r},@code{R},@code{w},@code{W} commands parse the filename
+until end of the line. If whitespace, comments or semicolons are found,
+they will be included in the filename, leading to unexpected results:
+
+@codequoteundirected on
+@codequotebacktick on
+@example
+@group
+$ seq 2 | sed '1w hello.txt ; 2d'
+1
+2
+
+$ ls -log
+total 4
+-rw-rw-r-- 1 2 Jan 23 23:03 hello.txt ; 2d
+
+$ cat 'hello.txt ; 2d'
+1
+@end group
+@end example
+@codequoteundirected off
+@codequotebacktick off
+
+Note that @command{sed} silently ignores read/write errors in
+@code{r},@code{R},@code{w},@code{W} commands (such as missing files).
+In the following example, @command{sed} tries to read a file named
+@samp{@file{hello.txt ; N}}. The file is missing, and the error is silently
+ignored:
+
+@codequoteundirected on
+@codequotebacktick on
+@example
+@group
+$ echo x | sed '1rhello.txt ; N'
+x
+@end group
+@end example
+@codequoteundirected off
+@codequotebacktick off
+
+@item @code{e} (command execution)
+
+Any characters following the @code{e} command until the end of the line
+will be sent to the shell. If whitespace, comments or semicolons are found,
+they will be included in the shell command, leading to unexpected results:
+
+@codequoteundirected on
+@codequotebacktick on
+@example
+@group
+$ echo a | sed '1e touch foo#bar'
+a
+
+$ ls -1
+foo#bar
+
+$ echo a | sed '1e touch foo ; s/a/b/'
+sh: 1: s/a/b/: not found
+a
+@end group
+@end example
+@codequoteundirected off
+@codequotebacktick off
+
+
+@item @code{s///[we]} (substitute with @code{e} or @code{w} flags)
+
+In a substitution command, the @code{w} flag writes the substitution
+result to a file, and the @code{e} flag executes the subsitution result
+as a shell command. As with the @code{r/R/w/W/e} commands, these
+must be terminated with a newline. If whitespace, comments or semicolons
+are found, they will be included in the shell command or filename, leading to
+unexpected results:
+
+@codequoteundirected on
+@codequotebacktick on
+@example
+@group
+$ echo a | sed 's/a/b/w1.txt#foo'
+b
+
+$ ls -1
+1.txt#foo
+@end group
+@end example
+@codequoteundirected off
+@codequotebacktick off
+
+@end table
@node sed addresses
@@ -3085,7 +3363,7 @@ command appends a newline and the next line to the pattern space
(i.e. @samp{1}, @samp{\n}, @samp{2} in the first cycle).
@item
The @code{l} command prints the content of the pattern space
-unambigiously.
+unambiguously.
@item
The @code{D} command then removes the content of pattern
space up to the first newline (leaving @samp{2} at the end of
@@ -3173,7 +3451,303 @@ and @ref{Line length adjustment}.
@node Branching and flow control
@section Branching and Flow Control
-TODO
+The branching commands @code{b}, @code{t}, and @code{T} enable
+changing the flow of @command{sed} programs.
+
+By default, @command{sed} reads an input line into the pattern buffer,
+then continues to processes all commands in order.
+Commands without addresses affect all lines.
+Commands with addresses affect only matching lines.
+@xref{Execution Cycle} and @ref{Addresses overview}.
+
+@command{sed} does not support a typical @code{if/then} construct.
+Instead, some commands can be used as conditionals or to change the
+default flow control:
+
+@table @code
+
+@item d
+delete (clears) the current pattern space,
+and restart the program cycle without processing the rest of the commands
+and without printing the pattern space.
+
+@item D
+delete the contents of the pattern space @emph{up to the first newline},
+and restart the program cycle without processing the rest of
+the commands and without printing the pattern space.
+
+@item [addr]X
+@itemx [addr]@{ X ; X ; X @}
+@item /regexp/X
+@item /regexp/@{ X ; X ; X @}
+Addresses and regular expressions can be used as an @code{if/then}
+conditional: If @var{[addr]} matches the current pattern space,
+execute the command(s).
+For example: The command @code{/^#/d} means:
+@emph{if} the current pattern matches the regular expression @code{^#} (a line
+starting with a hash), @emph{then} execute the @code{d} command:
+delete the line without printing it, and restart the program cycle
+immediately.
+
+@item b
+branch unconditionally (that is: always jump to a label, skipping
+or repeating other commands, without restarting a new cycle). Combined
+with an address, the branch can be conditionally executed on matched
+lines.
+
+@item t
+branch conditionally (that is: jump to a label) @emph{only if} a
+@code{s///} command has succeeded since the last input line was read
+or another conditional branch was taken.
+
+@item T
+similar but opposite to the @code{t} command: branch only if
+there has been @emph{no} successful substitutions since the last
+input line was read.
+@end table
+
+
+The following two @command{sed} programs are equivalent. The first
+(contrived) example uses the @code{b} command to skip the @code{s///}
+command on lines containing @samp{1}. The second example uses an
+address with negation (@samp{!}) to perform substitution only on
+desired lines. The @code{y///} command is still executed on all
+lines:
+
+@codequoteundirected on
+@codequotebacktick on
+@example
+@group
+$ printf '%s\n' a1 a2 a3 | sed -E '/1/bx ; s/a/z/ ; :x ; y/123/456/'
+a4
+z5
+z6
+
+$ printf '%s\n' a1 a2 a3 | sed -E '/1/!s/a/z/ ; y/123/456/'
+a4
+z5
+z6
+@end group
+@end example
+@codequoteundirected off
+@codequotebacktick off
+
+
+
+@subsection Branching and Cycles
+@cindex labels
+@cindex omitting labels
+@cindex cycle, restarting
+@cindex restarting a cycle
+The @code{b},@code{t} and @code{T} commands can be followed by a label
+(typically a single letter). Labels are defined with a colon followed by
+one or more letters (e.g. @samp{:x}). If the label is omitted the
+branch commands restart the cycle. Note the difference between
+branching to a label and restarting the cycle: when a cycle is
+restarted, @command{sed} first prints the current content of the
+pattern space, then reads the next input line into the pattern space;
+Jumping to a label (even if it is at the beginning of the program)
+does not print the pattern space and does not read the next input line.
+
+The following program is a no-op. The @code{b} command (the only command
+in the program) does not have a label, and thus simply restarts the cycle.
+On each cycle, the pattern space is printed and the next input line is read:
+
+@example
+@group
+$ seq 3 | sed b
+1
+2
+3
+@end group
+@end example
+
+@cindex infinite loop, branching
+@cindex branching, infinite loop
+The following example is an infinite-loop - it doesn't terminate and
+doesn't print anything. The @code{b} command jumps to the @samp{x}
+label, and a new cycle is never started:
+
+@codequoteundirected on
+@codequotebacktick on
+@example
+@group
+$ seq 3 | sed ':x ; bx'
+
+# The above command requires gnu sed (which supports additional
+# commands following a label, without a newline). A portable equivalent:
+# sed -e ':x' -e bx
+@end group
+@end example
+@codequoteundirected off
+@codequotebacktick off
+
+@cindex branching and n, N
+@cindex n, and branching
+@cindex N, and branching
+Branching is often complemented with the @code{n} or @code{N} commands:
+both commands read the next input line into the pattern space without waiting
+for the cycle to restart. Before reading the next input line, @code{n}
+prints the current pattern space then empties it, while @code{N}
+appends a newline and the next input line to the pattern space.
+
+Consider the following two examples:
+
+@codequoteundirected on
+@codequotebacktick on
+@example
+@group
+$ seq 3 | sed ':x ; n ; bx'
+1
+2
+3
+
+$ seq 3 | sed ':x ; N ; bx'
+1
+2
+3
+@end group
+@end example
+@codequoteundirected off
+@codequotebacktick off
+
+@itemize
+@item
+Both examples do not inf-loop, despite never starting a new cycle.
+
+@item
+In the first example, the @code{n} commands first prints the content
+of the pattern space, empties the pattern space then reads the next
+input line.
+
+@item
+In the second example, the @code{N} commands appends the next input
+line to the pattern space (with a newline). Lines are accumulated in
+the pattern space until there are no more input lines to read, then
+the @code{N} command terminates the @command{sed} program. When the
+program terminates, the end-of-cycle actions are performed, and the
+entire pattern space is printed.
+
+@item
+The second example requires @value{SSED},
+because it uses the non-POSIX-standard behavior of @code{N}.
+See the ``@code{N} command on the last line'' paragraph
+in @ref{Reporting Bugs}.
+
+@item
+To further examine the difference between the two examples,
+try the following commands:
+@codequoteundirected on
+@codequotebacktick on
+@example
+@group
+printf '%s\n' aa bb cc dd | sed ':x ; n ; = ; bx'
+printf '%s\n' aa bb cc dd | sed ':x ; N ; = ; bx'
+printf '%s\n' aa bb cc dd | sed ':x ; n ; s/\n/***/ ; bx'
+printf '%s\n' aa bb cc dd | sed ':x ; N ; s/\n/***/ ; bx'
+@end group
+@end example
+@codequoteundirected off
+@codequotebacktick off
+
+@end itemize
+
+
+
+@subsection Branching example: joining lines
+
+@cindex joining lines with branching
+@cindex branching, joining lines
+@cindex quoted-printable lines, joining
+@cindex joining quoted-printable lines
+@cindex t, joining lines with
+@cindex b, joining lines with
+@cindex b, versus t
+@cindex t, versus b
+As a real-world example of using branching, consider the case of
+@uref{https://en.wikipedia.org/wiki/Quoted-printable,quoted-printable} files,
+typically used to encode email messages.
+In these files long lines are split and marked with a @dfn{soft line break}
+consisting of a single @samp{=} character at the end of the line:
+
+@example
+@group
+$ cat jaques.txt
+All the wor=
+ld's a stag=
+e,
+And all the=
+ men and wo=
+men merely =
+players:
+They have t=
+heir exits =
+and their e=
+ntrances;
+And one man=
+ in his tim=
+e plays man=
+y parts.
+@end group
+@end example
+
+
+The following program uses an address match @samp{/=$/} as a
+conditional: If the current pattern space ends with a @samp{=}, it
+reads the next input line using @code{N}, replaces all @samp{=}
+characters which are followed by a newline, and unconditionally
+branches (@code{b}) to the beginning of the program without restarting
+a new cycle. If the pattern space does not ends with @samp{=}, the
+default action is performed: the pattern space is printed and a new
+cycle is started:
+
+@codequoteundirected on
+@codequotebacktick on
+@example
+@group
+$ sed ':x ; /=$/ @{ N ; s/=\n//g ; bx @}' jaques.txt
+All the world's a stage,
+And all the men and women merely players:
+They have their exits and their entrances;
+And one man in his time plays many parts.
+@end group
+@end example
+@codequoteundirected off
+@codequotebacktick off
+
+Here's an alternative program with a slightly different approach: On
+all lines except the last, @code{N} appends the line to the pattern
+space. A substitution command then removes soft line breaks
+(@samp{=} at the end of a line, i.e. followed by a newline) by replacing
+them with an empty string.
+@emph{if} the substitution was successful (meaning the pattern space contained
+a line which should be joined), The conditional branch command @code{t} jumps
+to the beginning of the program without completing or restarting the cycle.
+If the substitution failed (meaning there were no soft line breaks),
+The @code{t} command will @emph{not} branch. Then, @code{P} will
+print the pattern space content until the first newline, and @code{D}
+will delete the pattern space content until the first new line.
+(To learn more about @code{N}, @code{P} and @code{D} commands
+@pxref{Multiline techniques}).
+
+
+@codequoteundirected on
+@codequotebacktick on
+@example
+@group
+$ sed ':x ; $!N ; s/=\n// ; tx ; P ; D' jaques.txt
+All the world's a stage,
+And all the men and women merely players:
+They have their exits and their entrances;
+And one man in his time plays many parts.
+@end group
+@end example
+@codequoteundirected off
+@codequotebacktick off
+
+
+For more line-joining examples @pxref{Joining lines}.
+
@node Examples
@chapter Some Sample Scripts
@@ -3213,6 +3787,10 @@ Emulating standard utilities:
@node Joining lines
@section Joining lines
+This section uses @code{N}, @code{D} and @code{P} commands to process
+multiple lines, and the @code{b} and @code{t} commands for branching.
+@xref{Multiline techniques} and @ref{Branching and flow control}.
+
Join specific lines (e.g. if lines 2 and 3 need to be joined):
@codequoteundirected on
@@ -3232,7 +3810,7 @@ hello
@codequoteundirected off
@codequotebacktick off
-Join lines ending with backslashes:
+Join backslash-continued lines:
@codequoteundirected on
@codequotebacktick on
@@ -3257,6 +3835,42 @@ and another line
@codequoteundirected off
@codequotebacktick off
+Join lines that start with whitespace (e.g SMTP headers):
+
+@codequoteundirected on
+@codequotebacktick on
+@example
+@group
+$ cat 2.txt
+Subject: Hello
+ World
+Content-Type: multipart/alternative;
+ boundary=94eb2c190cc6370f06054535da6a
+Date: Tue, 3 Jan 2017 19:41:16 +0000 (GMT)
+Authentication-Results: mx.gnu.org;
+ dkim=pass header.i=@@gnu.org;
+ spf=pass
+Message-ID: <abcdef@@gnu.org>
+From: John Doe <jdoe@@gnu.org>
+To: Jane Smith <jsmith@@gnu.org>
+
+$ sed -E ':a ; $!N ; s/\n\s+/ / ; ta ; P ; D' 2.txt
+Subject: Hello World
+Content-Type: multipart/alternative; boundary=94eb2c190cc6370f06054535da6a
+Date: Tue, 3 Jan 2017 19:41:16 +0000 (GMT)
+Authentication-Results: mx.gnu.org; dkim=pass header.i=@@gnu.org; spf=pass
+Message-ID: <abcdef@@gnu.org>
+From: John Doe <jdoe@@gnu.org>
+To: Jane Smith <jsmith@@gnu.org>
+
+# A portable (non-gnu) variation:
+# sed -e :a -e '$!N;s/\n */ /;ta' -e 'P;D'
+@end group
+@end example
+@codequoteundirected off
+@codequotebacktick off
+
+
@node Centering lines
@section Centering Lines
@@ -4505,24 +5119,35 @@ the size of the buffer that can be processed by certain patterns.
@node Other Resources
@chapter Other Resources for Learning About @command{sed}
+For up to date information about @value{SSED} please
+visit @uref{https://www.gnu.org/software/sed/}.
+
+Send general questions and suggestions to @email{sed-devel@@gnu.org}.
+Visit the mailing list archives for past discussions at
+@uref{https://lists.gnu.org/archive/html/sed-devel/}.
+
@cindex Additional reading about @command{sed}
-In addition to several books that have been written about @command{sed}
-(either specifically or as chapters in books which discuss
-shell programming), one can find out more about @command{sed}
-(including suggestions of a few books) from the FAQ
-for the @code{sed-users} mailing list, available from:
-@display
-@uref{http://sed.sourceforge.net/sedfaq.html}
-@end display
-
-Also of interest are
-@uref{http://www.student.northpark.edu/pemente/sed/index.htm}
-and @uref{http://sed.sf.net/grabbag},
-which include @command{sed} tutorials and other @command{sed}-related goodies.
-
-The @code{sed-users} mailing list itself maintained by Sven Guckes.
-To subscribe, visit @uref{http://groups.yahoo.com} and search
-for the @code{sed-users} mailing list.
+The following resources provide information about @command{sed}
+(both @value{SSED} and other variations). Note these not maintained by
+@value{SSED} developers.
+
+@itemize @bullet
+
+@item
+sed @code{$HOME}: @uref{http://sed.sf.net}
+
+@item
+sed FAQ: @uref{http://sed.sf.net/sedfaq.html}
+
+@item
+seder's grabbag: @uref{http://sed.sf.net/grabbag}
+
+@item
+The @code{sed-users} mailing list maintained by Sven Guckes:
+@uref{http://groups.yahoo.com/group/sed-users/}
+(note this is @emph{not} the @value{SSED} mailing list).
+
+@end itemize
@node Reporting Bugs
@chapter Reporting Bugs
diff --git a/doc/stamp-vti b/doc/stamp-vti
index cc4d7e0..803c837 100644
--- a/doc/stamp-vti
+++ b/doc/stamp-vti
@@ -1,4 +1,4 @@
-@set UPDATED 30 December 2016
-@set UPDATED-MONTH December 2016
-@set EDITION 4.3
-@set VERSION 4.3
+@set UPDATED 3 February 2017
+@set UPDATED-MONTH February 2017
+@set EDITION 4.4
+@set VERSION 4.4
diff --git a/doc/version.texi b/doc/version.texi
index cc4d7e0..803c837 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,4 +1,4 @@
-@set UPDATED 30 December 2016
-@set UPDATED-MONTH December 2016
-@set EDITION 4.3
-@set VERSION 4.3
+@set UPDATED 3 February 2017
+@set UPDATED-MONTH February 2017
+@set EDITION 4.4
+@set VERSION 4.4
diff --git a/gnulib-tests/Makefile.in b/gnulib-tests/Makefile.in
index 63cf482..6ba29be 100644
--- a/gnulib-tests/Makefile.in
+++ b/gnulib-tests/Makefile.in
@@ -14,7 +14,7 @@
@SET_MAKE@
-# Copyright (C) 2002-2016 Free Software Foundation, Inc.
+# Copyright (C) 2002-2017 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
@@ -271,23 +271,25 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
$(top_srcdir)/m4/obstack.m4 $(top_srcdir)/m4/off_t.m4 \
$(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/opendir.m4 \
$(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/po.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/putenv.m4 \
- $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/readdir.m4 \
- $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \
- $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rename.m4 \
- $(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/secure_getenv.m4 \
+ $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \
+ $(top_srcdir)/m4/putenv.m4 $(top_srcdir)/m4/quote.m4 \
+ $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/read-file.m4 \
+ $(top_srcdir)/m4/readdir.m4 $(top_srcdir)/m4/readlink.m4 \
+ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/regex.m4 \
+ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir.m4 \
+ $(top_srcdir)/m4/secure_getenv.m4 \
$(top_srcdir)/m4/selinux-context-h.m4 \
$(top_srcdir)/m4/selinux-selinux-h.m4 \
$(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale.m4 \
$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat.m4 \
- $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \
- $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
- $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdio_h.m4 \
- $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strdup.m4 \
- $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/string_h.m4 \
- $(top_srcdir)/m4/strverscmp.m4 $(top_srcdir)/m4/symlink.m4 \
- $(top_srcdir)/m4/sys_socket_h.m4 \
+ $(top_srcdir)/m4/std-gnu11.m4 $(top_srcdir)/m4/stdalign.m4 \
+ $(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \
+ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \
+ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
+ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \
+ $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strverscmp.m4 \
+ $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_socket_h.m4 \
$(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
$(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/tempname.m4 \
$(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/m4/time_h.m4 \
@@ -1872,6 +1874,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
POSUB = @POSUB@
PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
diff --git a/gnulib-tests/binary-io.h b/gnulib-tests/binary-io.h
index 9f17c0d..f766439 100644
--- a/gnulib-tests/binary-io.h
+++ b/gnulib-tests/binary-io.h
@@ -1,5 +1,5 @@
/* Binary mode I/O.
- Copyright (C) 2001, 2003, 2005, 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2003, 2005, 2008-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
diff --git a/gnulib-tests/close.c b/gnulib-tests/close.c
index 46a7aa5..3e45187 100644
--- a/gnulib-tests/close.c
+++ b/gnulib-tests/close.c
@@ -1,5 +1,5 @@
/* close replacement.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/closedir.c b/gnulib-tests/closedir.c
index 30d1290..71fa0b0 100644
--- a/gnulib-tests/closedir.c
+++ b/gnulib-tests/closedir.c
@@ -1,5 +1,5 @@
/* Stop reading the entries of a directory.
- Copyright (C) 2006-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/dfa-invalid-char-class.sh b/gnulib-tests/dfa-invalid-char-class.sh
index 2417361..da69c7e 100755
--- a/gnulib-tests/dfa-invalid-char-class.sh
+++ b/gnulib-tests/dfa-invalid-char-class.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# This use of our DFA-testing helper would fail for grep-2.21.
-# Copyright 2014-2016 Free Software Foundation, Inc.
+# Copyright 2014-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
diff --git a/gnulib-tests/dfa-match-aux.c b/gnulib-tests/dfa-match-aux.c
index af80628..b529b18 100644
--- a/gnulib-tests/dfa-match-aux.c
+++ b/gnulib-tests/dfa-match-aux.c
@@ -1,6 +1,6 @@
/* Auxiliary program to test a DFA code path that cannot be triggered
by grep or gawk.
- Copyright 2014-2016 Free Software Foundation, Inc.
+ Copyright 2014-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
diff --git a/gnulib-tests/dfa-match.sh b/gnulib-tests/dfa-match.sh
index 5da1985..22afab2 100755
--- a/gnulib-tests/dfa-match.sh
+++ b/gnulib-tests/dfa-match.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# This would fail with grep-2.21's dfa.c.
-# Copyright 2014-2016 Free Software Foundation, Inc.
+# Copyright 2014-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
diff --git a/gnulib-tests/dirent-private.h b/gnulib-tests/dirent-private.h
index 9b200f3..4a0b1c5 100644
--- a/gnulib-tests/dirent-private.h
+++ b/gnulib-tests/dirent-private.h
@@ -1,5 +1,5 @@
/* Private details of the DIR type.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/dirent.in.h b/gnulib-tests/dirent.in.h
index 65482d7..f591787 100644
--- a/gnulib-tests/dirent.in.h
+++ b/gnulib-tests/dirent.in.h
@@ -1,5 +1,5 @@
/* A GNU-like <dirent.h>.
- Copyright (C) 2006-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/dirfd.c b/gnulib-tests/dirfd.c
index a325848..6b1a7b2 100644
--- a/gnulib-tests/dirfd.c
+++ b/gnulib-tests/dirfd.c
@@ -1,6 +1,6 @@
/* dirfd.c -- return the file descriptor associated with an open DIR*
- Copyright (C) 2001, 2006, 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2006, 2008-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
diff --git a/gnulib-tests/dup2.c b/gnulib-tests/dup2.c
index 5d026f2..c0c7cad 100644
--- a/gnulib-tests/dup2.c
+++ b/gnulib-tests/dup2.c
@@ -1,6 +1,6 @@
/* Duplicate an open file descriptor to a specified file descriptor.
- Copyright (C) 1999, 2004-2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2004-2007, 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
diff --git a/gnulib-tests/fd-hook.c b/gnulib-tests/fd-hook.c
index 8676c6b..ab5847a 100644
--- a/gnulib-tests/fd-hook.c
+++ b/gnulib-tests/fd-hook.c
@@ -1,5 +1,5 @@
/* Hook for making making file descriptor functions close(), ioctl() extensible.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2009-2017 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
diff --git a/gnulib-tests/fd-hook.h b/gnulib-tests/fd-hook.h
index 9568d07..fe0d1b0 100644
--- a/gnulib-tests/fd-hook.h
+++ b/gnulib-tests/fd-hook.h
@@ -1,5 +1,5 @@
/* Hook for making making file descriptor functions close(), ioctl() extensible.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/fdopen.c b/gnulib-tests/fdopen.c
index 61fbfdf..2ee87eb 100644
--- a/gnulib-tests/fdopen.c
+++ b/gnulib-tests/fdopen.c
@@ -1,5 +1,5 @@
/* Open a stream with a given file descriptor.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/fflush.c b/gnulib-tests/fflush.c
index ef2a7f1..775acdf 100644
--- a/gnulib-tests/fflush.c
+++ b/gnulib-tests/fflush.c
@@ -1,5 +1,5 @@
/* fflush.c -- allow flushing input streams
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -51,7 +51,7 @@ static void
clear_ungetc_buffer (FILE *fp)
{
# if defined __sferror || defined __DragonFly__ || defined __ANDROID__
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
if (HASUB (fp))
{
fp_->_p += fp_->_r;
@@ -75,7 +75,7 @@ clear_ungetc_buffer (FILE *fp)
#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
# if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT
-/* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+/* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
static int
disable_seek_optimization (FILE *fp)
@@ -98,7 +98,7 @@ update_fpos_cache (FILE *fp _GL_UNUSED_PARAMETER,
off_t pos _GL_UNUSED_PARAMETER)
{
# if defined __sferror || defined __DragonFly__ || defined __ANDROID__
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
# if defined __CYGWIN__
/* fp_->_offset is typed as an integer. */
fp_->_offset = pos;
@@ -199,7 +199,7 @@ rpl_fflush (FILE *stream)
}
# if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
{
/* Disable seek optimization for the next fseeko call. This tells the
diff --git a/gnulib-tests/file-has-acl.c b/gnulib-tests/file-has-acl.c
index 97d14be..be476b0 100644
--- a/gnulib-tests/file-has-acl.c
+++ b/gnulib-tests/file-has-acl.c
@@ -1,6 +1,6 @@
/* Test whether a file has a nontrivial ACL. -*- coding: utf-8 -*-
- Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2003, 2005-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
diff --git a/gnulib-tests/filename.h b/gnulib-tests/filename.h
index 7d2c31a..0ea7e95 100644
--- a/gnulib-tests/filename.h
+++ b/gnulib-tests/filename.h
@@ -1,5 +1,5 @@
/* Basic filename support macros.
- Copyright (C) 2001-2004, 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2001-2004, 2007-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
diff --git a/gnulib-tests/flexmember.h b/gnulib-tests/flexmember.h
index 62c556b..c71ea65 100644
--- a/gnulib-tests/flexmember.h
+++ b/gnulib-tests/flexmember.h
@@ -1,6 +1,6 @@
/* Sizes of structs with flexible array members.
- Copyright 2016 Free Software Foundation, Inc.
+ Copyright 2016-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
diff --git a/gnulib-tests/fpurge.c b/gnulib-tests/fpurge.c
index 53ee68c..8e892f2 100644
--- a/gnulib-tests/fpurge.c
+++ b/gnulib-tests/fpurge.c
@@ -1,5 +1,5 @@
/* Flushing buffers of a FILE stream.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -44,7 +44,7 @@ fpurge (FILE *fp)
# endif
int result = fpurge (fp);
# if defined __sferror || defined __DragonFly__ || defined __ANDROID__
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
if (result == 0)
/* Correct the invariants that fpurge broke.
<stdio.h> on BSD systems says:
@@ -73,7 +73,7 @@ fpurge (FILE *fp)
}
return 0;
# elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
fp_->_p = fp_->_bf._base;
fp_->_r = 0;
fp_->_w = ((fp_->_flags & (__SLBF | __SNBF | __SRD)) == 0 /* fully buffered and not currently reading? */
diff --git a/gnulib-tests/freading.c b/gnulib-tests/freading.c
index 05cb0b8..0c361ae 100644
--- a/gnulib-tests/freading.c
+++ b/gnulib-tests/freading.c
@@ -1,5 +1,5 @@
/* Retrieve information about a FILE stream.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -36,7 +36,7 @@ freading (FILE *fp)
|| ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0
&& fp->_IO_read_base != NULL));
# elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
return (fp_->_flags & __SRD) != 0;
# elif defined __EMX__ /* emx+gcc */
return (fp->_flags & _IOREAD) != 0;
diff --git a/gnulib-tests/freading.h b/gnulib-tests/freading.h
index 949efd5..29776fc 100644
--- a/gnulib-tests/freading.h
+++ b/gnulib-tests/freading.h
@@ -1,5 +1,5 @@
/* Retrieve information about a FILE stream.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/fseek.c b/gnulib-tests/fseek.c
index 8524a42..d9e2e84 100644
--- a/gnulib-tests/fseek.c
+++ b/gnulib-tests/fseek.c
@@ -1,5 +1,5 @@
/* An fseek() function that, together with fflush(), is POSIX compliant.
- Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007, 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
diff --git a/gnulib-tests/fseeko.c b/gnulib-tests/fseeko.c
index 0c01c4f..5ae106f 100644
--- a/gnulib-tests/fseeko.c
+++ b/gnulib-tests/fseeko.c
@@ -1,5 +1,5 @@
/* An fseeko() function that, together with fflush(), is POSIX compliant.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -52,7 +52,7 @@ fseeko (FILE *fp, off_t offset, int whence)
&& fp->_IO_write_ptr == fp->_IO_write_base
&& fp->_IO_save_base == NULL)
#elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
# if defined __SL64 && defined __SCLE /* Cygwin */
if ((fp->_flags & __SL64) == 0)
{
@@ -117,7 +117,7 @@ fseeko (FILE *fp, off_t offset, int whence)
if (pos == -1)
{
#if defined __sferror || defined __DragonFly__ || defined __ANDROID__
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
fp_->_flags &= ~__SOFF;
#endif
return -1;
@@ -127,8 +127,8 @@ fseeko (FILE *fp, off_t offset, int whence)
fp->_flags &= ~_IO_EOF_SEEN;
fp->_offset = pos;
#elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
-# if defined __CYGWIN__ || (defined __NetBSD__ && __NetBSD_Version__ >= 600000000)
+ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
+# if defined __CYGWIN__ || (defined __NetBSD__ && __NetBSD_Version__ >= 600000000) || defined __minix
/* fp_->_offset is typed as an integer. */
fp_->_offset = pos;
# else
diff --git a/gnulib-tests/ftell.c b/gnulib-tests/ftell.c
index 75ed1b2..a5c9489 100644
--- a/gnulib-tests/ftell.c
+++ b/gnulib-tests/ftell.c
@@ -1,5 +1,5 @@
/* An ftell() function that works around platform bugs.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/ftello.c b/gnulib-tests/ftello.c
index 4c18ed1..298255a 100644
--- a/gnulib-tests/ftello.c
+++ b/gnulib-tests/ftello.c
@@ -1,5 +1,5 @@
/* An ftello() function that works around platform bugs.
- Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007, 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
diff --git a/gnulib-tests/getcwd-lgpl.c b/gnulib-tests/getcwd-lgpl.c
index c553f7b..34603c1 100644
--- a/gnulib-tests/getcwd-lgpl.c
+++ b/gnulib-tests/getcwd-lgpl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2016 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
This file is part of gnulib.
This program is free software: you can redistribute it and/or modify
diff --git a/gnulib-tests/getdtablesize.c b/gnulib-tests/getdtablesize.c
index d234055..7fabb51 100644
--- a/gnulib-tests/getdtablesize.c
+++ b/gnulib-tests/getdtablesize.c
@@ -1,5 +1,5 @@
/* getdtablesize() function for platforms that don't have it.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-2017 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify
diff --git a/gnulib-tests/getpagesize.c b/gnulib-tests/getpagesize.c
index dc4a200..9e91315 100644
--- a/gnulib-tests/getpagesize.c
+++ b/gnulib-tests/getpagesize.c
@@ -1,6 +1,6 @@
/* getpagesize emulation for systems where it cannot be done in a C macro.
- Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007, 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
diff --git a/gnulib-tests/gnulib.mk b/gnulib-tests/gnulib.mk
index 3a08a81..81a9115 100644
--- a/gnulib-tests/gnulib.mk
+++ b/gnulib-tests/gnulib.mk
@@ -1,6 +1,6 @@
## DO NOT EDIT! GENERATED AUTOMATICALLY!
## Process this file with automake to produce Makefile.in.
-# Copyright (C) 2002-2016 Free Software Foundation, Inc.
+# Copyright (C) 2002-2017 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
diff --git a/gnulib-tests/init.sh b/gnulib-tests/init.sh
index d780110..584194f 100644
--- a/gnulib-tests/init.sh
+++ b/gnulib-tests/init.sh
@@ -1,6 +1,6 @@
# source this file; set up for tests
-# Copyright (C) 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 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
diff --git a/gnulib-tests/inttypes.in.h b/gnulib-tests/inttypes.in.h
index ed09db6..69b12a8 100644
--- a/gnulib-tests/inttypes.in.h
+++ b/gnulib-tests/inttypes.in.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2016 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2017 Free Software Foundation, Inc.
Written by Paul Eggert, Bruno Haible, Derek Price.
This file is part of gnulib.
diff --git a/gnulib-tests/link.c b/gnulib-tests/link.c
index b8d7caa..e821e2d 100644
--- a/gnulib-tests/link.c
+++ b/gnulib-tests/link.c
@@ -1,6 +1,6 @@
/* Emulate link on platforms that lack it, namely native Windows platforms.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/localename.c b/gnulib-tests/localename.c
index 849e2d9..2c2d22b 100644
--- a/gnulib-tests/localename.c
+++ b/gnulib-tests/localename.c
@@ -1,5 +1,5 @@
/* Determine name of the currently selected locale.
- Copyright (C) 1995-2016 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -2734,6 +2734,19 @@ gl_locale_name_thread_unsafe (int category, const char *categoryname)
# elif defined __sun && HAVE_GETLOCALENAME_L
/* Solaris >= 12. */
return getlocalename_l (category, thread_locale);
+# elif defined __CYGWIN__
+ /* Cygwin < 2.6 lacks uselocale and thread-local locales altogether.
+ Cygwin <= 2.6.1 lacks NL_LOCALE_NAME, requiring peeking inside
+ an opaque struct. */
+# ifdef NL_LOCALE_NAME
+ return nl_langinfo_l (NL_LOCALE_NAME (category), thread_locale);
+# else
+ /* FIXME: Remove when we can assume new-enough Cygwin. */
+ struct __locale_t {
+ char categories[7][32];
+ };
+ return ((struct __locale_t *) thread_locale)->categories[category];
+# endif
# elif defined __ANDROID__
return MB_CUR_MAX == 4 ? "C.UTF-8" : "C";
# endif
diff --git a/gnulib-tests/localename.h b/gnulib-tests/localename.h
index 17f0d85..c9f321d 100644
--- a/gnulib-tests/localename.h
+++ b/gnulib-tests/localename.h
@@ -1,5 +1,5 @@
/* Determine name of the currently selected locale.
- Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007, 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
diff --git a/gnulib-tests/lseek.c b/gnulib-tests/lseek.c
index 2a95a07..3b2fdf2 100644
--- a/gnulib-tests/lseek.c
+++ b/gnulib-tests/lseek.c
@@ -1,5 +1,5 @@
/* An lseek() function that detects pipes.
- Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007, 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
diff --git a/gnulib-tests/macros.h b/gnulib-tests/macros.h
index 578bfe7..53b270c 100644
--- a/gnulib-tests/macros.h
+++ b/gnulib-tests/macros.h
@@ -1,5 +1,5 @@
/* Common macros used by gnulib tests.
- Copyright (C) 2006-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/open.c b/gnulib-tests/open.c
index e9c3120..193dc45 100644
--- a/gnulib-tests/open.c
+++ b/gnulib-tests/open.c
@@ -1,5 +1,5 @@
/* Open a descriptor to a file.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/opendir.c b/gnulib-tests/opendir.c
index a135fd8..694a782 100644
--- a/gnulib-tests/opendir.c
+++ b/gnulib-tests/opendir.c
@@ -1,5 +1,5 @@
/* Start reading the entries of a directory.
- Copyright (C) 2006-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/putenv.c b/gnulib-tests/putenv.c
index e67712d..b55e262 100644
--- a/gnulib-tests/putenv.c
+++ b/gnulib-tests/putenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2016 Free Software
+/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2017 Free Software
Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C
diff --git a/gnulib-tests/read-file.c b/gnulib-tests/read-file.c
index f7b1199..2418053 100644
--- a/gnulib-tests/read-file.c
+++ b/gnulib-tests/read-file.c
@@ -1,5 +1,5 @@
/* read-file.c -- read file contents into a string
- Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc.
Written by Simon Josefsson and Bruno Haible.
This program is free software; you can redistribute it and/or modify
diff --git a/gnulib-tests/read-file.h b/gnulib-tests/read-file.h
index 6248065..23e0920 100644
--- a/gnulib-tests/read-file.h
+++ b/gnulib-tests/read-file.h
@@ -1,5 +1,5 @@
/* read-file.h -- read file contents into a string
- Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc.
Written by Simon Josefsson.
This program is free software; you can redistribute it and/or modify
diff --git a/gnulib-tests/readdir.c b/gnulib-tests/readdir.c
index 76b7e9d..d1773af 100644
--- a/gnulib-tests/readdir.c
+++ b/gnulib-tests/readdir.c
@@ -1,5 +1,5 @@
/* Read the next entry of a directory.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/realloc.c b/gnulib-tests/realloc.c
index 83cb44e..526b487 100644
--- a/gnulib-tests/realloc.c
+++ b/gnulib-tests/realloc.c
@@ -1,6 +1,6 @@
/* realloc() function that is glibc compatible.
- Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2016 Free Software
+ Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2017 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
diff --git a/gnulib-tests/setenv.c b/gnulib-tests/setenv.c
index 85c32cb..edc6a0a 100644
--- a/gnulib-tests/setenv.c
+++ b/gnulib-tests/setenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995-2003, 2005-2016 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995-2003, 2005-2017 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
diff --git a/gnulib-tests/setlocale.c b/gnulib-tests/setlocale.c
index 7d366ed..af8cc90 100644
--- a/gnulib-tests/setlocale.c
+++ b/gnulib-tests/setlocale.c
@@ -1,5 +1,5 @@
/* Set the current locale. -*- coding: utf-8 -*-
- Copyright (C) 2009, 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2009, 2011-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
diff --git a/gnulib-tests/signature.h b/gnulib-tests/signature.h
index 2df8067..0fdfc11 100644
--- a/gnulib-tests/signature.h
+++ b/gnulib-tests/signature.h
@@ -1,5 +1,5 @@
/* Macro for checking that a function declaration is compliant.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/stdio-impl.h b/gnulib-tests/stdio-impl.h
index 766d693..75a945e 100644
--- a/gnulib-tests/stdio-impl.h
+++ b/gnulib-tests/stdio-impl.h
@@ -1,5 +1,5 @@
/* Implementation details of FILE streams.
- Copyright (C) 2007-2008, 2010-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2008, 2010-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
@@ -29,7 +29,7 @@
#include <errno.h> /* For detecting Plan9. */
#if defined __sferror || defined __DragonFly__ || defined __ANDROID__
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
# if defined __DragonFly__ /* DragonFly */
/* See <http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/priv_stdio.h?rev=HEAD&content-type=text/x-cvsweb-markup>. */
@@ -58,7 +58,7 @@
# define fp_ fp
# endif
-# if (defined __NetBSD__ && __NetBSD_Version__ >= 105270000) || defined __OpenBSD__ || defined __ANDROID__ /* NetBSD >= 1.5ZA, OpenBSD, Android */
+# if (defined __NetBSD__ && __NetBSD_Version__ >= 105270000) || defined __OpenBSD__ || defined __minix || defined __ANDROID__ /* NetBSD >= 1.5ZA, OpenBSD, Minix 3, Android */
/* See <http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/stdio/fileext.h?rev=HEAD&content-type=text/x-cvsweb-markup>
and <http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/stdio/fileext.h?rev=HEAD&content-type=text/x-cvsweb-markup> */
struct __sfileext
diff --git a/gnulib-tests/strdup.c b/gnulib-tests/strdup.c
index 81eb226..0c096e3 100644
--- a/gnulib-tests/strdup.c
+++ b/gnulib-tests/strdup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1996-1998, 2002-2004, 2006-2007, 2009-2016 Free Software
+/* Copyright (C) 1991, 1996-1998, 2002-2004, 2006-2007, 2009-2017 Free Software
Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/gnulib-tests/symlink.c b/gnulib-tests/symlink.c
index d8684b6..60d4c14 100644
--- a/gnulib-tests/symlink.c
+++ b/gnulib-tests/symlink.c
@@ -1,5 +1,5 @@
/* Stub for symlink().
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-alignof.c b/gnulib-tests/test-alignof.c
index 2af76f5..425ae0e 100644
--- a/gnulib-tests/test-alignof.c
+++ b/gnulib-tests/test-alignof.c
@@ -1,5 +1,5 @@
/* Test of <alignof.h>.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-alloca-opt.c b/gnulib-tests/test-alloca-opt.c
index b9aaa4a..4c5b3bd 100644
--- a/gnulib-tests/test-alloca-opt.c
+++ b/gnulib-tests/test-alloca-opt.c
@@ -1,5 +1,5 @@
/* Test of optional automatic memory allocation.
- Copyright (C) 2005, 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2007, 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
diff --git a/gnulib-tests/test-binary-io.c b/gnulib-tests/test-binary-io.c
index 6801e96..f53a1ae 100644
--- a/gnulib-tests/test-binary-io.c
+++ b/gnulib-tests/test-binary-io.c
@@ -1,5 +1,5 @@
/* Test of binary mode I/O.
- Copyright (C) 2005, 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2007-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
diff --git a/gnulib-tests/test-btowc.c b/gnulib-tests/test-btowc.c
index 9953ac4..7d3a7b6 100644
--- a/gnulib-tests/test-btowc.c
+++ b/gnulib-tests/test-btowc.c
@@ -1,5 +1,5 @@
/* Test of conversion of unibyte character to wide character.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/test-c-ctype.c b/gnulib-tests/test-c-ctype.c
index 184cdec..d978035 100644
--- a/gnulib-tests/test-c-ctype.c
+++ b/gnulib-tests/test-c-ctype.c
@@ -1,5 +1,5 @@
/* Test of character handling in C locale.
- Copyright (C) 2005, 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2007-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
diff --git a/gnulib-tests/test-c-strcasecmp.c b/gnulib-tests/test-c-strcasecmp.c
index 42e538f..8eb5fd5 100644
--- a/gnulib-tests/test-c-strcasecmp.c
+++ b/gnulib-tests/test-c-strcasecmp.c
@@ -1,5 +1,5 @@
/* Test of case-insensitive string comparison function.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-c-strncasecmp.c b/gnulib-tests/test-c-strncasecmp.c
index 349f6b3..6aea06c 100644
--- a/gnulib-tests/test-c-strncasecmp.c
+++ b/gnulib-tests/test-c-strncasecmp.c
@@ -1,5 +1,5 @@
/* Test of case-insensitive string comparison function.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-canonicalize-lgpl.c b/gnulib-tests/test-canonicalize-lgpl.c
index d1c71e6..af20a0a 100644
--- a/gnulib-tests/test-canonicalize-lgpl.c
+++ b/gnulib-tests/test-canonicalize-lgpl.c
@@ -1,5 +1,5 @@
/* Test of execution of program termination handlers.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-chdir.c b/gnulib-tests/test-chdir.c
index 6eac5f4..739528b 100644
--- a/gnulib-tests/test-chdir.c
+++ b/gnulib-tests/test-chdir.c
@@ -1,5 +1,5 @@
/* Test changing to a directory.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/test-close.c b/gnulib-tests/test-close.c
index a0428e0..c8565aa 100644
--- a/gnulib-tests/test-close.c
+++ b/gnulib-tests/test-close.c
@@ -1,5 +1,5 @@
/* Test closing a file or socket.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/test-copy-acl.c b/gnulib-tests/test-copy-acl.c
index 1dfd2e2..36295c2 100644
--- a/gnulib-tests/test-copy-acl.c
+++ b/gnulib-tests/test-copy-acl.c
@@ -1,5 +1,5 @@
/* Test of copying of files.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/test-ctype.c b/gnulib-tests/test-ctype.c
index 570fbdb..66e1026 100644
--- a/gnulib-tests/test-ctype.c
+++ b/gnulib-tests/test-ctype.c
@@ -1,5 +1,5 @@
/* Test of <ctype.h> substitute.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-dirent.c b/gnulib-tests/test-dirent.c
index 50a0c95..6bb4ca4 100644
--- a/gnulib-tests/test-dirent.c
+++ b/gnulib-tests/test-dirent.c
@@ -1,5 +1,5 @@
/* Test of <dirent.h> substitute.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-dup2.c b/gnulib-tests/test-dup2.c
index 5da6812..8f7df3a 100644
--- a/gnulib-tests/test-dup2.c
+++ b/gnulib-tests/test-dup2.c
@@ -1,5 +1,5 @@
/* Test duplicating file descriptors.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-environ.c b/gnulib-tests/test-environ.c
index 0047246..97a268a 100644
--- a/gnulib-tests/test-environ.c
+++ b/gnulib-tests/test-environ.c
@@ -1,5 +1,5 @@
/* Test of environ variable.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/test-errno.c b/gnulib-tests/test-errno.c
index 1e0bb6d..8accfda 100644
--- a/gnulib-tests/test-errno.c
+++ b/gnulib-tests/test-errno.c
@@ -1,5 +1,5 @@
/* Test of <errno.h> substitute.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/test-fcntl-h.c b/gnulib-tests/test-fcntl-h.c
index aef1661..4c17fdf 100644
--- a/gnulib-tests/test-fcntl-h.c
+++ b/gnulib-tests/test-fcntl-h.c
@@ -1,5 +1,5 @@
/* Test of <fcntl.h> substitute.
- Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007, 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
diff --git a/gnulib-tests/test-fdopen.c b/gnulib-tests/test-fdopen.c
index 55b49a6..c4ce344 100644
--- a/gnulib-tests/test-fdopen.c
+++ b/gnulib-tests/test-fdopen.c
@@ -1,5 +1,5 @@
/* Test opening a stream with a file descriptor.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/test-fflush.c b/gnulib-tests/test-fflush.c
index baf61bc..a8a06c3 100644
--- a/gnulib-tests/test-fflush.c
+++ b/gnulib-tests/test-fflush.c
@@ -1,5 +1,5 @@
/* Test of POSIX compatible fflush() function.
- Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007, 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
diff --git a/gnulib-tests/test-fflush2.c b/gnulib-tests/test-fflush2.c
index f1248f8..2d8d33a 100644
--- a/gnulib-tests/test-fflush2.c
+++ b/gnulib-tests/test-fflush2.c
@@ -1,5 +1,5 @@
/* Test of POSIX compatible fflush() function.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/test-fgetc.c b/gnulib-tests/test-fgetc.c
index c62e70c..f1a3188 100644
--- a/gnulib-tests/test-fgetc.c
+++ b/gnulib-tests/test-fgetc.c
@@ -1,5 +1,5 @@
/* Test of fgetc() function.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/test-file-has-acl.c b/gnulib-tests/test-file-has-acl.c
index 8a446a6..0f1d339 100644
--- a/gnulib-tests/test-file-has-acl.c
+++ b/gnulib-tests/test-file-has-acl.c
@@ -1,5 +1,5 @@
/* Test for presence of ACL.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/test-fpending.c b/gnulib-tests/test-fpending.c
index 2d7749d..658482f 100644
--- a/gnulib-tests/test-fpending.c
+++ b/gnulib-tests/test-fpending.c
@@ -1,6 +1,6 @@
/* Ensure that __fpending works.
- Copyright (C) 2004, 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2007-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
diff --git a/gnulib-tests/test-fpurge.c b/gnulib-tests/test-fpurge.c
index 32f3a98..bdf70c1 100644
--- a/gnulib-tests/test-fpurge.c
+++ b/gnulib-tests/test-fpurge.c
@@ -1,5 +1,5 @@
/* Test of fpurge() function.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-fputc.c b/gnulib-tests/test-fputc.c
index 95a1cb6..dd6993e 100644
--- a/gnulib-tests/test-fputc.c
+++ b/gnulib-tests/test-fputc.c
@@ -1,5 +1,5 @@
/* Test of fputc() function.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/test-fread.c b/gnulib-tests/test-fread.c
index b9fc72a..1b7c42a 100644
--- a/gnulib-tests/test-fread.c
+++ b/gnulib-tests/test-fread.c
@@ -1,5 +1,5 @@
/* Test of fread() function.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/test-freading.c b/gnulib-tests/test-freading.c
index 469cb78..12e9fdc 100644
--- a/gnulib-tests/test-freading.c
+++ b/gnulib-tests/test-freading.c
@@ -1,5 +1,5 @@
/* Test of freading() function.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-fseek.c b/gnulib-tests/test-fseek.c
index b5118fa..5db2d62 100644
--- a/gnulib-tests/test-fseek.c
+++ b/gnulib-tests/test-fseek.c
@@ -1,5 +1,5 @@
/* Test of fseek() function.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-fseeko.c b/gnulib-tests/test-fseeko.c
index dee2072..577e360 100644
--- a/gnulib-tests/test-fseeko.c
+++ b/gnulib-tests/test-fseeko.c
@@ -1,5 +1,5 @@
/* Test of fseeko() function.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-fseeko3.c b/gnulib-tests/test-fseeko3.c
index c76d425..7c557ea 100644
--- a/gnulib-tests/test-fseeko3.c
+++ b/gnulib-tests/test-fseeko3.c
@@ -1,5 +1,5 @@
/* Test of fseeko() function.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/test-fseeko4.c b/gnulib-tests/test-fseeko4.c
index d0b8b9f..5a46b02 100644
--- a/gnulib-tests/test-fseeko4.c
+++ b/gnulib-tests/test-fseeko4.c
@@ -1,5 +1,5 @@
/* Test of fseeko() function.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/test-fstat.c b/gnulib-tests/test-fstat.c
index c9ac749..35479fa 100644
--- a/gnulib-tests/test-fstat.c
+++ b/gnulib-tests/test-fstat.c
@@ -1,5 +1,5 @@
/* Tests of fstat() function.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/test-ftell.c b/gnulib-tests/test-ftell.c
index 9b52344..7df08fd 100644
--- a/gnulib-tests/test-ftell.c
+++ b/gnulib-tests/test-ftell.c
@@ -1,5 +1,5 @@
/* Test of ftell() function.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-ftell3.c b/gnulib-tests/test-ftell3.c
index 695e5b2..ef34113 100644
--- a/gnulib-tests/test-ftell3.c
+++ b/gnulib-tests/test-ftell3.c
@@ -1,5 +1,5 @@
/* Test of ftell() function.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-ftello.c b/gnulib-tests/test-ftello.c
index 369d476..9ea9240 100644
--- a/gnulib-tests/test-ftello.c
+++ b/gnulib-tests/test-ftello.c
@@ -1,5 +1,5 @@
/* Test of ftello() function.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-ftello3.c b/gnulib-tests/test-ftello3.c
index f75ce03..60b2c7c 100644
--- a/gnulib-tests/test-ftello3.c
+++ b/gnulib-tests/test-ftello3.c
@@ -1,5 +1,5 @@
/* Test of ftello() function.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-ftello4.c b/gnulib-tests/test-ftello4.c
index 1f94ef6..9d5059a 100644
--- a/gnulib-tests/test-ftello4.c
+++ b/gnulib-tests/test-ftello4.c
@@ -1,5 +1,5 @@
/* Test of ftello() function.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/test-fwrite.c b/gnulib-tests/test-fwrite.c
index bc285f3..f50bbfc 100644
--- a/gnulib-tests/test-fwrite.c
+++ b/gnulib-tests/test-fwrite.c
@@ -1,5 +1,5 @@
/* Test of fwrite() function.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/test-fwriting.c b/gnulib-tests/test-fwriting.c
index dd7883e..1c85a88 100644
--- a/gnulib-tests/test-fwriting.c
+++ b/gnulib-tests/test-fwriting.c
@@ -1,5 +1,5 @@
/* Test of fwriting() function.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-getcwd-lgpl.c b/gnulib-tests/test-getcwd-lgpl.c
index 6bea7b7..7c0688c 100644
--- a/gnulib-tests/test-getcwd-lgpl.c
+++ b/gnulib-tests/test-getcwd-lgpl.c
@@ -1,5 +1,5 @@
/* Test of getcwd() function.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-getdelim.c b/gnulib-tests/test-getdelim.c
index 0770d5b..3e190d9 100644
--- a/gnulib-tests/test-getdelim.c
+++ b/gnulib-tests/test-getdelim.c
@@ -1,5 +1,5 @@
/* Test of getdelim() function.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-getdtablesize.c b/gnulib-tests/test-getdtablesize.c
index 54efa04..885010f 100644
--- a/gnulib-tests/test-getdtablesize.c
+++ b/gnulib-tests/test-getdtablesize.c
@@ -1,5 +1,5 @@
/* Test of getdtablesize() function.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/test-getopt-gnu.c b/gnulib-tests/test-getopt-gnu.c
index 2d9a4bd..c26e7f1 100644
--- a/gnulib-tests/test-getopt-gnu.c
+++ b/gnulib-tests/test-getopt-gnu.c
@@ -1,5 +1,5 @@
/* Test of command line argument processing.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-getopt-main.h b/gnulib-tests/test-getopt-main.h
index aef74f5..4e3cd2d 100644
--- a/gnulib-tests/test-getopt-main.h
+++ b/gnulib-tests/test-getopt-main.h
@@ -1,5 +1,5 @@
/* Test of command line argument processing.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-getopt-posix.c b/gnulib-tests/test-getopt-posix.c
index 5532271..216912d 100644
--- a/gnulib-tests/test-getopt-posix.c
+++ b/gnulib-tests/test-getopt-posix.c
@@ -1,5 +1,5 @@
/* Test of command line argument processing.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-getopt.h b/gnulib-tests/test-getopt.h
index 8e61eb2..ce470c8 100644
--- a/gnulib-tests/test-getopt.h
+++ b/gnulib-tests/test-getopt.h
@@ -1,5 +1,5 @@
/* Test of command line argument processing.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-getopt_long.h b/gnulib-tests/test-getopt_long.h
index 0f83f47..670ef9c 100644
--- a/gnulib-tests/test-getopt_long.h
+++ b/gnulib-tests/test-getopt_long.h
@@ -1,5 +1,5 @@
/* Test of command line argument processing.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-getprogname.c b/gnulib-tests/test-getprogname.c
index 7c2b872..299ca3d 100644
--- a/gnulib-tests/test-getprogname.c
+++ b/gnulib-tests/test-getprogname.c
@@ -1,5 +1,5 @@
/* Test the gnulib getprogname module.
- Copyright (C) 2016 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
diff --git a/gnulib-tests/test-gettimeofday.c b/gnulib-tests/test-gettimeofday.c
index 7a44d71..124d991 100644
--- a/gnulib-tests/test-gettimeofday.c
+++ b/gnulib-tests/test-gettimeofday.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005, 2007, 2009-2016 Free Software Foundation, Inc.
+ * Copyright (C) 2005, 2007, 2009-2017 Free Software Foundation, Inc.
* Written by Jim Meyering.
*
* This program is free software: you can redistribute it and/or modify
diff --git a/gnulib-tests/test-ignore-value.c b/gnulib-tests/test-ignore-value.c
index 7c4b2de..ca77294 100644
--- a/gnulib-tests/test-ignore-value.c
+++ b/gnulib-tests/test-ignore-value.c
@@ -1,6 +1,6 @@
/* Test the "ignore-value" module.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/test-init.sh b/gnulib-tests/test-init.sh
index a627859..98fe2c0 100755
--- a/gnulib-tests/test-init.sh
+++ b/gnulib-tests/test-init.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Unit tests for init.sh
-# Copyright (C) 2011-2016 Free Software Foundation, Inc.
+# Copyright (C) 2011-2017 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
diff --git a/gnulib-tests/test-intprops.c b/gnulib-tests/test-intprops.c
index 0a8ddcd..b7740dd 100644
--- a/gnulib-tests/test-intprops.c
+++ b/gnulib-tests/test-intprops.c
@@ -1,5 +1,5 @@
/* Test intprops.h.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/test-inttypes.c b/gnulib-tests/test-inttypes.c
index 9a3193c..d6524c7 100644
--- a/gnulib-tests/test-inttypes.c
+++ b/gnulib-tests/test-inttypes.c
@@ -1,5 +1,5 @@
/* Test of <inttypes.h> substitute.
- Copyright (C) 2006-2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2006-2007, 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
diff --git a/gnulib-tests/test-isblank.c b/gnulib-tests/test-isblank.c
index 2f6f676..54769dd 100644
--- a/gnulib-tests/test-isblank.c
+++ b/gnulib-tests/test-isblank.c
@@ -1,5 +1,5 @@
/* Test of isblank() function.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-langinfo.c b/gnulib-tests/test-langinfo.c
index 30b0007..f1c9429 100644
--- a/gnulib-tests/test-langinfo.c
+++ b/gnulib-tests/test-langinfo.c
@@ -1,5 +1,5 @@
/* Test of <langinfo.h> substitute.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-limits-h.c b/gnulib-tests/test-limits-h.c
index f5576bf..15a291f 100644
--- a/gnulib-tests/test-limits-h.c
+++ b/gnulib-tests/test-limits-h.c
@@ -1,5 +1,5 @@
/* Test of <limits.h> substitute.
- Copyright 2016 Free Software Foundation, Inc.
+ Copyright 2016-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
diff --git a/gnulib-tests/test-link.c b/gnulib-tests/test-link.c
index bdd20aa..00e093b 100644
--- a/gnulib-tests/test-link.c
+++ b/gnulib-tests/test-link.c
@@ -1,5 +1,5 @@
/* Test of link() function.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-link.h b/gnulib-tests/test-link.h
index 1ae8544..24d7604 100644
--- a/gnulib-tests/test-link.h
+++ b/gnulib-tests/test-link.h
@@ -1,5 +1,5 @@
/* Test of link() function.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-locale.c b/gnulib-tests/test-locale.c
index c1811af..749adf3 100644
--- a/gnulib-tests/test-locale.c
+++ b/gnulib-tests/test-locale.c
@@ -1,5 +1,5 @@
/* Test of <locale.h> substitute.
- Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007, 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
diff --git a/gnulib-tests/test-localeconv.c b/gnulib-tests/test-localeconv.c
index 9e83f2d..8ed987a 100644
--- a/gnulib-tests/test-localeconv.c
+++ b/gnulib-tests/test-localeconv.c
@@ -1,5 +1,5 @@
/* Test of localeconv() function.
- Copyright (C) 2012-2016 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
diff --git a/gnulib-tests/test-localename.c b/gnulib-tests/test-localename.c
index be8fcaf..994192c 100644
--- a/gnulib-tests/test-localename.c
+++ b/gnulib-tests/test-localename.c
@@ -1,5 +1,5 @@
/* Test of gl_locale_name function and its variants.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -27,7 +27,7 @@
#include "macros.h"
-#if HAVE_NEWLOCALE
+#if HAVE_NEWLOCALE && HAVE_USELOCALE
static struct { int cat; int mask; const char *string; } const categories[] =
{
@@ -70,7 +70,7 @@ test_locale_name (void)
/* Get into a defined state, */
setlocale (LC_ALL, "en_US.UTF-8");
-#if HAVE_NEWLOCALE
+#if HAVE_NEWLOCALE && HAVE_USELOCALE
uselocale (LC_GLOBAL_LOCALE);
#endif
@@ -172,7 +172,7 @@ test_locale_name (void)
ASSERT (strcmp (name, "fr_FR.UTF-8") == 0);
}
-#if HAVE_NEWLOCALE
+#if HAVE_NEWLOCALE && HAVE_USELOCALE
/* Check that gl_locale_name considers the thread locale. */
{
locale_t locale = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL);
@@ -232,7 +232,7 @@ test_locale_name_thread (void)
/* Get into a defined state, */
setlocale (LC_ALL, "en_US.UTF-8");
-#if HAVE_NEWLOCALE
+#if HAVE_NEWLOCALE && HAVE_USELOCALE
/* Check that gl_locale_name_thread returns NULL when no thread locale is
set. */
uselocale (LC_GLOBAL_LOCALE);
@@ -487,7 +487,7 @@ test_locale_name_posix (void)
/* Get into a defined state, */
setlocale (LC_ALL, "en_US.UTF-8");
-#if HAVE_NEWLOCALE
+#if HAVE_NEWLOCALE && HAVE_USELOCALE
uselocale (LC_GLOBAL_LOCALE);
#endif
@@ -592,7 +592,7 @@ test_locale_name_posix (void)
ASSERT (strcmp (name, "fr_FR.UTF-8") == 0);
}
-#if HAVE_NEWLOCALE
+#if HAVE_NEWLOCALE && HAVE_USELOCALE
/* Check that gl_locale_name_posix ignores the thread locale. */
{
locale_t locale = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL);
@@ -621,7 +621,7 @@ test_locale_name_environ (void)
/* Get into a defined state, */
setlocale (LC_ALL, "en_US.UTF-8");
-#if HAVE_NEWLOCALE
+#if HAVE_NEWLOCALE && HAVE_USELOCALE
uselocale (LC_GLOBAL_LOCALE);
#endif
@@ -706,7 +706,7 @@ test_locale_name_environ (void)
name = gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES");
ASSERT (strcmp (name, "fr_FR.UTF-8") == 0);
-#if HAVE_NEWLOCALE
+#if HAVE_NEWLOCALE && HAVE_USELOCALE
/* Check that gl_locale_name_environ ignores the thread locale. */
{
locale_t locale = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL);
@@ -741,7 +741,7 @@ test_locale_name_default (void)
ASSERT (strcmp (name, "C") == 0);
#endif
-#if HAVE_NEWLOCALE
+#if HAVE_NEWLOCALE && HAVE_USELOCALE
/* Check that gl_locale_name_default ignores the thread locale. */
{
locale_t locale = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL);
diff --git a/gnulib-tests/test-lseek.c b/gnulib-tests/test-lseek.c
index f748435..f772497 100644
--- a/gnulib-tests/test-lseek.c
+++ b/gnulib-tests/test-lseek.c
@@ -1,5 +1,5 @@
/* Test of lseek() function.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-lstat.c b/gnulib-tests/test-lstat.c
index 86ff465..20e83a6 100644
--- a/gnulib-tests/test-lstat.c
+++ b/gnulib-tests/test-lstat.c
@@ -1,5 +1,5 @@
/* Test of lstat() function.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/test-lstat.h b/gnulib-tests/test-lstat.h
index 4eb9036..b5815f6 100644
--- a/gnulib-tests/test-lstat.h
+++ b/gnulib-tests/test-lstat.h
@@ -1,5 +1,5 @@
/* Test of lstat() function.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/test-malloca.c b/gnulib-tests/test-malloca.c
index e9ab83d..11f0f79 100644
--- a/gnulib-tests/test-malloca.c
+++ b/gnulib-tests/test-malloca.c
@@ -1,5 +1,5 @@
/* Test of safe automatic memory allocation.
- Copyright (C) 2005, 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2007, 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
diff --git a/gnulib-tests/test-mbrtowc-w32.c b/gnulib-tests/test-mbrtowc-w32.c
index f637330..4dc30b0 100644
--- a/gnulib-tests/test-mbrtowc-w32.c
+++ b/gnulib-tests/test-mbrtowc-w32.c
@@ -1,5 +1,5 @@
/* Test of conversion of multibyte character to wide character.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/test-mbrtowc.c b/gnulib-tests/test-mbrtowc.c
index f7fed6a..ddbe243 100644
--- a/gnulib-tests/test-mbrtowc.c
+++ b/gnulib-tests/test-mbrtowc.c
@@ -1,5 +1,5 @@
/* Test of conversion of multibyte character to wide character.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/test-mbsinit.c b/gnulib-tests/test-mbsinit.c
index 8cd1c4d..315937c 100644
--- a/gnulib-tests/test-mbsinit.c
+++ b/gnulib-tests/test-mbsinit.c
@@ -1,5 +1,5 @@
/* Test of test for initial conversion state.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/test-memchr.c b/gnulib-tests/test-memchr.c
index 1526ed2..f31bf8c 100644
--- a/gnulib-tests/test-memchr.c
+++ b/gnulib-tests/test-memchr.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2017 Free Software Foundation, Inc.
* Written by Eric Blake and Bruno Haible
*
* This program is free software: you can redistribute it and/or modify
diff --git a/gnulib-tests/test-memrchr.c b/gnulib-tests/test-memrchr.c
index 3002062..7c7589d 100644
--- a/gnulib-tests/test-memrchr.c
+++ b/gnulib-tests/test-memrchr.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2017 Free Software Foundation, Inc.
* Written by Eric Blake and Bruno Haible
*
* This program is free software: you can redistribute it and/or modify
diff --git a/gnulib-tests/test-nl_langinfo.c b/gnulib-tests/test-nl_langinfo.c
index 3a8fa8f..69a0885 100644
--- a/gnulib-tests/test-nl_langinfo.c
+++ b/gnulib-tests/test-nl_langinfo.c
@@ -1,5 +1,5 @@
/* Test of nl_langinfo replacement.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-open.c b/gnulib-tests/test-open.c
index d9e2e27..cfcad6a 100644
--- a/gnulib-tests/test-open.c
+++ b/gnulib-tests/test-open.c
@@ -1,5 +1,5 @@
/* Test of opening a file descriptor.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-open.h b/gnulib-tests/test-open.h
index faaff0f..6d01dd9 100644
--- a/gnulib-tests/test-open.h
+++ b/gnulib-tests/test-open.h
@@ -1,5 +1,5 @@
/* Test of opening a file descriptor.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-pathmax.c b/gnulib-tests/test-pathmax.c
index ac4a393..7b3510c 100644
--- a/gnulib-tests/test-pathmax.c
+++ b/gnulib-tests/test-pathmax.c
@@ -1,5 +1,5 @@
/* Test of "pathmax.h".
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/test-quotearg-simple.c b/gnulib-tests/test-quotearg-simple.c
index 99b69f4..4bd2312 100644
--- a/gnulib-tests/test-quotearg-simple.c
+++ b/gnulib-tests/test-quotearg-simple.c
@@ -1,5 +1,5 @@
/* Test of quotearg family of functions.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/test-quotearg.h b/gnulib-tests/test-quotearg.h
index 6e8510e..5aee789 100644
--- a/gnulib-tests/test-quotearg.h
+++ b/gnulib-tests/test-quotearg.h
@@ -1,5 +1,5 @@
/* Test of quotearg family of functions.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/test-read-file.c b/gnulib-tests/test-read-file.c
index ab13f14..5e7f2e0 100644
--- a/gnulib-tests/test-read-file.c
+++ b/gnulib-tests/test-read-file.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006-2007, 2010-2016 Free Software Foundation, Inc.
+ * Copyright (C) 2006-2007, 2010-2017 Free Software Foundation, Inc.
* Written by Simon Josefsson
*
* This program is free software: you can redistribute it and/or modify
diff --git a/gnulib-tests/test-readlink.c b/gnulib-tests/test-readlink.c
index fdff6e1..7911cf4 100644
--- a/gnulib-tests/test-readlink.c
+++ b/gnulib-tests/test-readlink.c
@@ -1,5 +1,5 @@
/* Tests of readlink.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-readlink.h b/gnulib-tests/test-readlink.h
index cba98f6..674aef8 100644
--- a/gnulib-tests/test-readlink.h
+++ b/gnulib-tests/test-readlink.h
@@ -1,5 +1,5 @@
/* Tests of readlink.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-regex.c b/gnulib-tests/test-regex.c
index c0d9824..9173fe8 100644
--- a/gnulib-tests/test-regex.c
+++ b/gnulib-tests/test-regex.c
@@ -1,5 +1,5 @@
/* Test regular expressions
- Copyright 1996-2001, 2003-2016 Free Software Foundation, Inc.
+ Copyright 1996-2001, 2003-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
diff --git a/gnulib-tests/test-rename.c b/gnulib-tests/test-rename.c
index 18f45e7..edbb486 100644
--- a/gnulib-tests/test-rename.c
+++ b/gnulib-tests/test-rename.c
@@ -1,5 +1,5 @@
/* Test of rename() function.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-rename.h b/gnulib-tests/test-rename.h
index 71adeaf..93a1041 100644
--- a/gnulib-tests/test-rename.h
+++ b/gnulib-tests/test-rename.h
@@ -1,5 +1,5 @@
/* Test of rename() function.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-rmdir.c b/gnulib-tests/test-rmdir.c
index 192525c..f04c735 100644
--- a/gnulib-tests/test-rmdir.c
+++ b/gnulib-tests/test-rmdir.c
@@ -1,5 +1,5 @@
/* Tests of rmdir.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-rmdir.h b/gnulib-tests/test-rmdir.h
index 5cccd05..d33e8bf 100644
--- a/gnulib-tests/test-rmdir.h
+++ b/gnulib-tests/test-rmdir.h
@@ -1,5 +1,5 @@
/* Tests of rmdir.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-sameacls.c b/gnulib-tests/test-sameacls.c
index aa34ae6..6de5272 100644
--- a/gnulib-tests/test-sameacls.c
+++ b/gnulib-tests/test-sameacls.c
@@ -1,5 +1,5 @@
/* Test whether two files have the same ACLs.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/test-set-mode-acl.c b/gnulib-tests/test-set-mode-acl.c
index d50dbff..7e91d2e 100644
--- a/gnulib-tests/test-set-mode-acl.c
+++ b/gnulib-tests/test-set-mode-acl.c
@@ -1,5 +1,5 @@
/* Test of setting an ACL equivalent to a mode.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/test-setenv.c b/gnulib-tests/test-setenv.c
index 519dc27..d5e628f 100644
--- a/gnulib-tests/test-setenv.c
+++ b/gnulib-tests/test-setenv.c
@@ -1,5 +1,5 @@
/* Tests of setenv.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-setlocale1.c b/gnulib-tests/test-setlocale1.c
index 143c0d8..69e17cb 100644
--- a/gnulib-tests/test-setlocale1.c
+++ b/gnulib-tests/test-setlocale1.c
@@ -1,5 +1,5 @@
/* Test of setting the current locale.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/test-setlocale2.c b/gnulib-tests/test-setlocale2.c
index 52e65d8..32d7bb3 100644
--- a/gnulib-tests/test-setlocale2.c
+++ b/gnulib-tests/test-setlocale2.c
@@ -1,5 +1,5 @@
/* Test of setting the current locale.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/test-stat.c b/gnulib-tests/test-stat.c
index 4510e59..225edaa 100644
--- a/gnulib-tests/test-stat.c
+++ b/gnulib-tests/test-stat.c
@@ -1,5 +1,5 @@
/* Tests of stat.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-stat.h b/gnulib-tests/test-stat.h
index 4cf6c6d..234ec77 100644
--- a/gnulib-tests/test-stat.h
+++ b/gnulib-tests/test-stat.h
@@ -1,5 +1,5 @@
/* Tests of stat.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-stdalign.c b/gnulib-tests/test-stdalign.c
index 0f240c5..8b44d6f 100644
--- a/gnulib-tests/test-stdalign.c
+++ b/gnulib-tests/test-stdalign.c
@@ -1,5 +1,5 @@
/* Test of <stdalign.h>.
- Copyright 2009-2016 Free Software Foundation, Inc.
+ Copyright 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
diff --git a/gnulib-tests/test-stdbool.c b/gnulib-tests/test-stdbool.c
index 45dc837..507af83 100644
--- a/gnulib-tests/test-stdbool.c
+++ b/gnulib-tests/test-stdbool.c
@@ -1,5 +1,5 @@
/* Test of <stdbool.h> substitute.
- Copyright (C) 2002-2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2007, 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
diff --git a/gnulib-tests/test-stddef.c b/gnulib-tests/test-stddef.c
index bfb72a0..5b0f045 100644
--- a/gnulib-tests/test-stddef.c
+++ b/gnulib-tests/test-stddef.c
@@ -1,5 +1,5 @@
/* Test of <stddef.h> substitute.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-stdint.c b/gnulib-tests/test-stdint.c
index 6eb1d2e..7352215 100644
--- a/gnulib-tests/test-stdint.c
+++ b/gnulib-tests/test-stdint.c
@@ -1,5 +1,5 @@
/* Test of <stdint.h> substitute.
- Copyright (C) 2006-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-stdio.c b/gnulib-tests/test-stdio.c
index 6cde888..46d75e2 100644
--- a/gnulib-tests/test-stdio.c
+++ b/gnulib-tests/test-stdio.c
@@ -1,5 +1,5 @@
/* Test of <stdio.h> substitute.
- Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007, 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
diff --git a/gnulib-tests/test-stdlib.c b/gnulib-tests/test-stdlib.c
index a1fc0d8..3c1d7fb 100644
--- a/gnulib-tests/test-stdlib.c
+++ b/gnulib-tests/test-stdlib.c
@@ -1,5 +1,5 @@
/* Test of <stdlib.h> substitute.
- Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007, 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
diff --git a/gnulib-tests/test-strerror.c b/gnulib-tests/test-strerror.c
index 80ffe1c..6b2b4fa 100644
--- a/gnulib-tests/test-strerror.c
+++ b/gnulib-tests/test-strerror.c
@@ -1,5 +1,5 @@
/* Test of strerror() function.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-string.c b/gnulib-tests/test-string.c
index f4c60f7..f10005d 100644
--- a/gnulib-tests/test-string.c
+++ b/gnulib-tests/test-string.c
@@ -1,5 +1,5 @@
/* Test of <string.h> substitute.
- Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007, 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
diff --git a/gnulib-tests/test-strverscmp.c b/gnulib-tests/test-strverscmp.c
index 0cafe08..c26b001 100644
--- a/gnulib-tests/test-strverscmp.c
+++ b/gnulib-tests/test-strverscmp.c
@@ -1,5 +1,5 @@
/* Test of strverscmp() function.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/test-symlink.c b/gnulib-tests/test-symlink.c
index ad13b93..6b025a8 100644
--- a/gnulib-tests/test-symlink.c
+++ b/gnulib-tests/test-symlink.c
@@ -1,5 +1,5 @@
/* Tests of symlink.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-symlink.h b/gnulib-tests/test-symlink.h
index fc064e8..8b16f4a 100644
--- a/gnulib-tests/test-symlink.h
+++ b/gnulib-tests/test-symlink.h
@@ -1,5 +1,5 @@
/* Tests of symlink.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-sys_stat.c b/gnulib-tests/test-sys_stat.c
index 8a3af94..df1972f 100644
--- a/gnulib-tests/test-sys_stat.c
+++ b/gnulib-tests/test-sys_stat.c
@@ -1,5 +1,5 @@
/* Test of <sys/stat.h> substitute.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-sys_time.c b/gnulib-tests/test-sys_time.c
index 44535b9..ea38e84 100644
--- a/gnulib-tests/test-sys_time.c
+++ b/gnulib-tests/test-sys_time.c
@@ -1,5 +1,5 @@
/* Test of <sys/time.h> substitute.
- Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007, 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
diff --git a/gnulib-tests/test-sys_types.c b/gnulib-tests/test-sys_types.c
index 7f8fb6d..30a6b9d 100644
--- a/gnulib-tests/test-sys_types.c
+++ b/gnulib-tests/test-sys_types.c
@@ -1,5 +1,5 @@
/* Test of <sys/types.h> substitute.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/gnulib-tests/test-sys_wait.h b/gnulib-tests/test-sys_wait.h
index 7389be4..00cb1c0 100644
--- a/gnulib-tests/test-sys_wait.h
+++ b/gnulib-tests/test-sys_wait.h
@@ -1,5 +1,5 @@
/* Test of macros shared between <sys/wait.h> and <stdlib.h>.
- Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
diff --git a/gnulib-tests/test-time.c b/gnulib-tests/test-time.c
index dec2b13..ff9ffee 100644
--- a/gnulib-tests/test-time.c
+++ b/gnulib-tests/test-time.c
@@ -1,5 +1,5 @@
/* Test of <time.h> substitute.
- Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007, 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
diff --git a/gnulib-tests/test-unistd.c b/gnulib-tests/test-unistd.c
index 463ef57..ce7f59a 100644
--- a/gnulib-tests/test-unistd.c
+++ b/gnulib-tests/test-unistd.c
@@ -1,5 +1,5 @@
/* Test of <unistd.h> substitute.
- Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007, 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
diff --git a/gnulib-tests/test-unsetenv.c b/gnulib-tests/test-unsetenv.c
index fe4548d..d7d7d05 100644
--- a/gnulib-tests/test-unsetenv.c
+++ b/gnulib-tests/test-unsetenv.c
@@ -1,5 +1,5 @@
/* Tests of unsetenv.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-update-copyright.sh b/gnulib-tests/test-update-copyright.sh
index cd4886a..0df54e2 100755
--- a/gnulib-tests/test-update-copyright.sh
+++ b/gnulib-tests/test-update-copyright.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Test suite for update-copyright.
-# Copyright (C) 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2009-2017 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
diff --git a/gnulib-tests/test-vc-list-files-cvs.sh b/gnulib-tests/test-vc-list-files-cvs.sh
index 6262944..f04fe9c 100755
--- a/gnulib-tests/test-vc-list-files-cvs.sh
+++ b/gnulib-tests/test-vc-list-files-cvs.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Unit tests for vc-list-files
-# Copyright (C) 2008-2016 Free Software Foundation, Inc.
+# Copyright (C) 2008-2017 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
diff --git a/gnulib-tests/test-vc-list-files-git.sh b/gnulib-tests/test-vc-list-files-git.sh
index 4358115..8249017 100755
--- a/gnulib-tests/test-vc-list-files-git.sh
+++ b/gnulib-tests/test-vc-list-files-git.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Unit tests for vc-list-files
-# Copyright (C) 2008-2016 Free Software Foundation, Inc.
+# Copyright (C) 2008-2017 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
diff --git a/gnulib-tests/test-verify.c b/gnulib-tests/test-verify.c
index d7ca053..92b7501 100644
--- a/gnulib-tests/test-verify.c
+++ b/gnulib-tests/test-verify.c
@@ -1,6 +1,6 @@
/* Test the "verify" module.
- Copyright (C) 2005, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2005, 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
diff --git a/gnulib-tests/test-version-etc.c b/gnulib-tests/test-version-etc.c
index 66404a3..ad8221a 100644
--- a/gnulib-tests/test-version-etc.c
+++ b/gnulib-tests/test-version-etc.c
@@ -1,5 +1,5 @@
/* Test suite for version-etc.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2009-2017 Free Software Foundation, Inc.
This file is part of the GNUlib Library.
This program is free software: you can redistribute it and/or modify
diff --git a/gnulib-tests/test-version-etc.sh b/gnulib-tests/test-version-etc.sh
index 1706aef..e7de3b7 100755
--- a/gnulib-tests/test-version-etc.sh
+++ b/gnulib-tests/test-version-etc.sh
@@ -1,6 +1,6 @@
#! /bin/sh
# Test suite for version-etc.
-# Copyright (C) 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2009-2017 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
diff --git a/gnulib-tests/test-wchar.c b/gnulib-tests/test-wchar.c
index e118048..2463aeb 100644
--- a/gnulib-tests/test-wchar.c
+++ b/gnulib-tests/test-wchar.c
@@ -1,5 +1,5 @@
/* Test of <wchar.h> substitute.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-wcrtomb-w32.c b/gnulib-tests/test-wcrtomb-w32.c
index 0570c73..e7d0803 100644
--- a/gnulib-tests/test-wcrtomb-w32.c
+++ b/gnulib-tests/test-wcrtomb-w32.c
@@ -1,5 +1,5 @@
/* Test of conversion of wide character to multibyte character.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/test-wcrtomb.c b/gnulib-tests/test-wcrtomb.c
index e1d2bb4..1458c76 100644
--- a/gnulib-tests/test-wcrtomb.c
+++ b/gnulib-tests/test-wcrtomb.c
@@ -1,5 +1,5 @@
/* Test of conversion of wide character to multibyte character.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/gnulib-tests/test-wctype-h.c b/gnulib-tests/test-wctype-h.c
index b401091..6d1b2b6 100644
--- a/gnulib-tests/test-wctype-h.c
+++ b/gnulib-tests/test-wctype-h.c
@@ -1,5 +1,5 @@
/* Test of <wctype.h> substitute.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/gnulib-tests/test-xalloc-die.c b/gnulib-tests/test-xalloc-die.c
index f681ca5..66eb9a9 100644
--- a/gnulib-tests/test-xalloc-die.c
+++ b/gnulib-tests/test-xalloc-die.c
@@ -1,5 +1,5 @@
/* Test of xalloc_die() function.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/gnulib-tests/test-xalloc-die.sh b/gnulib-tests/test-xalloc-die.sh
index fba601f..0538d9f 100755
--- a/gnulib-tests/test-xalloc-die.sh
+++ b/gnulib-tests/test-xalloc-die.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Test suite for xalloc_die.
-# Copyright (C) 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2009-2017 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
diff --git a/gnulib-tests/unsetenv.c b/gnulib-tests/unsetenv.c
index 8368744..e8f9a80 100644
--- a/gnulib-tests/unsetenv.c
+++ b/gnulib-tests/unsetenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995-2002, 2005-2016 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995-2002, 2005-2017 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
diff --git a/gnulib-tests/zerosize-ptr.h b/gnulib-tests/zerosize-ptr.h
index e6ff672..e097ccd 100644
--- a/gnulib-tests/zerosize-ptr.h
+++ b/gnulib-tests/zerosize-ptr.h
@@ -1,5 +1,5 @@
/* Return a pointer to a zero-size object in memory.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/init.cfg b/init.cfg
index 55aeed6..915a260 100644
--- a/init.cfg
+++ b/init.cfg
@@ -1,6 +1,6 @@
# This file is sourced by init.sh, *before* its initialization.
-# Copyright (C) 2010-2016 Free Software Foundation, Inc.
+# Copyright (C) 2010-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
@@ -23,10 +23,17 @@ stderr_fileno_=9
# which could happen if not installed,
# or hasn't support for the built architecture,
# or hasn't appropriate error suppressions installed etc.
+# or the program under test was compiled with address sanitizer.
require_valgrind_()
{
valgrind --error-exitcode=1 true 2>/dev/null ||
skip_ "requires a working valgrind"
+
+ # We cannot apply valgrind to an ASAN-enabled executable.
+ # An ASAN-enabled binary will print this on the first line of
+ # its help output: Available flags for AddressSanitizer:
+ ASAN_OPTIONS=help=1 sed qq 2>&1 | grep AddressSanitizer: \
+ && skip_ 'ASAN enabled binary cannot work with valgrind'
}
# Call this with a list of programs under test immediately after
diff --git a/lib/acl-errno-valid.c b/lib/acl-errno-valid.c
index 086f75f..a633985 100644
--- a/lib/acl-errno-valid.c
+++ b/lib/acl-errno-valid.c
@@ -1,6 +1,6 @@
/* Test whether ACLs are well supported on this system.
- Copyright 2013-2016 Free Software Foundation, Inc.
+ 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
diff --git a/lib/acl-internal.c b/lib/acl-internal.c
index 4de60c3..2a2dee9 100644
--- a/lib/acl-internal.c
+++ b/lib/acl-internal.c
@@ -1,6 +1,6 @@
/* Test whether a file has a nontrivial ACL. -*- coding: utf-8 -*-
- Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2003, 2005-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
diff --git a/lib/acl-internal.h b/lib/acl-internal.h
index 636273e..e7bda0e 100644
--- a/lib/acl-internal.h
+++ b/lib/acl-internal.h
@@ -1,6 +1,6 @@
/* Internal implementation of access control lists. -*- coding: utf-8 -*-
- Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2003, 2005-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
diff --git a/lib/acl.h b/lib/acl.h
index 491b1ba..b13370c 100644
--- a/lib/acl.h
+++ b/lib/acl.h
@@ -1,6 +1,6 @@
/* acl.c - access control lists
- Copyright (C) 2002, 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2008-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
diff --git a/lib/acl_entries.c b/lib/acl_entries.c
index 9fc9cf5..1df6a84 100644
--- a/lib/acl_entries.c
+++ b/lib/acl_entries.c
@@ -1,6 +1,6 @@
/* Return the number of entries in an ACL.
- Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2003, 2005-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
diff --git a/lib/alignof.h b/lib/alignof.h
index 9b51af0..e64e2c7 100644
--- a/lib/alignof.h
+++ b/lib/alignof.h
@@ -1,5 +1,5 @@
/* Determine alignment of types.
- Copyright (C) 2003-2004, 2006, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2003-2004, 2006, 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
diff --git a/lib/alloca.in.h b/lib/alloca.in.h
index 6a25ecd..c3dc38a 100644
--- a/lib/alloca.in.h
+++ b/lib/alloca.in.h
@@ -1,6 +1,6 @@
/* Memory allocation on the stack.
- Copyright (C) 1995, 1999, 2001-2004, 2006-2016 Free Software Foundation,
+ Copyright (C) 1995, 1999, 2001-2004, 2006-2017 Free Software Foundation,
Inc.
This program is free software; you can redistribute it and/or modify it
diff --git a/lib/basename-lgpl.c b/lib/basename-lgpl.c
index 1182109..54d3cc0 100644
--- a/lib/basename-lgpl.c
+++ b/lib/basename-lgpl.c
@@ -1,6 +1,6 @@
/* basename.c -- return the last element in a file name
- Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2016 Free Software
+ Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2017 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/btowc.c b/lib/btowc.c
index e7badf9..214d2b7 100644
--- a/lib/btowc.c
+++ b/lib/btowc.c
@@ -1,5 +1,5 @@
/* Convert unibyte character to wide character.
- Copyright (C) 2008, 2010-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008, 2010-2017 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/c-ctype.h b/lib/c-ctype.h
index 717ae78..bcdba6b 100644
--- a/lib/c-ctype.h
+++ b/lib/c-ctype.h
@@ -5,7 +5,7 @@
<ctype.h> functions' behaviour depends on the current locale set via
setlocale.
- Copyright (C) 2000-2003, 2006, 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2000-2003, 2006, 2008-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
@@ -115,16 +115,16 @@ extern "C" {
/* Cases for lowercase hex letters, and lowercase letters, all offset by N. */
-#define _C_CTYPE_LOWER_A_THRU_F_N(n) \
- case 'a' + (n): case 'b' + (n): case 'c' + (n): case 'd' + (n): \
- case 'e' + (n): case 'f' + (n)
-#define _C_CTYPE_LOWER_N(n) \
- _C_CTYPE_LOWER_A_THRU_F_N(n): \
- case 'g' + (n): case 'h' + (n): case 'i' + (n): case 'j' + (n): \
- case 'k' + (n): case 'l' + (n): case 'm' + (n): case 'n' + (n): \
- case 'o' + (n): case 'p' + (n): case 'q' + (n): case 'r' + (n): \
- case 's' + (n): case 't' + (n): case 'u' + (n): case 'v' + (n): \
- case 'w' + (n): case 'x' + (n): case 'y' + (n): case 'z' + (n)
+#define _C_CTYPE_LOWER_A_THRU_F_N(N) \
+ case 'a' + (N): case 'b' + (N): case 'c' + (N): case 'd' + (N): \
+ case 'e' + (N): case 'f' + (N)
+#define _C_CTYPE_LOWER_N(N) \
+ _C_CTYPE_LOWER_A_THRU_F_N(N): \
+ case 'g' + (N): case 'h' + (N): case 'i' + (N): case 'j' + (N): \
+ case 'k' + (N): case 'l' + (N): case 'm' + (N): case 'n' + (N): \
+ case 'o' + (N): case 'p' + (N): case 'q' + (N): case 'r' + (N): \
+ case 's' + (N): case 't' + (N): case 'u' + (N): case 'v' + (N): \
+ case 'w' + (N): case 'x' + (N): case 'y' + (N): case 'z' + (N)
/* Cases for hex letters, digits, lower, punct, and upper. */
diff --git a/lib/c-strcase.h b/lib/c-strcase.h
index 7e570f5..c82dab1 100644
--- a/lib/c-strcase.h
+++ b/lib/c-strcase.h
@@ -1,5 +1,5 @@
/* Case-insensitive string comparison functions in C locale.
- Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2016 Free Software
+ Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2017 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
diff --git a/lib/c-strcasecmp.c b/lib/c-strcasecmp.c
index bd113b7..5bce873 100644
--- a/lib/c-strcasecmp.c
+++ b/lib/c-strcasecmp.c
@@ -1,5 +1,5 @@
/* c-strcasecmp.c -- case insensitive string comparator in C locale
- Copyright (C) 1998-1999, 2005-2006, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 1998-1999, 2005-2006, 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
diff --git a/lib/c-strcaseeq.h b/lib/c-strcaseeq.h
index ed57251..aa5e71f 100644
--- a/lib/c-strcaseeq.h
+++ b/lib/c-strcaseeq.h
@@ -1,5 +1,5 @@
/* Optimized case-insensitive string comparison in C locale.
- Copyright (C) 2001-2002, 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2007, 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
diff --git a/lib/c-strncasecmp.c b/lib/c-strncasecmp.c
index c316929..ada62d7 100644
--- a/lib/c-strncasecmp.c
+++ b/lib/c-strncasecmp.c
@@ -1,5 +1,5 @@
/* c-strncasecmp.c -- case insensitive string comparator in C locale
- Copyright (C) 1998-1999, 2005-2006, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 1998-1999, 2005-2006, 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
diff --git a/lib/canonicalize-lgpl.c b/lib/canonicalize-lgpl.c
index 4b1f6cb..a32da91 100644
--- a/lib/canonicalize-lgpl.c
+++ b/lib/canonicalize-lgpl.c
@@ -1,5 +1,5 @@
/* Return the canonical absolute name of a given file.
- Copyright (C) 1996-2016 Free Software Foundation, Inc.
+ Copyright (C) 1996-2017 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
diff --git a/lib/close-stream.c b/lib/close-stream.c
index 0c4beae..96c1265 100644
--- a/lib/close-stream.c
+++ b/lib/close-stream.c
@@ -1,6 +1,6 @@
/* Close a stream, with nicer error checking than fclose's.
- Copyright (C) 1998-2002, 2004, 2006-2016 Free Software Foundation, Inc.
+ Copyright (C) 1998-2002, 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
diff --git a/lib/closeout.c b/lib/closeout.c
index 311faf4..a23388f 100644
--- a/lib/closeout.c
+++ b/lib/closeout.c
@@ -1,6 +1,6 @@
/* Close standard output and standard error, exiting with a diagnostic on error.
- Copyright (C) 1998-2002, 2004, 2006, 2008-2016 Free Software Foundation,
+ Copyright (C) 1998-2002, 2004, 2006, 2008-2017 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/closeout.h b/lib/closeout.h
index bde9bf0..f9df8fe 100644
--- a/lib/closeout.h
+++ b/lib/closeout.h
@@ -1,6 +1,6 @@
/* Close standard output and standard error.
- Copyright (C) 1998, 2000, 2003-2004, 2006, 2008-2016 Free Software
+ Copyright (C) 1998, 2000, 2003-2004, 2006, 2008-2017 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/config.charset b/lib/config.charset
index 947d916..8bedbf3 100644
--- a/lib/config.charset
+++ b/lib/config.charset
@@ -1,7 +1,7 @@
#! /bin/sh
# Output a system dependent table of character encoding aliases.
#
-# Copyright (C) 2000-2004, 2006-2016 Free Software Foundation, Inc.
+# 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
diff --git a/lib/copy-acl.c b/lib/copy-acl.c
index 4b6b443..eed8966 100644
--- a/lib/copy-acl.c
+++ b/lib/copy-acl.c
@@ -1,6 +1,6 @@
/* Copy access control list from one file to file. -*- coding: utf-8 -*-
- Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2003, 2005-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
diff --git a/lib/ctype.in.h b/lib/ctype.in.h
index 217812d..0bb2721 100644
--- a/lib/ctype.in.h
+++ b/lib/ctype.in.h
@@ -1,6 +1,6 @@
/* A substitute for ISO C99 <ctype.h>, for platforms on which it is incomplete.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/lib/dfa.c b/lib/dfa.c
index 3e1f35d..5bac288 100644
--- a/lib/dfa.c
+++ b/lib/dfa.c
@@ -1,5 +1,5 @@
/* dfa.c - deterministic extended regexp routines for GNU
- Copyright (C) 1988, 1998, 2000, 2002, 2004-2005, 2007-2016 Free Software
+ Copyright (C) 1988, 1998, 2000, 2002, 2004-2005, 2007-2017 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
@@ -33,17 +33,17 @@
#include <string.h>
#include <locale.h>
-#define STREQ(a, b) (strcmp (a, b) == 0)
+static bool
+streq (char const *a, char const *b)
+{
+ return strcmp (a, b) == 0;
+}
-/* ISASCIIDIGIT differs from isdigit, as follows:
- - Its arg may be any int or unsigned int; it need not be an unsigned char.
- - It's guaranteed to evaluate its argument exactly once.
- - It's typically faster.
- Posix 1003.2-1992 section 2.5.2.1 page 50 lines 1556-1558 says that
- only '0' through '9' are digits. Prefer ISASCIIDIGIT to isdigit unless
- it's important to use the locale's definition of "digit" even when the
- host does not conform to Posix. */
-#define ISASCIIDIGIT(c) ((unsigned) (c) - '0' <= 9)
+static bool
+isasciidigit (char c)
+{
+ return '0' <= c && c <= '9';
+}
#include "gettext.h"
#define _(str) gettext (str)
@@ -87,10 +87,10 @@ enum { CHARCLASS_WORD_BITS = 64 };
/* An initializer for a charclass whose 32-bit words are A through H. */
#define CHARCLASS_INIT(a, b, c, d, e, f, g, h) \
- { \
+ {{ \
CHARCLASS_PAIR (a, b), CHARCLASS_PAIR (c, d), \
CHARCLASS_PAIR (e, f), CHARCLASS_PAIR (g, h) \
- }
+ }}
/* The maximum useful value of a charclass_word; all used bits are 1. */
static charclass_word const CHARCLASS_WORD_MASK
@@ -103,7 +103,7 @@ enum
};
/* Sets of unsigned characters are stored as bit vectors in arrays of ints. */
-typedef charclass_word charclass[CHARCLASS_WORDS];
+typedef struct { charclass_word w[CHARCLASS_WORDS]; } charclass;
/* Convert a possibly-signed character to an unsigned character. This is
a bit safer than casting to unsigned char, since it catches some type
@@ -126,64 +126,87 @@ to_uchar (char ch)
character is a word constituent. A state whose context is CTX_ANY
might have transitions from any character. */
-#define CTX_NONE 1
-#define CTX_LETTER 2
-#define CTX_NEWLINE 4
-#define CTX_ANY 7
+enum
+ {
+ CTX_NONE = 1,
+ CTX_LETTER = 2,
+ CTX_NEWLINE = 4,
+ CTX_ANY = 7
+ };
/* Sometimes characters can only be matched depending on the surrounding
context. Such context decisions depend on what the previous character
was, and the value of the current (lookahead) character. Context
- dependent constraints are encoded as 12-bit integers. Each bit that
+ dependent constraints are encoded as 9-bit integers. Each bit that
is set indicates that the constraint succeeds in the corresponding
context.
- bit 8-11 - valid contexts when next character is CTX_NEWLINE
- bit 4-7 - valid contexts when next character is CTX_LETTER
- bit 0-3 - valid contexts when next character is CTX_NONE
+ bit 6-8 - valid contexts when next character is CTX_NEWLINE
+ bit 3-5 - valid contexts when next character is CTX_LETTER
+ bit 0-2 - valid contexts when next character is CTX_NONE
- The macro SUCCEEDS_IN_CONTEXT determines whether a given constraint
+ succeeds_in_context determines whether a given constraint
succeeds in a particular context. Prev is a bitmask of possible
context values for the previous character, curr is the (single-bit)
context value for the lookahead character. */
-#define NEWLINE_CONSTRAINT(constraint) (((constraint) >> 8) & 0xf)
-#define LETTER_CONSTRAINT(constraint) (((constraint) >> 4) & 0xf)
-#define OTHER_CONSTRAINT(constraint) ((constraint) & 0xf)
-
-#define SUCCEEDS_IN_CONTEXT(constraint, prev, curr) \
- ((((curr) & CTX_NONE ? OTHER_CONSTRAINT (constraint) : 0) \
- | ((curr) & CTX_LETTER ? LETTER_CONSTRAINT (constraint) : 0) \
- | ((curr) & CTX_NEWLINE ? NEWLINE_CONSTRAINT (constraint) : 0)) \
- & (prev))
-
-/* The following macros describe what a constraint depends on. */
-#define PREV_NEWLINE_CONSTRAINT(constraint) (((constraint) >> 2) & 0x111)
-#define PREV_LETTER_CONSTRAINT(constraint) (((constraint) >> 1) & 0x111)
-#define PREV_OTHER_CONSTRAINT(constraint) ((constraint) & 0x111)
-
-#define PREV_NEWLINE_DEPENDENT(constraint) \
- (PREV_NEWLINE_CONSTRAINT (constraint) != PREV_OTHER_CONSTRAINT (constraint))
-#define PREV_LETTER_DEPENDENT(constraint) \
- (PREV_LETTER_CONSTRAINT (constraint) != PREV_OTHER_CONSTRAINT (constraint))
+static int
+newline_constraint (int constraint)
+{
+ return (constraint >> 6) & 7;
+}
+static int
+letter_constraint (int constraint)
+{
+ return (constraint >> 3) & 7;
+}
+static int
+other_constraint (int constraint)
+{
+ return constraint & 7;
+}
+
+static bool
+succeeds_in_context (int constraint, int prev, int curr)
+{
+ return !! (((curr & CTX_NONE ? other_constraint (constraint) : 0) \
+ | (curr & CTX_LETTER ? letter_constraint (constraint) : 0) \
+ | (curr & CTX_NEWLINE ? newline_constraint (constraint) : 0)) \
+ & prev);
+}
+
+/* The following describe what a constraint depends on. */
+static bool
+prev_newline_dependent (int constraint)
+{
+ return ((constraint ^ constraint >> 2) & 0111) != 0;
+}
+static bool
+prev_letter_dependent (int constraint)
+{
+ return ((constraint ^ constraint >> 1) & 0111) != 0;
+}
/* Tokens that match the empty string subject to some constraint actually
work by applying that constraint to determine what may follow them,
taking into account what has gone before. The following values are
the constraints corresponding to the special tokens previously defined. */
-#define NO_CONSTRAINT 0x777
-#define BEGLINE_CONSTRAINT 0x444
-#define ENDLINE_CONSTRAINT 0x700
-#define BEGWORD_CONSTRAINT 0x050
-#define ENDWORD_CONSTRAINT 0x202
-#define LIMWORD_CONSTRAINT 0x252
-#define NOTLIMWORD_CONSTRAINT 0x525
+enum
+ {
+ NO_CONSTRAINT = 0777,
+ BEGLINE_CONSTRAINT = 0444,
+ ENDLINE_CONSTRAINT = 0700,
+ BEGWORD_CONSTRAINT = 0050,
+ ENDWORD_CONSTRAINT = 0202,
+ LIMWORD_CONSTRAINT = 0252,
+ NOTLIMWORD_CONSTRAINT = 0525
+ };
/* The regexp is parsed into an array of tokens in postfix form. Some tokens
are operators and others are terminal symbols. Most (but not all) of these
codes are returned by the lexical analyzer. */
typedef ptrdiff_t token;
-#define TOKEN_MAX PTRDIFF_MAX
+static ptrdiff_t const TOKEN_MAX = PTRDIFF_MAX;
/* States are indexed by state_num values. These are normally
nonnegative but -1 is used as a special value. */
@@ -333,6 +356,7 @@ struct mb_char_classes
bool invert;
wchar_t *chars; /* Normal characters. */
ptrdiff_t nchars;
+ ptrdiff_t nchars_alloc;
};
struct regex_syntax
@@ -352,7 +376,7 @@ struct regex_syntax
unsigned char eolbyte;
/* Cache of char-context values. */
- int sbit[NOTCHAR];
+ char sbit[NOTCHAR];
/* If never_trail[B], the byte B cannot be a non-initial byte in a
multibyte character. */
@@ -385,6 +409,9 @@ struct lexer_state
/* Length of the multibyte representation of wctok. */
int cur_mb_len;
+ /* The most recently analyzed multibyte bracket expression. */
+ struct mb_char_classes brack;
+
/* We're separated from beginning or (, | only by zero-width characters. */
bool laststart;
};
@@ -442,9 +469,6 @@ struct dfa
bit 1 : tokens[i] is the last byte of a character, including
single-byte characters.
- if tokens[i] = MBCSET
- ("the index of mbcsets corresponding to this operator" << 2) + 3
-
e.g.
tokens
= 'single_byte_a', 'multi_byte_A', single_byte_b'
@@ -452,12 +476,7 @@ struct dfa
multibyte_prop
= 3 , 1 , 0 , 2 , 3
*/
- int *multibyte_prop;
-
- /* Array of the bracket expression in the DFA. */
- struct mb_char_classes *mbcsets;
- ptrdiff_t nmbcsets;
- ptrdiff_t mbcsets_alloc;
+ char *multibyte_prop;
/* Fields filled by the superset. */
struct dfa *superset; /* Hint of the dfa. */
@@ -505,7 +524,7 @@ struct dfa
on a state that potentially could do so.
If trans[i] is non-null, fails[i] must
be null. */
- int *success; /* Table of acceptance conditions used in
+ char *success; /* Table of acceptance conditions used in
dfaexec and computed in build_state. */
state_num *newlines; /* Transitions on newlines. The entry for a
newline in any transition table is always
@@ -540,14 +559,21 @@ struct dfa
struct localeinfo localeinfo;
};
-/* Some macros for user access to dfa internals. */
+/* User access to dfa internals. */
/* S could possibly be an accepting state of R. */
-#define ACCEPTING(s, r) ((r).states[s].constraint)
+static bool
+accepting (state_num s, struct dfa const *r)
+{
+ return r->states[s].constraint != 0;
+}
/* STATE accepts in the specified context. */
-#define ACCEPTS_IN_CONTEXT(prev, curr, state, dfa) \
- SUCCEEDS_IN_CONTEXT ((dfa).states[state].constraint, prev, curr)
+static bool
+accepts_in_context (int prev, int curr, state_num state, struct dfa const *dfa)
+{
+ return succeeds_in_context (dfa->states[state].constraint, prev, curr);
+}
static void regexp (struct dfa *dfa);
@@ -595,8 +621,6 @@ mbs_to_wchar (wint_t *pwc, char const *s, size_t n, struct dfa *d)
static void
prtok (token t)
{
- char const *s;
-
if (t < 0)
fprintf (stderr, "END");
else if (t < NOTCHAR)
@@ -606,6 +630,7 @@ prtok (token t)
}
else
{
+ char const *s;
switch (t)
{
case EMPTY:
@@ -671,69 +696,60 @@ prtok (token t)
/* Stuff pertaining to charclasses. */
static bool
-tstbit (unsigned int b, charclass const c)
-{
- return c[b / CHARCLASS_WORD_BITS] >> b % CHARCLASS_WORD_BITS & 1;
-}
-
-static void
-setbit (unsigned int b, charclass c)
+tstbit (unsigned int b, charclass const *c)
{
- c[b / CHARCLASS_WORD_BITS] |= (charclass_word) 1 << b % CHARCLASS_WORD_BITS;
+ return c->w[b / CHARCLASS_WORD_BITS] >> b % CHARCLASS_WORD_BITS & 1;
}
static void
-clrbit (unsigned int b, charclass c)
+setbit (unsigned int b, charclass *c)
{
- c[b / CHARCLASS_WORD_BITS] &= ~((charclass_word) 1
- << b % CHARCLASS_WORD_BITS);
+ charclass_word one = 1;
+ c->w[b / CHARCLASS_WORD_BITS] |= one << b % CHARCLASS_WORD_BITS;
}
static void
-copyset (charclass const src, charclass dst)
+clrbit (unsigned int b, charclass *c)
{
- memcpy (dst, src, sizeof (charclass));
+ charclass_word one = 1;
+ c->w[b / CHARCLASS_WORD_BITS] &= ~(one << b % CHARCLASS_WORD_BITS);
}
static void
-zeroset (charclass s)
+zeroset (charclass *s)
{
- memset (s, 0, sizeof (charclass));
+ memset (s, 0, sizeof *s);
}
static void
-fillset (charclass s)
+fillset (charclass *s)
{
- int i;
- for (i = 0; i < CHARCLASS_WORDS; i++)
- s[i] = CHARCLASS_WORD_MASK;
+ for (int i = 0; i < CHARCLASS_WORDS; i++)
+ s->w[i] = CHARCLASS_WORD_MASK;
}
static void
-notset (charclass s)
+notset (charclass *s)
{
- int i;
- for (i = 0; i < CHARCLASS_WORDS; ++i)
- s[i] = CHARCLASS_WORD_MASK & ~s[i];
+ for (int i = 0; i < CHARCLASS_WORDS; ++i)
+ s->w[i] = CHARCLASS_WORD_MASK & ~s->w[i];
}
static bool
-equal (charclass const s1, charclass const s2)
+equal (charclass const *s1, charclass const *s2)
{
charclass_word w = 0;
- int i;
- for (i = 0; i < CHARCLASS_WORDS; i++)
- w |= s1[i] ^ s2[i];
+ for (int i = 0; i < CHARCLASS_WORDS; i++)
+ w |= s1->w[i] ^ s2->w[i];
return w == 0;
}
static bool
-emptyset (charclass const s)
+emptyset (charclass const *s)
{
charclass_word w = 0;
- int i;
- for (i = 0; i < CHARCLASS_WORDS; i++)
- w |= s[i];
+ for (int i = 0; i < CHARCLASS_WORDS; i++)
+ w |= s->w[i];
return w == 0;
}
@@ -817,17 +833,17 @@ maybe_realloc (void *pa, ptrdiff_t i, ptrdiff_t *nitems,
/* In DFA D, find the index of charclass S, or allocate a new one. */
static ptrdiff_t
-charclass_index (struct dfa *d, charclass const s)
+charclass_index (struct dfa *d, charclass *s)
{
ptrdiff_t i;
for (i = 0; i < d->cindex; ++i)
- if (equal (s, d->charclasses[i]))
+ if (equal (s, &d->charclasses[i]))
return i;
d->charclasses = maybe_realloc (d->charclasses, d->cindex, &d->calloc,
TOKEN_MAX - CSET, sizeof *d->charclasses);
++d->cindex;
- copyset (s, d->charclasses[i]);
+ d->charclasses[i] = *s;
return i;
}
@@ -853,10 +869,10 @@ char_context (struct dfa const *dfa, unsigned char c)
dotless i/dotted I are not included in the chosen character set.
Return whether a bit was set in the charclass. */
static bool
-setbit_wc (wint_t wc, charclass c)
+setbit_wc (wint_t wc, charclass *c)
{
int b = wctob (wc);
- if (b == EOF)
+ if (b < 0)
return false;
setbit (b, c);
@@ -866,11 +882,10 @@ setbit_wc (wint_t wc, charclass c)
/* Set a bit for B and its case variants in the charclass C.
MB_CUR_MAX must be 1. */
static void
-setbit_case_fold_c (int b, charclass c)
+setbit_case_fold_c (int b, charclass *c)
{
int ub = toupper (b);
- int i;
- for (i = 0; i < NOTCHAR; i++)
+ for (int i = 0; i < NOTCHAR; i++)
if (toupper (i) == ub)
setbit (i, c);
}
@@ -903,38 +918,37 @@ using_simple_locale (bool multibyte)
/* Treat C and POSIX locales as being compatible. Also, treat
errors as compatible, as these are invariably from stubs. */
char const *loc = setlocale (LC_ALL, NULL);
- return !loc || STREQ (loc, "C") || STREQ (loc, "POSIX");
+ return !loc || streq (loc, "C") || streq (loc, "POSIX");
}
}
-/* Fetch the next lexical input character. Set C (of type int) to the
- next input byte, except set C to EOF if the input is a multibyte
- character of length greater than 1. Set WC (of type wint_t) to the
- value of the input if it is a valid multibyte character (possibly
- of length 1); otherwise set WC to WEOF. If there is no more input,
- report EOFERR if EOFERR is not null, and return lasttok = END
- otherwise. */
-# define FETCH_WC(dfa, c, wc, eoferr) \
- do { \
- if (! (dfa)->lex.left) \
- { \
- if ((eoferr) != 0) \
- dfaerror (eoferr); \
- else \
- return (dfa)->lex.lasttok = END; \
- } \
- else \
- { \
- wint_t _wc; \
- size_t nbytes = mbs_to_wchar (&_wc, (dfa)->lex.ptr, \
- (dfa)->lex.left, dfa); \
- (dfa)->lex.cur_mb_len = nbytes; \
- (wc) = _wc; \
- (c) = nbytes == 1 ? to_uchar ((dfa)->lex.ptr[0]) : EOF; \
- (dfa)->lex.ptr += nbytes; \
- (dfa)->lex.left -= nbytes; \
- } \
- } while (false)
+/* Fetch the next lexical input character from the pattern. There
+ must at least one byte of pattern input. Set DFA->lex.wctok to the
+ value of the character or to WEOF depending on whether the input is
+ a valid multibyte character (possibly of length 1). Then return
+ the next input byte value, except return EOF if the input is a
+ multibyte character of length greater than 1. */
+static int
+fetch_wc (struct dfa *dfa)
+{
+ size_t nbytes = mbs_to_wchar (&dfa->lex.wctok, dfa->lex.ptr, dfa->lex.left,
+ dfa);
+ dfa->lex.cur_mb_len = nbytes;
+ int c = nbytes == 1 ? to_uchar (dfa->lex.ptr[0]) : EOF;
+ dfa->lex.ptr += nbytes;
+ dfa->lex.left -= nbytes;
+ return c;
+}
+
+/* If there is no more input, report an error about unbalanced brackets.
+ Otherwise, behave as with fetch_wc (DFA). */
+static int
+bracket_fetch_wc (struct dfa *dfa)
+{
+ if (! dfa->lex.left)
+ dfaerror (_("unbalanced ["));
+ return fetch_wc (dfa);
+}
typedef int predicate (int);
@@ -968,22 +982,17 @@ static const struct dfa_ctype prednames[] = {
static const struct dfa_ctype *_GL_ATTRIBUTE_PURE
find_pred (const char *str)
{
- unsigned int i;
- for (i = 0; prednames[i].name; ++i)
- if (STREQ (str, prednames[i].name))
+ for (unsigned int i = 0; prednames[i].name; ++i)
+ if (streq (str, prednames[i].name))
return &prednames[i];
return NULL;
}
-/* Multibyte character handling sub-routine for lex.
- Parse a bracket expression and build a struct mb_char_classes. */
+/* Parse a bracket expression, which possibly includes multibyte
+ characters. */
static token
parse_bracket_exp (struct dfa *dfa)
{
- bool invert;
- int c, c1, c2;
- charclass ccl;
-
/* This is a bracket expression that dfaexec is known to
process correctly. */
bool known_bracket_exp = true;
@@ -995,43 +1004,20 @@ parse_bracket_exp (struct dfa *dfa)
Bit 3 = includes ranges, char/equiv classes or collation elements. */
int colon_warning_state;
- wint_t wc;
- wint_t wc2;
- wint_t wc1 = 0;
-
- /* Work area to build a mb_char_classes. */
- struct mb_char_classes *work_mbc;
- ptrdiff_t chars_al;
-
- chars_al = 0;
- if (dfa->localeinfo.multibyte)
- {
- dfa->mbcsets = maybe_realloc (dfa->mbcsets, dfa->nmbcsets,
- &dfa->mbcsets_alloc, -1,
- sizeof *dfa->mbcsets);
-
- /* dfa->multibyte_prop[] hold the index of dfa->mbcsets.
- We will update dfa->multibyte_prop[] in addtok, because we can't
- decide the index in dfa->tokens[]. */
-
- /* Initialize work area. */
- work_mbc = &dfa->mbcsets[dfa->nmbcsets++];
- memset (work_mbc, 0, sizeof *work_mbc);
- }
- else
- work_mbc = NULL;
-
- memset (ccl, 0, sizeof ccl);
- FETCH_WC (dfa, c, wc, _("unbalanced ["));
- if (c == '^')
+ dfa->lex.brack.nchars = 0;
+ charclass ccl;
+ zeroset (&ccl);
+ int c = bracket_fetch_wc (dfa);
+ bool invert = c == '^';
+ if (invert)
{
- FETCH_WC (dfa, c, wc, _("unbalanced ["));
+ c = bracket_fetch_wc (dfa);
invert = true;
known_bracket_exp = dfa->simple_locale;
}
- else
- invert = false;
-
+ wint_t wc = dfa->lex.wctok;
+ int c1;
+ wint_t wc1;
colon_warning_state = (c == ':');
do
{
@@ -1044,7 +1030,8 @@ parse_bracket_exp (struct dfa *dfa)
dfa is ever called. */
if (c == '[')
{
- FETCH_WC (dfa, c1, wc1, _("unbalanced ["));
+ c1 = bracket_fetch_wc (dfa);
+ wc1 = dfa->lex.wctok;
if ((c1 == ':' && (dfa->syntax.syntax_bits & RE_CHAR_CLASSES))
|| c1 == '.' || c1 == '=')
@@ -1054,7 +1041,7 @@ parse_bracket_exp (struct dfa *dfa)
size_t len = 0;
for (;;)
{
- FETCH_WC (dfa, c, wc, _("unbalanced ["));
+ c = bracket_fetch_wc (dfa);
if (dfa->lex.left == 0
|| (c == c1 && dfa->lex.ptr[0] == ']'))
break;
@@ -1067,7 +1054,8 @@ parse_bracket_exp (struct dfa *dfa)
str[len] = '\0';
/* Fetch bracket. */
- FETCH_WC (dfa, c, wc, _("unbalanced ["));
+ c = bracket_fetch_wc (dfa);
+ wc = dfa->lex.wctok;
if (c1 == ':')
/* Build character class. POSIX allows character
classes to match multicharacter collating elements,
@@ -1075,8 +1063,8 @@ parse_bracket_exp (struct dfa *dfa)
worry about that possibility. */
{
char const *class
- = (dfa->syntax.case_fold && (STREQ (str, "upper")
- || STREQ (str, "lower"))
+ = (dfa->syntax.case_fold && (streq (str, "upper")
+ || streq (str, "lower"))
? "alpha" : str);
const struct dfa_ctype *pred = find_pred (class);
if (!pred)
@@ -1085,9 +1073,9 @@ parse_bracket_exp (struct dfa *dfa)
if (dfa->localeinfo.multibyte && !pred->single_byte_only)
known_bracket_exp = false;
else
- for (c2 = 0; c2 < NOTCHAR; ++c2)
+ for (int c2 = 0; c2 < NOTCHAR; ++c2)
if (pred->func (c2))
- setbit (c2, ccl);
+ setbit (c2, &ccl);
}
else
known_bracket_exp = false;
@@ -1095,7 +1083,8 @@ parse_bracket_exp (struct dfa *dfa)
colon_warning_state |= 8;
/* Fetch new lookahead character. */
- FETCH_WC (dfa, c1, wc1, _("unbalanced ["));
+ c1 = bracket_fetch_wc (dfa);
+ wc1 = dfa->lex.wctok;
continue;
}
@@ -1103,16 +1092,24 @@ parse_bracket_exp (struct dfa *dfa)
are already set up. */
}
- if (c == '\\' && (dfa->syntax.syntax_bits & RE_BACKSLASH_ESCAPE_IN_LISTS))
- FETCH_WC (dfa, c, wc, _("unbalanced ["));
+ if (c == '\\'
+ && (dfa->syntax.syntax_bits & RE_BACKSLASH_ESCAPE_IN_LISTS))
+ {
+ c = bracket_fetch_wc (dfa);
+ wc = dfa->lex.wctok;
+ }
if (c1 == NOTCHAR)
- FETCH_WC (dfa, c1, wc1, _("unbalanced ["));
+ {
+ c1 = bracket_fetch_wc (dfa);
+ wc1 = dfa->lex.wctok;
+ }
if (c1 == '-')
/* build range characters. */
{
- FETCH_WC (dfa, c2, wc2, _("unbalanced ["));
+ int c2 = bracket_fetch_wc (dfa);
+ wint_t wc2 = dfa->lex.wctok;
/* A bracket expression like [a-[.aa.]] matches an unknown set.
Treat it like [-a[.aa.]] while parsing it, and
@@ -1134,10 +1131,14 @@ parse_bracket_exp (struct dfa *dfa)
{
if (c2 == '\\' && (dfa->syntax.syntax_bits
& RE_BACKSLASH_ESCAPE_IN_LISTS))
- FETCH_WC (dfa, c2, wc2, _("unbalanced ["));
+ {
+ c2 = bracket_fetch_wc (dfa);
+ wc2 = dfa->lex.wctok;
+ }
colon_warning_state |= 8;
- FETCH_WC (dfa, c1, wc1, _("unbalanced ["));
+ c1 = bracket_fetch_wc (dfa);
+ wc1 = dfa->lex.wctok;
/* Treat [x-y] as a range if x != y. */
if (wc != wc2 || wc == WEOF)
@@ -1148,7 +1149,7 @@ parse_bracket_exp (struct dfa *dfa)
{
int ci;
for (ci = c; ci <= c2; ci++)
- setbit (ci, ccl);
+ setbit (ci, &ccl);
if (dfa->syntax.case_fold)
{
int uc = toupper (c);
@@ -1157,7 +1158,7 @@ parse_bracket_exp (struct dfa *dfa)
{
int uci = toupper (ci);
if (uc <= uci && uci <= uc2)
- setbit (ci, ccl);
+ setbit (ci, &ccl);
}
}
}
@@ -1174,9 +1175,9 @@ parse_bracket_exp (struct dfa *dfa)
if (!dfa->localeinfo.multibyte)
{
if (dfa->syntax.case_fold)
- setbit_case_fold_c (c, ccl);
+ setbit_case_fold_c (c, &ccl);
else
- setbit (c, ccl);
+ setbit (c, &ccl);
continue;
}
@@ -1185,18 +1186,18 @@ parse_bracket_exp (struct dfa *dfa)
else
{
wchar_t folded[CASE_FOLDED_BUFSIZE + 1];
- unsigned int i;
unsigned int n = (dfa->syntax.case_fold
? case_folded_counterparts (wc, folded + 1) + 1
: 1);
folded[0] = wc;
- for (i = 0; i < n; i++)
- if (!setbit_wc (folded[i], ccl))
+ for (unsigned int i = 0; i < n; i++)
+ if (!setbit_wc (folded[i], &ccl))
{
- work_mbc->chars
- = maybe_realloc (work_mbc->chars, work_mbc->nchars,
- &chars_al, -1, sizeof *work_mbc->chars);
- work_mbc->chars[work_mbc->nchars++] = folded[i];
+ dfa->lex.brack.chars
+ = maybe_realloc (dfa->lex.brack.chars, dfa->lex.brack.nchars,
+ &dfa->lex.brack.nchars_alloc, -1,
+ sizeof *dfa->lex.brack.chars);
+ dfa->lex.brack.chars[dfa->lex.brack.nchars++] = folded[i];
}
}
}
@@ -1210,20 +1211,20 @@ parse_bracket_exp (struct dfa *dfa)
if (dfa->localeinfo.multibyte)
{
- work_mbc->invert = invert;
- work_mbc->cset = emptyset (ccl) ? -1 : charclass_index (dfa, ccl);
+ dfa->lex.brack.invert = invert;
+ dfa->lex.brack.cset = emptyset (&ccl) ? -1 : charclass_index (dfa, &ccl);
return MBCSET;
}
if (invert)
{
assert (!dfa->localeinfo.multibyte);
- notset (ccl);
+ notset (&ccl);
if (dfa->syntax.syntax_bits & RE_HAT_LISTS_NOT_NEWLINE)
- clrbit ('\n', ccl);
+ clrbit ('\n', &ccl);
}
- return CSET + charclass_index (dfa, ccl);
+ return CSET + charclass_index (dfa, &ccl);
}
struct lexptr
@@ -1251,10 +1252,7 @@ pop_lex_state (struct dfa *dfa, struct lexptr const *ls)
static token
lex (struct dfa *dfa)
{
- int c, c2;
bool backslash = false;
- charclass ccl;
- int i;
/* Basic plan: We fetch a character. If it's a backslash,
we set the backslash flag and go through the loop again.
@@ -1262,9 +1260,11 @@ lex (struct dfa *dfa)
main switch inside the backslash case. On the minus side,
it means that just about every case begins with
"if (backslash) ...". */
- for (i = 0; i < 2; ++i)
+ for (int i = 0; i < 2; ++i)
{
- FETCH_WC (dfa, c, dfa->lex.wctok, NULL);
+ if (! dfa->lex.left)
+ return dfa->lex.lasttok = END;
+ int c = fetch_wc (dfa);
switch (c)
{
@@ -1404,7 +1404,7 @@ lex (struct dfa *dfa)
char const *p = dfa->lex.ptr;
char const *lim = p + dfa->lex.left;
dfa->lex.minrep = dfa->lex.maxrep = -1;
- for (; p != lim && ISASCIIDIGIT (*p); p++)
+ for (; p != lim && isasciidigit (*p); p++)
dfa->lex.minrep = (dfa->lex.minrep < 0
? *p - '0'
: MIN (RE_DUP_MAX + 1,
@@ -1417,7 +1417,7 @@ lex (struct dfa *dfa)
{
if (dfa->lex.minrep < 0)
dfa->lex.minrep = 0;
- while (++p != lim && ISASCIIDIGIT (*p))
+ while (++p != lim && isasciidigit (*p))
dfa->lex.maxrep
= (dfa->lex.maxrep < 0
? *p - '0'
@@ -1480,16 +1480,17 @@ lex (struct dfa *dfa)
goto normal_char;
if (dfa->canychar == (size_t) -1)
{
- fillset (ccl);
+ charclass ccl;
+ fillset (&ccl);
if (!(dfa->syntax.syntax_bits & RE_DOT_NEWLINE))
- clrbit ('\n', ccl);
+ clrbit ('\n', &ccl);
if (dfa->syntax.syntax_bits & RE_DOT_NOT_NULL)
- clrbit ('\0', ccl);
+ clrbit ('\0', &ccl);
if (dfa->localeinfo.multibyte)
- for (c2 = 0; c2 < NOTCHAR; c2++)
+ for (int c2 = 0; c2 < NOTCHAR; c2++)
if (dfa->localeinfo.sbctowc[c2] == WEOF)
- clrbit (c2, ccl);
- dfa->canychar = charclass_index (dfa, ccl);
+ clrbit (c2, &ccl);
+ dfa->canychar = charclass_index (dfa, &ccl);
}
dfa->lex.laststart = false;
return dfa->lex.lasttok = (dfa->localeinfo.multibyte
@@ -1502,14 +1503,15 @@ lex (struct dfa *dfa)
goto normal_char;
if (!dfa->localeinfo.multibyte)
{
- zeroset (ccl);
- for (c2 = 0; c2 < NOTCHAR; ++c2)
+ charclass ccl;
+ zeroset (&ccl);
+ for (int c2 = 0; c2 < NOTCHAR; ++c2)
if (isspace (c2))
- setbit (c2, ccl);
+ setbit (c2, &ccl);
if (c == 'S')
- notset (ccl);
+ notset (&ccl);
dfa->lex.laststart = false;
- return dfa->lex.lasttok = CSET + charclass_index (dfa, ccl);
+ return dfa->lex.lasttok = CSET + charclass_index (dfa, &ccl);
}
/* FIXME: see if optimizing this, as is done with ANYCHAR and
@@ -1535,14 +1537,15 @@ lex (struct dfa *dfa)
if (!dfa->localeinfo.multibyte)
{
- zeroset (ccl);
- for (c2 = 0; c2 < NOTCHAR; ++c2)
+ charclass ccl;
+ zeroset (&ccl);
+ for (int c2 = 0; c2 < NOTCHAR; ++c2)
if (dfa->syntax.sbit[c2] == CTX_LETTER)
- setbit (c2, ccl);
+ setbit (c2, &ccl);
if (c == 'W')
- notset (ccl);
+ notset (&ccl);
dfa->lex.laststart = false;
- return dfa->lex.lasttok = CSET + charclass_index (dfa, ccl);
+ return dfa->lex.lasttok = CSET + charclass_index (dfa, &ccl);
}
/* FIXME: see if optimizing this, as is done with ANYCHAR and
@@ -1577,9 +1580,10 @@ lex (struct dfa *dfa)
if (dfa->syntax.case_fold && isalpha (c))
{
- zeroset (ccl);
- setbit_case_fold_c (c, ccl);
- return dfa->lex.lasttok = CSET + charclass_index (dfa, ccl);
+ charclass ccl;
+ zeroset (&ccl);
+ setbit_case_fold_c (c, &ccl);
+ return dfa->lex.lasttok = CSET + charclass_index (dfa, &ccl);
}
return dfa->lex.lasttok = c;
@@ -1593,7 +1597,7 @@ lex (struct dfa *dfa)
}
static void
-addtok_mb (struct dfa *dfa, token t, int mbprop)
+addtok_mb (struct dfa *dfa, token t, char mbprop)
{
if (dfa->talloc == dfa->tindex)
{
@@ -1643,25 +1647,23 @@ addtok (struct dfa *dfa, token t)
if (dfa->localeinfo.multibyte && t == MBCSET)
{
bool need_or = false;
- struct mb_char_classes *work_mbc = &dfa->mbcsets[dfa->nmbcsets - 1];
- ptrdiff_t i;
/* Extract wide characters into alternations for better performance.
This does not require UTF-8. */
- for (i = 0; i < work_mbc->nchars; i++)
+ for (ptrdiff_t i = 0; i < dfa->lex.brack.nchars; i++)
{
- addtok_wc (dfa, work_mbc->chars[i]);
+ addtok_wc (dfa, dfa->lex.brack.chars[i]);
if (need_or)
addtok (dfa, OR);
need_or = true;
}
- work_mbc->nchars = 0;
+ dfa->lex.brack.nchars = 0;
- /* Characters have been handled above, so it is possible
- that the mbcset is empty now. Do nothing in that case. */
- if (work_mbc->cset != -1)
+ /* Wide characters have been handled above, so it is possible
+ that the set is empty now. Do nothing in that case. */
+ if (dfa->lex.brack.cset != -1)
{
- addtok (dfa, CSET + work_mbc->cset);
+ addtok (dfa, CSET + dfa->lex.brack.cset);
if (need_or)
addtok (dfa, OR);
}
@@ -1683,7 +1685,6 @@ addtok_wc (struct dfa *dfa, wint_t wc)
{
unsigned char buf[MB_LEN_MAX];
mbstate_t s = { 0 };
- int i;
size_t stored_bytes = wcrtomb ((char *) buf, wc, &s);
if (stored_bytes != (size_t) -1)
@@ -1697,7 +1698,7 @@ addtok_wc (struct dfa *dfa, wint_t wc)
}
addtok_mb (dfa, buf[0], dfa->lex.cur_mb_len == 1 ? 3 : 1);
- for (i = 1; i < dfa->lex.cur_mb_len; i++)
+ for (int i = 1; i < dfa->lex.cur_mb_len; i++)
{
addtok_mb (dfa, buf[i], i == dfa->lex.cur_mb_len - 1 ? 2 : 0);
addtok (dfa, CAT);
@@ -1724,22 +1725,20 @@ add_utf8_anychar (struct dfa *dfa)
CHARCLASS_INIT (0, 0, 0, 0, 0, 0, 0, 0xff0000)
};
const unsigned int n = sizeof (utf8_classes) / sizeof (utf8_classes[0]);
- unsigned int i;
/* Define the five character classes that are needed below. */
if (dfa->utf8_anychar_classes[0] == 0)
- for (i = 0; i < n; i++)
+ for (unsigned int i = 0; i < n; i++)
{
- charclass c;
- copyset (utf8_classes[i], c);
+ charclass c = utf8_classes[i];
if (i == 1)
{
if (!(dfa->syntax.syntax_bits & RE_DOT_NEWLINE))
- clrbit ('\n', c);
+ clrbit ('\n', &c);
if (dfa->syntax.syntax_bits & RE_DOT_NOT_NULL)
- clrbit ('\0', c);
+ clrbit ('\0', &c);
}
- dfa->utf8_anychar_classes[i] = CSET + charclass_index (dfa, c);
+ dfa->utf8_anychar_classes[i] = CSET + charclass_index (dfa, &c);
}
/* A valid UTF-8 character is
@@ -1752,6 +1751,7 @@ add_utf8_anychar (struct dfa *dfa)
which I'll write more concisely "B|CA|DAA|EAAA". Factor the [0x00-0x7f]
and you get "B|(C|(D|EA)A)A". And since the token buffer is in reverse
Polish notation, you get "B C D E A CAT OR A CAT OR A CAT OR". */
+ unsigned int i;
for (i = 1; i < n; i++)
addtok (dfa, dfa->utf8_anychar_classes[i]);
while (--i > 1)
@@ -1811,9 +1811,9 @@ atom (struct dfa *dfa)
if (dfa->syntax.case_fold)
{
wchar_t folded[CASE_FOLDED_BUFSIZE];
- unsigned int i, n = case_folded_counterparts (dfa->lex.wctok,
- folded);
- for (i = 0; i < n; i++)
+ unsigned int n = case_folded_counterparts (dfa->lex.wctok,
+ folded);
+ for (unsigned int i = 0; i < n; i++)
{
addtok_wc (dfa, folded[i]);
addtok (dfa, OR);
@@ -1861,8 +1861,6 @@ atom (struct dfa *dfa)
static size_t _GL_ATTRIBUTE_PURE
nsubtoks (struct dfa const *dfa, size_t tindex)
{
- size_t ntoks1;
-
switch (dfa->tokens[tindex - 1])
{
default:
@@ -1873,8 +1871,10 @@ nsubtoks (struct dfa const *dfa, size_t tindex)
return 1 + nsubtoks (dfa, tindex - 1);
case CAT:
case OR:
- ntoks1 = nsubtoks (dfa, tindex - 1);
- return 1 + ntoks1 + nsubtoks (dfa, tindex - 1 - ntoks1);
+ {
+ size_t ntoks1 = nsubtoks (dfa, tindex - 1);
+ return 1 + ntoks1 + nsubtoks (dfa, tindex - 1 - ntoks1);
+ }
}
}
@@ -1882,33 +1882,30 @@ nsubtoks (struct dfa const *dfa, size_t tindex)
static void
copytoks (struct dfa *dfa, size_t tindex, size_t ntokens)
{
- size_t i;
-
if (dfa->localeinfo.multibyte)
- for (i = 0; i < ntokens; ++i)
- addtok_mb (dfa, dfa->tokens[tindex + i], dfa->multibyte_prop[tindex + i]);
+ for (size_t i = 0; i < ntokens; ++i)
+ addtok_mb (dfa, dfa->tokens[tindex + i],
+ dfa->multibyte_prop[tindex + i]);
else
- for (i = 0; i < ntokens; ++i)
+ for (size_t i = 0; i < ntokens; ++i)
addtok_mb (dfa, dfa->tokens[tindex + i], 3);
}
static void
closure (struct dfa *dfa)
{
- int i;
- size_t tindex, ntokens;
-
atom (dfa);
while (dfa->parse.tok == QMARK || dfa->parse.tok == STAR
|| dfa->parse.tok == PLUS || dfa->parse.tok == REPMN)
if (dfa->parse.tok == REPMN && (dfa->lex.minrep || dfa->lex.maxrep))
{
- ntokens = nsubtoks (dfa, dfa->tindex);
- tindex = dfa->tindex - ntokens;
+ size_t ntokens = nsubtoks (dfa, dfa->tindex);
+ size_t tindex = dfa->tindex - ntokens;
if (dfa->lex.maxrep < 0)
addtok (dfa, PLUS);
if (dfa->lex.minrep == 0)
addtok (dfa, QMARK);
+ int i;
for (i = 1; i < dfa->lex.minrep; i++)
{
copytoks (dfa, tindex, ntokens);
@@ -1969,12 +1966,6 @@ dfaparse (char const *s, size_t len, struct dfa *d)
d->lex.left = len;
d->lex.lasttok = END;
d->lex.laststart = true;
- d->lex.parens = 0;
- if (d->localeinfo.multibyte)
- {
- d->lex.cur_mb_len = 0;
- memset (&d->mbs, 0, sizeof d->mbs);
- }
if (!d->syntax.syntax_bits_set)
dfaerror (_("no syntax specified"));
@@ -2008,16 +1999,15 @@ copy (position_set const *src, position_set *dst)
dst->elems = xpalloc (NULL, &dst->alloc, src->nelem - dst->alloc, -1,
sizeof *dst->elems);
}
- memcpy (dst->elems, src->elems, src->nelem * sizeof *dst->elems);
dst->nelem = src->nelem;
+ if (src->nelem != 0)
+ memcpy (dst->elems, src->elems, src->nelem * sizeof *dst->elems);
}
static void
alloc_position_set (position_set *s, size_t size)
{
s->elems = xnmalloc (size, sizeof *s->elems);
- if (PTRDIFF_MAX < SIZE_MAX / sizeof *s->elems && PTRDIFF_MAX < size)
- xalloc_die ();
s->alloc = size;
s->nelem = 0;
}
@@ -2031,7 +2021,6 @@ insert (position p, position_set *s)
{
ptrdiff_t count = s->nelem;
ptrdiff_t lo = 0, hi = count;
- ptrdiff_t i;
while (lo < hi)
{
ptrdiff_t mid = (lo + hi) >> 1;
@@ -2047,7 +2036,7 @@ insert (position p, position_set *s)
}
s->elems = maybe_realloc (s->elems, count, &s->alloc, -1, sizeof *s->elems);
- for (i = count; i > lo; i--)
+ for (ptrdiff_t i = count; i > lo; i--)
s->elems[i] = s->elems[i - 1];
s->elems[lo] = p;
++s->nelem;
@@ -2096,7 +2085,7 @@ merge_constrained (position_set const *s1, position_set const *s2,
static void
merge (position_set const *s1, position_set const *s2, position_set *m)
{
- return merge_constrained (s1, s2, -1, m);
+ merge_constrained (s1, s2, -1, m);
}
/* Delete a position from a set. Return the nonzero constraint of the
@@ -2148,7 +2137,7 @@ state_index (struct dfa *d, position_set const *s, int context)
{
size_t hash = 0;
int constraint = 0;
- state_num i, j;
+ state_num i;
token first_end = 0;
for (i = 0; i < s->nelem; ++i)
@@ -2160,6 +2149,7 @@ state_index (struct dfa *d, position_set const *s, int context)
if (hash != d->states[i].hash || s->nelem != d->states[i].elems.nelem
|| context != d->states[i].context)
continue;
+ state_num j;
for (j = 0; j < s->nelem; ++j)
if (s->elems[j].constraint != d->states[i].elems.elems[j].constraint
|| s->elems[j].index != d->states[i].elems.elems[j].index)
@@ -2170,7 +2160,7 @@ state_index (struct dfa *d, position_set const *s, int context)
#ifdef DEBUG
fprintf (stderr, "new state %zd\n nextpos:", i);
- for (j = 0; j < s->nelem; ++j)
+ for (state_num j = 0; j < s->nelem; j++)
{
fprintf (stderr, " %zu:", s->elems[j].index);
prtok (d->tokens[s->elems[j].index]);
@@ -2190,12 +2180,12 @@ state_index (struct dfa *d, position_set const *s, int context)
fprintf (stderr, "\n");
#endif
- for (j = 0; j < s->nelem; ++j)
+ for (state_num j = 0; j < s->nelem; j++)
{
int c = s->elems[j].constraint;
if (d->tokens[s->elems[j].index] < 0)
{
- if (SUCCEEDS_IN_CONTEXT (c, context, CTX_ANY))
+ if (succeeds_in_context (c, context, CTX_ANY))
constraint |= c;
if (!first_end)
first_end = d->tokens[s->elems[j].index];
@@ -2272,24 +2262,24 @@ epsclosure (position_set *initial, struct dfa const *d)
replace (initial, i, &d->follows[i], constraint, &tmp);
}
+ free (tmp.elems);
}
/* Returns the set of contexts for which there is at least one
character included in C. */
static int
-charclass_context (struct dfa const *dfa, charclass c)
+charclass_context (struct dfa const *dfa, charclass const *c)
{
int context = 0;
- unsigned int j;
- for (j = 0; j < CHARCLASS_WORDS; ++j)
+ for (unsigned int j = 0; j < CHARCLASS_WORDS; ++j)
{
- if (c[j] & dfa->syntax.newline[j])
+ if (c->w[j] & dfa->syntax.newline.w[j])
context |= CTX_NEWLINE;
- if (c[j] & dfa->syntax.letters[j])
+ if (c->w[j] & dfa->syntax.letters.w[j])
context |= CTX_LETTER;
- if (c[j] & ~(dfa->syntax.letters[j] | dfa->syntax.newline[j]))
+ if (c->w[j] & ~(dfa->syntax.letters.w[j] | dfa->syntax.newline.w[j]))
context |= CTX_NONE;
}
@@ -2306,13 +2296,12 @@ static int _GL_ATTRIBUTE_PURE
state_separate_contexts (position_set const *s)
{
int separate_contexts = 0;
- size_t j;
- for (j = 0; j < s->nelem; ++j)
+ for (size_t j = 0; j < s->nelem; j++)
{
- if (PREV_NEWLINE_DEPENDENT (s->elems[j].constraint))
+ if (prev_newline_dependent (s->elems[j].constraint))
separate_contexts |= CTX_NEWLINE;
- if (PREV_LETTER_DEPENDENT (s->elems[j].constraint))
+ if (prev_letter_dependent (s->elems[j].constraint))
separate_contexts |= CTX_LETTER;
}
@@ -2392,15 +2381,11 @@ dfaanalyze (struct dfa *d, bool searchflag)
size_t nlastpos;
} *stkalloc = xnmalloc (d->depth, sizeof *stkalloc), *stk = stkalloc;
- position_set tmp; /* Temporary set for merging sets. */
position_set merged; /* Result of merging sets. */
- int separate_contexts; /* Context wanted by some position. */
- size_t i, j;
- position *pos;
#ifdef DEBUG
fprintf (stderr, "dfaanalyze:\n");
- for (i = 0; i < d->tindex; ++i)
+ for (size_t i = 0; i < d->tindex; ++i)
{
fprintf (stderr, " %zu:", i);
prtok (d->tokens[i]);
@@ -2412,7 +2397,7 @@ dfaanalyze (struct dfa *d, bool searchflag)
alloc_position_set (&merged, d->nleaves);
d->follows = xcalloc (d->tindex, sizeof *d->follows);
- for (i = 0; i < d->tindex; ++i)
+ for (size_t i = 0; i < d->tindex; ++i)
{
switch (d->tokens[i])
{
@@ -2429,14 +2414,17 @@ dfaanalyze (struct dfa *d, bool searchflag)
case PLUS:
/* Every element in the firstpos of the argument is in the follow
of every element in the lastpos. */
- tmp.nelem = stk[-1].nfirstpos;
- tmp.elems = firstpos;
- pos = lastpos;
- for (j = 0; j < stk[-1].nlastpos; ++j)
- {
- merge (&tmp, &d->follows[pos[j].index], &merged);
- copy (&merged, &d->follows[pos[j].index]);
- }
+ {
+ position_set tmp;
+ tmp.nelem = stk[-1].nfirstpos;
+ tmp.elems = firstpos;
+ position *pos = lastpos;
+ for (size_t j = 0; j < stk[-1].nlastpos; j++)
+ {
+ merge (&tmp, &d->follows[pos[j].index], &merged);
+ copy (&merged, &d->follows[pos[j].index]);
+ }
+ }
/* fallthrough */
case QMARK:
@@ -2448,14 +2436,17 @@ dfaanalyze (struct dfa *d, bool searchflag)
case CAT:
/* Every element in the firstpos of the second argument is in the
follow of every element in the lastpos of the first argument. */
- tmp.nelem = stk[-1].nfirstpos;
- tmp.elems = firstpos;
- pos = lastpos + stk[-1].nlastpos;
- for (j = 0; j < stk[-2].nlastpos; ++j)
- {
- merge (&tmp, &d->follows[pos[j].index], &merged);
- copy (&merged, &d->follows[pos[j].index]);
- }
+ {
+ position_set tmp;
+ tmp.nelem = stk[-1].nfirstpos;
+ tmp.elems = firstpos;
+ position *pos = lastpos + stk[-1].nlastpos;
+ for (size_t j = 0; j < stk[-2].nlastpos; j++)
+ {
+ merge (&tmp, &d->follows[pos[j].index], &merged);
+ copy (&merged, &d->follows[pos[j].index]);
+ }
+ }
/* The firstpos of a CAT node is the firstpos of the first argument,
union that of the second argument if the first is nullable. */
@@ -2470,8 +2461,8 @@ dfaanalyze (struct dfa *d, bool searchflag)
stk[-2].nlastpos += stk[-1].nlastpos;
else
{
- pos = lastpos + stk[-2].nlastpos;
- for (j = stk[-1].nlastpos; j-- > 0;)
+ position *pos = lastpos + stk[-2].nlastpos;
+ for (size_t j = stk[-1].nlastpos; j-- > 0;)
pos[j] = lastpos[j];
lastpos += stk[-2].nlastpos;
stk[-2].nlastpos = stk[-1].nlastpos;
@@ -2510,8 +2501,6 @@ dfaanalyze (struct dfa *d, bool searchflag)
firstpos->index = lastpos->index = i;
firstpos->constraint = lastpos->constraint = NO_CONSTRAINT;
- /* Allocate the follow set for this position. */
- alloc_position_set (&d->follows[i], 1);
break;
}
#ifdef DEBUG
@@ -2522,13 +2511,13 @@ dfaanalyze (struct dfa *d, bool searchflag)
fprintf (stderr,
stk[-1].nullable ? " nullable: yes\n" : " nullable: no\n");
fprintf (stderr, " firstpos:");
- for (j = stk[-1].nfirstpos; j-- > 0;)
+ for (size_t j = stk[-1].nfirstpos; j-- > 0;)
{
fprintf (stderr, " %zu:", firstpos[j].index);
prtok (d->tokens[firstpos[j].index]);
}
fprintf (stderr, "\n lastpos:");
- for (j = stk[-1].nlastpos; j-- > 0;)
+ for (size_t j = stk[-1].nlastpos; j-- > 0;)
{
fprintf (stderr, " %zu:", lastpos[j].index);
prtok (d->tokens[lastpos[j].index]);
@@ -2538,7 +2527,7 @@ dfaanalyze (struct dfa *d, bool searchflag)
}
#ifdef DEBUG
- for (i = 0; i < d->tindex; ++i)
+ for (size_t i = 0; i < d->tindex; ++i)
if (d->tokens[i] < NOTCHAR || d->tokens[i] == BACKREF
|| d->tokens[i] == ANYCHAR || d->tokens[i] == MBCSET
|| d->tokens[i] >= CSET)
@@ -2546,7 +2535,7 @@ dfaanalyze (struct dfa *d, bool searchflag)
fprintf (stderr, "follows(%zu:", i);
prtok (d->tokens[i]);
fprintf (stderr, "):");
- for (j = d->follows[i].nelem; j-- > 0;)
+ for (size_t j = d->follows[i].nelem; j-- > 0;)
{
fprintf (stderr, " %zu:", d->follows[i].elems[j].index);
prtok (d->tokens[d->follows[i].elems[j].index]);
@@ -2558,15 +2547,17 @@ dfaanalyze (struct dfa *d, bool searchflag)
/* Get the epsilon closure of the firstpos of the regexp. The result will
be the set of positions of state 0. */
merged.nelem = 0;
- for (i = 0; i < stk[-1].nfirstpos; ++i)
+ for (size_t i = 0; i < stk[-1].nfirstpos; ++i)
insert (firstpos[i], &merged);
/* For each follow set that is the follow set of a real position, replace
it with its epsilon closure. */
epsclosure (&merged, d);
+ /* Context wanted by some position. */
+ int separate_contexts = state_separate_contexts (&merged);
+
/* Build the initial state. */
- separate_contexts = state_separate_contexts (&merged);
if (separate_contexts & CTX_NEWLINE)
state_index (d, &merged, CTX_NEWLINE);
d->initstate_notbol = d->min_trcount
@@ -2581,9 +2572,45 @@ dfaanalyze (struct dfa *d, bool searchflag)
free (merged.elems);
}
+/* Make sure D's state arrays are large enough to hold NEW_STATE. */
+static void
+realloc_trans_if_necessary (struct dfa *d)
+{
+ state_num oldalloc = d->tralloc;
+ if (oldalloc < d->sindex)
+ {
+ state_num **realtrans = d->trans ? d->trans - 2 : NULL;
+ ptrdiff_t newalloc1 = realtrans ? d->tralloc + 2 : 0;
+ realtrans = xpalloc (realtrans, &newalloc1, d->sindex - oldalloc,
+ -1, sizeof *realtrans);
+ realtrans[0] = realtrans[1] = NULL;
+ d->trans = realtrans + 2;
+ ptrdiff_t newalloc = d->tralloc = newalloc1 - 2;
+ d->fails = xnrealloc (d->fails, newalloc, sizeof *d->fails);
+ d->success = xnrealloc (d->success, newalloc, sizeof *d->success);
+ d->newlines = xnrealloc (d->newlines, newalloc, sizeof *d->newlines);
+ if (d->localeinfo.multibyte)
+ {
+ realtrans = d->mb_trans ? d->mb_trans - 2 : NULL;
+ realtrans = xnrealloc (realtrans, newalloc1, sizeof *realtrans);
+ if (oldalloc == 0)
+ realtrans[0] = realtrans[1] = NULL;
+ d->mb_trans = realtrans + 2;
+ }
+ for (; oldalloc < newalloc; oldalloc++)
+ {
+ d->trans[oldalloc] = NULL;
+ d->fails[oldalloc] = NULL;
+ if (d->localeinfo.multibyte)
+ d->mb_trans[oldalloc] = NULL;
+ }
+ }
+}
-/* Return the transition out of state s of d for the input character uc,
- updating the slots in trans accordingly.
+/*
+ Calculate the transition table for a new state derived from state s
+ for a compiled dfa d after input character uc, and return the new
+ state number.
Do not worry about all possible input characters; calculate just the group
of positions that match uc. Label it with the set of characters that
@@ -2612,49 +2639,90 @@ dfaanalyze (struct dfa *d, bool searchflag)
If after comparing with every group there are characters remaining in C,
create a new group labeled with the characters of C and insert this
position in that group. */
+
static state_num
-dfastate (state_num s, struct dfa *d, unsigned char uc, state_num trans[])
+build_state (state_num s, struct dfa *d, unsigned char uc)
{
- leaf_set group; /* Positions that match the input char. */
- charclass label; /* The group's label. */
position_set follows; /* Union of the follows of the group. */
position_set tmp; /* Temporary space for merging sets. */
state_num state; /* New state. */
state_num state_newline; /* New state on a newline transition. */
state_num state_letter; /* New state on a letter transition. */
- size_t i, j, k;
#ifdef DEBUG
fprintf (stderr, "build state %td\n", s);
#endif
+ /* A pointer to the new transition table, and the table itself. */
+ state_num **ptrans = (accepting (s, d) ? d->fails : d->trans) + s;
+ state_num *trans = *ptrans;
+
+ if (!trans)
+ {
+ /* MAX_TRCOUNT is an arbitrary upper limit on the number of
+ transition tables that can exist at once, other than for
+ initial states. Often-used transition tables are quickly
+ rebuilt, whereas rarely-used ones are cleared away. */
+ if (MAX_TRCOUNT <= d->trcount)
+ {
+ for (state_num i = d->min_trcount; i < d->tralloc; i++)
+ {
+ free (d->trans[i]);
+ free (d->fails[i]);
+ d->trans[i] = d->fails[i] = NULL;
+ }
+ d->trcount = 0;
+ }
+
+ d->trcount++;
+ *ptrans = trans = xmalloc (NOTCHAR * sizeof *trans);
+
+ /* Fill transition table with a default value which means that the
+ transited state has not been calculated yet. */
+ for (int i = 0; i < NOTCHAR; i++)
+ trans[i] = -2;
+ }
+
+ /* Set up the success bits for this state. */
+ d->success[s] = 0;
+ if (accepts_in_context (d->states[s].context, CTX_NEWLINE, s, d))
+ d->success[s] |= CTX_NEWLINE;
+ if (accepts_in_context (d->states[s].context, CTX_LETTER, s, d))
+ d->success[s] |= CTX_LETTER;
+ if (accepts_in_context (d->states[s].context, CTX_NONE, s, d))
+ d->success[s] |= CTX_NONE;
+
+ /* Positions that match the input char. */
+ leaf_set group;
group.elems = xnmalloc (d->nleaves, sizeof *group.elems);
group.nelem = 0;
- fillset (label);
+ /* The group's label. */
+ charclass label;
+ fillset (&label);
- for (i = 0; i < d->states[s].elems.nelem; ++i)
+ for (size_t i = 0; i < d->states[s].elems.nelem; ++i)
{
charclass matches; /* Set of matching characters. */
position pos = d->states[s].elems.elems[i];
bool matched = false;
if (d->tokens[pos.index] >= 0 && d->tokens[pos.index] < NOTCHAR)
{
- zeroset (matches);
- setbit (d->tokens[pos.index], matches);
+ zeroset (&matches);
+ setbit (d->tokens[pos.index], &matches);
if (d->tokens[pos.index] == uc)
matched = true;
}
else if (d->tokens[pos.index] >= CSET)
{
- copyset (d->charclasses[d->tokens[pos.index] - CSET], matches);
- if (tstbit (uc, d->charclasses[d->tokens[pos.index] - CSET]))
+ matches = d->charclasses[d->tokens[pos.index] - CSET];
+ if (tstbit (uc, &d->charclasses[d->tokens[pos.index] - CSET]))
matched = true;
}
- else if (d->tokens[pos.index] == ANYCHAR)
- {
- copyset (d->charclasses[d->canychar], matches);
- if (tstbit (uc, d->charclasses[d->canychar]))
+ else if (d->tokens[pos.index] == ANYCHAR)
+ {
+ matches = d->charclasses[d->canychar];
+ if (tstbit (uc, &d->charclasses[d->canychar]))
matched = true;
/* ANYCHAR must match with a single character, so we must put
@@ -2663,13 +2731,13 @@ dfastate (state_num s, struct dfa *d, unsigned char uc, state_num trans[])
positions which has ANYCHAR does not depend on context of
next character, we put the follows instead of it to
D->states[s].mbps to optimize. */
- if (SUCCEEDS_IN_CONTEXT (pos.constraint, d->states[s].context,
+ if (succeeds_in_context (pos.constraint, d->states[s].context,
CTX_NONE))
{
if (d->states[s].mbps.nelem == 0)
alloc_position_set (&d->states[s].mbps,
d->follows[pos.index].nelem);
- for (j = 0; j < d->follows[pos.index].nelem; j++)
+ for (size_t j = 0; j < d->follows[pos.index].nelem; j++)
insert (d->follows[pos.index].elems[j], &d->states[s].mbps);
}
}
@@ -2680,29 +2748,27 @@ dfastate (state_num s, struct dfa *d, unsigned char uc, state_num trans[])
they fail in the current context. */
if (pos.constraint != NO_CONSTRAINT)
{
- if (!SUCCEEDS_IN_CONTEXT (pos.constraint,
+ if (!succeeds_in_context (pos.constraint,
d->states[s].context, CTX_NEWLINE))
- for (j = 0; j < CHARCLASS_WORDS; ++j)
- matches[j] &= ~d->syntax.newline[j];
- if (!SUCCEEDS_IN_CONTEXT (pos.constraint,
+ for (size_t j = 0; j < CHARCLASS_WORDS; ++j)
+ matches.w[j] &= ~d->syntax.newline.w[j];
+ if (!succeeds_in_context (pos.constraint,
d->states[s].context, CTX_LETTER))
- for (j = 0; j < CHARCLASS_WORDS; ++j)
- matches[j] &= ~d->syntax.letters[j];
- if (!SUCCEEDS_IN_CONTEXT (pos.constraint,
+ for (size_t j = 0; j < CHARCLASS_WORDS; ++j)
+ matches.w[j] &= ~d->syntax.letters.w[j];
+ if (!succeeds_in_context (pos.constraint,
d->states[s].context, CTX_NONE))
- for (j = 0; j < CHARCLASS_WORDS; ++j)
- matches[j] &= d->syntax.letters[j] | d->syntax.newline[j];
+ for (size_t j = 0; j < CHARCLASS_WORDS; ++j)
+ matches.w[j] &= d->syntax.letters.w[j] | d->syntax.newline.w[j];
/* If there are no characters left, there's no point in going on. */
- for (j = 0; j < CHARCLASS_WORDS && !matches[j]; ++j)
- continue;
- if (j == CHARCLASS_WORDS)
+ if (emptyset (&matches))
continue;
/* If we have reset the bit that made us declare "matched", reset
that indicator, too. This is required to avoid an infinite loop
with this command: echo cx | LC_ALL=C grep -E 'c\b[x ]' */
- if (!tstbit (uc, matches))
+ if (!tstbit (uc, &matches))
matched = false;
}
@@ -2710,22 +2776,22 @@ dfastate (state_num s, struct dfa *d, unsigned char uc, state_num trans[])
fprintf (stderr, " nextpos %zu:", pos.index);
prtok (d->tokens[pos.index]);
fprintf (stderr, " of");
- for (j = 0; j < NOTCHAR; j++)
- if (tstbit (j, matches))
+ for (size_t j = 0; j < NOTCHAR; j++)
+ if (tstbit (j, &matches))
fprintf (stderr, " 0x%02zx", j);
fprintf (stderr, "\n");
#endif
if (matched)
{
- for (k = 0; k < CHARCLASS_WORDS; ++k)
- label[k] &= matches[k];
+ for (size_t k = 0; k < CHARCLASS_WORDS; ++k)
+ label.w[k] &= matches.w[k];
group.elems[group.nelem++] = pos.index;
}
else
{
- for (k = 0; k < CHARCLASS_WORDS; ++k)
- label[k] &= ~matches[k];
+ for (size_t k = 0; k < CHARCLASS_WORDS; ++k)
+ label.w[k] &= ~matches.w[k];
}
}
@@ -2734,15 +2800,12 @@ dfastate (state_num s, struct dfa *d, unsigned char uc, state_num trans[])
if (group.nelem > 0)
{
- int possible_contexts; /* Contexts that the group can match. */
- int separate_contexts; /* Context that new state wants to know. */
-
follows.nelem = 0;
/* Find the union of the follows of the positions of the group.
This is a hideously inefficient loop. Fix it someday. */
- for (j = 0; j < group.nelem; ++j)
- for (k = 0; k < d->follows[group.elems[j]].nelem; ++k)
+ for (size_t j = 0; j < group.nelem; ++j)
+ for (size_t k = 0; k < d->follows[group.elems[j]].nelem; ++k)
insert (d->follows[group.elems[j]].elems[k], &follows);
/* If we are building a searching matcher, throw in the positions
@@ -2768,8 +2831,11 @@ dfastate (state_num s, struct dfa *d, unsigned char uc, state_num trans[])
bool mergeit = !d->localeinfo.multibyte;
if (!mergeit)
- for (mergeit = true, j = 0; mergeit && j < follows.nelem; j++)
- mergeit &= d->multibyte_prop[follows.elems[j].index];
+ {
+ mergeit = true;
+ for (size_t j = 0; mergeit && j < follows.nelem; j++)
+ mergeit &= d->multibyte_prop[follows.elems[j].index];
+ }
if (mergeit)
{
merge (&d->states[0].elems, &follows, &tmp);
@@ -2777,9 +2843,11 @@ dfastate (state_num s, struct dfa *d, unsigned char uc, state_num trans[])
}
}
- /* Find out if the new state will want any context information. */
- possible_contexts = charclass_context (d, label);
- separate_contexts = state_separate_contexts (&follows);
+ /* Find out if the new state will want any context information,
+ by calculating possible contexts that the group can match,
+ and separate contexts that the new state wants to know. */
+ int possible_contexts = charclass_context (d, &label);
+ int separate_contexts = state_separate_contexts (&follows);
/* Find the state(s) corresponding to the union of the follows. */
if (possible_contexts & ~separate_contexts)
@@ -2794,6 +2862,9 @@ dfastate (state_num s, struct dfa *d, unsigned char uc, state_num trans[])
state_letter = state_index (d, &follows, CTX_LETTER);
else
state_letter = state;
+
+ /* Reallocate now, to reallocate any newline transition properly. */
+ realloc_trans_if_necessary (d);
}
/* If we are a searching matcher, the default transition is to a state
@@ -2813,8 +2884,8 @@ dfastate (state_num s, struct dfa *d, unsigned char uc, state_num trans[])
}
/* Set the transitions for each character in the label. */
- for (i = 0; i < NOTCHAR; i++)
- if (tstbit (i, label))
+ for (size_t i = 0; i < NOTCHAR; i++)
+ if (tstbit (i, &label))
switch (d->syntax.sbit[i])
{
case CTX_NEWLINE:
@@ -2830,7 +2901,7 @@ dfastate (state_num s, struct dfa *d, unsigned char uc, state_num trans[])
#ifdef DEBUG
fprintf (stderr, "trans table %td", s);
- for (i = 0; i < NOTCHAR; ++i)
+ for (size_t i = 0; i < NOTCHAR; ++i)
{
if (!(i & 0xf))
fprintf (stderr, "\n");
@@ -2845,7 +2916,7 @@ dfastate (state_num s, struct dfa *d, unsigned char uc, state_num trans[])
/* Keep the newline transition in a special place so we can use it as
a sentinel. */
- if (tstbit (d->syntax.eolbyte, label))
+ if (tstbit (d->syntax.eolbyte, &label))
{
d->newlines[s] = trans[d->syntax.eolbyte];
trans[d->syntax.eolbyte] = -1;
@@ -2854,102 +2925,6 @@ dfastate (state_num s, struct dfa *d, unsigned char uc, state_num trans[])
return trans[uc];
}
-/* Make sure D's state arrays are large enough to hold NEW_STATE. */
-static void
-realloc_trans_if_necessary (struct dfa *d, state_num new_state)
-{
- state_num oldalloc = d->tralloc;
- if (oldalloc <= new_state)
- {
- state_num **realtrans = d->trans ? d->trans - 2 : NULL;
- ptrdiff_t newalloc, newalloc1;
- newalloc1 = realtrans ? d->tralloc + 2 : 0;
- realtrans = xpalloc (realtrans, &newalloc1, new_state - oldalloc + 1,
- -1, sizeof *realtrans);
- realtrans[0] = realtrans[1] = NULL;
- d->trans = realtrans + 2;
- d->tralloc = newalloc = newalloc1 - 2;
- d->fails = xnrealloc (d->fails, newalloc, sizeof *d->fails);
- d->success = xnrealloc (d->success, newalloc, sizeof *d->success);
- d->newlines = xnrealloc (d->newlines, newalloc, sizeof *d->newlines);
- if (d->localeinfo.multibyte)
- {
- realtrans = d->mb_trans ? d->mb_trans - 2 : NULL;
- realtrans = xnrealloc (realtrans, newalloc1, sizeof *realtrans);
- if (oldalloc == 0)
- realtrans[0] = realtrans[1] = NULL;
- d->mb_trans = realtrans + 2;
- }
- for (; oldalloc < newalloc; oldalloc++)
- {
- d->trans[oldalloc] = NULL;
- d->fails[oldalloc] = NULL;
- if (d->localeinfo.multibyte)
- d->mb_trans[oldalloc] = NULL;
- }
- }
-}
-
-/* Calculate the transition table for a new state derived from state s
- for a compiled dfa d after input character uc, and return the new
- state number. */
-
-static state_num
-build_state (state_num s, struct dfa *d, unsigned char uc)
-{
- /* A pointer to the new transition table, and the table itself. */
- state_num **ptrans = (ACCEPTING (s, *d) ? d->fails : d->trans) + s;
- state_num *trans = *ptrans;
-
- if (!trans)
- {
- /* MAX_TRCOUNT is an arbitrary upper limit on the number of
- transition tables that can exist at once, other than for
- initial states. Often-used transition tables are quickly
- rebuilt, whereas rarely-used ones are cleared away. */
- if (MAX_TRCOUNT <= d->trcount)
- {
- for (state_num i = d->min_trcount; i < d->tralloc; i++)
- {
- free (d->trans[i]);
- free (d->fails[i]);
- d->trans[i] = d->fails[i] = NULL;
- }
- d->trcount = 0;
- }
-
- d->trcount++;
- *ptrans = trans = xmalloc (NOTCHAR * sizeof *trans);
-
- /* Fill transition table with a default value which means that the
- transited state has not been calculated yet. */
- for (int i = 0; i < NOTCHAR; i++)
- trans[i] = -2;
- }
-
- /* Set up the success bits for this state. */
- d->success[s] = 0;
- if (ACCEPTS_IN_CONTEXT (d->states[s].context, CTX_NEWLINE, s, *d))
- d->success[s] |= CTX_NEWLINE;
- if (ACCEPTS_IN_CONTEXT (d->states[s].context, CTX_LETTER, s, *d))
- d->success[s] |= CTX_LETTER;
- if (ACCEPTS_IN_CONTEXT (d->states[s].context, CTX_NONE, s, *d))
- d->success[s] |= CTX_NONE;
-
- s = dfastate (s, d, uc, trans);
-
- /* Now go through the new transition table, and make sure that the trans
- and fail arrays are allocated large enough to hold a pointer for the
- largest state mentioned in the table. */
- state_num maxstate = -1;
- for (int i = 0; i < NOTCHAR; i++)
- if (maxstate < trans[i])
- maxstate = trans[i];
- realloc_trans_if_necessary (d, maxstate);
-
- return s;
-}
-
/* Multibyte character handling sub-routines for dfaexec. */
/* Consume a single byte and transit state from 's' to '*next_state'.
@@ -2990,10 +2965,7 @@ static state_num
transit_state (struct dfa *d, state_num s, unsigned char const **pp,
unsigned char const *end)
{
- state_num s1, s2;
wint_t wc;
- int separate_contexts;
- size_t i;
int mbclen = mbs_to_wchar (&wc, (char const *) *pp, end - *pp, d);
@@ -3002,10 +2974,11 @@ transit_state (struct dfa *d, state_num s, unsigned char const **pp,
/* Calculate the state which can be reached from the state 's' by
consuming 'mbclen' single bytes from the buffer. */
- s1 = s;
- for (i = 0; i < mbclen && (i == 0 || d->min_trcount <= s); i++)
+ state_num s1 = s;
+ int mbci;
+ for (mbci = 0; mbci < mbclen && (mbci == 0 || d->min_trcount <= s); mbci++)
s = transit_state_singlebyte (d, s, pp);
- *pp += mbclen - i;
+ *pp += mbclen - mbci;
if (wc == WEOF)
{
@@ -3027,7 +3000,7 @@ transit_state (struct dfa *d, state_num s, unsigned char const **pp,
d->mb_trans[s3] = NULL;
}
- for (i = 0; i < d->sindex; i++)
+ for (state_num i = 0; i < d->sindex; i++)
d->states[i].mb_trindex = -1;
d->mb_trcount = 0;
}
@@ -3039,7 +3012,7 @@ transit_state (struct dfa *d, state_num s, unsigned char const **pp,
enum { TRANSPTR_SIZE = sizeof *d->mb_trans[s] };
enum { TRANSALLOC_SIZE = MAX_TRCOUNT * TRANSPTR_SIZE };
d->mb_trans[s] = xmalloc (TRANSALLOC_SIZE);
- for (i = 0; i < MAX_TRCOUNT; i++)
+ for (int i = 0; i < MAX_TRCOUNT; i++)
d->mb_trans[s][i] = -1;
}
else if (d->mb_trans[s][d->states[s1].mb_trindex] >= 0)
@@ -3050,9 +3023,9 @@ transit_state (struct dfa *d, state_num s, unsigned char const **pp,
else
merge (&d->states[s1].mbps, &d->states[s].elems, &d->mb_follows);
- separate_contexts = state_separate_contexts (&d->mb_follows);
- s2 = state_index (d, &d->mb_follows, separate_contexts ^ CTX_ANY);
- realloc_trans_if_necessary (d, s2);
+ int separate_contexts = state_separate_contexts (&d->mb_follows);
+ state_num s2 = state_index (d, &d->mb_follows, separate_contexts ^ CTX_ANY);
+ realloc_trans_if_necessary (d);
d->mb_trans[s][d->states[s1].mb_trindex] = s2;
@@ -3078,12 +3051,14 @@ static unsigned char const *
skip_remains_mb (struct dfa *d, unsigned char const *p,
unsigned char const *mbp, char const *end)
{
- wint_t wc;
if (d->syntax.never_trail[*p])
return p;
while (mbp < p)
- mbp += mbs_to_wchar (&wc, (char const *) mbp,
- end - (char const *) mbp, d);
+ {
+ wint_t wc;
+ mbp += mbs_to_wchar (&wc, (char const *) mbp,
+ end - (char const *) mbp, d);
+ }
return mbp;
}
@@ -3111,17 +3086,9 @@ static inline char *
dfaexec_main (struct dfa *d, char const *begin, char *end, bool allow_nl,
size_t *count, bool multibyte)
{
- state_num s, s1; /* Current state. */
- unsigned char const *p, *mbp; /* Current input character. */
- state_num **trans, *t; /* Copy of d->trans so it can be optimized
- into a register. */
- unsigned char eol = d->syntax.eolbyte; /* Likewise for eolbyte. */
- unsigned char saved_end;
- size_t nlcount = 0;
-
if (MAX_TRCOUNT <= d->sindex)
{
- for (s = d->min_trcount; s < d->sindex; s++)
+ for (state_num s = d->min_trcount; s < d->sindex; s++)
{
free (d->states[s].elems.elems);
free (d->states[s].mbps.elems);
@@ -3130,7 +3097,7 @@ dfaexec_main (struct dfa *d, char const *begin, char *end, bool allow_nl,
if (d->trans)
{
- for (s = 0; s < d->tralloc; s++)
+ for (state_num s = 0; s < d->tralloc; s++)
{
free (d->trans[s]);
free (d->fails[s]);
@@ -3141,24 +3108,31 @@ dfaexec_main (struct dfa *d, char const *begin, char *end, bool allow_nl,
if (d->localeinfo.multibyte && d->mb_trans)
{
- for (s = -1; s < d->tralloc; s++)
+ for (state_num s = -1; s < d->tralloc; s++)
{
free (d->mb_trans[s]);
d->mb_trans[s] = NULL;
}
- for (s = 0; s < d->min_trcount; s++)
+ for (state_num s = 0; s < d->min_trcount; s++)
d->states[s].mb_trindex = -1;
d->mb_trcount = 0;
}
}
if (!d->tralloc)
- realloc_trans_if_necessary (d, 0);
+ realloc_trans_if_necessary (d);
+
+ /* Current state. */
+ state_num s = 0, s1 = 0;
+
+ /* Current input character. */
+ unsigned char const *p = (unsigned char const *) begin;
+ unsigned char const *mbp = p;
- s = s1 = 0;
- p = mbp = (unsigned char const *) begin;
- trans = d->trans;
- saved_end = *(unsigned char *) end;
+ /* Copy of d->trans so it can be optimized into a register. */
+ state_num **trans = d->trans;
+ unsigned char eol = d->syntax.eolbyte; /* Likewise for eolbyte. */
+ unsigned char saved_end = *(unsigned char *) end;
*end = eol;
if (multibyte)
@@ -3168,8 +3142,10 @@ dfaexec_main (struct dfa *d, char const *begin, char *end, bool allow_nl,
alloc_position_set (&d->mb_follows, d->nleaves);
}
+ size_t nlcount = 0;
for (;;)
{
+ state_num *t;
while ((t = trans[s]) != NULL)
{
if (s < d->min_trcount)
@@ -3250,8 +3226,8 @@ dfaexec_main (struct dfa *d, char const *begin, char *end, bool allow_nl,
{
if ((d->success[s] & d->syntax.sbit[*p])
|| ((char *) p == end
- && ACCEPTS_IN_CONTEXT (d->states[s].context, CTX_NEWLINE, s,
- *d)))
+ && accepts_in_context (d->states[s].context, CTX_NEWLINE, s,
+ d)))
goto done;
if (multibyte && s < d->min_trcount)
@@ -3339,14 +3315,8 @@ dfaisfast (struct dfa const *d)
static void
free_mbdata (struct dfa *d)
{
- ptrdiff_t i;
-
free (d->multibyte_prop);
-
- for (i = 0; i < d->nmbcsets; ++i)
- free (d->mbcsets[i].chars);
-
- free (d->mbcsets);
+ free (d->lex.brack.chars);
free (d->mb_follows.elems);
if (d->mb_trans)
@@ -3362,8 +3332,7 @@ free_mbdata (struct dfa *d)
static bool _GL_ATTRIBUTE_PURE
dfa_supported (struct dfa const *d)
{
- size_t i;
- for (i = 0; i < d->tindex; i++)
+ for (size_t i = 0; i < d->tindex; i++)
{
switch (d->tokens[i])
{
@@ -3386,13 +3355,11 @@ dfa_supported (struct dfa const *d)
static void
dfaoptimize (struct dfa *d)
{
- size_t i;
- bool have_backref = false;
-
if (!d->localeinfo.using_utf8)
return;
- for (i = 0; i < d->tindex; ++i)
+ bool have_backref = false;
+ for (size_t i = 0; i < d->tindex; ++i)
{
switch (d->tokens[i])
{
@@ -3427,16 +3394,12 @@ dfaoptimize (struct dfa *d)
static void
dfassbuild (struct dfa *d)
{
- size_t i, j;
- bool have_achar = false;
- bool have_nchar = false;
struct dfa *sup = dfaalloc ();
*sup = *d;
sup->localeinfo.multibyte = false;
sup->dfaexec = dfaexec_sb;
sup->multibyte_prop = NULL;
- sup->mbcsets = NULL;
sup->superset = NULL;
sup->states = NULL;
sup->sindex = 0;
@@ -3457,7 +3420,10 @@ dfassbuild (struct dfa *d)
sup->tokens = xnmalloc (d->tindex, 2 * sizeof *sup->tokens);
sup->talloc = d->tindex * 2;
- for (i = j = 0; i < d->tindex; i++)
+ bool have_achar = false;
+ bool have_nchar = false;
+ size_t j;
+ for (size_t i = j = 0; i < d->tindex; i++)
{
switch (d->tokens[i])
{
@@ -3466,8 +3432,8 @@ dfassbuild (struct dfa *d)
case BACKREF:
{
charclass ccl;
- fillset (ccl);
- sup->tokens[j++] = CSET + charclass_index (sup, ccl);
+ fillset (&ccl);
+ sup->tokens[j++] = CSET + charclass_index (sup, &ccl);
sup->tokens[j++] = STAR;
if (d->tokens[i + 1] == QMARK || d->tokens[i + 1] == STAR
|| d->tokens[i + 1] == PLUS)
@@ -3534,15 +3500,13 @@ dfacomp (char const *s, size_t len, struct dfa *d, bool searchflag)
void
dfafree (struct dfa *d)
{
- size_t i;
-
free (d->charclasses);
free (d->tokens);
if (d->localeinfo.multibyte)
free_mbdata (d);
- for (i = 0; i < d->sindex; ++i)
+ for (size_t i = 0; i < d->sindex; ++i)
{
free (d->states[i].elems.elems);
free (d->states[i].mbps.elems);
@@ -3551,14 +3515,14 @@ dfafree (struct dfa *d)
if (d->follows)
{
- for (i = 0; i < d->tindex; ++i)
+ for (size_t i = 0; i < d->tindex; ++i)
free (d->follows[i].elems);
free (d->follows);
}
if (d->trans)
{
- for (i = 0; i < d->tralloc; ++i)
+ for (size_t i = 0; i < d->tralloc; ++i)
{
free (d->trans[i]);
free (d->fails[i]);
@@ -3659,13 +3623,11 @@ dfafree (struct dfa *d)
static char *
icatalloc (char *old, char const *new)
{
- char *result;
- size_t oldsize;
size_t newsize = strlen (new);
if (newsize == 0)
return old;
- oldsize = strlen (old);
- result = xrealloc (old, oldsize + newsize + 1);
+ size_t oldsize = strlen (old);
+ char *result = xrealloc (old, oldsize + newsize + 1);
memcpy (result + oldsize, new, newsize + 1);
return result;
}
@@ -3680,10 +3642,10 @@ freelist (char **cpp)
static char **
enlist (char **cpp, char *new, size_t len)
{
- size_t i, j;
new = memcpy (xmalloc (len + 1), new, len);
new[len] = '\0';
/* Is there already something in the list that's new (or longer)? */
+ size_t i;
for (i = 0; cpp[i] != NULL; ++i)
if (strstr (cpp[i], new) != NULL)
{
@@ -3691,8 +3653,7 @@ enlist (char **cpp, char *new, size_t len)
return cpp;
}
/* Eliminate any obsoleted strings. */
- j = 0;
- while (cpp[j] != NULL)
+ for (size_t j = 0; cpp[j] != NULL; )
if (strstr (new, cpp[j]) == NULL)
++j;
else
@@ -3716,9 +3677,8 @@ static char **
comsubs (char *left, char const *right)
{
char **cpp = xzalloc (sizeof *cpp);
- char *lcp;
- for (lcp = left; *lcp != '\0'; ++lcp)
+ for (char *lcp = left; *lcp != '\0'; lcp++)
{
size_t len = 0;
char *rcp = strchr (right, *lcp);
@@ -3751,11 +3711,10 @@ static char **
inboth (char **left, char **right)
{
char **both = xzalloc (sizeof *both);
- size_t lnum, rnum;
- for (lnum = 0; left[lnum] != NULL; ++lnum)
+ for (size_t lnum = 0; left[lnum] != NULL; ++lnum)
{
- for (rnum = 0; right[rnum] != NULL; ++rnum)
+ for (size_t rnum = 0; right[rnum] != NULL; ++rnum)
{
char **temp = comsubs (left[lnum], right[rnum]);
both = addlists (both, temp);
@@ -3819,17 +3778,14 @@ dfamust (struct dfa const *d)
{
must *mp = NULL;
char const *result = "";
- size_t i, ri;
bool exact = false;
bool begline = false;
bool endline = false;
- size_t rj;
bool need_begline = false;
bool need_endline = false;
bool case_fold_unibyte = d->syntax.case_fold && MB_CUR_MAX == 1;
- struct dfamust *dm;
- for (ri = 0; ri < d->tindex; ++ri)
+ for (size_t ri = 0; ri < d->tindex; ++ri)
{
token t = d->tokens[ri];
switch (t)
@@ -3872,7 +3828,7 @@ dfamust (struct dfa const *d)
size_t j, ln, rn, n;
/* Guaranteed to be. Unlikely, but ... */
- if (STREQ (lmp->is, rmp->is))
+ if (streq (lmp->is, rmp->is))
{
lmp->begline &= rmp->begline;
lmp->endline &= rmp->endline;
@@ -3884,7 +3840,7 @@ dfamust (struct dfa const *d)
lmp->endline = false;
}
/* Left side--easy */
- i = 0;
+ size_t i = 0;
while (lmp->left[i] != '\0' && lmp->left[i] == rmp->left[i])
++i;
lmp->left[i] = '\0';
@@ -3914,10 +3870,10 @@ dfamust (struct dfa const *d)
case END:
assert (!mp->prev);
- for (i = 0; mp->in[i] != NULL; ++i)
+ for (size_t i = 0; mp->in[i] != NULL; ++i)
if (strlen (mp->in[i]) > strlen (result))
result = mp->in[i];
- if (STREQ (result, mp->is))
+ if (streq (result, mp->is))
{
if ((!need_begline || mp->begline) && (!need_endline
|| mp->endline))
@@ -3984,7 +3940,7 @@ dfamust (struct dfa const *d)
charclass *ccl = &d->charclasses[t - CSET];
int j;
for (j = 0; j < NOTCHAR; j++)
- if (tstbit (j, *ccl))
+ if (tstbit (j, ccl))
break;
if (! (j < NOTCHAR))
{
@@ -3993,7 +3949,7 @@ dfamust (struct dfa const *d)
}
t = j;
while (++j < NOTCHAR)
- if (tstbit (j, *ccl)
+ if (tstbit (j, ccl)
&& ! (case_fold_unibyte
&& toupper (j) == toupper (t)))
break;
@@ -4004,7 +3960,7 @@ dfamust (struct dfa const *d)
}
}
- rj = ri + 2;
+ size_t rj = ri + 2;
if (d->tokens[ri + 1] == CAT)
{
for (; rj < d->tindex - 1; rj += 2)
@@ -4019,6 +3975,7 @@ dfamust (struct dfa const *d)
mp->is[0] = mp->left[0] = mp->right[0]
= case_fold_unibyte ? toupper (t) : t;
+ size_t i;
for (i = 1; ri + 2 < rj; i++)
{
ri += 2;
@@ -4033,7 +3990,7 @@ dfamust (struct dfa const *d)
}
done:;
- dm = NULL;
+ struct dfamust *dm = NULL;
if (*result)
{
dm = xmalloc (sizeof *dm);
@@ -4071,7 +4028,6 @@ void
dfasyntax (struct dfa *dfa, struct localeinfo const *linfo,
reg_syntax_t bits, int dfaopts)
{
- int i;
memset (dfa, 0, offsetof (struct dfa, dfaexec));
dfa->dfaexec = linfo->multibyte ? dfaexec_mb : dfaexec_sb;
dfa->simple_locale = using_simple_locale (linfo->multibyte);
@@ -4087,7 +4043,7 @@ dfasyntax (struct dfa *dfa, struct localeinfo const *linfo,
dfa->syntax.eolbyte = dfaopts & DFA_EOL_NUL ? '\0' : '\n';
dfa->syntax.syntax_bits = bits;
- for (i = CHAR_MIN; i <= CHAR_MAX; ++i)
+ for (int i = CHAR_MIN; i <= CHAR_MAX; ++i)
{
unsigned char uc = i;
@@ -4095,10 +4051,10 @@ dfasyntax (struct dfa *dfa, struct localeinfo const *linfo,
switch (dfa->syntax.sbit[uc])
{
case CTX_LETTER:
- setbit (uc, dfa->syntax.letters);
+ setbit (uc, &dfa->syntax.letters);
break;
case CTX_NEWLINE:
- setbit (uc, dfa->syntax.newline);
+ setbit (uc, &dfa->syntax.newline);
break;
}
diff --git a/lib/dfa.h b/lib/dfa.h
index 500ee76..a8d514b 100644
--- a/lib/dfa.h
+++ b/lib/dfa.h
@@ -1,5 +1,5 @@
/* dfa.h - declarations for GNU deterministic regexp compiler
- Copyright (C) 1988, 1998, 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 1988, 1998, 2007, 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
diff --git a/lib/dirname-lgpl.c b/lib/dirname-lgpl.c
index a7aabf9..b549ca9 100644
--- a/lib/dirname-lgpl.c
+++ b/lib/dirname-lgpl.c
@@ -1,6 +1,6 @@
/* dirname.c -- return all but the last element in a file name
- Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2016 Free Software
+ Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2017 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/dirname.h b/lib/dirname.h
index 875b31b..dbf920b 100644
--- a/lib/dirname.h
+++ b/lib/dirname.h
@@ -1,6 +1,6 @@
/* Take file names apart into directory and base names.
- Copyright (C) 1998, 2001, 2003-2006, 2009-2016 Free Software Foundation,
+ Copyright (C) 1998, 2001, 2003-2006, 2009-2017 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/dosname.h b/lib/dosname.h
index 83a953f..dd5c177 100644
--- a/lib/dosname.h
+++ b/lib/dosname.h
@@ -1,6 +1,6 @@
/* File names on MS-DOS/Windows systems.
- Copyright (C) 2000-2001, 2004-2006, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2000-2001, 2004-2006, 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
diff --git a/lib/errno.in.h b/lib/errno.in.h
index b8397ee..13194f9 100644
--- a/lib/errno.in.h
+++ b/lib/errno.in.h
@@ -1,6 +1,6 @@
/* A POSIX-like <errno.h>.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/lib/error.c b/lib/error.c
index b3b1286..535d8a2 100644
--- a/lib/error.c
+++ b/lib/error.c
@@ -1,5 +1,5 @@
/* Error handler for noninteractive utilities
- Copyright (C) 1990-1998, 2000-2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 1990-1998, 2000-2007, 2009-2017 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
diff --git a/lib/error.h b/lib/error.h
index 6a69db0..ef024d9 100644
--- a/lib/error.h
+++ b/lib/error.h
@@ -1,5 +1,5 @@
/* Declaration for error-reporting function
- Copyright (C) 1995-1997, 2003, 2006, 2008-2016 Free Software Foundation,
+ Copyright (C) 1995-1997, 2003, 2006, 2008-2017 Free Software Foundation,
Inc.
This file is part of the GNU C Library.
diff --git a/lib/exitfail.c b/lib/exitfail.c
index 8033c22..524eb5c 100644
--- a/lib/exitfail.c
+++ b/lib/exitfail.c
@@ -1,6 +1,6 @@
/* Failure exit status
- Copyright (C) 2002-2003, 2005-2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2003, 2005-2007, 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
diff --git a/lib/exitfail.h b/lib/exitfail.h
index 62311bd..895511f 100644
--- a/lib/exitfail.h
+++ b/lib/exitfail.h
@@ -1,6 +1,6 @@
/* Failure exit status
- Copyright (C) 2002, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002, 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
diff --git a/lib/fcntl.in.h b/lib/fcntl.in.h
index b943973..4a1d40a 100644
--- a/lib/fcntl.in.h
+++ b/lib/fcntl.in.h
@@ -1,6 +1,6 @@
/* Like <fcntl.h>, but with non-working flags defined to 0.
- Copyright (C) 2006-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/lib/fpending.c b/lib/fpending.c
index ce93604..c9b7786 100644
--- a/lib/fpending.c
+++ b/lib/fpending.c
@@ -1,5 +1,5 @@
/* fpending.c -- return the number of pending output bytes on a stream
- Copyright (C) 2000, 2004, 2006-2007, 2009-2016 Free Software Foundation,
+ Copyright (C) 2000, 2004, 2006-2007, 2009-2017 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
@@ -35,7 +35,7 @@ __fpending (FILE *fp)
#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
return fp->_IO_write_ptr - fp->_IO_write_base;
#elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
return fp->_p - fp->_bf._base;
#elif defined __EMX__ /* emx+gcc */
return fp->_ptr - fp->_buffer;
diff --git a/lib/fpending.h b/lib/fpending.h
index 61008aa..a901dee 100644
--- a/lib/fpending.h
+++ b/lib/fpending.h
@@ -1,6 +1,6 @@
/* Declare __fpending.
- Copyright (C) 2000, 2003, 2005-2006, 2009-2016 Free Software Foundation,
+ Copyright (C) 2000, 2003, 2005-2006, 2009-2017 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/fstat.c b/lib/fstat.c
index 435c429..a5aabc5 100644
--- a/lib/fstat.c
+++ b/lib/fstat.c
@@ -1,5 +1,5 @@
/* fstat() replacement.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/lib/fwriting.c b/lib/fwriting.c
index be9f3c3..173d098 100644
--- a/lib/fwriting.c
+++ b/lib/fwriting.c
@@ -1,5 +1,5 @@
/* Retrieve information about a FILE stream.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -30,7 +30,7 @@ fwriting (FILE *fp)
#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
return (fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) != 0;
#elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
return (fp_->_flags & __SWR) != 0;
#elif defined __EMX__ /* emx+gcc */
return (fp->_flags & _IOWRT) != 0;
diff --git a/lib/fwriting.h b/lib/fwriting.h
index f4c7ed7..73b345f 100644
--- a/lib/fwriting.h
+++ b/lib/fwriting.h
@@ -1,5 +1,5 @@
/* Retrieve information about a FILE stream.
- Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007, 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
diff --git a/lib/get-permissions.c b/lib/get-permissions.c
index bf40dad..dc77748 100644
--- a/lib/get-permissions.c
+++ b/lib/get-permissions.c
@@ -1,6 +1,6 @@
/* Get permissions of a file. -*- coding: utf-8 -*-
- Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2003, 2005-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
diff --git a/lib/getdelim.c b/lib/getdelim.c
index 175d5c7..e2e0885 100644
--- a/lib/getdelim.c
+++ b/lib/getdelim.c
@@ -1,5 +1,5 @@
/* getdelim.c --- Implementation of replacement getdelim function.
- Copyright (C) 1994, 1996-1998, 2001, 2003, 2005-2016 Free Software
+ Copyright (C) 1994, 1996-1998, 2001, 2003, 2005-2017 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or
diff --git a/lib/getfilecon.c b/lib/getfilecon.c
index a124071..a27d476 100644
--- a/lib/getfilecon.c
+++ b/lib/getfilecon.c
@@ -1,5 +1,5 @@
/* wrap getfilecon, lgetfilecon, and fgetfilecon
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/lib/getopt.c b/lib/getopt.c
index 8ccb901..e40ea8d 100644
--- a/lib/getopt.c
+++ b/lib/getopt.c
@@ -2,7 +2,7 @@
NOTE: getopt is part of the C library, so if you don't know what
"Keep this file name-space clean" means, talk to drepper@gnu.org
before changing it!
- Copyright (C) 1987-1996, 1998-2004, 2006, 2008-2016 Free Software
+ Copyright (C) 1987-1996, 1998-2004, 2006, 2008-2017 Free Software
Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/lib/getopt.in.h b/lib/getopt.in.h
index 64469b7..6cbad8e 100644
--- a/lib/getopt.in.h
+++ b/lib/getopt.in.h
@@ -1,5 +1,5 @@
/* Declarations for getopt.
- Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2016 Free Software
+ Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2017 Free Software
Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/lib/getopt1.c b/lib/getopt1.c
index 63db74f..4d2e8cb 100644
--- a/lib/getopt1.c
+++ b/lib/getopt1.c
@@ -1,5 +1,5 @@
/* getopt_long and getopt_long_only entry points for GNU getopt.
- Copyright (C) 1987-1994, 1996-1998, 2004, 2006, 2009-2016 Free Software
+ Copyright (C) 1987-1994, 1996-1998, 2004, 2006, 2009-2017 Free Software
Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/lib/getopt_int.h b/lib/getopt_int.h
index be4c22e..a7ce0e9 100644
--- a/lib/getopt_int.h
+++ b/lib/getopt_int.h
@@ -1,5 +1,5 @@
/* Internal declarations for getopt.
- Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2004, 2009-2016 Free Software
+ Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2004, 2009-2017 Free Software
Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/lib/getprogname.c b/lib/getprogname.c
index a7246e9..5295484 100644
--- a/lib/getprogname.c
+++ b/lib/getprogname.c
@@ -1,5 +1,5 @@
/* Program name management.
- Copyright (C) 2016 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -43,6 +43,14 @@
# include <string.h>
#endif
+#ifdef __sgi
+# include <string.h>
+# include <unistd.h>
+# include <stdio.h>
+# include <fcntl.h>
+# include <sys/procfs.h>
+#endif
+
#include "dirname.h"
#ifndef HAVE_GETPROGNAME /* not Mac OS X, FreeBSD, NetBSD, OpenBSD >= 5.4, Cygwin */
@@ -143,6 +151,32 @@ getprogname (void)
free (buf.ps_pathptr);
}
return p;
+# elif defined __sgi /* IRIX */
+ char filename[50];
+ int fd;
+
+ sprintf (filename, "/proc/pinfo/%d", (int) getpid ());
+ fd = open (filename, O_RDONLY);
+ if (0 <= fd)
+ {
+ prpsinfo_t buf;
+ int ioctl_ok = 0 <= ioctl (fd, PIOCPSINFO, &buf);
+ close (fd);
+ if (ioctl_ok)
+ {
+ char *name = buf.pr_fname;
+ char *namesize = sizeof buf.pr_fname;
+ char *namenul = memchr (name, '\0', namesize);
+ size_t namelen = namenul ? namenul - name : namesize;
+ char *namecopy = malloc (namelen + 1);
+ if (namecopy)
+ {
+ namecopy[namelen] = 0;
+ return memcpy (namecopy, name, namelen);
+ }
+ }
+ }
+ return NULL;
# else
# error "getprogname module not ported to this OS"
# endif
diff --git a/lib/getprogname.h b/lib/getprogname.h
index e8f9e97..9ab924c 100644
--- a/lib/getprogname.h
+++ b/lib/getprogname.h
@@ -1,5 +1,5 @@
/* Program name management.
- Copyright (C) 2016 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
diff --git a/lib/gettext.h b/lib/gettext.h
index 9a232cc..0465d7a 100644
--- a/lib/gettext.h
+++ b/lib/gettext.h
@@ -1,5 +1,5 @@
/* Convenience header for conditional use of GNU <libintl.h>.
- Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2016 Free Software
+ Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2017 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
diff --git a/lib/gettimeofday.c b/lib/gettimeofday.c
index 224ca6a..18dcbda 100644
--- a/lib/gettimeofday.c
+++ b/lib/gettimeofday.c
@@ -1,6 +1,6 @@
/* Provide gettimeofday for systems that don't have it or for which it's broken.
- Copyright (C) 2001-2003, 2005-2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2005-2007, 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
diff --git a/lib/glthread/lock.c b/lib/glthread/lock.c
index 935043b..ca44c23 100644
--- a/lib/glthread/lock.c
+++ b/lib/glthread/lock.c
@@ -1,5 +1,5 @@
/* Locking in multithreaded situations.
- Copyright (C) 2005-2016 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -30,9 +30,38 @@
/* ------------------------- gl_rwlock_t datatype ------------------------- */
-# if HAVE_PTHREAD_RWLOCK
+# if HAVE_PTHREAD_RWLOCK && (HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER || (__GNU_LIBRARY__ > 1))
-# if !defined PTHREAD_RWLOCK_INITIALIZER
+# ifdef PTHREAD_RWLOCK_INITIALIZER
+
+# if !HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER
+ /* glibc with bug https://sourceware.org/bugzilla/show_bug.cgi?id=13701 */
+
+int
+glthread_rwlock_init_for_glibc (pthread_rwlock_t *lock)
+{
+ pthread_rwlockattr_t attributes;
+ int err;
+
+ err = pthread_rwlockattr_init (&attributes);
+ if (err != 0)
+ return err;
+ /* Note: PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP is the only value that
+ causes the writer to be preferred. PTHREAD_RWLOCK_PREFER_WRITER_NP does not
+ do this; see
+ http://man7.org/linux/man-pages/man3/pthread_rwlockattr_setkind_np.3.html */
+ err = pthread_rwlockattr_setkind_np (&attributes,
+ PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP);
+ if (err == 0)
+ err = pthread_rwlock_init(lock, &attributes);
+ /* pthread_rwlockattr_destroy always returns 0. It cannot influence the
+ return value. */
+ pthread_rwlockattr_destroy (&attributes);
+ return err;
+}
+
+# endif
+# else
int
glthread_rwlock_init_multithreaded (gl_rwlock_t *lock)
@@ -152,11 +181,9 @@ glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock)
if (err != 0)
return err;
/* Test whether only readers are currently running, and whether the runcount
- field will not overflow. */
- /* POSIX says: "It is implementation-defined whether the calling thread
- acquires the lock when a writer does not hold the lock and there are
- writers blocked on the lock." Let's say, no: give the writers a higher
- priority. */
+ field will not overflow, and whether no writer is waiting. The latter
+ condition is because POSIX recommends that "write locks shall take
+ precedence over read locks", to avoid "writer starvation". */
while (!(lock->runcount + 1 > 0 && lock->waiting_writers_count == 0))
{
/* This thread has to wait for a while. Enqueue it among the
@@ -481,6 +508,141 @@ glthread_once_singlethreaded (pthread_once_t *once_control)
/* ------------------------- gl_rwlock_t datatype ------------------------- */
+# if !HAVE_PTH_RWLOCK_ACQUIRE_PREFER_WRITER
+
+int
+glthread_rwlock_init_multithreaded (gl_rwlock_t *lock)
+{
+ if (!pth_mutex_init (&lock->lock))
+ return errno;
+ if (!pth_cond_init (&lock->waiting_readers))
+ return errno;
+ if (!pth_cond_init (&lock->waiting_writers))
+ return errno;
+ lock->waiting_writers_count = 0;
+ lock->runcount = 0;
+ lock->initialized = 1;
+ return 0;
+}
+
+int
+glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock)
+{
+ if (!lock->initialized)
+ glthread_rwlock_init_multithreaded (lock);
+ if (!pth_mutex_acquire (&lock->lock, 0, NULL))
+ return errno;
+ /* Test whether only readers are currently running, and whether the runcount
+ field will not overflow, and whether no writer is waiting. The latter
+ condition is because POSIX recommends that "write locks shall take
+ precedence over read locks", to avoid "writer starvation". */
+ while (!(lock->runcount + 1 > 0 && lock->waiting_writers_count == 0))
+ {
+ /* This thread has to wait for a while. Enqueue it among the
+ waiting_readers. */
+ if (!pth_cond_await (&lock->waiting_readers, &lock->lock, NULL))
+ {
+ int err = errno;
+ pth_mutex_release (&lock->lock);
+ return err;
+ }
+ }
+ lock->runcount++;
+ return (!pth_mutex_release (&lock->lock) ? errno : 0);
+}
+
+int
+glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock)
+{
+ if (!lock->initialized)
+ glthread_rwlock_init_multithreaded (lock);
+ if (!pth_mutex_acquire (&lock->lock, 0, NULL))
+ return errno;
+ /* Test whether no readers or writers are currently running. */
+ while (!(lock->runcount == 0))
+ {
+ /* This thread has to wait for a while. Enqueue it among the
+ waiting_writers. */
+ lock->waiting_writers_count++;
+ if (!pth_cond_await (&lock->waiting_writers, &lock->lock, NULL))
+ {
+ int err = errno;
+ lock->waiting_writers_count--;
+ pth_mutex_release (&lock->lock);
+ return err;
+ }
+ lock->waiting_writers_count--;
+ }
+ lock->runcount--; /* runcount becomes -1 */
+ return (!pth_mutex_release (&lock->lock) ? errno : 0);
+}
+
+int
+glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock)
+{
+ int err;
+
+ if (!lock->initialized)
+ return EINVAL;
+ if (!pth_mutex_acquire (&lock->lock, 0, NULL))
+ return errno;
+ if (lock->runcount < 0)
+ {
+ /* Drop a writer lock. */
+ if (!(lock->runcount == -1))
+ {
+ pth_mutex_release (&lock->lock);
+ return EINVAL;
+ }
+ lock->runcount = 0;
+ }
+ else
+ {
+ /* Drop a reader lock. */
+ if (!(lock->runcount > 0))
+ {
+ pth_mutex_release (&lock->lock);
+ return EINVAL;
+ }
+ lock->runcount--;
+ }
+ if (lock->runcount == 0)
+ {
+ /* POSIX recommends that "write locks shall take precedence over read
+ locks", to avoid "writer starvation". */
+ if (lock->waiting_writers_count > 0)
+ {
+ /* Wake up one of the waiting writers. */
+ if (!pth_cond_notify (&lock->waiting_writers, FALSE))
+ {
+ int err = errno;
+ pth_mutex_release (&lock->lock);
+ return err;
+ }
+ }
+ else
+ {
+ /* Wake up all waiting readers. */
+ if (!pth_cond_notify (&lock->waiting_readers, TRUE))
+ {
+ int err = errno;
+ pth_mutex_release (&lock->lock);
+ return err;
+ }
+ }
+ }
+ return (!pth_mutex_release (&lock->lock) ? errno : 0);
+}
+
+int
+glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock)
+{
+ lock->initialized = 0;
+ return 0;
+}
+
+# endif
+
/* --------------------- gl_recursive_lock_t datatype --------------------- */
/* -------------------------- gl_once_t datatype -------------------------- */
@@ -796,8 +958,10 @@ glthread_rwlock_rdlock_func (gl_rwlock_t *lock)
}
EnterCriticalSection (&lock->lock);
/* Test whether only readers are currently running, and whether the runcount
- field will not overflow. */
- if (!(lock->runcount + 1 > 0))
+ field will not overflow, and whether no writer is waiting. The latter
+ condition is because POSIX recommends that "write locks shall take
+ precedence over read locks", to avoid "writer starvation". */
+ if (!(lock->runcount + 1 > 0 && lock->waiting_writers.count == 0))
{
/* This thread has to wait for a while. Enqueue it among the
waiting_readers. */
diff --git a/lib/glthread/lock.h b/lib/glthread/lock.h
index e64506b..ea7a5b5 100644
--- a/lib/glthread/lock.h
+++ b/lib/glthread/lock.h
@@ -1,5 +1,5 @@
/* Locking in multithreaded situations.
- Copyright (C) 2005-2016 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -139,6 +139,9 @@ extern int glthread_in_use (void);
# pragma weak pthread_mutexattr_init
# pragma weak pthread_mutexattr_settype
# pragma weak pthread_mutexattr_destroy
+# pragma weak pthread_rwlockattr_init
+# pragma weak pthread_rwlockattr_setkind_np
+# pragma weak pthread_rwlockattr_destroy
# ifndef pthread_self
# pragma weak pthread_self
# endif
@@ -176,7 +179,7 @@ typedef pthread_mutex_t gl_lock_t;
/* ------------------------- gl_rwlock_t datatype ------------------------- */
-# if HAVE_PTHREAD_RWLOCK
+# if HAVE_PTHREAD_RWLOCK && (HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER || (__GNU_LIBRARY__ > 1))
# ifdef PTHREAD_RWLOCK_INITIALIZER
@@ -185,10 +188,18 @@ typedef pthread_rwlock_t gl_rwlock_t;
STORAGECLASS pthread_rwlock_t NAME;
# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \
STORAGECLASS pthread_rwlock_t NAME = gl_rwlock_initializer;
-# define gl_rwlock_initializer \
- PTHREAD_RWLOCK_INITIALIZER
-# define glthread_rwlock_init(LOCK) \
- (pthread_in_use () ? pthread_rwlock_init (LOCK, NULL) : 0)
+# if HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER
+# define gl_rwlock_initializer \
+ PTHREAD_RWLOCK_INITIALIZER
+# define glthread_rwlock_init(LOCK) \
+ (pthread_in_use () ? pthread_rwlock_init (LOCK, NULL) : 0)
+# else /* glibc with bug https://sourceware.org/bugzilla/show_bug.cgi?id=13701 */
+# define gl_rwlock_initializer \
+ PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP
+# define glthread_rwlock_init(LOCK) \
+ (pthread_in_use () ? glthread_rwlock_init_for_glibc (LOCK) : 0)
+extern int glthread_rwlock_init_for_glibc (pthread_rwlock_t *lock);
+# endif
# define glthread_rwlock_rdlock(LOCK) \
(pthread_in_use () ? pthread_rwlock_rdlock (LOCK) : 0)
# define glthread_rwlock_wrlock(LOCK) \
@@ -427,6 +438,9 @@ typedef pth_mutex_t gl_lock_t;
/* ------------------------- gl_rwlock_t datatype ------------------------- */
+/* Pth pth_rwlock_acquire always prefers readers. No autoconf test so far. */
+# if HAVE_PTH_RWLOCK_ACQUIRE_PREFER_WRITER
+
typedef pth_rwlock_t gl_rwlock_t;
# define gl_rwlock_define(STORAGECLASS, NAME) \
STORAGECLASS pth_rwlock_t NAME;
@@ -445,6 +459,42 @@ typedef pth_rwlock_t gl_rwlock_t;
# define glthread_rwlock_destroy(LOCK) \
((void)(LOCK), 0)
+# else
+
+typedef struct
+ {
+ int initialized;
+ pth_mutex_t lock; /* protects the remaining fields */
+ pth_cond_t waiting_readers; /* waiting readers */
+ pth_cond_t waiting_writers; /* waiting writers */
+ unsigned int waiting_writers_count; /* number of waiting writers */
+ int runcount; /* number of readers running, or -1 when a writer runs */
+ }
+ gl_rwlock_t;
+# define gl_rwlock_define(STORAGECLASS, NAME) \
+ STORAGECLASS gl_rwlock_t NAME;
+# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \
+ STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer;
+# define gl_rwlock_initializer \
+ { 0 }
+# define glthread_rwlock_init(LOCK) \
+ (pth_in_use () ? glthread_rwlock_init_multithreaded (LOCK) : 0)
+# define glthread_rwlock_rdlock(LOCK) \
+ (pth_in_use () ? glthread_rwlock_rdlock_multithreaded (LOCK) : 0)
+# define glthread_rwlock_wrlock(LOCK) \
+ (pth_in_use () ? glthread_rwlock_wrlock_multithreaded (LOCK) : 0)
+# define glthread_rwlock_unlock(LOCK) \
+ (pth_in_use () ? glthread_rwlock_unlock_multithreaded (LOCK) : 0)
+# define glthread_rwlock_destroy(LOCK) \
+ (pth_in_use () ? glthread_rwlock_destroy_multithreaded (LOCK) : 0)
+extern int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock);
+extern int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock);
+extern int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock);
+extern int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock);
+extern int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock);
+
+# endif
+
/* --------------------- gl_recursive_lock_t datatype --------------------- */
/* In Pth, mutexes are recursive by default. */
diff --git a/lib/glthread/threadlib.c b/lib/glthread/threadlib.c
index be63713..bf2e19c 100644
--- a/lib/glthread/threadlib.c
+++ b/lib/glthread/threadlib.c
@@ -1,5 +1,5 @@
/* Multithreading primitives.
- Copyright (C) 2005-2016 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
diff --git a/lib/gnulib.mk b/lib/gnulib.mk
index 5f69cd4..97272be 100644
--- a/lib/gnulib.mk
+++ b/lib/gnulib.mk
@@ -1,6 +1,6 @@
## DO NOT EDIT! GENERATED AUTOMATICALLY!
## Process this file with automake to produce Makefile.in.
-# Copyright (C) 2002-2016 Free Software Foundation, Inc.
+# Copyright (C) 2002-2017 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
diff --git a/lib/hard-locale.c b/lib/hard-locale.c
index c7d9da5..57ed42b 100644
--- a/lib/hard-locale.c
+++ b/lib/hard-locale.c
@@ -1,6 +1,6 @@
/* hard-locale.c -- Determine whether a locale is hard.
- Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2016 Free Software
+ Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2017 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/hard-locale.h b/lib/hard-locale.h
index 7644afa..ba424af 100644
--- a/lib/hard-locale.h
+++ b/lib/hard-locale.h
@@ -1,6 +1,6 @@
/* Determine whether a locale is hard.
- Copyright (C) 1999, 2003-2004, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2003-2004, 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
diff --git a/lib/ignore-value.h b/lib/ignore-value.h
index 6713d96..2439d95 100644
--- a/lib/ignore-value.h
+++ b/lib/ignore-value.h
@@ -1,6 +1,6 @@
/* ignore a function return without a compiler warning. -*- coding: utf-8 -*-
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/lib/intprops.h b/lib/intprops.h
index 8add5de..85ed61f 100644
--- a/lib/intprops.h
+++ b/lib/intprops.h
@@ -1,6 +1,6 @@
/* intprops.h -- properties of integer types
- Copyright (C) 2001-2016 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -23,10 +23,6 @@
#include <limits.h>
#include <verify.h>
-#ifndef __has_builtin
-# define __has_builtin(x) 0
-#endif
-
/* 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))
@@ -241,12 +237,10 @@ verify (TYPE_WIDTH (unsigned int) == UINT_WIDTH);
: (max) >> (b) < (a))
/* True if __builtin_add_overflow (A, B, P) works when P is non-null. */
-#define _GL_HAS_BUILTIN_OVERFLOW \
- (5 <= __GNUC__ || __has_builtin (__builtin_add_overflow))
+#define _GL_HAS_BUILTIN_OVERFLOW (5 <= __GNUC__)
/* True if __builtin_add_overflow_p (A, B, C) works. */
-#define _GL_HAS_BUILTIN_OVERFLOW_P \
- (7 <= __GNUC__ || __has_builtin (__builtin_add_overflow_p))
+#define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__)
/* The _GL*_OVERFLOW macros have the same restrictions as the
*_RANGE_OVERFLOW macros, except that they do not assume that operands
diff --git a/lib/isblank.c b/lib/isblank.c
index 6cc7379..63ed962 100644
--- a/lib/isblank.c
+++ b/lib/isblank.c
@@ -1,6 +1,6 @@
/* Test whether a character is a blank.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/lib/langinfo.in.h b/lib/langinfo.in.h
index e11617c..7981cbf 100644
--- a/lib/langinfo.in.h
+++ b/lib/langinfo.in.h
@@ -1,5 +1,5 @@
/* Substitute for and wrapper around <langinfo.h>.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/lib/limits.in.h b/lib/limits.in.h
index a1eae02..a7e307f 100644
--- a/lib/limits.in.h
+++ b/lib/limits.in.h
@@ -1,6 +1,6 @@
/* A GNU-like <limits.h>.
- Copyright 2016 Free Software Foundation, Inc.
+ Copyright 2016-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
diff --git a/lib/local.mk b/lib/local.mk
index 0d3562f..ba0aa62 100644
--- a/lib/local.mk
+++ b/lib/local.mk
@@ -1,4 +1,4 @@
-# Copyright 1997-2016 Free Software Foundation, Inc.
+# Copyright 1997-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
diff --git a/lib/localcharset.c b/lib/localcharset.c
index fa5fcbc..9d0a1b8 100644
--- a/lib/localcharset.c
+++ b/lib/localcharset.c
@@ -1,6 +1,6 @@
/* Determine a canonical name for the current locale's character encoding.
- Copyright (C) 2000-2006, 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2000-2006, 2008-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
diff --git a/lib/localcharset.h b/lib/localcharset.h
index 915182e..a2e2a7b 100644
--- a/lib/localcharset.h
+++ b/lib/localcharset.h
@@ -1,5 +1,5 @@
/* Determine a canonical name for the current locale's character encoding.
- Copyright (C) 2000-2003, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2000-2003, 2009-2017 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
diff --git a/lib/locale.in.h b/lib/locale.in.h
index 4083507..9eb43f9 100644
--- a/lib/locale.in.h
+++ b/lib/locale.in.h
@@ -1,5 +1,5 @@
/* A POSIX <locale.h>.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/lib/localeconv.c b/lib/localeconv.c
index 8a1d6d7..bc1960b 100644
--- a/lib/localeconv.c
+++ b/lib/localeconv.c
@@ -1,5 +1,5 @@
/* Query locale dependent information for formatting numbers.
- Copyright (C) 2012-2016 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
diff --git a/lib/localeinfo.c b/lib/localeinfo.c
index ca96afc..ece679e 100644
--- a/lib/localeinfo.c
+++ b/lib/localeinfo.c
@@ -1,6 +1,6 @@
/* locale information
- Copyright 2016 Free Software Foundation, Inc.
+ Copyright 2016-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
@@ -90,10 +90,10 @@ verify (1 + 1 + sizeof lonesome_lower / sizeof *lonesome_lower
/* Find the characters equal to C after case-folding, other than C
itself, and store them into FOLDED. Return the number of characters
- stored. */
+ stored; this is zero if C is WEOF. */
int
-case_folded_counterparts (wchar_t c, wchar_t folded[CASE_FOLDED_BUFSIZE])
+case_folded_counterparts (wint_t c, wchar_t folded[CASE_FOLDED_BUFSIZE])
{
int i;
int n = 0;
diff --git a/lib/localeinfo.h b/lib/localeinfo.h
index cf2f9a6..a6773f5 100644
--- a/lib/localeinfo.h
+++ b/lib/localeinfo.h
@@ -1,6 +1,6 @@
/* locale information
- Copyright 2016 Free Software Foundation, Inc.
+ Copyright 2016-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
@@ -51,4 +51,4 @@ extern void init_localeinfo (struct localeinfo *);
itself. This is a generous upper bound. */
enum { CASE_FOLDED_BUFSIZE = 32 };
-extern int case_folded_counterparts (wchar_t, wchar_t[CASE_FOLDED_BUFSIZE]);
+extern int case_folded_counterparts (wint_t, wchar_t[CASE_FOLDED_BUFSIZE]);
diff --git a/lib/lstat.c b/lib/lstat.c
index 03b0634..f4dc43e 100644
--- a/lib/lstat.c
+++ b/lib/lstat.c
@@ -1,6 +1,6 @@
/* Work around a bug of lstat on some systems
- Copyright (C) 1997-2006, 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2006, 2008-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
diff --git a/lib/malloc.c b/lib/malloc.c
index e9b01d2..eeaf12b 100644
--- a/lib/malloc.c
+++ b/lib/malloc.c
@@ -1,6 +1,6 @@
/* malloc() function that is glibc compatible.
- Copyright (C) 1997-1998, 2006-2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-1998, 2006-2007, 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
diff --git a/lib/malloca.c b/lib/malloca.c
index a613277..0bf4adc 100644
--- a/lib/malloca.c
+++ b/lib/malloca.c
@@ -1,5 +1,5 @@
/* Safe automatic memory allocation.
- Copyright (C) 2003, 2006-2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2006-2007, 2009-2017 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2003.
This program is free software; you can redistribute it and/or modify
diff --git a/lib/malloca.h b/lib/malloca.h
index 7996d1b..a9078fc 100644
--- a/lib/malloca.h
+++ b/lib/malloca.h
@@ -1,5 +1,5 @@
/* Safe automatic memory allocation.
- Copyright (C) 2003-2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2003-2007, 2009-2017 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2003.
This program is free software; you can redistribute it and/or modify
diff --git a/lib/mbrlen.c b/lib/mbrlen.c
index 3ceb156..b630d29 100644
--- a/lib/mbrlen.c
+++ b/lib/mbrlen.c
@@ -1,5 +1,5 @@
/* Recognize multibyte character.
- Copyright (C) 1999-2000, 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 1999-2000, 2008-2017 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/mbrtowc.c b/lib/mbrtowc.c
index cdd874b..d4809f6 100644
--- a/lib/mbrtowc.c
+++ b/lib/mbrtowc.c
@@ -1,5 +1,5 @@
/* Convert multibyte character to wide character.
- Copyright (C) 1999-2002, 2005-2016 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2005-2017 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/mbsinit.c b/lib/mbsinit.c
index 372b523..58e0441 100644
--- a/lib/mbsinit.c
+++ b/lib/mbsinit.c
@@ -1,5 +1,5 @@
/* Test for initial conversion state.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-2017 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/mbtowc-impl.h b/lib/mbtowc-impl.h
index 4be2994..b53b2eb 100644
--- a/lib/mbtowc-impl.h
+++ b/lib/mbtowc-impl.h
@@ -1,5 +1,5 @@
/* Convert multibyte character to wide character.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-2017 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/mbtowc.c b/lib/mbtowc.c
index fb2b651..118754f 100644
--- a/lib/mbtowc.c
+++ b/lib/mbtowc.c
@@ -1,5 +1,5 @@
/* Convert multibyte character to wide character.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-2017 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/memchr.c b/lib/memchr.c
index b565542..3481260 100644
--- a/lib/memchr.c
+++ b/lib/memchr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2016
+/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2017
Free Software Foundation, Inc.
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
diff --git a/lib/memrchr.c b/lib/memrchr.c
index e6212e5..fefe16c 100644
--- a/lib/memrchr.c
+++ b/lib/memrchr.c
@@ -1,6 +1,6 @@
/* memrchr -- find the last occurrence of a byte in a memory block
- Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2016 Free Software
+ Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2017 Free Software
Foundation, Inc.
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
diff --git a/lib/minmax.h b/lib/minmax.h
index be6b321..6b602a9 100644
--- a/lib/minmax.h
+++ b/lib/minmax.h
@@ -1,5 +1,5 @@
/* MIN, MAX macros.
- Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2016 Free Software
+ Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2017 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
diff --git a/lib/mkostemp.c b/lib/mkostemp.c
index 31c3e48..56c22a4 100644
--- a/lib/mkostemp.c
+++ b/lib/mkostemp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-1999, 2001, 2005-2007, 2009-2016 Free Software
+/* Copyright (C) 1998-1999, 2001, 2005-2007, 2009-2017 Free Software
Foundation, Inc.
This file is derived from the one in the GNU C Library.
diff --git a/lib/msvc-inval.c b/lib/msvc-inval.c
index baaf39e..7139e93 100644
--- a/lib/msvc-inval.c
+++ b/lib/msvc-inval.c
@@ -1,5 +1,5 @@
/* Invalid parameter handler for MSVC runtime libraries.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/lib/msvc-inval.h b/lib/msvc-inval.h
index 027c949..6e216d6 100644
--- a/lib/msvc-inval.h
+++ b/lib/msvc-inval.h
@@ -1,5 +1,5 @@
/* Invalid parameter handler for MSVC runtime libraries.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/lib/msvc-nothrow.c b/lib/msvc-nothrow.c
index ba75bbf..d127eb4 100644
--- a/lib/msvc-nothrow.c
+++ b/lib/msvc-nothrow.c
@@ -1,6 +1,6 @@
/* Wrappers that don't throw invalid parameter notifications
with MSVC runtime libraries.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/lib/msvc-nothrow.h b/lib/msvc-nothrow.h
index 3493b84..c70efc7 100644
--- a/lib/msvc-nothrow.h
+++ b/lib/msvc-nothrow.h
@@ -1,6 +1,6 @@
/* Wrappers that don't throw invalid parameter notifications
with MSVC runtime libraries.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/lib/nl_langinfo.c b/lib/nl_langinfo.c
index 11da646..270570f 100644
--- a/lib/nl_langinfo.c
+++ b/lib/nl_langinfo.c
@@ -1,6 +1,6 @@
/* nl_langinfo() replacement: query locale dependent information.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/lib/obstack.c b/lib/obstack.c
index 6e7b52c..54b675d 100644
--- a/lib/obstack.c
+++ b/lib/obstack.c
@@ -1,5 +1,5 @@
/* obstack.c - subroutines used implicitly by object stack macros
- Copyright (C) 1988-2016 Free Software Foundation, Inc.
+ Copyright (C) 1988-2017 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
diff --git a/lib/obstack.h b/lib/obstack.h
index e558133..dd29019 100644
--- a/lib/obstack.h
+++ b/lib/obstack.h
@@ -1,5 +1,5 @@
/* obstack.h - object stack macros
- Copyright (C) 1988-2016 Free Software Foundation, Inc.
+ Copyright (C) 1988-2017 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
diff --git a/lib/pathmax.h b/lib/pathmax.h
index aee22f8..aa0730e 100644
--- a/lib/pathmax.h
+++ b/lib/pathmax.h
@@ -1,5 +1,5 @@
/* Define PATH_MAX somehow. Requires sys/types.h.
- Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2016 Free Software
+ Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2017 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
diff --git a/lib/progname.c b/lib/progname.c
index debb760..05b2a7f 100644
--- a/lib/progname.c
+++ b/lib/progname.c
@@ -1,5 +1,5 @@
/* Program name management.
- Copyright (C) 2001-2003, 2005-2016 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2005-2017 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/progname.h b/lib/progname.h
index 0a57407..f33881c 100644
--- a/lib/progname.h
+++ b/lib/progname.h
@@ -1,5 +1,5 @@
/* Program name management.
- Copyright (C) 2001-2004, 2006, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2001-2004, 2006, 2009-2017 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/qcopy-acl.c b/lib/qcopy-acl.c
index c7bdfbb..fdf0a05 100644
--- a/lib/qcopy-acl.c
+++ b/lib/qcopy-acl.c
@@ -1,6 +1,6 @@
/* Copy access control list from one file to another. -*- coding: utf-8 -*-
- Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2003, 2005-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
diff --git a/lib/qset-acl.c b/lib/qset-acl.c
index 77227dc..328ee14 100644
--- a/lib/qset-acl.c
+++ b/lib/qset-acl.c
@@ -1,6 +1,6 @@
/* qset-acl.c - set access control list equivalent to a mode
- Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2003, 2005-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
diff --git a/lib/quote.h b/lib/quote.h
index b53d0ea..2e58fb5 100644
--- a/lib/quote.h
+++ b/lib/quote.h
@@ -1,6 +1,6 @@
/* quote.h - prototypes for quote.c
- Copyright (C) 1998-2001, 2003, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 1998-2001, 2003, 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
diff --git a/lib/quotearg.c b/lib/quotearg.c
index 07658b2..26903c7 100644
--- a/lib/quotearg.c
+++ b/lib/quotearg.c
@@ -1,6 +1,6 @@
/* quotearg.c - quote arguments for output
- Copyright (C) 1998-2002, 2004-2016 Free Software Foundation, Inc.
+ Copyright (C) 1998-2002, 2004-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
diff --git a/lib/quotearg.h b/lib/quotearg.h
index bc29052..b82aa00 100644
--- a/lib/quotearg.h
+++ b/lib/quotearg.h
@@ -1,6 +1,6 @@
/* quotearg.h - quote arguments for output
- Copyright (C) 1998-2002, 2004, 2006, 2008-2016 Free Software Foundation,
+ Copyright (C) 1998-2002, 2004, 2006, 2008-2017 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/readlink.c b/lib/readlink.c
index e6c3925..bf0cedc 100644
--- a/lib/readlink.c
+++ b/lib/readlink.c
@@ -1,5 +1,5 @@
/* Stub for readlink().
- Copyright (C) 2003-2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2003-2007, 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
diff --git a/lib/ref-add.sin b/lib/ref-add.sin
index 42d3ab0..3913e99 100644
--- a/lib/ref-add.sin
+++ b/lib/ref-add.sin
@@ -1,6 +1,6 @@
# Add this package to a list of references stored in a text file.
#
-# Copyright (C) 2000, 2009-2016 Free Software Foundation, Inc.
+# 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
diff --git a/lib/ref-del.sin b/lib/ref-del.sin
index c77b33b..eeff947 100644
--- a/lib/ref-del.sin
+++ b/lib/ref-del.sin
@@ -1,6 +1,6 @@
# Remove this package from a list of references stored in a text file.
#
-# Copyright (C) 2000, 2009-2016 Free Software Foundation, Inc.
+# 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
diff --git a/lib/regcomp.c b/lib/regcomp.c
index aaa66b9..6aaa6b1 100644
--- a/lib/regcomp.c
+++ b/lib/regcomp.c
@@ -1,5 +1,5 @@
/* Extended regular expression matching and search library.
- Copyright (C) 2002-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
diff --git a/lib/regex.c b/lib/regex.c
index 432b465..b46308b 100644
--- a/lib/regex.c
+++ b/lib/regex.c
@@ -1,5 +1,5 @@
/* Extended regular expression matching and search library.
- Copyright (C) 2002-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
diff --git a/lib/regex.h b/lib/regex.h
index b7496f9..18b8cbd 100644
--- a/lib/regex.h
+++ b/lib/regex.h
@@ -1,6 +1,6 @@
/* Definitions for data structures and routines for the regular
expression library.
- Copyright (C) 1985, 1989-1993, 1995-1998, 2000-2003, 2005-2016 Free Software
+ Copyright (C) 1985, 1989-1993, 1995-1998, 2000-2003, 2005-2017 Free Software
Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/lib/regex_internal.c b/lib/regex_internal.c
index a3b10dd..9546b78 100644
--- a/lib/regex_internal.c
+++ b/lib/regex_internal.c
@@ -1,5 +1,5 @@
/* Extended regular expression matching and search library.
- Copyright (C) 2002-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
diff --git a/lib/regex_internal.h b/lib/regex_internal.h
index b61c638..3580c45 100644
--- a/lib/regex_internal.h
+++ b/lib/regex_internal.h
@@ -1,5 +1,5 @@
/* Extended regular expression matching and search library.
- Copyright (C) 2002-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
diff --git a/lib/regexec.c b/lib/regexec.c
index 895db82..45bc796 100644
--- a/lib/regexec.c
+++ b/lib/regexec.c
@@ -1,5 +1,5 @@
/* Extended regular expression matching and search library.
- Copyright (C) 2002-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
diff --git a/lib/rename.c b/lib/rename.c
index e1d169a..b67059f 100644
--- a/lib/rename.c
+++ b/lib/rename.c
@@ -1,6 +1,6 @@
/* Work around rename bugs in some systems.
- Copyright (C) 2001-2003, 2005-2006, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2005-2006, 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
diff --git a/lib/rmdir.c b/lib/rmdir.c
index 4949df2..864c795 100644
--- a/lib/rmdir.c
+++ b/lib/rmdir.c
@@ -1,6 +1,6 @@
/* Work around rmdir bugs.
- Copyright (C) 1988, 1990, 1999, 2003-2006, 2009-2016 Free Software
+ Copyright (C) 1988, 1990, 1999, 2003-2006, 2009-2017 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/same-inode.h b/lib/same-inode.h
index c7a8fb5..7cece6d 100644
--- a/lib/same-inode.h
+++ b/lib/same-inode.h
@@ -1,6 +1,6 @@
/* Determine whether two stat buffers are known to refer to the same file.
- Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2006, 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
diff --git a/lib/se-selinux.in.h b/lib/se-selinux.in.h
index dd56e27..cd19951 100644
--- a/lib/se-selinux.in.h
+++ b/lib/se-selinux.in.h
@@ -1,5 +1,5 @@
/* Replacement <selinux/selinux.h> for platforms that lack it.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/lib/secure_getenv.c b/lib/secure_getenv.c
index 88a60dc..df53dea 100644
--- a/lib/secure_getenv.c
+++ b/lib/secure_getenv.c
@@ -1,6 +1,6 @@
/* Look up an environment variable, returning NULL in insecure situations.
- Copyright 2013-2016 Free Software Foundation, Inc.
+ 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
diff --git a/lib/set-acl.c b/lib/set-acl.c
index fbb5c16..aad7c38 100644
--- a/lib/set-acl.c
+++ b/lib/set-acl.c
@@ -1,6 +1,6 @@
/* set-acl.c - set access control list equivalent to a mode
- Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2003, 2005-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
diff --git a/lib/set-permissions.c b/lib/set-permissions.c
index 2c77356..75bb2dc 100644
--- a/lib/set-permissions.c
+++ b/lib/set-permissions.c
@@ -1,6 +1,6 @@
/* Set permissions of a file. -*- coding: utf-8 -*-
- Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2003, 2005-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
diff --git a/lib/stat.c b/lib/stat.c
index 62e9e0b..7e7c2f6 100644
--- a/lib/stat.c
+++ b/lib/stat.c
@@ -1,5 +1,5 @@
/* Work around platform bugs in stat.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/lib/stdalign.in.h b/lib/stdalign.in.h
index 12f8a15..5f56eee 100644
--- a/lib/stdalign.in.h
+++ b/lib/stdalign.in.h
@@ -1,6 +1,6 @@
/* A substitute for ISO C11 <stdalign.h>.
- Copyright 2011-2016 Free Software Foundation, Inc.
+ Copyright 2011-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
diff --git a/lib/stdarg.in.h b/lib/stdarg.in.h
index 63371e2..3785cd1 100644
--- a/lib/stdarg.in.h
+++ b/lib/stdarg.in.h
@@ -1,5 +1,5 @@
/* Substitute for and wrapper around <stdarg.h>.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/lib/stdbool.in.h b/lib/stdbool.in.h
index 7ecf203..1067ed2 100644
--- a/lib/stdbool.in.h
+++ b/lib/stdbool.in.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2003, 2006-2016 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2003, 2006-2017 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
diff --git a/lib/stddef.in.h b/lib/stddef.in.h
index f4c4a10..5b496a6 100644
--- a/lib/stddef.in.h
+++ b/lib/stddef.in.h
@@ -1,6 +1,6 @@
/* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues.
- Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/lib/stdint.in.h b/lib/stdint.in.h
index 566f8e8..d899c1e 100644
--- a/lib/stdint.in.h
+++ b/lib/stdint.in.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2002, 2004-2016 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2002, 2004-2017 Free Software Foundation, Inc.
Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
This file is part of gnulib.
diff --git a/lib/stdio-impl.h b/lib/stdio-impl.h
index 766d693..75a945e 100644
--- a/lib/stdio-impl.h
+++ b/lib/stdio-impl.h
@@ -1,5 +1,5 @@
/* Implementation details of FILE streams.
- Copyright (C) 2007-2008, 2010-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2008, 2010-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
@@ -29,7 +29,7 @@
#include <errno.h> /* For detecting Plan9. */
#if defined __sferror || defined __DragonFly__ || defined __ANDROID__
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
# if defined __DragonFly__ /* DragonFly */
/* See <http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/priv_stdio.h?rev=HEAD&content-type=text/x-cvsweb-markup>. */
@@ -58,7 +58,7 @@
# define fp_ fp
# endif
-# if (defined __NetBSD__ && __NetBSD_Version__ >= 105270000) || defined __OpenBSD__ || defined __ANDROID__ /* NetBSD >= 1.5ZA, OpenBSD, Android */
+# if (defined __NetBSD__ && __NetBSD_Version__ >= 105270000) || defined __OpenBSD__ || defined __minix || defined __ANDROID__ /* NetBSD >= 1.5ZA, OpenBSD, Minix 3, Android */
/* See <http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/stdio/fileext.h?rev=HEAD&content-type=text/x-cvsweb-markup>
and <http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/stdio/fileext.h?rev=HEAD&content-type=text/x-cvsweb-markup> */
struct __sfileext
diff --git a/lib/stdio.in.h b/lib/stdio.in.h
index 5727452..d706377 100644
--- a/lib/stdio.in.h
+++ b/lib/stdio.in.h
@@ -1,6 +1,6 @@
/* A GNU-like <stdio.h>.
- Copyright (C) 2004, 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2007-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
diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h
index db3253b..b5cf9d3 100644
--- a/lib/stdlib.in.h
+++ b/lib/stdlib.in.h
@@ -1,6 +1,6 @@
/* A GNU-like <stdlib.h>.
- Copyright (C) 1995, 2001-2004, 2006-2016 Free Software Foundation, Inc.
+ Copyright (C) 1995, 2001-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
diff --git a/lib/streq.h b/lib/streq.h
index 234f075..d40fc48 100644
--- a/lib/streq.h
+++ b/lib/streq.h
@@ -1,5 +1,5 @@
/* Optimized string comparison.
- Copyright (C) 2001-2002, 2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2007, 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
diff --git a/lib/strerror-override.c b/lib/strerror-override.c
index 9bc9b18..fb2c74f 100644
--- a/lib/strerror-override.c
+++ b/lib/strerror-override.c
@@ -1,6 +1,6 @@
/* strerror-override.c --- POSIX compatible system error routine
- Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
diff --git a/lib/strerror-override.h b/lib/strerror-override.h
index 5264fd5..c22d303 100644
--- a/lib/strerror-override.h
+++ b/lib/strerror-override.h
@@ -1,6 +1,6 @@
/* strerror-override.h --- POSIX compatible system error routine
- Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
diff --git a/lib/strerror.c b/lib/strerror.c
index 8fff3bd..afeb9c8 100644
--- a/lib/strerror.c
+++ b/lib/strerror.c
@@ -1,6 +1,6 @@
/* strerror.c --- POSIX compatible system error routine
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/lib/string.in.h b/lib/string.in.h
index b3213c4..9a6b311 100644
--- a/lib/string.in.h
+++ b/lib/string.in.h
@@ -1,6 +1,6 @@
/* A GNU-like <string.h>.
- Copyright (C) 1995-1996, 2001-2016 Free Software Foundation, Inc.
+ Copyright (C) 1995-1996, 2001-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
diff --git a/lib/stripslash.c b/lib/stripslash.c
index 0453e36..2d9d166 100644
--- a/lib/stripslash.c
+++ b/lib/stripslash.c
@@ -1,6 +1,6 @@
/* stripslash.c -- remove redundant trailing slashes from a file name
- Copyright (C) 1990, 2001, 2003-2006, 2009-2016 Free Software Foundation,
+ Copyright (C) 1990, 2001, 2003-2006, 2009-2017 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/strverscmp.c b/lib/strverscmp.c
index 22b8505..d759907 100644
--- a/lib/strverscmp.c
+++ b/lib/strverscmp.c
@@ -1,5 +1,5 @@
/* Compare strings while treating digits characters numerically.
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997.
diff --git a/lib/sys_stat.in.h b/lib/sys_stat.in.h
index 72d9537..d5ca343 100644
--- a/lib/sys_stat.in.h
+++ b/lib/sys_stat.in.h
@@ -1,5 +1,5 @@
/* Provide a more complete sys/stat header file.
- Copyright (C) 2005-2016 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
diff --git a/lib/sys_time.in.h b/lib/sys_time.in.h
index d535a6a..57739bc 100644
--- a/lib/sys_time.in.h
+++ b/lib/sys_time.in.h
@@ -1,6 +1,6 @@
/* Provide a more complete sys/time.h.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/lib/sys_types.in.h b/lib/sys_types.in.h
index 8ab0545..30ebfbd 100644
--- a/lib/sys_types.in.h
+++ b/lib/sys_types.in.h
@@ -1,6 +1,6 @@
/* Provide a more complete sys/types.h.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
diff --git a/lib/tempname.c b/lib/tempname.c
index b1e9880..2cd9032 100644
--- a/lib/tempname.c
+++ b/lib/tempname.c
@@ -1,6 +1,6 @@
/* tempname.c - generate the name of a temporary file.
- Copyright (C) 1991-2003, 2005-2007, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 1991-2003, 2005-2007, 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
diff --git a/lib/tempname.h b/lib/tempname.h
index be01c51..1ca9748 100644
--- a/lib/tempname.h
+++ b/lib/tempname.h
@@ -1,6 +1,6 @@
/* Create a temporary file or directory.
- Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2006, 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
diff --git a/lib/time.in.h b/lib/time.in.h
index 865c114..fef8980 100644
--- a/lib/time.in.h
+++ b/lib/time.in.h
@@ -1,6 +1,6 @@
/* A more-standard <time.h>.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -217,7 +217,7 @@ _GL_CXXALIAS_SYS (gmtime, struct tm *, (time_t const *__timer));
_GL_CXXALIASWARN (gmtime);
# endif
-/* Parse BUF as a time stamp, assuming FORMAT specifies its layout, and store
+/* Parse BUF as a timestamp, assuming FORMAT specifies its layout, and store
the resulting broken-down time into TM. See
<http://www.opengroup.org/susv3xsh/strptime.html>. */
# if @GNULIB_STRPTIME@
diff --git a/lib/unistd.in.h b/lib/unistd.in.h
index 3aa0b03..d5fa34d 100644
--- a/lib/unistd.in.h
+++ b/lib/unistd.in.h
@@ -1,5 +1,5 @@
/* Substitute for and wrapper around <unistd.h>.
- Copyright (C) 2003-2016 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
diff --git a/lib/unlocked-io.h b/lib/unlocked-io.h
index c0ece50..aaf60a0 100644
--- a/lib/unlocked-io.h
+++ b/lib/unlocked-io.h
@@ -1,6 +1,6 @@
/* Prefer faster, non-thread-safe stdio functions if available.
- Copyright (C) 2001-2004, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2001-2004, 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
diff --git a/lib/verify.h b/lib/verify.h
index 5c8381d..dcba9c8 100644
--- a/lib/verify.h
+++ b/lib/verify.h
@@ -1,6 +1,6 @@
/* Compile-time assert-like macros.
- Copyright (C) 2005-2006, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 2005-2006, 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
@@ -248,7 +248,12 @@ template <int w>
/* Verify requirement R at compile-time, as a declaration without a
trailing ';'. */
-#define verify(R) _GL_VERIFY (R, "verify (" #R ")")
+#ifdef __GNUC__
+# define verify(R) _GL_VERIFY (R, "verify (" #R ")")
+#else
+/* PGI barfs if R is long. Play it safe. */
+# define verify(R) _GL_VERIFY (R, "verify (...)")
+#endif
#ifndef __has_builtin
# define __has_builtin(x) 0
diff --git a/lib/version-etc-fsf.c b/lib/version-etc-fsf.c
index baaebb6..6b6f582 100644
--- a/lib/version-etc-fsf.c
+++ b/lib/version-etc-fsf.c
@@ -1,5 +1,5 @@
/* Variable with FSF copyright information, for version-etc.
- Copyright (C) 1999-2006, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 1999-2006, 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
diff --git a/lib/version-etc.c b/lib/version-etc.c
index a9a0fdb..ce84af3 100644
--- a/lib/version-etc.c
+++ b/lib/version-etc.c
@@ -1,5 +1,5 @@
/* Print --version and bug-reporting information in a consistent format.
- Copyright (C) 1999-2016 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -38,7 +38,7 @@
# define PACKAGE PACKAGE_TARNAME
#endif
-enum { COPYRIGHT_YEAR = 2016 };
+enum { COPYRIGHT_YEAR = 2017 };
/* The three functions below display the --version information the
standard way.
diff --git a/lib/version-etc.h b/lib/version-etc.h
index 1a5f603..b931de8 100644
--- a/lib/version-etc.h
+++ b/lib/version-etc.h
@@ -1,5 +1,5 @@
/* Print --version and bug-reporting information in a consistent format.
- Copyright (C) 1999, 2003, 2005, 2009-2016 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2003, 2005, 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
diff --git a/lib/wchar.in.h b/lib/wchar.in.h
index 07dbdcb..c8f99f5 100644
--- a/lib/wchar.in.h
+++ b/lib/wchar.in.h
@@ -1,6 +1,6 @@
/* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/lib/wcrtomb.c b/lib/wcrtomb.c
index b931ee9..f956ecf 100644
--- a/lib/wcrtomb.c
+++ b/lib/wcrtomb.c
@@ -1,5 +1,5 @@
/* Convert wide character to multibyte character.
- Copyright (C) 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008-2017 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/wctob.c b/lib/wctob.c
index 15e3ff3..ab320cf 100644
--- a/lib/wctob.c
+++ b/lib/wctob.c
@@ -1,5 +1,5 @@
/* Convert wide character to unibyte character.
- Copyright (C) 2008, 2010-2016 Free Software Foundation, Inc.
+ Copyright (C) 2008, 2010-2017 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/wctomb-impl.h b/lib/wctomb-impl.h
index a6ed971..f76b595 100644
--- a/lib/wctomb-impl.h
+++ b/lib/wctomb-impl.h
@@ -1,5 +1,5 @@
/* Convert wide character to multibyte character.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-2017 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/wctomb.c b/lib/wctomb.c
index f1d14f5..724ce4f 100644
--- a/lib/wctomb.c
+++ b/lib/wctomb.c
@@ -1,5 +1,5 @@
/* Convert wide character to multibyte character.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-2017 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/wctype.in.h b/lib/wctype.in.h
index be7c14c..d106cf2 100644
--- a/lib/wctype.in.h
+++ b/lib/wctype.in.h
@@ -1,6 +1,6 @@
/* A substitute for ISO C99 <wctype.h>, for platforms that lack it.
- Copyright (C) 2006-2016 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/lib/xalloc-die.c b/lib/xalloc-die.c
index 4c7994b..3a64aa5 100644
--- a/lib/xalloc-die.c
+++ b/lib/xalloc-die.c
@@ -1,6 +1,6 @@
/* Report a memory allocation failure and exit.
- Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2016 Free Software
+ Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2017 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
diff --git a/lib/xalloc-oversized.h b/lib/xalloc-oversized.h
index 503bb37..ff0efc6 100644
--- a/lib/xalloc-oversized.h
+++ b/lib/xalloc-oversized.h
@@ -1,6 +1,6 @@
/* xalloc-oversized.h -- memory allocation size checking
- Copyright (C) 1990-2000, 2003-2004, 2006-2016 Free Software Foundation, Inc.
+ Copyright (C) 1990-2000, 2003-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
@@ -21,11 +21,6 @@
#include <stddef.h>
#include <stdint.h>
-/* Default for (non-Clang) compilers that lack __has_builtin. */
-#ifndef __has_builtin
-# define __has_builtin(x) 0
-#endif
-
/* True if N * S would overflow in a size_t calculation,
or would generate a value larger than PTRDIFF_MAX.
This expands to a constant expression if N and S are both constants.
@@ -46,13 +41,10 @@ typedef size_t __xalloc_count_type;
positive and N must be nonnegative. This is a macro, not a
function, so that it works correctly even when SIZE_MAX < N. */
-#if 7 <= __GNUC__ || __has_builtin (__builtin_add_overflow_p)
+#if 7 <= __GNUC__
# define xalloc_oversized(n, s) \
__builtin_mul_overflow_p (n, s, (__xalloc_count_type) 1)
-#elif ((5 <= __GNUC__ \
- || (__has_builtin (__builtin_mul_overflow) \
- && __has_builtin (__builtin_constant_p))) \
- && !__STRICT_ANSI__)
+#elif 5 <= __GNUC__ && !__STRICT_ANSI__
# define xalloc_oversized(n, s) \
(__builtin_constant_p (n) && __builtin_constant_p (s) \
? __xalloc_oversized (n, s) \
diff --git a/lib/xalloc.h b/lib/xalloc.h
index 3aad4e3..484b67f 100644
--- a/lib/xalloc.h
+++ b/lib/xalloc.h
@@ -1,6 +1,6 @@
/* xalloc.h -- malloc with out-of-memory checking
- Copyright (C) 1990-2000, 2003-2004, 2006-2016 Free Software Foundation, Inc.
+ Copyright (C) 1990-2000, 2003-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
diff --git a/lib/xmalloc.c b/lib/xmalloc.c
index 7d9c077..a4d308d 100644
--- a/lib/xmalloc.c
+++ b/lib/xmalloc.c
@@ -1,6 +1,6 @@
/* xmalloc.c -- malloc with out of memory checking
- Copyright (C) 1990-2000, 2002-2006, 2008-2016 Free Software Foundation, Inc.
+ Copyright (C) 1990-2000, 2002-2006, 2008-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
diff --git a/m4/00gnulib.m4 b/m4/00gnulib.m4
index bb37e32..bb3512f 100644
--- a/m4/00gnulib.m4
+++ b/m4/00gnulib.m4
@@ -1,5 +1,5 @@
# 00gnulib.m4 serial 3
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 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.
diff --git a/m4/absolute-header.m4 b/m4/absolute-header.m4
index 7ffc38d..c73adc8 100644
--- a/m4/absolute-header.m4
+++ b/m4/absolute-header.m4
@@ -1,5 +1,5 @@
# absolute-header.m4 serial 16
-dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-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.
diff --git a/m4/acl.m4 b/m4/acl.m4
index ce0fe6b..bf988d5 100644
--- a/m4/acl.m4
+++ b/m4/acl.m4
@@ -1,7 +1,7 @@
# acl.m4 - check for access control list (ACL) primitives
# serial 22
-# Copyright (C) 2002, 2004-2016 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2004-2017 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.
diff --git a/m4/alloca.m4 b/m4/alloca.m4
index 2382ff1..7f0604c 100644
--- a/m4/alloca.m4
+++ b/m4/alloca.m4
@@ -1,5 +1,5 @@
# alloca.m4 serial 14
-dnl Copyright (C) 2002-2004, 2006-2007, 2009-2016 Free Software Foundation,
+dnl Copyright (C) 2002-2004, 2006-2007, 2009-2017 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,
diff --git a/m4/assert.m4 b/m4/assert.m4
index 054b163..3485b7d 100644
--- a/m4/assert.m4
+++ b/m4/assert.m4
@@ -1,6 +1,6 @@
#serial 7
-# Copyright (C) 1998-1999, 2001, 2004, 2008-2016 Free Software Foundation, Inc.
+# Copyright (C) 1998-1999, 2001, 2004, 2008-2017 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.
diff --git a/m4/btowc.m4 b/m4/btowc.m4
index 47e8fd8..1021809 100644
--- a/m4/btowc.m4
+++ b/m4/btowc.m4
@@ -1,5 +1,5 @@
# btowc.m4 serial 10
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-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.
diff --git a/m4/builtin-expect.m4 b/m4/builtin-expect.m4
index e448066..aa3364b 100644
--- a/m4/builtin-expect.m4
+++ b/m4/builtin-expect.m4
@@ -1,6 +1,6 @@
dnl Check for __builtin_expect.
-dnl Copyright 2016 Free Software Foundation, Inc.
+dnl Copyright 2016-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.
diff --git a/m4/canonicalize.m4 b/m4/canonicalize.m4
index cbbf3e2..c04ff8d 100644
--- a/m4/canonicalize.m4
+++ b/m4/canonicalize.m4
@@ -1,6 +1,6 @@
# canonicalize.m4 serial 28
-dnl Copyright (C) 2003-2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2003-2007, 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,
diff --git a/m4/close-stream.m4 b/m4/close-stream.m4
index ddda027..65a1acc 100644
--- a/m4/close-stream.m4
+++ b/m4/close-stream.m4
@@ -1,5 +1,5 @@
#serial 4
-dnl Copyright (C) 2006-2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2007, 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.
diff --git a/m4/close.m4 b/m4/close.m4
index 310f076..005a43a 100644
--- a/m4/close.m4
+++ b/m4/close.m4
@@ -1,5 +1,5 @@
# close.m4 serial 8
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-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.
diff --git a/m4/closedir.m4 b/m4/closedir.m4
index 0c9fd82..40765b1 100644
--- a/m4/closedir.m4
+++ b/m4/closedir.m4
@@ -1,5 +1,5 @@
# closedir.m4 serial 5
-dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-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.
diff --git a/m4/closeout.m4 b/m4/closeout.m4
index 6f4dd43..3c3aa2f 100644
--- a/m4/closeout.m4
+++ b/m4/closeout.m4
@@ -1,5 +1,5 @@
# closeout.m4 serial 6
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2016 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2017 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,
diff --git a/m4/configmake.m4 b/m4/configmake.m4
index 80b9254..b783296 100644
--- a/m4/configmake.m4
+++ b/m4/configmake.m4
@@ -1,5 +1,5 @@
# configmake.m4 serial 2
-dnl Copyright (C) 2010-2016 Free Software Foundation, Inc.
+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.
diff --git a/m4/ctype.m4 b/m4/ctype.m4
index a2165aa..3791f46 100644
--- a/m4/ctype.m4
+++ b/m4/ctype.m4
@@ -1,5 +1,5 @@
# ctype_h.m4 serial 6
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 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.
diff --git a/m4/dirent_h.m4 b/m4/dirent_h.m4
index 68836a4..1f9c4f3 100644
--- a/m4/dirent_h.m4
+++ b/m4/dirent_h.m4
@@ -1,5 +1,5 @@
# dirent_h.m4 serial 16
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-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.
diff --git a/m4/dirfd.m4 b/m4/dirfd.m4
index 1d7cb08..b4ec3d1 100644
--- a/m4/dirfd.m4
+++ b/m4/dirfd.m4
@@ -2,7 +2,7 @@
dnl Find out how to get the file descriptor associated with an open DIR*.
-# Copyright (C) 2001-2006, 2008-2016 Free Software Foundation, Inc.
+# Copyright (C) 2001-2006, 2008-2017 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.
diff --git a/m4/dirname.m4 b/m4/dirname.m4
index 6f8bec3..46f5394 100644
--- a/m4/dirname.m4
+++ b/m4/dirname.m4
@@ -1,5 +1,5 @@
#serial 10 -*- autoconf -*-
-dnl Copyright (C) 2002-2006, 2009-2016 Free Software Foundation, Inc.
+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.
diff --git a/m4/double-slash-root.m4 b/m4/double-slash-root.m4
index dfd3921..c80f9ea 100644
--- a/m4/double-slash-root.m4
+++ b/m4/double-slash-root.m4
@@ -1,5 +1,5 @@
# double-slash-root.m4 serial 4 -*- Autoconf -*-
-dnl Copyright (C) 2006, 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2008-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.
diff --git a/m4/dup2.m4 b/m4/dup2.m4
index 5b68312..bdb9ae2 100644
--- a/m4/dup2.m4
+++ b/m4/dup2.m4
@@ -1,5 +1,5 @@
#serial 25
-dnl Copyright (C) 2002, 2005, 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2005, 2007, 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.
diff --git a/m4/eealloc.m4 b/m4/eealloc.m4
index 63d74de..96b9bca 100644
--- a/m4/eealloc.m4
+++ b/m4/eealloc.m4
@@ -1,5 +1,5 @@
# eealloc.m4 serial 3
-dnl Copyright (C) 2003, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 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.
diff --git a/m4/environ.m4 b/m4/environ.m4
index 9a0ea7e..3b9fa5f 100644
--- a/m4/environ.m4
+++ b/m4/environ.m4
@@ -1,5 +1,5 @@
# environ.m4 serial 6
-dnl Copyright (C) 2001-2004, 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2004, 2006-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.
diff --git a/m4/errno_h.m4 b/m4/errno_h.m4
index b111fce..9f0f2f2 100644
--- a/m4/errno_h.m4
+++ b/m4/errno_h.m4
@@ -1,5 +1,5 @@
# errno_h.m4 serial 12
-dnl Copyright (C) 2004, 2006, 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2004, 2006, 2008-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.
diff --git a/m4/error.m4 b/m4/error.m4
index f772bcf..57c6f12 100644
--- a/m4/error.m4
+++ b/m4/error.m4
@@ -1,6 +1,6 @@
#serial 14
-# Copyright (C) 1996-1998, 2001-2004, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 1996-1998, 2001-2004, 2009-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff --git a/m4/extensions.m4 b/m4/extensions.m4
index e114a6f..c60f537 100644
--- a/m4/extensions.m4
+++ b/m4/extensions.m4
@@ -1,7 +1,7 @@
# serial 15 -*- Autoconf -*-
# Enable extensions on systems that normally disable them.
-# Copyright (C) 2003, 2006-2016 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2006-2017 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.
diff --git a/m4/extern-inline.m4 b/m4/extern-inline.m4
index 1e578f3..00f9609 100644
--- a/m4/extern-inline.m4
+++ b/m4/extern-inline.m4
@@ -1,6 +1,6 @@
dnl 'extern inline' a la ISO C99.
-dnl Copyright 2012-2016 Free Software Foundation, Inc.
+dnl Copyright 2012-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.
diff --git a/m4/fcntl-o.m4 b/m4/fcntl-o.m4
index 24fcf88..3c3b63c 100644
--- a/m4/fcntl-o.m4
+++ b/m4/fcntl-o.m4
@@ -1,5 +1,5 @@
# fcntl-o.m4 serial 4
-dnl Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 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.
diff --git a/m4/fcntl_h.m4 b/m4/fcntl_h.m4
index ef0d78d..09c21ef 100644
--- a/m4/fcntl_h.m4
+++ b/m4/fcntl_h.m4
@@ -1,6 +1,6 @@
# serial 15
# Configure fcntl.h.
-dnl Copyright (C) 2006-2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2007, 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.
diff --git a/m4/fdopen.m4 b/m4/fdopen.m4
index 685a1bb..8e8619c 100644
--- a/m4/fdopen.m4
+++ b/m4/fdopen.m4
@@ -1,5 +1,5 @@
# fdopen.m4 serial 3
-dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-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.
diff --git a/m4/fflush.m4 b/m4/fflush.m4
index 6bb6d5a..1d1f1ba 100644
--- a/m4/fflush.m4
+++ b/m4/fflush.m4
@@ -1,6 +1,6 @@
# fflush.m4 serial 15
-# Copyright (C) 2007-2016 Free Software Foundation, Inc.
+# Copyright (C) 2007-2017 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.
diff --git a/m4/flexmember.m4 b/m4/flexmember.m4
index 155ae9b..35580ac 100644
--- a/m4/flexmember.m4
+++ b/m4/flexmember.m4
@@ -1,7 +1,7 @@
# serial 4
# Check for flexible array member support.
-# Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2009-2017 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.
diff --git a/m4/fpending.m4 b/m4/fpending.m4
index f6776a8..3a5e934 100644
--- a/m4/fpending.m4
+++ b/m4/fpending.m4
@@ -1,6 +1,6 @@
# serial 22
-# Copyright (C) 2000-2001, 2004-2016 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2004-2017 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.
diff --git a/m4/fpurge.m4 b/m4/fpurge.m4
index 0dd19f3..57be1b9 100644
--- a/m4/fpurge.m4
+++ b/m4/fpurge.m4
@@ -1,5 +1,5 @@
# fpurge.m4 serial 7
-dnl Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 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.
diff --git a/m4/freading.m4 b/m4/freading.m4
index 52495b7..52079ff 100644
--- a/m4/freading.m4
+++ b/m4/freading.m4
@@ -1,5 +1,5 @@
# freading.m4 serial 1
-dnl Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 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.
diff --git a/m4/fseek.m4 b/m4/fseek.m4
index 5ec8d00..4664ac1 100644
--- a/m4/fseek.m4
+++ b/m4/fseek.m4
@@ -1,5 +1,5 @@
# fseek.m4 serial 4
-dnl Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 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.
diff --git a/m4/fseeko.m4 b/m4/fseeko.m4
index 6c7f551..fdb565b 100644
--- a/m4/fseeko.m4
+++ b/m4/fseeko.m4
@@ -1,5 +1,5 @@
# fseeko.m4 serial 17
-dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-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.
diff --git a/m4/fstat.m4 b/m4/fstat.m4
index 29f9b81..14c871a 100644
--- a/m4/fstat.m4
+++ b/m4/fstat.m4
@@ -1,5 +1,5 @@
# fstat.m4 serial 4
-dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-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.
diff --git a/m4/ftell.m4 b/m4/ftell.m4
index 6701f0a..b8336ce 100644
--- a/m4/ftell.m4
+++ b/m4/ftell.m4
@@ -1,5 +1,5 @@
# ftell.m4 serial 3
-dnl Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 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.
diff --git a/m4/ftello.m4 b/m4/ftello.m4
index 3f4808b..0867c2a 100644
--- a/m4/ftello.m4
+++ b/m4/ftello.m4
@@ -1,5 +1,5 @@
# ftello.m4 serial 11
-dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-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.
diff --git a/m4/fwriting.m4 b/m4/fwriting.m4
index b9912e2..083ac20 100644
--- a/m4/fwriting.m4
+++ b/m4/fwriting.m4
@@ -1,5 +1,5 @@
# fwriting.m4 serial 2
-dnl Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 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.
diff --git a/m4/getcwd.m4 b/m4/getcwd.m4
index 566c3c1..ec6b637 100644
--- a/m4/getcwd.m4
+++ b/m4/getcwd.m4
@@ -1,6 +1,6 @@
# getcwd.m4 - check for working getcwd that is compatible with glibc
-# Copyright (C) 2001, 2003-2007, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003-2007, 2009-2017 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.
diff --git a/m4/getdelim.m4 b/m4/getdelim.m4
index a1a7dcc..24adb94 100644
--- a/m4/getdelim.m4
+++ b/m4/getdelim.m4
@@ -1,6 +1,6 @@
# getdelim.m4 serial 11
-dnl Copyright (C) 2005-2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2007, 2009-2017 Free Software Foundation, Inc.
dnl
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/m4/getdtablesize.m4 b/m4/getdtablesize.m4
index 1bf4db0..1af2a24 100644
--- a/m4/getdtablesize.m4
+++ b/m4/getdtablesize.m4
@@ -1,5 +1,5 @@
# getdtablesize.m4 serial 6
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-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.
diff --git a/m4/getopt.m4 b/m4/getopt.m4
index ce6ec67..7a94626 100644
--- a/m4/getopt.m4
+++ b/m4/getopt.m4
@@ -1,5 +1,5 @@
# getopt.m4 serial 44
-dnl Copyright (C) 2002-2006, 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2008-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.
diff --git a/m4/getpagesize.m4 b/m4/getpagesize.m4
index 8902b7b..f891200 100644
--- a/m4/getpagesize.m4
+++ b/m4/getpagesize.m4
@@ -1,5 +1,5 @@
# getpagesize.m4 serial 9
-dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2016 Free Software Foundation,
+dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2017 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,
diff --git a/m4/getprogname.m4 b/m4/getprogname.m4
index f027037..efc06e7 100644
--- a/m4/getprogname.m4
+++ b/m4/getprogname.m4
@@ -1,6 +1,6 @@
# getprogname.m4 - check for getprogname or replacements for it
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-2017 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.
diff --git a/m4/gettimeofday.m4 b/m4/gettimeofday.m4
index 4ae5d63..4f501e5 100644
--- a/m4/gettimeofday.m4
+++ b/m4/gettimeofday.m4
@@ -1,6 +1,6 @@
# serial 21
-# Copyright (C) 2001-2003, 2005, 2007, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2001-2003, 2005, 2007, 2009-2017 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.
diff --git a/m4/glibc21.m4 b/m4/glibc21.m4
index dafebf5..2e30ed6 100644
--- a/m4/glibc21.m4
+++ b/m4/glibc21.m4
@@ -1,5 +1,5 @@
# glibc21.m4 serial 5
-dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2016 Free Software Foundation,
+dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2017 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,
diff --git a/m4/gnulib-common.m4 b/m4/gnulib-common.m4
index f8454c8..7d9b40b 100644
--- a/m4/gnulib-common.m4
+++ b/m4/gnulib-common.m4
@@ -1,5 +1,5 @@
# gnulib-common.m4 serial 36
-dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-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.
diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4
index 6d116b2..b7070fd 100644
--- a/m4/gnulib-comp.m4
+++ b/m4/gnulib-comp.m4
@@ -1,5 +1,5 @@
# DO NOT EDIT! GENERATED AUTOMATICALLY!
-# Copyright (C) 2002-2016 Free Software Foundation, Inc.
+# Copyright (C) 2002-2017 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
@@ -64,6 +64,7 @@ AC_DEFUN([gl_EARLY],
# Code from module c-strcase:
# Code from module c-strcase-tests:
# Code from module c-strcaseeq:
+ # Code from module c99:
# Code from module canonicalize-lgpl:
# Code from module canonicalize-lgpl-tests:
# Code from module chdir:
@@ -254,6 +255,7 @@ AC_DEFUN([gl_EARLY],
# Code from module stat:
# Code from module stat-macros:
# Code from module stat-tests:
+ # Code from module std-gnu11:
# Code from module stdalign:
# Code from module stdalign-tests:
# Code from module stdarg:
@@ -1259,6 +1261,7 @@ AC_DEFUN([gl_FILE_LIST], [
m4/open.m4
m4/opendir.m4
m4/pathmax.m4
+ m4/pthread_rwlock_rdlock.m4
m4/putenv.m4
m4/quote.m4
m4/quotearg.m4
@@ -1276,6 +1279,7 @@ AC_DEFUN([gl_FILE_LIST], [
m4/setlocale.m4
m4/ssize_t.m4
m4/stat.m4
+ m4/std-gnu11.m4
m4/stdalign.m4
m4/stdarg.m4
m4/stdbool.m4
diff --git a/m4/hard-locale.m4 b/m4/hard-locale.m4
index 4661bfc..d79acd6 100644
--- a/m4/hard-locale.m4
+++ b/m4/hard-locale.m4
@@ -1,5 +1,5 @@
# hard-locale.m4 serial 8
-dnl Copyright (C) 2002-2006, 2009-2016 Free Software Foundation, Inc.
+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.
diff --git a/m4/include_next.m4 b/m4/include_next.m4
index db0f2c0..e687e23 100644
--- a/m4/include_next.m4
+++ b/m4/include_next.m4
@@ -1,5 +1,5 @@
# include_next.m4 serial 23
-dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-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.
diff --git a/m4/inttypes-pri.m4 b/m4/inttypes-pri.m4
index ae20183..2055787 100644
--- a/m4/inttypes-pri.m4
+++ b/m4/inttypes-pri.m4
@@ -1,5 +1,5 @@
# inttypes-pri.m4 serial 7 (gettext-0.18.2)
-dnl Copyright (C) 1997-2002, 2006, 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2002, 2006, 2008-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.
diff --git a/m4/inttypes.m4 b/m4/inttypes.m4
index 61cdb1a..434a7ee 100644
--- a/m4/inttypes.m4
+++ b/m4/inttypes.m4
@@ -1,5 +1,5 @@
# inttypes.m4 serial 26
-dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-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.
diff --git a/m4/isblank.m4 b/m4/isblank.m4
index 63d4a39..abbc338 100644
--- a/m4/isblank.m4
+++ b/m4/isblank.m4
@@ -1,5 +1,5 @@
# isblank.m4 serial 3
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 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.
diff --git a/m4/langinfo_h.m4 b/m4/langinfo_h.m4
index edbbe76..ea94b4e 100644
--- a/m4/langinfo_h.m4
+++ b/m4/langinfo_h.m4
@@ -1,5 +1,5 @@
# langinfo_h.m4 serial 7
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 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.
diff --git a/m4/largefile.m4 b/m4/largefile.m4
index 8bbdfaa..790f7c0 100644
--- a/m4/largefile.m4
+++ b/m4/largefile.m4
@@ -1,6 +1,6 @@
# Enable large files on systems where this is not the default.
-# Copyright 1992-1996, 1998-2016 Free Software Foundation, Inc.
+# Copyright 1992-1996, 1998-2017 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.
diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4
index 6209de6..a7733e4 100644
--- a/m4/lib-ld.m4
+++ b/m4/lib-ld.m4
@@ -1,5 +1,5 @@
# lib-ld.m4 serial 6
-dnl Copyright (C) 1996-2003, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 1996-2003, 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.
diff --git a/m4/lib-link.m4 b/m4/lib-link.m4
index 2f51855..1ce9a5a 100644
--- a/m4/lib-link.m4
+++ b/m4/lib-link.m4
@@ -1,5 +1,5 @@
# lib-link.m4 serial 26 (gettext-0.18.2)
-dnl Copyright (C) 2001-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-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.
diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4
index 6851031..68a0835 100644
--- a/m4/lib-prefix.m4
+++ b/m4/lib-prefix.m4
@@ -1,5 +1,5 @@
# lib-prefix.m4 serial 7 (gettext-0.18)
-dnl Copyright (C) 2001-2005, 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2005, 2008-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.
diff --git a/m4/limits-h.m4 b/m4/limits-h.m4
index 31fdf0a..443f91b 100644
--- a/m4/limits-h.m4
+++ b/m4/limits-h.m4
@@ -1,6 +1,6 @@
dnl Check whether limits.h has needed features.
-dnl Copyright 2016 Free Software Foundation, Inc.
+dnl Copyright 2016-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.
diff --git a/m4/link.m4 b/m4/link.m4
index 34e7708..021c301 100644
--- a/m4/link.m4
+++ b/m4/link.m4
@@ -1,5 +1,5 @@
# link.m4 serial 8
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 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.
diff --git a/m4/localcharset.m4 b/m4/localcharset.m4
index 22c311b..0c1ff38 100644
--- a/m4/localcharset.m4
+++ b/m4/localcharset.m4
@@ -1,5 +1,5 @@
# localcharset.m4 serial 7
-dnl Copyright (C) 2002, 2004, 2006, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2004, 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.
diff --git a/m4/locale-fr.m4 b/m4/locale-fr.m4
index 92896a0..93d3da7 100644
--- a/m4/locale-fr.m4
+++ b/m4/locale-fr.m4
@@ -1,5 +1,5 @@
# locale-fr.m4 serial 17
-dnl Copyright (C) 2003, 2005-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2005-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.
diff --git a/m4/locale-ja.m4 b/m4/locale-ja.m4
index f222a08..c1d1154 100644
--- a/m4/locale-ja.m4
+++ b/m4/locale-ja.m4
@@ -1,5 +1,5 @@
# locale-ja.m4 serial 12
-dnl Copyright (C) 2003, 2005-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2005-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.
diff --git a/m4/locale-tr.m4 b/m4/locale-tr.m4
index 75aa295..06e2f6e 100644
--- a/m4/locale-tr.m4
+++ b/m4/locale-tr.m4
@@ -1,5 +1,5 @@
# locale-tr.m4 serial 10
-dnl Copyright (C) 2003, 2005-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2005-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.
diff --git a/m4/locale-zh.m4 b/m4/locale-zh.m4
index 2271f77..1459418 100644
--- a/m4/locale-zh.m4
+++ b/m4/locale-zh.m4
@@ -1,5 +1,5 @@
# locale-zh.m4 serial 12
-dnl Copyright (C) 2003, 2005-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2005-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.
diff --git a/m4/locale_h.m4 b/m4/locale_h.m4
index 563f8f8..7426a65 100644
--- a/m4/locale_h.m4
+++ b/m4/locale_h.m4
@@ -1,5 +1,5 @@
# locale_h.m4 serial 19
-dnl Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 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.
diff --git a/m4/localeconv.m4 b/m4/localeconv.m4
index 6e1dbf1..c287aa5 100644
--- a/m4/localeconv.m4
+++ b/m4/localeconv.m4
@@ -1,5 +1,5 @@
# localeconv.m4 serial 1
-dnl Copyright (C) 2012-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-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.
diff --git a/m4/localename.m4 b/m4/localename.m4
index fc1d3ea..bb42516 100644
--- a/m4/localename.m4
+++ b/m4/localename.m4
@@ -1,5 +1,5 @@
# localename.m4 serial 2
-dnl Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 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.
diff --git a/m4/lock.m4 b/m4/lock.m4
index 1e83e23..cb04a67 100644
--- a/m4/lock.m4
+++ b/m4/lock.m4
@@ -1,5 +1,5 @@
-# lock.m4 serial 13 (gettext-0.18.2)
-dnl Copyright (C) 2005-2016 Free Software Foundation, Inc.
+# lock.m4 serial 14
+dnl Copyright (C) 2005-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.
@@ -12,11 +12,16 @@ AC_DEFUN([gl_LOCK],
if test "$gl_threads_api" = posix; then
# OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the
# pthread_rwlock_* functions.
+ has_rwlock=false
AC_CHECK_TYPE([pthread_rwlock_t],
- [AC_DEFINE([HAVE_PTHREAD_RWLOCK], [1],
+ [has_rwlock=true
+ AC_DEFINE([HAVE_PTHREAD_RWLOCK], [1],
[Define if the POSIX multithreading library has read/write locks.])],
[],
[#include <pthread.h>])
+ if $has_rwlock; then
+ gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER
+ fi
# glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro.
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM(
diff --git a/m4/longlong.m4 b/m4/longlong.m4
index 36d8b12..9a3294b 100644
--- a/m4/longlong.m4
+++ b/m4/longlong.m4
@@ -1,5 +1,5 @@
# longlong.m4 serial 17
-dnl Copyright (C) 1999-2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 1999-2007, 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.
diff --git a/m4/lseek.m4 b/m4/lseek.m4
index 4a95440..627e772 100644
--- a/m4/lseek.m4
+++ b/m4/lseek.m4
@@ -1,5 +1,5 @@
# lseek.m4 serial 10
-dnl Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 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.
diff --git a/m4/lstat.m4 b/m4/lstat.m4
index e143d5c..953c117 100644
--- a/m4/lstat.m4
+++ b/m4/lstat.m4
@@ -1,6 +1,6 @@
# serial 27
-# Copyright (C) 1997-2001, 2003-2016 Free Software Foundation, Inc.
+# Copyright (C) 1997-2001, 2003-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff --git a/m4/malloc.m4 b/m4/malloc.m4
index c393690..e1d2ec6 100644
--- a/m4/malloc.m4
+++ b/m4/malloc.m4
@@ -1,5 +1,5 @@
# malloc.m4 serial 15
-dnl Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 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.
diff --git a/m4/malloca.m4 b/m4/malloca.m4
index b368b20..6956baf 100644
--- a/m4/malloca.m4
+++ b/m4/malloca.m4
@@ -1,5 +1,5 @@
# malloca.m4 serial 1
-dnl Copyright (C) 2003-2004, 2006-2007, 2009-2016 Free Software Foundation,
+dnl Copyright (C) 2003-2004, 2006-2007, 2009-2017 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,
diff --git a/m4/manywarnings.m4 b/m4/manywarnings.m4
index 4f701f4..0f06ade 100644
--- a/m4/manywarnings.m4
+++ b/m4/manywarnings.m4
@@ -1,5 +1,5 @@
# manywarnings.m4 serial 8
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-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.
diff --git a/m4/mbrlen.m4 b/m4/mbrlen.m4
index 5baf8e3..cd579a2 100644
--- a/m4/mbrlen.m4
+++ b/m4/mbrlen.m4
@@ -1,5 +1,5 @@
# mbrlen.m4 serial 9 -*- coding: utf-8 -*-
-dnl Copyright (C) 2008, 2010-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008, 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.
diff --git a/m4/mbrtowc.m4 b/m4/mbrtowc.m4
index 5edf08b..536183f 100644
--- a/m4/mbrtowc.m4
+++ b/m4/mbrtowc.m4
@@ -1,5 +1,5 @@
# mbrtowc.m4 serial 27 -*- coding: utf-8 -*-
-dnl Copyright (C) 2001-2002, 2004-2005, 2008-2016 Free Software Foundation,
+dnl Copyright (C) 2001-2002, 2004-2005, 2008-2017 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,
diff --git a/m4/mbsinit.m4 b/m4/mbsinit.m4
index 88f0836..5904a51 100644
--- a/m4/mbsinit.m4
+++ b/m4/mbsinit.m4
@@ -1,5 +1,5 @@
# mbsinit.m4 serial 8
-dnl Copyright (C) 2008, 2010-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008, 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.
diff --git a/m4/mbstate_t.m4 b/m4/mbstate_t.m4
index 0a8eae2..6325cf3 100644
--- a/m4/mbstate_t.m4
+++ b/m4/mbstate_t.m4
@@ -1,5 +1,5 @@
# mbstate_t.m4 serial 13
-dnl Copyright (C) 2000-2002, 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2000-2002, 2008-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.
diff --git a/m4/mbtowc.m4 b/m4/mbtowc.m4
index e770bbf..378a4e2 100644
--- a/m4/mbtowc.m4
+++ b/m4/mbtowc.m4
@@ -1,5 +1,5 @@
# mbtowc.m4 serial 2
-dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-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.
diff --git a/m4/memchr.m4 b/m4/memchr.m4
index 25d32f0..b6ec814 100644
--- a/m4/memchr.m4
+++ b/m4/memchr.m4
@@ -1,5 +1,5 @@
# memchr.m4 serial 12
-dnl Copyright (C) 2002-2004, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2004, 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.
diff --git a/m4/memrchr.m4 b/m4/memrchr.m4
index 6e7df5c..e180f61 100644
--- a/m4/memrchr.m4
+++ b/m4/memrchr.m4
@@ -1,5 +1,5 @@
# memrchr.m4 serial 10
-dnl Copyright (C) 2002-2003, 2005-2007, 2009-2016 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2007, 2009-2017 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,
diff --git a/m4/minmax.m4 b/m4/minmax.m4
index 9c43e64..6845fce 100644
--- a/m4/minmax.m4
+++ b/m4/minmax.m4
@@ -1,5 +1,5 @@
# minmax.m4 serial 4
-dnl Copyright (C) 2005, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 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.
diff --git a/m4/mkostemp.m4 b/m4/mkostemp.m4
index 1f44a03..337f17b 100644
--- a/m4/mkostemp.m4
+++ b/m4/mkostemp.m4
@@ -1,5 +1,5 @@
# mkostemp.m4 serial 2
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 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.
diff --git a/m4/mmap-anon.m4 b/m4/mmap-anon.m4
index 853c89d..263687d 100644
--- a/m4/mmap-anon.m4
+++ b/m4/mmap-anon.m4
@@ -1,5 +1,5 @@
# mmap-anon.m4 serial 10
-dnl Copyright (C) 2005, 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2007, 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.
diff --git a/m4/mode_t.m4 b/m4/mode_t.m4
index 0cd40db..75d372a 100644
--- a/m4/mode_t.m4
+++ b/m4/mode_t.m4
@@ -1,5 +1,5 @@
# mode_t.m4 serial 2
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 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.
diff --git a/m4/msvc-inval.m4 b/m4/msvc-inval.m4
index f5e4c89..3324375 100644
--- a/m4/msvc-inval.m4
+++ b/m4/msvc-inval.m4
@@ -1,5 +1,5 @@
# msvc-inval.m4 serial 1
-dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-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.
diff --git a/m4/msvc-nothrow.m4 b/m4/msvc-nothrow.m4
index 58f5c0b..3014661 100644
--- a/m4/msvc-nothrow.m4
+++ b/m4/msvc-nothrow.m4
@@ -1,5 +1,5 @@
# msvc-nothrow.m4 serial 1
-dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-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.
diff --git a/m4/multiarch.m4 b/m4/multiarch.m4
index 43b5d05..30006cb 100644
--- a/m4/multiarch.m4
+++ b/m4/multiarch.m4
@@ -1,5 +1,5 @@
# multiarch.m4 serial 7
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-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.
diff --git a/m4/nl_langinfo.m4 b/m4/nl_langinfo.m4
index a2f7196..16de8de 100644
--- a/m4/nl_langinfo.m4
+++ b/m4/nl_langinfo.m4
@@ -1,5 +1,5 @@
# nl_langinfo.m4 serial 5
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 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.
diff --git a/m4/nocrash.m4 b/m4/nocrash.m4
index d8dd8f1..2c2c5fb 100644
--- a/m4/nocrash.m4
+++ b/m4/nocrash.m4
@@ -1,5 +1,5 @@
# nocrash.m4 serial 4
-dnl Copyright (C) 2005, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 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.
diff --git a/m4/non-recursive-gnulib-prefix-hack.m4 b/m4/non-recursive-gnulib-prefix-hack.m4
index 1cc2629..9300e48 100644
--- a/m4/non-recursive-gnulib-prefix-hack.m4
+++ b/m4/non-recursive-gnulib-prefix-hack.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 2012-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-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.
diff --git a/m4/obstack.m4 b/m4/obstack.m4
index 98ca5f9..6123762 100644
--- a/m4/obstack.m4
+++ b/m4/obstack.m4
@@ -1,6 +1,6 @@
# See if we need to provide obstacks.
-dnl Copyright 1996-2016 Free Software Foundation, Inc.
+dnl Copyright 1996-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.
diff --git a/m4/off_t.m4 b/m4/off_t.m4
index 282751b..92c45ef 100644
--- a/m4/off_t.m4
+++ b/m4/off_t.m4
@@ -1,5 +1,5 @@
# off_t.m4 serial 1
-dnl Copyright (C) 2012-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-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.
diff --git a/m4/open.m4 b/m4/open.m4
index 53d3038..2a869dc 100644
--- a/m4/open.m4
+++ b/m4/open.m4
@@ -1,5 +1,5 @@
# open.m4 serial 14
-dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-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.
diff --git a/m4/opendir.m4 b/m4/opendir.m4
index ffaa6ae..b970e65 100644
--- a/m4/opendir.m4
+++ b/m4/opendir.m4
@@ -1,5 +1,5 @@
# opendir.m4 serial 4
-dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-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.
diff --git a/m4/pathmax.m4 b/m4/pathmax.m4
index 6f8e59a..c6c9f24 100644
--- a/m4/pathmax.m4
+++ b/m4/pathmax.m4
@@ -1,5 +1,5 @@
# pathmax.m4 serial 10
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2016 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2017 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,
diff --git a/m4/pthread_rwlock_rdlock.m4 b/m4/pthread_rwlock_rdlock.m4
new file mode 100644
index 0000000..da69865
--- /dev/null
+++ b/m4/pthread_rwlock_rdlock.m4
@@ -0,0 +1,163 @@
+# pthread_rwlock_rdlock.m4 serial 1
+dnl Copyright (C) 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 From Bruno Haible.
+dnl Inspired by
+dnl https://github.com/linux-test-project/ltp/blob/master/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_rdlock/2-2.c
+dnl by Intel Corporation.
+
+dnl Test whether in a situation where
+dnl - an rwlock is taken by a reader and has a writer waiting,
+dnl - an additional reader requests the lock,
+dnl - the waiting writer and the requesting reader threads have the same
+dnl priority,
+dnl the requesting reader thread gets blocked, so that at some point the
+dnl waiting writer can acquire the lock.
+dnl Without such a guarantee, when there a N readers and each of the readers
+dnl spends more than 1/Nth of the time with the lock held, there is a high
+dnl probability that the waiting writer will not get the lock in a given finite
+dnl time, a phenomenon called "writer starvation".
+dnl Without such a guarantee, applications have a hard time avoiding writer
+dnl starvation.
+dnl
+dnl POSIX:2008 makes this requirement only for implementations that support TPS
+dnl (Thread Priority Scheduling) and only for the scheduling policies SCHED_FIFO
+dnl and SCHED_RR, see
+dnl http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlock_rdlock.html
+dnl but test verifies the guarantee regardless of TPS and regardless of
+dnl scheduling policy.
+AC_DEFUN([gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER],
+[
+ AC_REQUIRE([gl_THREADLIB_EARLY])
+ AC_CACHE_CHECK([whether pthread_rwlock_rdlock prefers a writer to a reader],
+ [gl_cv_pthread_rwlock_rdlock_prefer_writer],
+ [save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBMULTITHREAD"
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <errno.h>
+#include <pthread.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#define SUCCEED() exit (0)
+#define FAILURE() exit (1)
+#define UNEXPECTED(n) (exit (10 + (n)))
+
+/* The main thread creates the waiting writer and the requesting reader threads
+ in the default way; this guarantees that they have the same priority.
+ We can reuse the main thread as first reader thread. */
+
+static pthread_rwlock_t lock;
+static pthread_t reader1;
+static pthread_t writer;
+static pthread_t reader2;
+static pthread_t timer;
+/* Used to pass control from writer to reader2 and from reader2 to timer,
+ as in a relay race.
+ Passing control from one running thread to another running thread
+ is most likely faster than to create the second thread. */
+static pthread_mutex_t baton;
+
+static void *
+timer_func (void *ignored)
+{
+ /* Step 13 (can be before or after step 12):
+ The timer thread takes the baton, then waits a moment to make sure
+ it can tell whether the second reader thread is blocked at step 12. */
+ if (pthread_mutex_lock (&baton))
+ UNEXPECTED (13);
+ usleep (100000);
+ /* By the time we get here, it's clear that the second reader thread is
+ blocked at step 12. This is the desired behaviour. */
+ SUCCEED ();
+}
+
+static void *
+reader2_func (void *ignored)
+{
+ int err;
+
+ /* Step 8 (can be before or after step 7):
+ The second reader thread takes the baton, then waits a moment to make sure
+ the writer thread has reached step 7. */
+ if (pthread_mutex_lock (&baton))
+ UNEXPECTED (8);
+ usleep (100000);
+ /* Step 9: The second reader thread requests the lock. */
+ err = pthread_rwlock_tryrdlock (&lock);
+ if (err == 0)
+ FAILURE ();
+ else if (err != EBUSY)
+ UNEXPECTED (9);
+ /* Step 10: Launch a timer, to test whether the next call blocks. */
+ if (pthread_create (&timer, NULL, timer_func, NULL))
+ UNEXPECTED (10);
+ /* Step 11: Release the baton. */
+ if (pthread_mutex_unlock (&baton))
+ UNEXPECTED (11);
+ /* Step 12: The second reader thread requests the lock. */
+ err = pthread_rwlock_rdlock (&lock);
+ if (err == 0)
+ FAILURE ();
+ else
+ UNEXPECTED (12);
+}
+
+static void *
+writer_func (void *ignored)
+{
+ /* Step 4: Take the baton, so that the second reader thread does not go ahead
+ too early. */
+ if (pthread_mutex_lock (&baton))
+ UNEXPECTED (4);
+ /* Step 5: Create the second reader thread. */
+ if (pthread_create (&reader2, NULL, reader2_func, NULL))
+ UNEXPECTED (5);
+ /* Step 6: Release the baton. */
+ if (pthread_mutex_unlock (&baton))
+ UNEXPECTED (6);
+ /* Step 7: The writer thread requests the lock. */
+ if (pthread_rwlock_wrlock (&lock))
+ UNEXPECTED (7);
+ return NULL;
+}
+
+int
+main ()
+{
+ reader1 = pthread_self ();
+
+ /* Step 1: The main thread initializes the lock and the baton. */
+ if (pthread_rwlock_init (&lock, NULL))
+ UNEXPECTED (1);
+ if (pthread_mutex_init (&baton, NULL))
+ UNEXPECTED (1);
+ /* Step 2: The main thread acquires the lock as a reader. */
+ if (pthread_rwlock_rdlock (&lock))
+ UNEXPECTED (2);
+ /* Step 3: Create the writer thread. */
+ if (pthread_create (&writer, NULL, writer_func, NULL))
+ UNEXPECTED (3);
+ /* Job done. Go to sleep. */
+ for (;;)
+ {
+ sleep (1);
+ }
+}
+]])],
+ [gl_cv_pthread_rwlock_rdlock_prefer_writer=yes],
+ [gl_cv_pthread_rwlock_rdlock_prefer_writer=no],
+ [gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing yes"])
+ LIBS="$save_LIBS"
+ ])
+ case "$gl_cv_pthread_rwlock_rdlock_prefer_writer" in
+ *yes)
+ AC_DEFINE([HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER], [1],
+ [Define if the 'pthread_rwlock_rdlock' function prefers a writer to a reader.])
+ ;;
+ esac
+])
diff --git a/m4/putenv.m4 b/m4/putenv.m4
index c3c30d8..a8e3ab3 100644
--- a/m4/putenv.m4
+++ b/m4/putenv.m4
@@ -1,5 +1,5 @@
# putenv.m4 serial 20
-dnl Copyright (C) 2002-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-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.
diff --git a/m4/quote.m4 b/m4/quote.m4
index 50894f8..92be1e7 100644
--- a/m4/quote.m4
+++ b/m4/quote.m4
@@ -1,5 +1,5 @@
# quote.m4 serial 6
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2016 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2017 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,
diff --git a/m4/quotearg.m4 b/m4/quotearg.m4
index 2562375..5fae4f3 100644
--- a/m4/quotearg.m4
+++ b/m4/quotearg.m4
@@ -1,5 +1,5 @@
# quotearg.m4 serial 9
-dnl Copyright (C) 2002, 2004-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2004-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.
diff --git a/m4/read-file.m4 b/m4/read-file.m4
index aa23b58..5540000 100644
--- a/m4/read-file.m4
+++ b/m4/read-file.m4
@@ -1,5 +1,5 @@
# read-file.m4 serial 3
-dnl Copyright (C) 2002-2006, 2009-2016 Free Software Foundation, Inc.
+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.
diff --git a/m4/readdir.m4 b/m4/readdir.m4
index eda3acf..cb7f2ea 100644
--- a/m4/readdir.m4
+++ b/m4/readdir.m4
@@ -1,5 +1,5 @@
# readdir.m4 serial 1
-dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-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.
diff --git a/m4/readlink.m4 b/m4/readlink.m4
index ede0378..d3ba0ad 100644
--- a/m4/readlink.m4
+++ b/m4/readlink.m4
@@ -1,5 +1,5 @@
# readlink.m4 serial 12
-dnl Copyright (C) 2003, 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2007, 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.
diff --git a/m4/realloc.m4 b/m4/realloc.m4
index fc22825..3d05b44 100644
--- a/m4/realloc.m4
+++ b/m4/realloc.m4
@@ -1,5 +1,5 @@
# realloc.m4 serial 14
-dnl Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 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.
diff --git a/m4/regex.m4 b/m4/regex.m4
index abfd262..61ff098 100644
--- a/m4/regex.m4
+++ b/m4/regex.m4
@@ -1,6 +1,6 @@
# serial 66
-# Copyright (C) 1996-2001, 2003-2016 Free Software Foundation, Inc.
+# Copyright (C) 1996-2001, 2003-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff --git a/m4/rename.m4 b/m4/rename.m4
index fbcc758..7c3ffe7 100644
--- a/m4/rename.m4
+++ b/m4/rename.m4
@@ -1,6 +1,6 @@
# serial 26
-# Copyright (C) 2001, 2003, 2005-2006, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005-2006, 2009-2017 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.
diff --git a/m4/rmdir.m4 b/m4/rmdir.m4
index ebb3b5d..f585c27 100644
--- a/m4/rmdir.m4
+++ b/m4/rmdir.m4
@@ -1,5 +1,5 @@
# rmdir.m4 serial 13
-dnl Copyright (C) 2002, 2005, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2005, 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.
diff --git a/m4/secure_getenv.m4 b/m4/secure_getenv.m4
index 3983173..6bd4afd 100644
--- a/m4/secure_getenv.m4
+++ b/m4/secure_getenv.m4
@@ -1,5 +1,5 @@
# Look up an environment variable more securely.
-dnl Copyright 2013-2016 Free Software Foundation, Inc.
+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.
diff --git a/m4/selinux-context-h.m4 b/m4/selinux-context-h.m4
index 35ae11c..761113d 100644
--- a/m4/selinux-context-h.m4
+++ b/m4/selinux-context-h.m4
@@ -1,5 +1,5 @@
# serial 3 -*- Autoconf -*-
-# Copyright (C) 2006-2007, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2006-2007, 2009-2017 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.
diff --git a/m4/selinux-selinux-h.m4 b/m4/selinux-selinux-h.m4
index 2153b36..f25cd43 100644
--- a/m4/selinux-selinux-h.m4
+++ b/m4/selinux-selinux-h.m4
@@ -1,5 +1,5 @@
# serial 5 -*- Autoconf -*-
-# Copyright (C) 2006-2007, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2006-2007, 2009-2017 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.
diff --git a/m4/setenv.m4 b/m4/setenv.m4
index 5d49aba..005aa8c 100644
--- a/m4/setenv.m4
+++ b/m4/setenv.m4
@@ -1,5 +1,5 @@
# setenv.m4 serial 26
-dnl Copyright (C) 2001-2004, 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2004, 2006-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.
diff --git a/m4/setlocale.m4 b/m4/setlocale.m4
index a359069..879317d 100644
--- a/m4/setlocale.m4
+++ b/m4/setlocale.m4
@@ -1,5 +1,5 @@
# setlocale.m4 serial 4
-dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-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.
diff --git a/m4/ssize_t.m4 b/m4/ssize_t.m4
index 3e7b9e6..66ba9d4 100644
--- a/m4/ssize_t.m4
+++ b/m4/ssize_t.m4
@@ -1,5 +1,5 @@
# ssize_t.m4 serial 5 (gettext-0.18.2)
-dnl Copyright (C) 2001-2003, 2006, 2010-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2003, 2006, 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.
diff --git a/m4/stat.m4 b/m4/stat.m4
index a794975..9ff77df 100644
--- a/m4/stat.m4
+++ b/m4/stat.m4
@@ -1,6 +1,6 @@
# serial 11
-# Copyright (C) 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2009-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff --git a/m4/std-gnu11.m4 b/m4/std-gnu11.m4
new file mode 100644
index 0000000..9dae9b1
--- /dev/null
+++ b/m4/std-gnu11.m4
@@ -0,0 +1,824 @@
+# Prefer GNU C11 and C++11 to earlier versions. -*- coding: utf-8 -*-
+
+# This implementation is taken from GNU Autoconf lib/autoconf/c.m4
+# commit 017d5ddd82854911f0119691d91ea8a1438824d6
+# dated Sun Apr 3 13:57:17 2016 -0700
+# This implementation will be obsolete once we can assume Autoconf 2.70
+# or later is installed everywhere a Gnulib program might be developed.
+
+
+# Copyright (C) 2001-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/>.
+
+# Written by David MacKenzie, with help from
+# Akim Demaille, Paul Eggert,
+# François Pinard, Karl Berry, Richard Pixley, Ian Lance Taylor,
+# Roland McGrath, Noah Friedman, david d zuhn, and many others.
+
+
+# AC_PROG_CC([COMPILER ...])
+# --------------------------
+# COMPILER ... is a space separated list of C compilers to search for.
+# This just gives the user an opportunity to specify an alternative
+# search list for the C compiler.
+AC_DEFUN_ONCE([AC_PROG_CC],
+[AC_LANG_PUSH(C)dnl
+AC_ARG_VAR([CC], [C compiler command])dnl
+AC_ARG_VAR([CFLAGS], [C compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+_AC_ARG_VAR_LIBS()dnl
+_AC_ARG_VAR_CPPFLAGS()dnl
+m4_ifval([$1],
+ [AC_CHECK_TOOLS(CC, [$1])],
+[AC_CHECK_TOOL(CC, gcc)
+if test -z "$CC"; then
+ dnl Here we want:
+ dnl AC_CHECK_TOOL(CC, cc)
+ dnl but without the check for a tool without the prefix.
+ dnl Until the check is removed from there, copy the code:
+ if test -n "$ac_tool_prefix"; then
+ AC_CHECK_PROG(CC, [${ac_tool_prefix}cc], [${ac_tool_prefix}cc])
+ fi
+fi
+if test -z "$CC"; then
+ AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
+fi
+if test -z "$CC"; then
+ AC_CHECK_TOOLS(CC, cl.exe)
+fi
+if test -z "$CC"; then
+ AC_CHECK_TOOL(CC, clang)
+fi
+])
+
+test -z "$CC" && AC_MSG_FAILURE([no acceptable C compiler found in \$PATH])
+
+# Provide some information about the compiler.
+_AS_ECHO_LOG([checking for _AC_LANG compiler version])
+set X $ac_compile
+ac_compiler=$[2]
+for ac_option in --version -v -V -qversion -version; do
+ _AC_DO_LIMIT([$ac_compiler $ac_option >&AS_MESSAGE_LOG_FD])
+done
+
+m4_expand_once([_AC_COMPILER_EXEEXT])[]dnl
+m4_expand_once([_AC_COMPILER_OBJEXT])[]dnl
+_AC_LANG_COMPILER_GNU
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+_AC_PROG_CC_G
+dnl
+dnl Set ac_prog_cc_stdc to the supported C version.
+dnl Also set the documented variable ac_cv_prog_cc_stdc;
+dnl its name was chosen when it was cached, but it is no longer cached.
+_AC_PROG_CC_C11([ac_prog_cc_stdc=c11
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11],
+ [_AC_PROG_CC_C99([ac_prog_cc_stdc=c99
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99],
+ [_AC_PROG_CC_C89([ac_prog_cc_stdc=c89
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89],
+ [ac_prog_cc_stdc=no
+ ac_cv_prog_cc_stdc=no])])])
+dnl
+AC_LANG_POP(C)dnl
+])# AC_PROG_CC
+
+
+
+# AC_PROG_CXX([LIST-OF-COMPILERS])
+# --------------------------------
+# LIST-OF-COMPILERS is a space separated list of C++ compilers to search
+# for (if not specified, a default list is used). This just gives the
+# user an opportunity to specify an alternative search list for the C++
+# compiler.
+# aCC HP-UX C++ compiler much better than `CC', so test before.
+# FCC Fujitsu C++ compiler
+# KCC KAI C++ compiler
+# RCC Rational C++
+# xlC_r AIX C Set++ (with support for reentrant code)
+# xlC AIX C Set++
+AC_DEFUN([AC_PROG_CXX],
+[AC_LANG_PUSH(C++)dnl
+AC_ARG_VAR([CXX], [C++ compiler command])dnl
+AC_ARG_VAR([CXXFLAGS], [C++ compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+_AC_ARG_VAR_LIBS()dnl
+_AC_ARG_VAR_CPPFLAGS()dnl
+_AC_ARG_VAR_PRECIOUS([CCC])dnl
+if test -z "$CXX"; then
+ if test -n "$CCC"; then
+ CXX=$CCC
+ else
+ AC_CHECK_TOOLS(CXX,
+ [m4_default([$1],
+ [g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++])],
+ g++)
+ fi
+fi
+# Provide some information about the compiler.
+_AS_ECHO_LOG([checking for _AC_LANG compiler version])
+set X $ac_compile
+ac_compiler=$[2]
+for ac_option in --version -v -V -qversion; do
+ _AC_DO_LIMIT([$ac_compiler $ac_option >&AS_MESSAGE_LOG_FD])
+done
+
+m4_expand_once([_AC_COMPILER_EXEEXT])[]dnl
+m4_expand_once([_AC_COMPILER_OBJEXT])[]dnl
+_AC_LANG_COMPILER_GNU
+if test $ac_compiler_gnu = yes; then
+ GXX=yes
+else
+ GXX=
+fi
+_AC_PROG_CXX_G
+_AC_PROG_CXX_CXX11([ac_prog_cxx_stdcxx=cxx11
+ ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11
+ ac_cv_prog_cxx_cxx98=$ac_cv_prog_cxx_cxx11],
+ [_AC_PROG_CXX_CXX98([ac_prog_cxx_stdcxx=cxx98
+ ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98],
+ [ac_prog_cxx_stdcxx=no
+ ac_cv_prog_cxx_stdcxx=no])])
+AC_LANG_POP(C++)dnl
+])# AC_PROG_CXX
+
+
+# _AC_C_STD_TRY(STANDARD, TEST-PROLOGUE, TEST-BODY, OPTION-LIST,
+# ACTION-IF-AVAILABLE, ACTION-IF-UNAVAILABLE)
+# --------------------------------------------------------------
+# Check whether the C compiler accepts features of STANDARD (e.g `c89', `c99')
+# by trying to compile a program of TEST-PROLOGUE and TEST-BODY. If this fails,
+# try again with each compiler option in the space-separated OPTION-LIST; if one
+# helps, append it to CC. If eventually successful, run ACTION-IF-AVAILABLE,
+# else ACTION-IF-UNAVAILABLE.
+AC_DEFUN([_AC_C_STD_TRY],
+[AC_MSG_CHECKING([for $CC option to enable ]m4_translit($1, [c], [C])[ features])
+AC_CACHE_VAL(ac_cv_prog_cc_$1,
+[ac_cv_prog_cc_$1=no
+ac_save_CC=$CC
+AC_LANG_CONFTEST([AC_LANG_PROGRAM([$2], [$3])])
+for ac_arg in '' $4
+do
+ CC="$ac_save_CC $ac_arg"
+ _AC_COMPILE_IFELSE([], [ac_cv_prog_cc_$1=$ac_arg])
+ test "x$ac_cv_prog_cc_$1" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+])# AC_CACHE_VAL
+ac_prog_cc_stdc_options=
+case "x$ac_cv_prog_cc_$1" in
+ x)
+ AC_MSG_RESULT([none needed]) ;;
+ xno)
+ AC_MSG_RESULT([unsupported]) ;;
+ *)
+ ac_prog_cc_stdc_options=" $ac_cv_prog_cc_$1"
+ CC=$CC$ac_prog_cc_stdc_options
+ AC_MSG_RESULT([$ac_cv_prog_cc_$1]) ;;
+esac
+AS_IF([test "x$ac_cv_prog_cc_$1" != xno], [$5], [$6])
+])# _AC_C_STD_TRY
+
+# _AC_C_C99_TEST_HEADER
+# ---------------------
+# A C header suitable for testing for C99.
+AC_DEFUN([_AC_C_C99_TEST_HEADER],
+[[#include <stdarg.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <wchar.h>
+#include <stdio.h>
+
+// Check varargs macros. These examples are taken from C99 6.10.3.5.
+#define debug(...) fprintf (stderr, __VA_ARGS__)
+#define showlist(...) puts (#__VA_ARGS__)
+#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+static void
+test_varargs_macros (void)
+{
+ int x = 1234;
+ int y = 5678;
+ debug ("Flag");
+ debug ("X = %d\n", x);
+ showlist (The first, second, and third items.);
+ report (x>y, "x is %d but y is %d", x, y);
+}
+
+// Check long long types.
+#define BIG64 18446744073709551615ull
+#define BIG32 4294967295ul
+#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
+#if !BIG_OK
+ your preprocessor is broken;
+#endif
+#if BIG_OK
+#else
+ your preprocessor is broken;
+#endif
+static long long int bignum = -9223372036854775807LL;
+static unsigned long long int ubignum = BIG64;
+
+struct incomplete_array
+{
+ int datasize;
+ double data[];
+};
+
+struct named_init {
+ int number;
+ const wchar_t *name;
+ double average;
+};
+
+typedef const char *ccp;
+
+static inline int
+test_restrict (ccp restrict text)
+{
+ // See if C++-style comments work.
+ // Iterate through items via the restricted pointer.
+ // Also check for declarations in for loops.
+ for (unsigned int i = 0; *(text+i) != '\0'; ++i)
+ continue;
+ return 0;
+}
+
+// Check varargs and va_copy.
+static bool
+test_varargs (const char *format, ...)
+{
+ va_list args;
+ va_start (args, format);
+ va_list args_copy;
+ va_copy (args_copy, args);
+
+ const char *str = "";
+ int number = 0;
+ float fnumber = 0;
+
+ while (*format)
+ {
+ switch (*format++)
+ {
+ case 's': // string
+ str = va_arg (args_copy, const char *);
+ break;
+ case 'd': // int
+ number = va_arg (args_copy, int);
+ break;
+ case 'f': // float
+ fnumber = va_arg (args_copy, double);
+ break;
+ default:
+ break;
+ }
+ }
+ va_end (args_copy);
+ va_end (args);
+
+ return *str && number && fnumber;
+}]])# _AC_C_C99_TEST_HEADER
+
+# _AC_C_C99_TEST_BODY
+# -------------------
+# A C body suitable for testing for C99, assuming the corresponding header.
+AC_DEFUN([_AC_C_C99_TEST_BODY],
+[[
+ // Check bool.
+ _Bool success = false;
+
+ // Check restrict.
+ if (test_restrict ("String literal") == 0)
+ success = true;
+ char *restrict newvar = "Another string";
+
+ // Check varargs.
+ success &= test_varargs ("s, d' f .", "string", 65, 34.234);
+ test_varargs_macros ();
+
+ // Check flexible array members.
+ struct incomplete_array *ia =
+ malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+ ia->datasize = 10;
+ for (int i = 0; i < ia->datasize; ++i)
+ ia->data[i] = i * 1.234;
+
+ // Check named initializers.
+ struct named_init ni = {
+ .number = 34,
+ .name = L"Test wide string",
+ .average = 543.34343,
+ };
+
+ ni.number = 58;
+
+ int dynamic_array[ni.number];
+ dynamic_array[ni.number - 1] = 543;
+
+ // work around unused variable warnings
+ return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
+ || dynamic_array[ni.number - 1] != 543);
+]])
+
+# _AC_PROG_CC_C99 ([ACTION-IF-AVAILABLE], [ACTION-IF-UNAVAILABLE])
+# ----------------------------------------------------------------
+# If the C compiler is not in ISO C99 mode by default, try to add an
+# option to output variable CC to make it so. This macro tries
+# various options that select ISO C99 on some system or another. It
+# considers the compiler to be in ISO C99 mode if it handles _Bool,
+# // comments, flexible array members, inline, long long int, mixed
+# code and declarations, named initialization of structs, restrict,
+# va_copy, varargs macros, variable declarations in for loops and
+# variable length arrays.
+AC_DEFUN([_AC_PROG_CC_C99],
+[_AC_C_STD_TRY([c99],
+[_AC_C_C99_TEST_HEADER],
+[_AC_C_C99_TEST_BODY],
+dnl Try
+dnl GCC -std=gnu99 (unused restrictive modes: -std=c99 -std=iso9899:1999)
+dnl IBM XL C -qlanglvl=extc1x (V12.1; does not pass C11 test)
+dnl IBM XL C -qlanglvl=extc99
+dnl (pre-V12.1; unused restrictive mode: -qlanglvl=stdc99)
+dnl HP cc -AC99
+dnl Intel ICC -std=c99, -c99 (deprecated)
+dnl IRIX -c99
+dnl Solaris -D_STDC_C99=
+dnl cc's -xc99 option uses linker magic to define the external
+dnl symbol __xpg4 as if by "int __xpg4 = 1;", which enables C99
+dnl behavior for C library functions. This is not wanted here,
+dnl because it means that a single module compiled with -xc99
+dnl alters C runtime behavior for the entire program, not for
+dnl just the module. Instead, define the (private) symbol
+dnl _STDC_C99, which suppresses a bogus failure in <stdbool.h>.
+dnl The resulting compiler passes the test case here, and that's
+dnl good enough. For more, please see the thread starting at:
+dnl http://lists.gnu.org/archive/html/autoconf/2010-12/msg00059.html
+dnl Tru64 -c99
+dnl with extended modes being tried first.
+[[-std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc1x -qlanglvl=extc99]], [$1], [$2])[]dnl
+])# _AC_PROG_CC_C99
+
+
+# _AC_PROG_CC_C11 ([ACTION-IF-AVAILABLE], [ACTION-IF-UNAVAILABLE])
+# ----------------------------------------------------------------
+# If the C compiler is not in ISO C11 mode by default, try to add an
+# option to output variable CC to make it so. This macro tries
+# various options that select ISO C11 on some system or another. It
+# considers the compiler to be in ISO C11 mode if it handles _Alignas,
+# _Alignof, _Noreturn, _Static_assert, UTF-8 string literals,
+# duplicate typedefs, and anonymous structures and unions.
+AC_DEFUN([_AC_PROG_CC_C11],
+[_AC_C_STD_TRY([c11],
+[_AC_C_C99_TEST_HEADER[
+// Check _Alignas.
+char _Alignas (double) aligned_as_double;
+char _Alignas (0) no_special_alignment;
+extern char aligned_as_int;
+char _Alignas (0) _Alignas (int) aligned_as_int;
+
+// Check _Alignof.
+enum
+{
+ int_alignment = _Alignof (int),
+ int_array_alignment = _Alignof (int[100]),
+ char_alignment = _Alignof (char)
+};
+_Static_assert (0 < -_Alignof (int), "_Alignof is signed");
+
+// Check _Noreturn.
+int _Noreturn does_not_return (void) { for (;;) continue; }
+
+// Check _Static_assert.
+struct test_static_assert
+{
+ int x;
+ _Static_assert (sizeof (int) <= sizeof (long int),
+ "_Static_assert does not work in struct");
+ long int y;
+};
+
+// Check UTF-8 literals.
+#define u8 syntax error!
+char const utf8_literal[] = u8"happens to be ASCII" "another string";
+
+// Check duplicate typedefs.
+typedef long *long_ptr;
+typedef long int *long_ptr;
+typedef long_ptr long_ptr;
+
+// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
+struct anonymous
+{
+ union {
+ struct { int i; int j; };
+ struct { int k; long int l; } w;
+ };
+ int m;
+} v1;
+]],
+[_AC_C_C99_TEST_BODY[
+ v1.i = 2;
+ v1.w.k = 5;
+ _Static_assert ((offsetof (struct anonymous, i)
+ == offsetof (struct anonymous, w.k)),
+ "Anonymous union alignment botch");
+]],
+dnl Try
+dnl GCC -std=gnu11 (unused restrictive mode: -std=c11)
+dnl with extended modes being tried first.
+dnl
+dnl Do not try -qlanglvl=extc1x, because IBM XL C V12.1 (the latest version as
+dnl of September 2012) does not pass the C11 test. For now, try extc1x when
+dnl compiling the C99 test instead, since it enables _Static_assert and
+dnl _Noreturn, which is a win. If -qlanglvl=extc11 or -qlanglvl=extc1x passes
+dnl the C11 test in some future version of IBM XL C, we'll add it here,
+dnl preferably extc11.
+[[-std=gnu11]], [$1], [$2])[]dnl
+])# _AC_PROG_CC_C11
+
+
+# AC_PROG_CC_C89
+# --------------
+# Do not use AU_ALIAS here and in AC_PROG_CC_C99 and AC_PROG_CC_STDC,
+# as that'd be incompatible with how Automake redefines AC_PROG_CC. See
+# <http://lists.gnu.org/archive/html/autoconf/2012-10/msg00048.html>.
+AU_DEFUN([AC_PROG_CC_C89],
+ [AC_REQUIRE([AC_PROG_CC])],
+ [$0 is obsolete; use AC_PROG_CC]
+)
+
+# AC_PROG_CC_C99
+# --------------
+AU_DEFUN([AC_PROG_CC_C99],
+ [AC_REQUIRE([AC_PROG_CC])],
+ [$0 is obsolete; use AC_PROG_CC]
+)
+
+# AC_PROG_CC_STDC
+# ---------------
+AU_DEFUN([AC_PROG_CC_STDC],
+ [AC_REQUIRE([AC_PROG_CC])],
+ [$0 is obsolete; use AC_PROG_CC]
+)
+
+
+# AC_C_PROTOTYPES
+# ---------------
+# Check if the C compiler supports prototypes, included if it needs
+# options.
+AC_DEFUN([AC_C_PROTOTYPES],
+[AC_REQUIRE([AC_PROG_CC])dnl
+if test "$ac_prog_cc_stdc" != no; then
+ AC_DEFINE(PROTOTYPES, 1,
+ [Define to 1 if the C compiler supports function prototypes.])
+ AC_DEFINE(__PROTOTYPES, 1,
+ [Define like PROTOTYPES; this can be used by system headers.])
+fi
+])# AC_C_PROTOTYPES
+
+
+# _AC_CXX_STD_TRY(STANDARD, TEST-PROLOGUE, TEST-BODY, OPTION-LIST,
+# ACTION-IF-AVAILABLE, ACTION-IF-UNAVAILABLE)
+# ----------------------------------------------------------------
+# Check whether the C++ compiler accepts features of STANDARD (e.g
+# `cxx98', `cxx11') by trying to compile a program of TEST-PROLOGUE
+# and TEST-BODY. If this fails, try again with each compiler option
+# in the space-separated OPTION-LIST; if one helps, append it to CXX.
+# If eventually successful, run ACTION-IF-AVAILABLE, else
+# ACTION-IF-UNAVAILABLE.
+AC_DEFUN([_AC_CXX_STD_TRY],
+[AC_MSG_CHECKING([for $CXX option to enable ]m4_translit(m4_translit($1, [x], [+]), [a-z], [A-Z])[ features])
+AC_LANG_PUSH(C++)dnl
+AC_CACHE_VAL(ac_cv_prog_cxx_$1,
+[ac_cv_prog_cxx_$1=no
+ac_save_CXX=$CXX
+AC_LANG_CONFTEST([AC_LANG_PROGRAM([$2], [$3])])
+for ac_arg in '' $4
+do
+ CXX="$ac_save_CXX $ac_arg"
+ _AC_COMPILE_IFELSE([], [ac_cv_prog_cxx_$1=$ac_arg])
+ test "x$ac_cv_prog_cxx_$1" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CXX=$ac_save_CXX
+])# AC_CACHE_VAL
+ac_prog_cxx_stdcxx_options=
+case "x$ac_cv_prog_cxx_$1" in
+ x)
+ AC_MSG_RESULT([none needed]) ;;
+ xno)
+ AC_MSG_RESULT([unsupported]) ;;
+ *)
+ ac_prog_cxx_stdcxx_options=" $ac_cv_prog_cxx_$1"
+ CXX=$CXX$ac_prog_cxx_stdcxx_options
+ AC_MSG_RESULT([$ac_cv_prog_cxx_$1]) ;;
+esac
+AC_LANG_POP(C++)dnl
+AS_IF([test "x$ac_cv_prog_cxx_$1" != xno], [$5], [$6])
+])# _AC_CXX_STD_TRY
+
+# _AC_CXX_CXX98_TEST_HEADER
+# -------------------------
+# A C++ header suitable for testing for CXX98.
+AC_DEFUN([_AC_CXX_CXX98_TEST_HEADER],
+[[
+#include <algorithm>
+#include <cstdlib>
+#include <fstream>
+#include <iomanip>
+#include <iostream>
+#include <list>
+#include <map>
+#include <set>
+#include <sstream>
+#include <stdexcept>
+#include <string>
+#include <utility>
+#include <vector>
+
+namespace test {
+ typedef std::vector<std::string> string_vec;
+ typedef std::pair<int,bool> map_value;
+ typedef std::map<std::string,map_value> map_type;
+ typedef std::set<int> set_type;
+
+ template<typename T>
+ class printer {
+ public:
+ printer(std::ostringstream& os): os(os) {}
+ void operator() (T elem) { os << elem << std::endl; }
+ private:
+ std::ostringstream& os;
+ };
+}
+]])# _AC_CXX_CXX98_TEST_HEADER
+
+# _AC_CXX_CXX98_TEST_BODY
+# -----------------------
+# A C++ body suitable for testing for CXX98, assuming the corresponding header.
+AC_DEFUN([_AC_CXX_CXX98_TEST_BODY],
+[[
+
+try {
+ // Basic string.
+ std::string teststr("ASCII text");
+ teststr += " string";
+
+ // Simple vector.
+ test::string_vec testvec;
+ testvec.push_back(teststr);
+ testvec.push_back("foo");
+ testvec.push_back("bar");
+ if (testvec.size() != 3) {
+ throw std::runtime_error("vector size is not 1");
+ }
+
+ // Dump vector into stringstream and obtain string.
+ std::ostringstream os;
+ for (test::string_vec::const_iterator i = testvec.begin();
+ i != testvec.end(); ++i) {
+ if (i + 1 != testvec.end()) {
+ os << teststr << '\n';
+ }
+ }
+ // Check algorithms work.
+ std::for_each(testvec.begin(), testvec.end(), test::printer<std::string>(os));
+ std::string os_out = os.str();
+
+ // Test pair and map.
+ test::map_type testmap;
+ testmap.insert(std::make_pair(std::string("key"),
+ std::make_pair(53,false)));
+
+ // Test set.
+ int values[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, 14, 19, 17, 8, 6, 20, 16, 2, 11, 1};
+ test::set_type testset(values, values + sizeof(values)/sizeof(values[0]));
+ std::list<int> testlist(testset.begin(), testset.end());
+ std::copy(testset.begin(), testset.end(), std::back_inserter(testlist));
+} catch (const std::exception& e) {
+ std::cerr << "Caught exception: " << e.what() << std::endl;
+
+ // Test fstream
+ std::ofstream of("test.txt");
+ of << "Test ASCII text\n" << std::flush;
+ of << "N= " << std::hex << std::setw(8) << std::left << 534 << std::endl;
+ of.close();
+}
+std::exit(0);
+]])
+
+# _AC_CXX_CXX11_TEST_HEADER
+# -------------------------
+# A C++ header suitable for testing for CXX11.
+AC_DEFUN([_AC_CXX_CXX11_TEST_HEADER],
+[[
+#include <deque>
+#include <functional>
+#include <memory>
+#include <tuple>
+#include <array>
+#include <regex>
+#include <iostream>
+
+namespace cxx11test
+{
+ typedef std::shared_ptr<std::string> sptr;
+ typedef std::weak_ptr<std::string> wptr;
+
+ typedef std::tuple<std::string,int,double> tp;
+ typedef std::array<int, 20> int_array;
+
+ constexpr int get_val() { return 20; }
+
+ struct testinit
+ {
+ int i;
+ double d;
+ };
+
+ class delegate {
+ public:
+ delegate(int n) : n(n) {}
+ delegate(): delegate(2354) {}
+
+ virtual int getval() { return this->n; };
+ protected:
+ int n;
+ };
+
+ class overridden : public delegate {
+ public:
+ overridden(int n): delegate(n) {}
+ virtual int getval() override final { return this->n * 2; }
+ };
+
+ class nocopy {
+ public:
+ nocopy(int i): i(i) {}
+ nocopy() = default;
+ nocopy(const nocopy&) = delete;
+ nocopy & operator=(const nocopy&) = delete;
+ private:
+ int i;
+ };
+}
+]])# _AC_CXX_CXX11_TEST_HEADER
+
+# _AC_CXX_CXX11_TEST_BODY
+# -----------------------
+# A C++ body suitable for testing for CXX11, assuming the corresponding header.
+AC_DEFUN([_AC_CXX_CXX11_TEST_BODY],
+[[
+{
+ // Test auto and decltype
+ std::deque<int> d;
+ d.push_front(43);
+ d.push_front(484);
+ d.push_front(3);
+ d.push_front(844);
+ int total = 0;
+ for (auto i = d.begin(); i != d.end(); ++i) { total += *i; }
+
+ auto a1 = 6538;
+ auto a2 = 48573953.4;
+ auto a3 = "String literal";
+
+ decltype(a2) a4 = 34895.034;
+}
+{
+ // Test constexpr
+ short sa[cxx11test::get_val()] = { 0 };
+}
+{
+ // Test initializer lists
+ cxx11test::testinit il = { 4323, 435234.23544 };
+}
+{
+ // Test range-based for and lambda
+ cxx11test::int_array array = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, 14, 19, 17, 8, 6, 20, 16, 2, 11, 1};
+ for (int &x : array) { x += 23; }
+ std::for_each(array.begin(), array.end(), [](int v1){ std::cout << v1; });
+}
+{
+ using cxx11test::sptr;
+ using cxx11test::wptr;
+
+ sptr sp(new std::string("ASCII string"));
+ wptr wp(sp);
+ sptr sp2(wp);
+}
+{
+ cxx11test::tp tuple("test", 54, 45.53434);
+ double d = std::get<2>(tuple);
+ std::string s;
+ int i;
+ std::tie(s,i,d) = tuple;
+}
+{
+ static std::regex filename_regex("^_?([a-z0-9_.]+-)+[a-z0-9]+$");
+ std::string testmatch("Test if this string matches");
+ bool match = std::regex_search(testmatch, filename_regex);
+}
+{
+ cxx11test::int_array array = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, 14, 19, 17, 8, 6, 20, 16, 2, 11, 1};
+ cxx11test::int_array::size_type size = array.size();
+}
+{
+ // Test constructor delegation
+ cxx11test::delegate d1;
+ cxx11test::delegate d2();
+ cxx11test::delegate d3(45);
+}
+{
+ // Test override and final
+ cxx11test::overridden o1(55464);
+}
+{
+ // Test nullptr
+ char *c = nullptr;
+}
+{
+ // Test template brackets
+ std::vector<std::pair<int,char*>> v1;
+}
+{
+ // Unicode literals
+ char const *utf8 = u8"UTF-8 string \u2500";
+ char16_t const *utf16 = u"UTF-8 string \u2500";
+ char32_t const *utf32 = U"UTF-32 string \u2500";
+}
+]])
+
+# _AC_PROG_CXX_CXX98 ([ACTION-IF-AVAILABLE], [ACTION-IF-UNAVAILABLE])
+# -------------------------------------------------------------------
+
+# If the C++ compiler is not in ISO C++98 mode by default, try to add
+# an option to output variable CXX to make it so. This macro tries
+# various options that select ISO C++98 on some system or another. It
+# considers the compiler to be in ISO C++98 mode if it handles basic
+# features of the std namespace including: string, containers (list,
+# map, set, vector), streams (fstreams, iostreams, stringstreams,
+# iomanip), pair, exceptions and algorithms.
+
+
+AC_DEFUN([_AC_PROG_CXX_CXX98],
+[_AC_CXX_STD_TRY([cxx98],
+[_AC_CXX_CXX98_TEST_HEADER],
+[_AC_CXX_CXX98_TEST_BODY],
+dnl Try
+dnl GCC -std=gnu++98 (unused restrictive mode: -std=c++98)
+dnl IBM XL C -qlanglvl=extended
+dnl HP aC++ -AA
+dnl Intel ICC -std=gnu++98
+dnl Solaris N/A (default)
+dnl Tru64 N/A (default, but -std gnu could be used)
+dnl with extended modes being tried first.
+[[-std=gnu++98 -std=c++98 -qlanglvl=extended -AA]], [$1], [$2])[]dnl
+])# _AC_PROG_CXX_CXX98
+
+# _AC_PROG_CXX_CXX11 ([ACTION-IF-AVAILABLE], [ACTION-IF-UNAVAILABLE])
+# -------------------------------------------------------------------
+# If the C++ compiler is not in ISO CXX11 mode by default, try to add
+# an option to output variable CXX to make it so. This macro tries
+# various options that select ISO C++11 on some system or another. It
+# considers the compiler to be in ISO C++11 mode if it handles all the
+# tests from the C++98 checks, plus the following: Language features
+# (auto, constexpr, decltype, default/deleted constructors, delegate
+# constructors, final, initializer lists, lambda functions, nullptr,
+# override, range-based for loops, template brackets without spaces,
+# unicode literals) and library features (array, memory (shared_ptr,
+# weak_ptr), regex and tuple types).
+AC_DEFUN([_AC_PROG_CXX_CXX11],
+[_AC_CXX_STD_TRY([cxx11],
+[_AC_CXX_CXX11_TEST_HEADER
+_AC_CXX_CXX98_TEST_HEADER],
+[_AC_CXX_CXX11_TEST_BODY
+_AC_CXX_CXX98_TEST_BODY],
+dnl Try
+dnl GCC -std=gnu++11 (unused restrictive mode: -std=c++11) [and 0x variants]
+dnl IBM XL C -qlanglvl=extended0x
+dnl (pre-V12.1; unused restrictive mode: -qlanglvl=stdcxx11)
+dnl HP aC++ -AA
+dnl Intel ICC -std=c++11 -std=c++0x
+dnl Solaris N/A (no support)
+dnl Tru64 N/A (no support)
+dnl with extended modes being tried first.
+[[-std=gnu++11 -std=c++11 -std=gnu++0x -std=c++0x -qlanglvl=extended0x -AA]], [$1], [$2])[]dnl
+])# _AC_PROG_CXX_CXX11
diff --git a/m4/stdalign.m4 b/m4/stdalign.m4
index 49980cd..3a12658 100644
--- a/m4/stdalign.m4
+++ b/m4/stdalign.m4
@@ -1,6 +1,6 @@
# Check for stdalign.h that conforms to C11.
-dnl Copyright 2011-2016 Free Software Foundation, Inc.
+dnl Copyright 2011-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.
diff --git a/m4/stdarg.m4 b/m4/stdarg.m4
index ab3e7f5..40db5e4 100644
--- a/m4/stdarg.m4
+++ b/m4/stdarg.m4
@@ -1,5 +1,5 @@
# stdarg.m4 serial 6
-dnl Copyright (C) 2006, 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2008-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.
diff --git a/m4/stdbool.m4 b/m4/stdbool.m4
index 2a9b1db..d368123 100644
--- a/m4/stdbool.m4
+++ b/m4/stdbool.m4
@@ -1,6 +1,6 @@
# Check for stdbool.h that conforms to C99.
-dnl Copyright (C) 2002-2006, 2009-2016 Free Software Foundation, Inc.
+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.
diff --git a/m4/stddef_h.m4 b/m4/stddef_h.m4
index c045c65..f45def1 100644
--- a/m4/stddef_h.m4
+++ b/m4/stddef_h.m4
@@ -1,6 +1,6 @@
dnl A placeholder for <stddef.h>, for platforms that have issues.
# stddef_h.m4 serial 5
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 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.
diff --git a/m4/stdint.m4 b/m4/stdint.m4
index 1d0d951..4ac854d 100644
--- a/m4/stdint.m4
+++ b/m4/stdint.m4
@@ -1,5 +1,5 @@
# stdint.m4 serial 50
-dnl Copyright (C) 2001-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-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.
diff --git a/m4/stdio_h.m4 b/m4/stdio_h.m4
index eaa25a0..9ffbb85 100644
--- a/m4/stdio_h.m4
+++ b/m4/stdio_h.m4
@@ -1,5 +1,5 @@
# stdio_h.m4 serial 48
-dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-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.
diff --git a/m4/stdlib_h.m4 b/m4/stdlib_h.m4
index 3999068..110fe2d 100644
--- a/m4/stdlib_h.m4
+++ b/m4/stdlib_h.m4
@@ -1,5 +1,5 @@
# stdlib_h.m4 serial 43
-dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-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.
diff --git a/m4/strdup.m4 b/m4/strdup.m4
index ff7060a..a92dbd6 100644
--- a/m4/strdup.m4
+++ b/m4/strdup.m4
@@ -1,6 +1,6 @@
# strdup.m4 serial 13
-dnl Copyright (C) 2002-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-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,
diff --git a/m4/strerror.m4 b/m4/strerror.m4
index e286594..460ddc9 100644
--- a/m4/strerror.m4
+++ b/m4/strerror.m4
@@ -1,5 +1,5 @@
# strerror.m4 serial 17
-dnl Copyright (C) 2002, 2007-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2007-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.
diff --git a/m4/string_h.m4 b/m4/string_h.m4
index 0c5ec6f..3d2ad22 100644
--- a/m4/string_h.m4
+++ b/m4/string_h.m4
@@ -1,6 +1,6 @@
# Configure a GNU-like replacement for <string.h>.
-# Copyright (C) 2007-2016 Free Software Foundation, Inc.
+# Copyright (C) 2007-2017 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.
diff --git a/m4/strverscmp.m4 b/m4/strverscmp.m4
index 5524294..cbcca3f 100644
--- a/m4/strverscmp.m4
+++ b/m4/strverscmp.m4
@@ -1,5 +1,5 @@
# strverscmp.m4 serial 8
-dnl Copyright (C) 2002, 2005-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2005-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.
diff --git a/m4/symlink.m4 b/m4/symlink.m4
index d15d915..220ea19 100644
--- a/m4/symlink.m4
+++ b/m4/symlink.m4
@@ -1,7 +1,7 @@
# serial 6
# See if we need to provide symlink replacement.
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 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.
diff --git a/m4/sys_socket_h.m4 b/m4/sys_socket_h.m4
index ae500c7..3ecbe7c 100644
--- a/m4/sys_socket_h.m4
+++ b/m4/sys_socket_h.m4
@@ -1,5 +1,5 @@
# sys_socket_h.m4 serial 23
-dnl Copyright (C) 2005-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-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.
diff --git a/m4/sys_stat_h.m4 b/m4/sys_stat_h.m4
index 3d43b6f..1e34ac4 100644
--- a/m4/sys_stat_h.m4
+++ b/m4/sys_stat_h.m4
@@ -1,5 +1,5 @@
# sys_stat_h.m4 serial 28 -*- Autoconf -*-
-dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-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.
diff --git a/m4/sys_time_h.m4 b/m4/sys_time_h.m4
index 3061a9c..e622dbe 100644
--- a/m4/sys_time_h.m4
+++ b/m4/sys_time_h.m4
@@ -1,7 +1,7 @@
# Configure a replacement for <sys/time.h>.
# serial 8
-# Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2009-2017 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.
diff --git a/m4/sys_types_h.m4 b/m4/sys_types_h.m4
index 159b005..2eb4e9e 100644
--- a/m4/sys_types_h.m4
+++ b/m4/sys_types_h.m4
@@ -1,5 +1,5 @@
# sys_types_h.m4 serial 6
-dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-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.
diff --git a/m4/tempname.m4 b/m4/tempname.m4
index acf4c8d..a59f4c0 100644
--- a/m4/tempname.m4
+++ b/m4/tempname.m4
@@ -1,6 +1,6 @@
#serial 5
-# Copyright (C) 2006-2007, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2006-2007, 2009-2017 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.
diff --git a/m4/threadlib.m4 b/m4/threadlib.m4
index 2b6b6cf..f79fde2 100644
--- a/m4/threadlib.m4
+++ b/m4/threadlib.m4
@@ -1,5 +1,5 @@
# threadlib.m4 serial 12
-dnl Copyright (C) 2005-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-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.
diff --git a/m4/time_h.m4 b/m4/time_h.m4
index eb2a631..b925678 100644
--- a/m4/time_h.m4
+++ b/m4/time_h.m4
@@ -1,6 +1,6 @@
# Configure a more-standard replacement for <time.h>.
-# Copyright (C) 2000-2001, 2003-2007, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2003-2007, 2009-2017 Free Software Foundation, Inc.
# serial 9
diff --git a/m4/ungetc.m4 b/m4/ungetc.m4
index e5d10eb..9fd3db9 100644
--- a/m4/ungetc.m4
+++ b/m4/ungetc.m4
@@ -1,5 +1,5 @@
# ungetc.m4 serial 3
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 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.
diff --git a/m4/unistd_h.m4 b/m4/unistd_h.m4
index 46ff109..25aef19 100644
--- a/m4/unistd_h.m4
+++ b/m4/unistd_h.m4
@@ -1,5 +1,5 @@
# unistd_h.m4 serial 69
-dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-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.
diff --git a/m4/unlocked-io.m4 b/m4/unlocked-io.m4
index c29ec20..448ccac 100644
--- a/m4/unlocked-io.m4
+++ b/m4/unlocked-io.m4
@@ -1,6 +1,6 @@
# unlocked-io.m4 serial 15
-# Copyright (C) 1998-2006, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 1998-2006, 2009-2017 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff --git a/m4/version-etc.m4 b/m4/version-etc.m4
index a719182..c099101 100644
--- a/m4/version-etc.m4
+++ b/m4/version-etc.m4
@@ -1,5 +1,5 @@
# version-etc.m4 serial 1
-# Copyright (C) 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2009-2017 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.
diff --git a/m4/warn-on-use.m4 b/m4/warn-on-use.m4
index 08440ec..25ce737 100644
--- a/m4/warn-on-use.m4
+++ b/m4/warn-on-use.m4
@@ -1,5 +1,5 @@
# warn-on-use.m4 serial 5
-dnl Copyright (C) 2010-2016 Free Software Foundation, Inc.
+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.
diff --git a/m4/warnings.m4 b/m4/warnings.m4
index 924e21d..e697174 100644
--- a/m4/warnings.m4
+++ b/m4/warnings.m4
@@ -1,5 +1,5 @@
# warnings.m4 serial 11
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-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.
diff --git a/m4/wchar_h.m4 b/m4/wchar_h.m4
index 16017a5..d0e11a0 100644
--- a/m4/wchar_h.m4
+++ b/m4/wchar_h.m4
@@ -1,6 +1,6 @@
dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues.
-dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-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.
diff --git a/m4/wchar_t.m4 b/m4/wchar_t.m4
index 2db8c3f..11783d2 100644
--- a/m4/wchar_t.m4
+++ b/m4/wchar_t.m4
@@ -1,5 +1,5 @@
# wchar_t.m4 serial 4 (gettext-0.18.2)
-dnl Copyright (C) 2002-2003, 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2003, 2008-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.
diff --git a/m4/wcrtomb.m4 b/m4/wcrtomb.m4
index 267b3c9..0aa040d 100644
--- a/m4/wcrtomb.m4
+++ b/m4/wcrtomb.m4
@@ -1,5 +1,5 @@
# wcrtomb.m4 serial 11
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-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.
diff --git a/m4/wctob.m4 b/m4/wctob.m4
index bdb5299..492f4c8 100644
--- a/m4/wctob.m4
+++ b/m4/wctob.m4
@@ -1,5 +1,5 @@
# wctob.m4 serial 10
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-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.
diff --git a/m4/wctomb.m4 b/m4/wctomb.m4
index 7c8b3ef..dc1860f 100644
--- a/m4/wctomb.m4
+++ b/m4/wctomb.m4
@@ -1,5 +1,5 @@
# wctomb.m4 serial 2
-dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-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.
diff --git a/m4/wctype_h.m4 b/m4/wctype_h.m4
index accc001..45ddaeb 100644
--- a/m4/wctype_h.m4
+++ b/m4/wctype_h.m4
@@ -2,7 +2,7 @@
dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it.
-dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-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.
diff --git a/m4/wint_t.m4 b/m4/wint_t.m4
index 59b22bf..65e25a4 100644
--- a/m4/wint_t.m4
+++ b/m4/wint_t.m4
@@ -1,5 +1,5 @@
# wint_t.m4 serial 6
-dnl Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2007-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.
diff --git a/m4/xalloc.m4 b/m4/xalloc.m4
index f4f540d..53aba14 100644
--- a/m4/xalloc.m4
+++ b/m4/xalloc.m4
@@ -1,5 +1,5 @@
# xalloc.m4 serial 18
-dnl Copyright (C) 2002-2006, 2009-2016 Free Software Foundation, Inc.
+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.
diff --git a/maint.mk b/maint.mk
index 53a1e69..0cabd2f 100644
--- a/maint.mk
+++ b/maint.mk
@@ -2,7 +2,7 @@
# This Makefile fragment tries to be general-purpose enough to be
# used by many projects via the gnulib maintainer-makefile module.
-## Copyright (C) 2001-2016 Free Software Foundation, Inc.
+## Copyright (C) 2001-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
@@ -55,6 +55,10 @@ VC = $(GIT)
VC_LIST = $(srcdir)/$(_build-aux)/vc-list-files -C $(srcdir)
+# You can override this variable in cfg.mk if your gnulib submodule lives
+# in a different location.
+gnulib_dir ?= $(srcdir)/gnulib
+
# You can override this variable in cfg.mk to set your own regexp
# matching files to ignore.
VC_LIST_ALWAYS_EXCLUDE_REGEX ?= ^$$
@@ -657,18 +661,14 @@ sc_prohibit_strings_without_use:
re='\<(strn?casecmp|ffs(ll)?)\>' \
$(_sc_header_without_use)
-# Get the list of symbol names with this:
-# perl -lne '/^# *define ([A-Z]\w+)\(/ and print $1' lib/intprops.h|fmt
-_intprops_names = \
- TYPE_IS_INTEGER TYPE_SIGNED EXPR_SIGNED TYPE_WIDTH TYPE_MINIMUM \
- TYPE_MAXIMUM INT_BITS_STRLEN_BOUND INT_STRLEN_BOUND INT_BUFSIZE_BOUND \
- INT_ADD_RANGE_OVERFLOW INT_SUBTRACT_RANGE_OVERFLOW \
- INT_NEGATE_RANGE_OVERFLOW INT_MULTIPLY_RANGE_OVERFLOW \
- INT_DIVIDE_RANGE_OVERFLOW INT_REMAINDER_RANGE_OVERFLOW \
- INT_LEFT_SHIFT_RANGE_OVERFLOW INT_ADD_OVERFLOW INT_SUBTRACT_OVERFLOW \
- INT_NEGATE_OVERFLOW INT_NEGATE_OVERFLOW INT_MULTIPLY_OVERFLOW \
- INT_DIVIDE_OVERFLOW INT_REMAINDER_OVERFLOW INT_LEFT_SHIFT_OVERFLOW \
- INT_ADD_WRAPV INT_SUBTRACT_WRAPV INT_MULTIPLY_WRAPV
+# Extract the raw list of symbol names with this:
+gl_extract_define_simple = \
+ /^\# *define ([A-Z]\w+)\(/ and print $$1
+# Filter out duplicates and convert to a space-separated list:
+_intprops_names = \
+ $(shell f=$(gnulib_dir)/lib/intprops.h; \
+ perl -lne '$(gl_extract_define_simple)' $$f | sort -u | tr '\n' ' ')
+# Remove trailing space and convert to a regular expression:
_intprops_syms_re = $(subst $(_sp),|,$(strip $(_intprops_names)))
# Prohibit the inclusion of intprops.h without an actual use.
sc_prohibit_intprops_without_use:
@@ -983,10 +983,11 @@ sc_prohibit_doubled_word:
# Also prohibit a prefix matching "\w+ +".
# @pxref gets the same see/also treatment and should be parenthesized;
# presume it must *not* start a sentence.
+# POSIX spells it "timestamp" rather than "time\s+stamp", so we do, too.
bad_xref_re_ ?= (?:[\w,:;] +|(?:see|also)\s+)\@xref\{
bad_pxref_re_ ?= (?:[.!?]|(?:see|also))\s+\@pxref\{
prohibit_undesirable_word_seq_RE_ ?= \
- /(?:\bcan\s+not\b|$(bad_xref_re_)|$(bad_pxref_re_))/gims
+ /(?:\bcan\s+not\b|\btime\s+stamps?\b|$(bad_xref_re_)|$(bad_pxref_re_))/gims
prohibit_undesirable_word_seq_ = \
-e 'while ($(prohibit_undesirable_word_seq_RE_))' \
$(perl_filename_lineno_text_)
@@ -1292,7 +1293,6 @@ vc-diff-check:
rel-files = $(DIST_ARCHIVES)
-gnulib_dir ?= $(srcdir)/gnulib
gnulib-version = $$(cd $(gnulib_dir) \
&& { git describe || git rev-parse --short=10 HEAD; } )
bootstrap-tools ?= autoconf,automake,gnulib
@@ -1502,7 +1502,10 @@ gen-coverage:
--highlight --frames --legend \
--title "$(PACKAGE_NAME)"
-coverage: init-coverage build-coverage gen-coverage
+coverage:
+ $(MAKE) init-coverage
+ $(MAKE) build-coverage
+ $(MAKE) gen-coverage
# Some projects carry local adjustments for gnulib modules via patches in
# a gnulib patch directory whose default name is gl/ (defined in bootstrap
diff --git a/po/af.gmo b/po/af.gmo
index 4561f72..38d4447 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index 58d6405..fce9fd5 100644
--- a/po/af.po
+++ b/po/af.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.0.9\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2004-01-11 21:06+0000\n"
"Last-Translator: Ysbeer <ysbeer@af.org.za>\n"
"Language-Team: Afrikaans <i18n@af.org.za>\n"
@@ -27,18 +27,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Ongeldige karakterklasnaam"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -60,11 +58,11 @@ msgstr "Regex te groot"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/ast.gmo b/po/ast.gmo
index 323e681..a6c38e6 100644
--- a/po/ast.gmo
+++ b/po/ast.gmo
Binary files differ
diff --git a/po/ast.po b/po/ast.po
index d882e88..7cd1039 100644
--- a/po/ast.po
+++ b/po/ast.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.0\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2009-11-19 21:36+0100\n"
"Last-Translator: Marquinos <maacub@gmail.com>\n"
"Language-Team: Asturian <ubuntu-l10n-ast@lists.ubuntu.com>\n"
@@ -27,18 +27,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Caráuter de nome de clase inválidu"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -60,11 +58,11 @@ msgstr "Espresión regular enforma grande"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/bg.gmo b/po/bg.gmo
index ef896ce..6ef0558 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index b2382da..2012082 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.2.177\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2016-12-29 13:53+0200\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language-Team: Bulgarian <dict@ludost.net>\n"
@@ -26,17 +26,15 @@ msgstr "грешка при запиÑ"
msgid "preserving permissions for %s"
msgstr "запазване на правата за „%s“"
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr "„[“ без еш"
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
msgid "invalid character class"
msgstr "неправилен ÐºÐ»Ð°Ñ Ð·Ð½Ð°Ñ†Ð¸"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr "ÐºÐ»Ð°Ñ Ð·Ð½Ð°Ñ†Ð¸ Ñе указва чрез „[[:ИМЕ:]]“, а не „[:ИМЕ:]“"
@@ -56,11 +54,11 @@ msgstr "прекалено голÑм регулÑрен израз"
msgid "unbalanced ("
msgstr "„(“ без еш"
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr "не е зададен ÑинтакÑиÑ"
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr "„)“ без еш"
diff --git a/po/ca.gmo b/po/ca.gmo
index 0de8701..ab6f551 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 9f0b8c8..c224fc5 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.1\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2010-11-04 23:28+0100\n"
"Last-Translator: Jordi Mallach <jordi@gnu.org>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
@@ -27,18 +27,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Nom de classe de caràcter no vàlid"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -60,11 +58,11 @@ msgstr "L'expressió regular és massa gran"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/cs.gmo b/po/cs.gmo
index 66a9087..3bc2c4c 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 95cdbbe..e4a8fd7 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.2\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2016-06-19 20:26+02:00\n"
"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -28,18 +28,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Chybný název třídu znaků"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -61,11 +59,11 @@ msgstr "Regulární výraz je příliš velký"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/da.gmo b/po/da.gmo
index 5621c24..a89c1ca 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 0690e09..356d271 100644
--- a/po/da.po
+++ b/po/da.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed-4.2.2\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2016-10-15 19:06+0200\n"
"Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -28,18 +28,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Ugyldigt navn på tegnklasse"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -61,11 +59,11 @@ msgstr "Regulært udtryk for stort"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/de.gmo b/po/de.gmo
index 1f9ebad..6e6f5c8 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 995aa5f..c16f152 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.2.177\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2016-12-10 23:42+0100\n"
"Last-Translator: Walter Koch <koch@u32.de>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -29,17 +29,15 @@ msgstr "Schreibfehler"
msgid "preserving permissions for %s"
msgstr "behalte Rechte für %s bei"
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr "nicht geschlossenes ["
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
msgid "invalid character class"
msgstr "Ungültige Zeichenklasse"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr "Die Syntax für Zeichenklasse lautet [[:space:]], nicht [:space:]"
@@ -59,11 +57,11 @@ msgstr "Regulärer Ausdruck ist zu groß"
msgid "unbalanced ("
msgstr "nicht geschlossenes ("
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr "keine Syntax angegeben"
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr "nicht geschlossens )"
diff --git a/po/el.gmo b/po/el.gmo
index 4f6c58a..d5864f8 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index af9a10f..2e441be 100644
--- a/po/el.po
+++ b/po/el.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU sed 4.2.1\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2012-03-17 16:30+0100\n"
"Last-Translator: Savvas Radevic <vicedar@gmail.com>\n"
"Language-Team: Greek <team@lists.gnome.gr>\n"
@@ -28,18 +28,16 @@ msgstr "εσωτεÏικό σφάλμα"
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Μη έγκυÏο όνομα κλάσης χαÏακτήÏων"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -61,11 +59,11 @@ msgstr "Î Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î· κανονική έκφÏαση"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/eo.gmo b/po/eo.gmo
index 7cd7597..ffd3c31 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index d25ba85..03b1f8d 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -1,15 +1,15 @@
# Esperantaj mesaÄoj por GNU sed.
-# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2013, 2016 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2013, 2016, 2017 Free Software Foundation, Inc.
# This file is distributed under the same license as the sed package.
# Edmund GRIMLEY EVANS <edmundo@rano.org> 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008.
-# Felipe Castro <fefcas@gmail.com> 2013, 2016.
+# Felipe Castro <fefcas@gmail.com> 2013, 2016, 2017.
#
msgid ""
msgstr ""
-"Project-Id-Version: GNU sed 4.2.2\n"
+"Project-Id-Version: GNU sed 4.2.2.177\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
-"PO-Revision-Date: 2016-11-13 22:08-0300\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
+"PO-Revision-Date: 2017-01-26 23:31-0300\n"
"Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
"Language: eo\n"
@@ -19,125 +19,120 @@ msgstr ""
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.5.4\n"
+"X-Poedit-Basepath: /home/ipe/tradukado_eo/plenumitaj\n"
#: lib/closeout.c:112
msgid "write error"
-msgstr ""
+msgstr "skrib-eraro"
#: lib/copy-acl.c:54
#, c-format
msgid "preserving permissions for %s"
-msgstr ""
+msgstr "ni tenas la permesojn por %s"
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
-msgstr ""
+msgstr "ne spegulita ["
-#: lib/dfa.c:1083
-#, fuzzy
+#: lib/dfa.c:1071
msgid "invalid character class"
-msgstr "Nevalida nomo de signoklaso"
+msgstr "nevalida signoklaso"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
-msgstr ""
+msgstr "sintakso de signoklaso estas [[:spaco:]], ne [:spaco:]"
#: lib/dfa.c:1275
msgid "unfinished \\ escape"
-msgstr ""
+msgstr "nefinigita kodÅanÄa \\"
#: lib/dfa.c:1436
-#, fuzzy
msgid "invalid content of \\{\\}"
-msgstr "Nevalida enhavo de \\{\\}"
+msgstr "nevalida enhavo de \\{\\}"
#: lib/dfa.c:1439
-#, fuzzy
msgid "regular expression too big"
-msgstr "Regula esprimo tro granda"
+msgstr "regula esprimo tro granda"
#: lib/dfa.c:1853
msgid "unbalanced ("
-msgstr ""
+msgstr "ne spegulita ("
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
-msgstr ""
+msgstr "neniu sintakso estis indikata"
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
-msgstr ""
+msgstr "ne spegulita )"
#: lib/error.c:191
msgid "Unknown system error"
-msgstr ""
+msgstr "Nekonata sistem-eraro"
#: lib/getopt.c:575 lib/getopt.c:604
#, c-format
msgid "%s: option '%s' is ambiguous; possibilities:"
-msgstr ""
+msgstr "%s: modifilo '%s' estas plursenca; eblecoj:"
#: lib/getopt.c:619
#, c-format
msgid "%s: option '%s' is ambiguous\n"
-msgstr ""
+msgstr "%s: modifilo '%s' estas plursenca\n"
#: lib/getopt.c:654 lib/getopt.c:658
#, c-format
msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr ""
+msgstr "%s: modifilo '--%s' ne permesas argumenton\n"
#: lib/getopt.c:667 lib/getopt.c:672
#, c-format
msgid "%s: option '%c%s' doesn't allow an argument\n"
-msgstr ""
+msgstr "%s: modifilo '%c%s' ne permesas argumenton\n"
#: lib/getopt.c:715 lib/getopt.c:734
#, c-format
msgid "%s: option '--%s' requires an argument\n"
-msgstr ""
+msgstr "%s: modifilo '--%s' postulas argumenton\n"
#: lib/getopt.c:772 lib/getopt.c:775
#, c-format
msgid "%s: unrecognized option '--%s'\n"
-msgstr ""
+msgstr "%s: nerekonata modifilo '--%s'\n"
#: lib/getopt.c:783 lib/getopt.c:786
#, c-format
msgid "%s: unrecognized option '%c%s'\n"
-msgstr ""
+msgstr "%s: nerekonata modifilo '%c%s'\n"
#: lib/getopt.c:835 lib/getopt.c:838
#, c-format
msgid "%s: invalid option -- '%c'\n"
-msgstr ""
+msgstr "%s: malvalida modifilo -- '%c'\n"
#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
-msgstr ""
+msgstr "%s: modifilo postulas argumenton -- '%c'\n"
#: lib/getopt.c:964 lib/getopt.c:980
#, c-format
msgid "%s: option '-W %s' is ambiguous\n"
-msgstr ""
+msgstr "%s: modifilo '-W %s' estas plursenca\n"
#: lib/getopt.c:1004 lib/getopt.c:1022
#, c-format
msgid "%s: option '-W %s' doesn't allow an argument\n"
-msgstr ""
+msgstr "%s: modifilo '-W %s' ne permesas argumenton\n"
#: lib/getopt.c:1043 lib/getopt.c:1061
#, c-format
msgid "%s: option '-W %s' requires an argument\n"
-msgstr ""
+msgstr "%s: modifilo '-W %s' postulas argumenton\n"
#: lib/obstack.c:338 lib/obstack.c:340 lib/xalloc-die.c:34
-#, fuzzy
msgid "memory exhausted"
-msgstr "Mankas memoro"
+msgstr "mankas memoro"
#. TRANSLATORS:
#. Get translations for open and closing quotation marks.
@@ -162,11 +157,11 @@ msgstr "Mankas memoro"
#. and use glyphs suitable for your language.
#: lib/quotearg.c:354
msgid "`"
-msgstr ""
+msgstr "‘"
#: lib/quotearg.c:355
msgid "'"
-msgstr ""
+msgstr "’"
#: lib/regcomp.c:135
msgid "Success"
@@ -197,9 +192,8 @@ msgid "Invalid back reference"
msgstr "Nevalida retroreferenco"
#: lib/regcomp.c:156
-#, fuzzy
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "Neparigita [ aÅ­ [^"
+msgstr "Neparigita [, [^, [:, [., aÅ­ [="
#: lib/regcomp.c:159
msgid "Unmatched ( or \\("
@@ -244,24 +238,24 @@ msgstr "Mankas antaÅ­a regula esprimo"
#: lib/set-acl.c:46
#, c-format
msgid "setting permissions for %s"
-msgstr ""
+msgstr "ni difinas permesojn por %s"
#: lib/version-etc.c:74
#, c-format
msgid "Packaged by %s (%s)\n"
-msgstr ""
+msgstr "Pakigita de %s (%s)\n"
#: lib/version-etc.c:77
#, c-format
msgid "Packaged by %s\n"
-msgstr ""
+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
msgid "(C)"
-msgstr ""
+msgstr "©"
#: lib/version-etc.c:86
msgid ""
@@ -272,24 +266,31 @@ msgid ""
"There is NO WARRANTY, to the extent permitted by law.\n"
"\n"
msgstr ""
+"\n"
+"Permeso GPLv3+: GNU GPL versio 3 aÅ­ posta <http://gnu.org/licenses/gpl."
+"html>.\n"
+"Tio ĉi estas libera programaro: vi estas libera por ÅanÄi kaj redisdoni "
+"Äin.\n"
+"Ekzistas NENIU GARANTIO, laÅ­ plej amplekse permesate de la leÄoj.\n"
+"\n"
#. TRANSLATORS: %s denotes an author name.
#: lib/version-etc.c:102
#, c-format
msgid "Written by %s.\n"
-msgstr ""
+msgstr "Verkita de %s.\n"
#. TRANSLATORS: Each %s denotes an author name.
#: lib/version-etc.c:106
#, c-format
msgid "Written by %s and %s.\n"
-msgstr ""
+msgstr "Verkita de %s kaj %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 ""
+msgstr "Verkita de %s, %s, kaj %s.\n"
#. TRANSLATORS: Each %s denotes an author name.
#. You can use line breaks, estimating that each author name occupies
@@ -300,6 +301,8 @@ msgid ""
"Written by %s, %s, %s,\n"
"and %s.\n"
msgstr ""
+"Verkita de %s, %s, %s,\n"
+"kaj %s.\n"
#. TRANSLATORS: Each %s denotes an author name.
#. You can use line breaks, estimating that each author name occupies
@@ -310,6 +313,8 @@ msgid ""
"Written by %s, %s, %s,\n"
"%s, and %s.\n"
msgstr ""
+"Verkita de %s, %s, %s,\n"
+"%s, kaj %s.\n"
#. TRANSLATORS: Each %s denotes an author name.
#. You can use line breaks, estimating that each author name occupies
@@ -320,6 +325,8 @@ msgid ""
"Written by %s, %s, %s,\n"
"%s, %s, and %s.\n"
msgstr ""
+"Verkita de %s, %s, %s,\n"
+"%s, %s, kaj %s.\n"
#. TRANSLATORS: Each %s denotes an author name.
#. You can use line breaks, estimating that each author name occupies
@@ -330,6 +337,8 @@ msgid ""
"Written by %s, %s, %s,\n"
"%s, %s, %s, and %s.\n"
msgstr ""
+"Verkita de %s, %s, %s,\n"
+"%s, %s, %s, kaj %s.\n"
#. TRANSLATORS: Each %s denotes an author name.
#. You can use line breaks, estimating that each author name occupies
@@ -341,6 +350,9 @@ msgid ""
"%s, %s, %s, %s,\n"
"and %s.\n"
msgstr ""
+"Verkita de %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"kaj %s.\n"
#. TRANSLATORS: Each %s denotes an author name.
#. You can use line breaks, estimating that each author name occupies
@@ -352,6 +364,9 @@ msgid ""
"%s, %s, %s, %s,\n"
"%s, and %s.\n"
msgstr ""
+"Verkita de %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, kaj %s.\n"
#. TRANSLATORS: Each %s denotes an author name.
#. You can use line breaks, estimating that each author name occupies
@@ -363,6 +378,9 @@ msgid ""
"%s, %s, %s, %s,\n"
"%s, %s, and others.\n"
msgstr ""
+"Verkita de %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, kaj aliaj.\n"
#. TRANSLATORS: The placeholder indicates the bug-reporting address
#. for this package. Please add _another line_ saying
@@ -374,28 +392,29 @@ msgid ""
"\n"
"Report bugs to: %s\n"
msgstr ""
+"\n"
+"Raportu program-misojn al: %s\n"
+"Raportu traduk-misojn al: <translation-team-eo@lists.sourceforge.net>\n"
#: lib/version-etc.c:247
#, c-format
msgid "Report %s bugs to: %s\n"
-msgstr ""
+msgstr "Raportu program-misojn de %s al: %s\n"
#: lib/version-etc.c:251
#, c-format
msgid "%s home page: <%s>\n"
-msgstr ""
+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"
-msgstr ""
+msgstr "%s hejm-paÄo: <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"
msgstr ""
-"HejmpaÄo de GNU sed: <http://www.gnu.org/software/sed/>.\n"
-"Äœenerala helpo por uzi programaron GNU: <http://www.gnu.org/gethelp/>.\n"
+"Äœenerala helpo por uzi programaron GNU: <http://www.gnu.org/gethelp/>\n"
#: sed/compile.c:146
msgid "multiple `!'s"
@@ -504,11 +523,11 @@ msgstr "malkompleta komando"
#: sed/compile.c:188
msgid "\":\" lacks a label"
-msgstr ""
+msgstr "\":\" malhavas etikedon"
#: sed/compile.c:190
msgid "recursive escaping after \\c not allowed"
-msgstr ""
+msgstr "rikura kodÅanÄo post \\c ne estas permesata"
#: sed/compile.c:213
#, c-format
@@ -528,7 +547,7 @@ msgstr "ne povas trovi etikedon por salto al '%s'"
#: sed/execute.c:264 sed/execute.c:281
#, c-format
msgid "case conversion produced an invalid character"
-msgstr ""
+msgstr "uskleco-konverto produktis malvalidan signon"
#: sed/execute.c:575
#, c-format
@@ -614,7 +633,7 @@ msgstr ""
#: sed/sed.c:120
#, c-format
msgid "E-mail bug reports to: <%s>.\n"
-msgstr ""
+msgstr "Raportu program-erarojn al <%s>.\n"
#: sed/sed.c:129
msgid ""
@@ -711,35 +730,35 @@ msgstr ""
" malÅalti ĉiujn GNU-ajn aldonaĵojn.\n"
#: sed/sed.c:161
-#, fuzzy, c-format
+#, c-format
msgid ""
" -E, -r, --regexp-extended\n"
" use extended regular expressions in the script\n"
" (for portability use POSIX -E).\n"
msgstr ""
-" -r, --regexp-extended\n"
-" uzi etenditajn regulajn esprimojn en la programo.\n"
+" -E, -r, --regexp-extended\n"
+" uzi etenditajn regulajn esprimojn en la skripto.\n"
+" (por porteblo uzu POSIX -E).\n"
#: sed/sed.c:167
-#, fuzzy, c-format
+#, c-format
msgid ""
" -s, --separate\n"
" consider files as separate rather than as a single,\n"
" continuous long stream.\n"
msgstr ""
" -s, --separate\n"
-" konsideri dosierojn kiel apartajn anstataÅ­ kiel unu "
-"kontinuan\n"
-" longan fluon.\n"
+" konsideri dosierojn kiel apartajn anstataÅ­ ol unuopa,\n"
+" kontinua longa fluo.\n"
#: sed/sed.c:170
-#, fuzzy, c-format
+#, c-format
msgid ""
" --sandbox\n"
" operate in sandbox mode.\n"
msgstr ""
-" -z, --null-data\n"
-" apartigi liniojn per signoj NUL\n"
+" --sandbox\n"
+" operacii laŭ reÄimo de provejo.\n"
#: sed/sed.c:172
#, c-format
@@ -806,11 +825,11 @@ msgid "couldn't attach to %s: %s"
msgstr "ne povis alligiÄi al %s: %s"
#: sed/utils.c:192
-#, fuzzy, c-format
+#, c-format
msgid "couldn't write %llu item to %s: %s"
msgid_plural "couldn't write %llu items to %s: %s"
-msgstr[0] "ne povis skribi %d eron al %s: %s"
-msgstr[1] "ne povis skribi %d erojn al %s: %s"
+msgstr[0] "ne povis skribi %llu eron al %s: %s"
+msgstr[1] "ne povis skribi %llu erojn al %s: %s"
#: sed/utils.c:204 sed/utils.c:223
#, c-format
diff --git a/po/es.gmo b/po/es.gmo
index 81639a9..03a42a0 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index accece6..478b8f5 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.1\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2011-08-24 12:28-0500\n"
"Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n"
"Language-Team: Spanish <es@li.org>\n"
@@ -27,18 +27,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Carácter de nombre de clase inválido"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -60,11 +58,11 @@ msgstr "Expresión regular demasiado grande"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/et.gmo b/po/et.gmo
index c54042f..71a870d 100644
--- a/po/et.gmo
+++ b/po/et.gmo
Binary files differ
diff --git a/po/et.po b/po/et.po
index e8be755..8ddecdd 100644
--- a/po/et.po
+++ b/po/et.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.2.177\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2016-12-06 16:32+0200\n"
"Last-Translator: Toomas Soome <tsoome@me.com>\n"
"Language-Team: Estonian <linux-ee@lists.eenet.ee>\n"
@@ -29,17 +29,15 @@ msgstr "viga kirjutamisel"
msgid "preserving permissions for %s"
msgstr "säilitan %s õigused"
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr "balanseerimata ["
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
msgid "invalid character class"
msgstr "vigane sümbolite klass"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr "sümbolite klassi süntaks on [[:space:]], mitte [:space:]"
@@ -59,11 +57,11 @@ msgstr "regulaaravaldis on liiga suur"
msgid "unbalanced ("
msgstr "balanseerimata ("
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr "süntaksi pole antud"
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr "balanseerimata )"
diff --git a/po/eu.gmo b/po/eu.gmo
index c7d395b..04a8817 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index ab4a577..a97344e 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.1.1\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2004-07-07 22:11+0200\n"
"Last-Translator: Mikel Olasagasti <hey_neken@mundurat.net>\n"
"Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
@@ -29,17 +29,15 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
msgid "invalid character class"
msgstr ""
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -59,11 +57,11 @@ msgstr ""
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/fi.gmo b/po/fi.gmo
index 3398fbf..4ef86e1 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index 912840b..8d094b8 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.2.177\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2016-12-15 19:17+0200\n"
"Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -33,17 +33,15 @@ msgstr "taltioidaan kohteen %s käyttöoikeudet"
# the older messages are with quotation marks (msgid "unmatched `{'"),
# the newer ones are without quotation marks (msgid "unbalanced [")
# in Finnish translations quotation marks (â€) are used in both cases
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr "pariton â€[â€"
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
msgid "invalid character class"
msgstr "Virheellinen merkkiluokka"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr "merkkiluokan syntaksi on [[:space:]], ei [:space:]"
@@ -63,11 +61,11 @@ msgstr "säännöllinen lauseke on liian suuri"
msgid "unbalanced ("
msgstr "pariton â€(â€"
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr "syntaksia ei ole määritelty"
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr "pariton â€)â€"
diff --git a/po/fr.gmo b/po/fr.gmo
index c4a2d88..f59538c 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 4dcc432..8a5611d 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.1\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2009-11-04 13:22+0100\n"
"Last-Translator: Gael Queri <gael@lautre.net>\n"
"Language-Team: French <traduc@traduc.org>\n"
@@ -31,18 +31,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Nom de classe de caractères invalide"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -64,11 +62,11 @@ msgstr "Expression régulière trop grande"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/ga.gmo b/po/ga.gmo
index de00219..26ed789 100644
--- a/po/ga.gmo
+++ b/po/ga.gmo
Binary files differ
diff --git a/po/ga.po b/po/ga.po
index c588dfc..9543858 100644
--- a/po/ga.po
+++ b/po/ga.po
@@ -1,13 +1,13 @@
# Irish translations for sed
# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
-# Kevin Patrick Scannell <scannell@SLU.EDU>, 2003, 2004, 2006, 2008.
-#
+# This file is distributed under the same license as the sed package.
+# Kevin Patrick Scannell <kscanne@gmail.com>, 2003, 2004, 2006, 2008, 2017.
msgid ""
msgstr ""
-"Project-Id-Version: sed 4.2.0\n"
+"Project-Id-Version: sed 4.2.2.177\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
-"PO-Revision-Date: 2008-01-13 11:04-0500\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
+"PO-Revision-Date: 2017-01-10 11:04-0500\n"
"Last-Translator: Kevin Scannell <kscanne@gmail.com>\n"
"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
"Language: ga\n"
@@ -20,122 +20,117 @@ msgstr ""
#: lib/closeout.c:112
msgid "write error"
-msgstr ""
+msgstr "earráid scríofa"
#: lib/copy-acl.c:54
#, c-format
msgid "preserving permissions for %s"
-msgstr ""
+msgstr "ceadanna %s á gcaomhnú"
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
-msgstr ""
+msgstr "[ corr"
-#: lib/dfa.c:1083
-#, fuzzy
+#: lib/dfa.c:1071
msgid "invalid character class"
-msgstr "Ainm neamhbhailí ar aicme charachtar"
+msgstr "aicme charachtair neamhbhailí"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
+"is é [[:space:]] an chomhréir cheart ar aicme charactair, in áit [:space:]"
#: lib/dfa.c:1275
msgid "unfinished \\ escape"
-msgstr ""
+msgstr "éálúchán \\ gan críochnú"
#: lib/dfa.c:1436
-#, fuzzy
msgid "invalid content of \\{\\}"
-msgstr "Ãbhar neamhbhailí idir \\{\\}"
+msgstr "ábhar neamhbhailí idir \\{\\}"
#: lib/dfa.c:1439
-#, fuzzy
msgid "regular expression too big"
-msgstr "Slonn ionadaíochta rómhór"
+msgstr "slonn ionadaíochta rómhór"
#: lib/dfa.c:1853
msgid "unbalanced ("
-msgstr ""
+msgstr "( corr"
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
-msgstr ""
+msgstr "níor sonraíodh aon chomhréir"
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
-msgstr ""
+msgstr ") corr"
#: lib/error.c:191
msgid "Unknown system error"
-msgstr ""
+msgstr "Earráid chórais anaithnid"
#: lib/getopt.c:575 lib/getopt.c:604
#, c-format
msgid "%s: option '%s' is ambiguous; possibilities:"
-msgstr ""
+msgstr "%s: Tá an rogha '%s' débhríoch; féidearthachtaí:"
#: lib/getopt.c:619
#, c-format
msgid "%s: option '%s' is ambiguous\n"
-msgstr ""
+msgstr "%s: Tá an rogha '%s' débhríoch\n"
#: lib/getopt.c:654 lib/getopt.c:658
#, c-format
msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr ""
+msgstr "%s: ní cheadaítear argóint i ndiaidh na rogha '--%s'\n"
#: lib/getopt.c:667 lib/getopt.c:672
#, c-format
msgid "%s: option '%c%s' doesn't allow an argument\n"
-msgstr ""
+msgstr "%s: ní cheadaítear argóint i ndiaidh na rogha '%c%s'\n"
#: lib/getopt.c:715 lib/getopt.c:734
#, c-format
msgid "%s: option '--%s' requires an argument\n"
-msgstr ""
+msgstr "%s: tá argóint de dhíth i ndiaidh na rogha '--%s'\n"
#: lib/getopt.c:772 lib/getopt.c:775
#, c-format
msgid "%s: unrecognized option '--%s'\n"
-msgstr ""
+msgstr "%s: rogha anaithnid '--%s'\n"
#: lib/getopt.c:783 lib/getopt.c:786
#, c-format
msgid "%s: unrecognized option '%c%s'\n"
-msgstr ""
+msgstr "%s: rogha anaithnid '%c%s'\n"
#: lib/getopt.c:835 lib/getopt.c:838
#, c-format
msgid "%s: invalid option -- '%c'\n"
-msgstr ""
+msgstr "%s: rogha neamhbhailí -- '%c'\n"
#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
-msgstr ""
+msgstr "%s: tá argóint de dhíth i ndiaidh na rogha -- '%c'\n"
#: lib/getopt.c:964 lib/getopt.c:980
#, c-format
msgid "%s: option '-W %s' is ambiguous\n"
-msgstr ""
+msgstr "%s: tá an rogha '-W %s' débhríoch\n"
#: lib/getopt.c:1004 lib/getopt.c:1022
#, c-format
msgid "%s: option '-W %s' doesn't allow an argument\n"
-msgstr ""
+msgstr "%s: ní cheadaítear argóint i ndiaidh na rogha '-W %s'\n"
#: lib/getopt.c:1043 lib/getopt.c:1061
#, c-format
msgid "%s: option '-W %s' requires an argument\n"
-msgstr ""
+msgstr "%s: tá argóint de dhíth i ndiaidh na rogha '-W `%s'\n"
#: lib/obstack.c:338 lib/obstack.c:340 lib/xalloc-die.c:34
-#, fuzzy
msgid "memory exhausted"
-msgstr "Cuimhne ídithe"
+msgstr "cuimhne ídithe"
#. TRANSLATORS:
#. Get translations for open and closing quotation marks.
@@ -160,11 +155,11 @@ msgstr "Cuimhne ídithe"
#. and use glyphs suitable for your language.
#: lib/quotearg.c:354
msgid "`"
-msgstr ""
+msgstr "`"
#: lib/quotearg.c:355
msgid "'"
-msgstr ""
+msgstr "'"
#: lib/regcomp.c:135
msgid "Success"
@@ -196,9 +191,8 @@ msgid "Invalid back reference"
msgstr "Cúltagairt neamhbhailí"
#: lib/regcomp.c:156
-#, fuzzy
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "[ nó [^ corr"
+msgstr "[, [^, [:, [., nó [= corr"
#: lib/regcomp.c:159
msgid "Unmatched ( or \\("
@@ -243,24 +237,24 @@ msgstr "Níl aon slonn ionadaíochta roimhe seo"
#: lib/set-acl.c:46
#, c-format
msgid "setting permissions for %s"
-msgstr ""
+msgstr "ceadanna %s á socrú"
#: lib/version-etc.c:74
#, c-format
msgid "Packaged by %s (%s)\n"
-msgstr ""
+msgstr "Pacáistithe ag %s (%s)\n"
#: lib/version-etc.c:77
#, c-format
msgid "Packaged by %s\n"
-msgstr ""
+msgstr "Pacáistithe ag %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
msgid "(C)"
-msgstr ""
+msgstr "©"
#: lib/version-etc.c:86
msgid ""
@@ -271,24 +265,30 @@ msgid ""
"There is NO WARRANTY, to the extent permitted by law.\n"
"\n"
msgstr ""
+"\n"
+"Ceadúnas GPLv3+: GNU GPL leagan 3 nó níos déanaí <http://gnu.org/licenses/"
+"gpl.html>.\n"
+"Is saorbhogearra é seo: ceadaítear duit é a athrú agus a athdháileadh.\n"
+"Níl baránta AR BITH ann, an oiread atá ceadaithe de réir dlí.\n"
+"\n"
#. TRANSLATORS: %s denotes an author name.
#: lib/version-etc.c:102
#, c-format
msgid "Written by %s.\n"
-msgstr ""
+msgstr "Scríofa ag %s.\n"
#. TRANSLATORS: Each %s denotes an author name.
#: lib/version-etc.c:106
#, c-format
msgid "Written by %s and %s.\n"
-msgstr ""
+msgstr "Scríofa ag %s agus %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 ""
+msgstr "Scríofa ag %s, %s, agus %s.\n"
#. TRANSLATORS: Each %s denotes an author name.
#. You can use line breaks, estimating that each author name occupies
@@ -299,6 +299,8 @@ msgid ""
"Written by %s, %s, %s,\n"
"and %s.\n"
msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"agus %s.\n"
#. TRANSLATORS: Each %s denotes an author name.
#. You can use line breaks, estimating that each author name occupies
@@ -309,6 +311,8 @@ msgid ""
"Written by %s, %s, %s,\n"
"%s, and %s.\n"
msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"%s, agus %s.\n"
#. TRANSLATORS: Each %s denotes an author name.
#. You can use line breaks, estimating that each author name occupies
@@ -319,6 +323,8 @@ msgid ""
"Written by %s, %s, %s,\n"
"%s, %s, and %s.\n"
msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"%s, %s, agus %s.\n"
#. TRANSLATORS: Each %s denotes an author name.
#. You can use line breaks, estimating that each author name occupies
@@ -329,6 +335,8 @@ msgid ""
"Written by %s, %s, %s,\n"
"%s, %s, %s, and %s.\n"
msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"%s, %s, %s, agus %s.\n"
#. TRANSLATORS: Each %s denotes an author name.
#. You can use line breaks, estimating that each author name occupies
@@ -340,6 +348,9 @@ msgid ""
"%s, %s, %s, %s,\n"
"and %s.\n"
msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"agus %s.\n"
#. TRANSLATORS: Each %s denotes an author name.
#. You can use line breaks, estimating that each author name occupies
@@ -351,6 +362,9 @@ msgid ""
"%s, %s, %s, %s,\n"
"%s, and %s.\n"
msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, agus %s.\n"
#. TRANSLATORS: Each %s denotes an author name.
#. You can use line breaks, estimating that each author name occupies
@@ -362,6 +376,9 @@ msgid ""
"%s, %s, %s, %s,\n"
"%s, %s, and others.\n"
msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, agus daoine eile.\n"
#. TRANSLATORS: The placeholder indicates the bug-reporting address
#. for this package. Please add _another line_ saying
@@ -373,25 +390,27 @@ msgid ""
"\n"
"Report bugs to: %s\n"
msgstr ""
+"\n"
+"Seol tuairiscí ar fhabhtanna chuig: %s\n"
#: lib/version-etc.c:247
#, c-format
msgid "Report %s bugs to: %s\n"
-msgstr ""
+msgstr "Tuairiscigh fabhtanna %s chuig: %s\n"
#: lib/version-etc.c:251
#, c-format
msgid "%s home page: <%s>\n"
-msgstr ""
+msgstr "Leathanach baile %s: <%s>\n"
#: lib/version-etc.c:253
#, c-format
msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr ""
+msgstr "Leathanach baile %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"
-msgstr ""
+msgstr "Cabhair ghinearálta le bogearraí GNU: <http://www.gnu.org/gethelp/>\n"
#: sed/compile.c:146
msgid "multiple `!'s"
@@ -495,17 +514,16 @@ msgid "unknown command: `%c'"
msgstr "ordú anaithnid: `%c'"
#: sed/compile.c:186
-#, fuzzy
msgid "incomplete command"
-msgstr "ordú ar iarraidh"
+msgstr "ordú neamhiomlán"
#: sed/compile.c:188
msgid "\":\" lacks a label"
-msgstr ""
+msgstr "lipéad de dhíth tar éis \":\""
#: sed/compile.c:190
msgid "recursive escaping after \\c not allowed"
-msgstr ""
+msgstr "ní cheadaítear éalúchán athchúrsach tar éis \\c"
#: sed/compile.c:213
#, c-format
@@ -525,7 +543,7 @@ msgstr "níl aon fháil ar an lipéad `%s' don léim"
#: sed/execute.c:264 sed/execute.c:281
#, c-format
msgid "case conversion produced an invalid character"
-msgstr ""
+msgstr "tháinig carachtar neamhbhailí ó thiontú cáis"
#: sed/execute.c:575
#, c-format
@@ -548,11 +566,13 @@ msgstr "níorbh fhéidir %s a chur in eagar: ní gnáthchomhad é"
#, c-format
msgid "%s: warning: failed to set default file creation context to %s: %s"
msgstr ""
+"%s: rabhadh: níorbh fhéidir an comhthéacs réamhshocraithe cruthaithe comhad "
+"a shocrú mar %s: %s"
#: sed/execute.c:624
#, c-format
msgid "%s: warning: failed to get security context of %s: %s"
-msgstr ""
+msgstr "%s: rabhadh: níorbh fhéidir comhthéacs slándála de %s a fháil: %s"
#: sed/execute.c:643 sed/utils.c:178
#, c-format
@@ -586,19 +606,19 @@ msgstr "tagairt neamhbhailí \\%d ar dheis ordú `s'"
#: sed/sed.c:35
msgid "Jay Fenlason"
-msgstr ""
+msgstr "Jay Fenlason"
#: sed/sed.c:36
msgid "Tom Lord"
-msgstr ""
+msgstr "Tom Lord"
#: sed/sed.c:37
msgid "Ken Pizzini"
-msgstr ""
+msgstr "Ken Pizzini"
#: sed/sed.c:38
msgid "Paolo Bonzini"
-msgstr ""
+msgstr "Paolo Bonzini"
#: sed/sed.c:113
#, c-format
@@ -606,11 +626,13 @@ msgid ""
"GNU sed home page: <http://www.gnu.org/software/sed/>.\n"
"General help using GNU software: <http://www.gnu.org/gethelp/>.\n"
msgstr ""
+"Leathanach baile GNU sed: <http://www.gnu.org/software/sed/>.\n"
+"Cabhair ghinearálta le bogearraí GNU: <http://www.gnu.org/gethelp/>.\n"
#: sed/sed.c:120
#, c-format
msgid "E-mail bug reports to: <%s>.\n"
-msgstr ""
+msgstr "Seol tuairiscí fabhtanna chuig: <%s>.\n"
#: sed/sed.c:129
msgid ""
@@ -668,14 +690,14 @@ msgstr ""
" áit a bhfuil sé\n"
#: sed/sed.c:149
-#, fuzzy, c-format
+#, c-format
msgid ""
" -i[SUFFIX], --in-place[=SUFFIX]\n"
" edit files in place (makes backup if SUFFIX supplied)\n"
msgstr ""
" -i[IARMHÃR], --in-place[=IARMHÃR]\n"
-" cuir eagar ar chomhaid san áit a bhfuil siad (agus déan\n"
-" cúltaca má thugtar IARMHÃR)\n"
+" athraigh na comhaid féin (agus déan cúltaca má tá IARMHÃR "
+"ann)\n"
#: sed/sed.c:153
#, c-format
@@ -708,24 +730,26 @@ msgstr ""
" díchumasaigh gach feabhsúchán GNU.\n"
#: sed/sed.c:161
-#, fuzzy, c-format
+#, c-format
msgid ""
" -E, -r, --regexp-extended\n"
" use extended regular expressions in the script\n"
" (for portability use POSIX -E).\n"
msgstr ""
-" -r, --regexp-extended\n"
+" -E, -r, --regexp-extended\n"
" úsáid sloinn ionadaíochta feabhsaithe sa script.\n"
+" (ar mhaithe le hinaistritheacht, úsáid POSIX -E).\n"
#: sed/sed.c:167
-#, fuzzy, c-format
+#, c-format
msgid ""
" -s, --separate\n"
" consider files as separate rather than as a single,\n"
" continuous long stream.\n"
msgstr ""
" -s, --separate\n"
-" féach ar chomhaid ina leith seachas mar shruth leanúnach.\n"
+" próiseáil gach comhad ar leith, seachas iad a phróiséail\n"
+" mar shruth fada amháin.\n"
#: sed/sed.c:170
#, c-format
@@ -733,6 +757,8 @@ msgid ""
" --sandbox\n"
" operate in sandbox mode.\n"
msgstr ""
+" --sandbox\n"
+" oibríonn sed i mbosca gainimh.\n"
#: sed/sed.c:172
#, c-format
@@ -753,6 +779,8 @@ msgid ""
" -z, --null-data\n"
" separate lines by NUL characters\n"
msgstr ""
+" -z, --null-data\n"
+" carachtair NUL idir línte\n"
#: sed/sed.c:177
#, c-format
@@ -796,17 +824,15 @@ msgstr "níorbh fhéidir an comhad %s a oscailt: %s"
msgid "couldn't attach to %s: %s"
msgstr "níorbh fhéidir ceangal le %s: %s"
-# Irish is nice this way, no initial mutation on 'rud'! -- KPS
-# Include all three b/c I'm using template version of "Plural-Forms"
#: sed/utils.c:192
-#, fuzzy, c-format
+#, c-format
msgid "couldn't write %llu item to %s: %s"
msgid_plural "couldn't write %llu items to %s: %s"
-msgstr[0] "níorbh fhéidir %d rud a scríobh i %s: %s"
-msgstr[1] "níorbh fhéidir %d rud a scríobh i %s: %s"
-msgstr[2] "níorbh fhéidir %d rud a scríobh i %s: %s"
-msgstr[3] "níorbh fhéidir %d rud a scríobh i %s: %s"
-msgstr[4] "níorbh fhéidir %d rud a scríobh i %s: %s"
+msgstr[0] "níorbh fhéidir %llu rud a scríobh i %s: %s"
+msgstr[1] "níorbh fhéidir %llu rud a scríobh i %s: %s"
+msgstr[2] "níorbh fhéidir %llu rud a scríobh i %s: %s"
+msgstr[3] "níorbh fhéidir %llu rud a scríobh i %s: %s"
+msgstr[4] "níorbh fhéidir %llu rud a scríobh i %s: %s"
#: sed/utils.c:204 sed/utils.c:223
#, c-format
diff --git a/po/gl.gmo b/po/gl.gmo
index 8b5cf94..026eb0f 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index 659f0cc..7890be9 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.2\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2016-08-07 17:31+0200\n"
"Last-Translator: Francisco Javier Tsao Santín <tsao@members.fsf.org>\n"
"Language-Team: Galician <proxecto@trasno.net>\n"
@@ -28,18 +28,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Nome de clase de caracteres non válido"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -61,11 +59,11 @@ msgstr "Expresión regular grande de máis"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/he.gmo b/po/he.gmo
index e4275cf..cafc083 100644
--- a/po/he.gmo
+++ b/po/he.gmo
Binary files differ
diff --git a/po/he.po b/po/he.po
index 3990632..0d08d50 100644
--- a/po/he.po
+++ b/po/he.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 3.02.80\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2001-08-04 20:37+0300\n"
"Last-Translator: Eli Zaretskii <eliz@gnu.org>\n"
"Language-Team: Hebrew <eliz@gnu.org>\n"
@@ -25,17 +25,15 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
msgid "invalid character class"
msgstr ""
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -55,11 +53,11 @@ msgstr ""
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/hr.gmo b/po/hr.gmo
index fb9a201..de3a6bf 100644
--- a/po/hr.gmo
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
index a75aa64..df217ce 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.1\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2012-07-04 18:15+0200\n"
"Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
@@ -30,18 +30,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Neispravno ime razreda znakova"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -63,11 +61,11 @@ msgstr "Regularni izraz je prevelik"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/hu.gmo b/po/hu.gmo
index c12ecee..ea5104c 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index 9048331..b17a161 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.2\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2016-06-19 13:19+0200\n"
"Last-Translator: Balazs Ur <urbalazs@gmail.com>\n"
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -31,18 +31,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Érvénytelen karakterosztály-név"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -64,11 +62,11 @@ msgstr "Túl nagy reguláris kifejezés"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/id.gmo b/po/id.gmo
index d092c5c..b3e41b9 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index 382a507..de1ec43 100644
--- a/po/id.po
+++ b/po/id.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.1\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2014-08-04 10:15+0700\n"
"Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -29,18 +29,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Nama kelas karakter tidak valid"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -62,11 +60,11 @@ msgstr "Reguler ekspresi terlalu besar"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/it.gmo b/po/it.gmo
index a3cd9df..1e206c2 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index 9cecc09..3004562 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.0\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2008-01-16 12:44+0100\n"
"Last-Translator: Paolo Bonzini <bonzini@gnu.org>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
@@ -27,19 +27,17 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
# lib/regcomp.c:191
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Nome non valido per una classe di caratteri"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -63,11 +61,11 @@ msgstr "Espressione regolare troppo grande"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/ja.gmo b/po/ja.gmo
index d57237e..a64facd 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 55745a0..58ffe79 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -15,7 +15,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.1\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2010-10-21 13:04+0900\n"
"Last-Translator: Yasuaki Taniguchi <yasuakit@gmail.com>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -35,18 +35,16 @@ msgstr "書ãè¾¼ã¿ã‚¨ãƒ©ãƒ¼"
msgid "preserving permissions for %s"
msgstr "%s ã®ãƒ‘ーミッションをä¿å­˜ã—ã¦ã„ã¾ã™"
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "無効ãªæ–‡å­—クラスåã§ã™"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -68,11 +66,11 @@ msgstr "æ­£è¦è¡¨ç¾ãŒå¤§ãã™ãŽã¾ã™"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/ko.gmo b/po/ko.gmo
index 9f6b524..cda2f5c 100644
--- a/po/ko.gmo
+++ b/po/ko.gmo
Binary files differ
diff --git a/po/ko.po b/po/ko.po
index 98b4a4c..441c153 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU sed 3.02.80\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2001-10-12 17:26+0900\n"
"Last-Translator: Jong-Hoon Ryu <redhat4u@netian.com>\n"
"Language-Team: Korean <ko@li.org>\n"
@@ -25,17 +25,15 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
msgid "invalid character class"
msgstr ""
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -55,11 +53,11 @@ msgstr ""
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/nb.gmo b/po/nb.gmo
index 9c073e9..bc1aa0b 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index 3f3b0fb..e65fd25 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.2\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2016-06-20 17:22+0200\n"
"Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
"Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
@@ -29,18 +29,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Ugyldig tegnklassenavn"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -62,11 +60,11 @@ msgstr "Regulært uttrykk for stort"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/nl.gmo b/po/nl.gmo
index a6de1ad..b0409b9 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 442cc22..eae3920 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed-4.2.2.177\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2016-12-06 11:39+0100\n"
"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -32,17 +32,15 @@ msgstr "schrijffout"
msgid "preserving permissions for %s"
msgstr "behouden van toegangsrechten van %s"
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr "ongepaarde ["
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
msgid "invalid character class"
msgstr "ongeldige tekenklasse"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr "syntax van tekenklasse is [[:space:]], niet [:space:]"
@@ -62,11 +60,11 @@ msgstr "reguliere expressie is te groot"
msgid "unbalanced ("
msgstr "ongepaarde ("
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr "geen syntax opgegeven"
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr "ongepaarde )"
diff --git a/po/pl.gmo b/po/pl.gmo
index a07ba0e..970f098 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index b61db79..3370c7d 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.1\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2010-06-12 20:01+0200\n"
"Last-Translator: Wojciech Polak <polak@gnu.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -30,18 +30,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Nieprawidłowa nazwa klasy znaku"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -63,11 +61,11 @@ msgstr "Wyrażenie regularne jest zbyt duże"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/pt.gmo b/po/pt.gmo
index 9eb683e..b3102fb 100644
--- a/po/pt.gmo
+++ b/po/pt.gmo
Binary files differ
diff --git a/po/pt.po b/po/pt.po
index 59581d5..cf913c6 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.0\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2008-01-17 21:25+0100\n"
"Last-Translator: Helder Correia <helder.pereira.correia@gmail.com>\n"
"Language-Team: Portuguese <translation-team-pt@lists.sourceforge.net>\n"
@@ -27,18 +27,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Nome de classe de carácter inválido"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -60,11 +58,11 @@ msgstr "Expressão regular demasiado grande"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index 51951f6..f80abc8 100644
--- a/po/pt_BR.gmo
+++ b/po/pt_BR.gmo
Binary files differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 4231ba6..8b159e7 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -1,16 +1,17 @@
-# Traduções para o português do Brasil das mensagens de erro do sed
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Brazilian Portuguese translations for sed package
+# Traduções em português brasileiro para o pacote sed
+# Copyright (C) 2017 Free Software Foundation, Inc.
# This file is distributed under the same license as the sed package.
# Tradução original da versão 4.01:
# Juan Carlos Castro y Castro <jcastro@vialink.com.br>, 2002.
# Aurelio Jargas <verde@aurelio.net>, 1999-2010.
-# Rafael Fontenelle <rffontenelle@gmail.com>, 2016.
+# Rafael Fontenelle <rffontenelle@gmail.com>, 2016, 2017.
msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.2.177\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
-"PO-Revision-Date: 2016-12-06 23:48-0200\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
+"PO-Revision-Date: 2017-01-20 10:44-0200\n"
"Last-Translator: Rafael Fontenelle <rffontenelle@gmail.com>\n"
"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
"net>\n"
@@ -29,19 +30,17 @@ msgstr "erro de escrita"
#: lib/copy-acl.c:54
#, c-format
msgid "preserving permissions for %s"
-msgstr "preservando permissões para %s"
+msgstr "preservando permissões de %s"
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr "[ sem correspondente"
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
msgid "invalid character class"
msgstr "classe de caracteres inválida"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr "a sintaxe de classe de caracteres é [[:space:]], e não [:space:]"
@@ -61,11 +60,11 @@ msgstr "expressão regular grande demais"
msgid "unbalanced ("
msgstr "( sem correspondente"
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr "nenhuma sintaxe especificada"
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ") sem correspondente"
@@ -96,17 +95,17 @@ msgstr "%s: a opção \"%c%s\" não permite um argumento\n"
#: lib/getopt.c:715 lib/getopt.c:734
#, c-format
msgid "%s: option '--%s' requires an argument\n"
-msgstr "%s: a opção \"--%s\" requer um argumento\n"
+msgstr "%s: a opção \"--%s\" exige um argumento\n"
#: lib/getopt.c:772 lib/getopt.c:775
#, c-format
msgid "%s: unrecognized option '--%s'\n"
-msgstr "%s: opção não reconhecida \"--%s\"\n"
+msgstr "%s: opção desconhecida \"--%s\"\n"
#: lib/getopt.c:783 lib/getopt.c:786
#, c-format
msgid "%s: unrecognized option '%c%s'\n"
-msgstr "%s: opção não reconhecida '%c%s'\n"
+msgstr "%s: opção desconhecida \"%c%s\"\n"
#: lib/getopt.c:835 lib/getopt.c:838
#, c-format
@@ -116,7 +115,7 @@ msgstr "%s: opção inválida -- \"%c\"\n"
#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s: a opção requer um argumento -- \"%c\"\n"
+msgstr "%s: a opção exige um argumento -- \"%c\"\n"
#: lib/getopt.c:964 lib/getopt.c:980
#, c-format
@@ -131,7 +130,7 @@ msgstr "%s: a opção \"-W %s\" não permite um argumento\n"
#: lib/getopt.c:1043 lib/getopt.c:1061
#, c-format
msgid "%s: option '-W %s' requires an argument\n"
-msgstr "%s: a opção \"-W %s\" requer um argumento\n"
+msgstr "%s: a opção \"-W %s\" exige um argumento\n"
#: lib/obstack.c:338 lib/obstack.c:340 lib/xalloc-die.c:34
msgid "memory exhausted"
@@ -172,7 +171,7 @@ msgstr "Sucesso"
#: lib/regcomp.c:138
msgid "No match"
-msgstr "Nada encontrado"
+msgstr "Nenhuma ocorrência do padrão"
#: lib/regcomp.c:141
msgid "Invalid regular expression"
@@ -180,7 +179,7 @@ msgstr "Expressão regular inválida"
#: lib/regcomp.c:144
msgid "Invalid collation character"
-msgstr "Caractere de ordenação inválido"
+msgstr "Caractere de combinação inválido"
#: lib/regcomp.c:147
msgid "Invalid character class name"
@@ -188,11 +187,11 @@ msgstr "Nome inválido de classe de caracteres"
#: lib/regcomp.c:150
msgid "Trailing backslash"
-msgstr "Escape \\ no final"
+msgstr "Barra invertida no final"
#: lib/regcomp.c:153
msgid "Invalid back reference"
-msgstr "Retrovisor \\n inválido"
+msgstr "Retrorreferência inválida"
#: lib/regcomp.c:156
msgid "Unmatched [, [^, [:, [., or [="
@@ -208,19 +207,19 @@ msgstr "\\{ sem correspondente"
#: lib/regcomp.c:165
msgid "Invalid content of \\{\\}"
-msgstr "Conteúdo inválido no \\{\\} (permitidos números e vírgula)"
+msgstr "Conteúdo inválido no \\{\\}"
#: lib/regcomp.c:168
msgid "Invalid range end"
-msgstr "Fim de intervalo (range) inválido"
+msgstr "Fim de intervalo inválido"
#: lib/regcomp.c:171
msgid "Memory exhausted"
-msgstr "Falta de memória"
+msgstr "Memória esgotada"
#: lib/regcomp.c:174
msgid "Invalid preceding regular expression"
-msgstr "Expressão regular anterior inválida"
+msgstr "A expressão regular precedente é inválida"
#: lib/regcomp.c:177
msgid "Premature end of regular expression"
@@ -236,12 +235,12 @@ msgstr ") ou \\) sem correspondente"
#: lib/regcomp.c:687
msgid "No previous regular expression"
-msgstr "Não há expressão regular anterior"
+msgstr "Nenhuma expressão regular anterior"
#: lib/set-acl.c:46
#, c-format
msgid "setting permissions for %s"
-msgstr "definindo permissões para %s"
+msgstr "definindo permissões de %s"
#: lib/version-etc.c:74
#, c-format
@@ -271,9 +270,9 @@ msgid ""
msgstr ""
"\n"
"Licença GPLv3+: GNU GPL versão 3 ou posterior <http://gnu.org/licenses/gpl."
-"html>.\n"
-"Esse é um software livre: você é livre para modificá-lo e redistribuí-lo.\n"
-"NÃO Hà GARANTIA, na extensão permitida pela lei.\n"
+"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"
"\n"
#. TRANSLATORS: %s denotes an author name.
@@ -395,12 +394,14 @@ msgid ""
"Report bugs to: %s\n"
msgstr ""
"\n"
-"Relate os problemas para: %s\n"
+"Relate erros para: %s\n"
+"Relate erros de tradução para <http://ldpbr-translation@lists.sourceforge."
+"net>\n"
#: lib/version-etc.c:247
#, c-format
msgid "Report %s bugs to: %s\n"
-msgstr "Relate os problemas de %s para: %s\n"
+msgstr "Relate erros do %s para: %s\n"
#: lib/version-etc.c:251
#, c-format
@@ -414,7 +415,7 @@ msgstr "Página do %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"
-msgstr "Ajuda geral sobre uso de software GNU: <http://www.gnu.org/gethelp/>\n"
+msgstr "Ajuda geral no uso de software GNU: <http://www.gnu.org/gethelp/>\n"
#: sed/compile.c:146
msgid "multiple `!'s"
@@ -627,13 +628,13 @@ msgid ""
"GNU sed home page: <http://www.gnu.org/software/sed/>.\n"
"General help using GNU software: <http://www.gnu.org/gethelp/>.\n"
msgstr ""
-"Site do GNU sed: <http://www.gnu.org/software/sed/>.\n"
+"Página do GNU sed: <http://www.gnu.org/software/sed/>.\n"
"Ajuda sobre softwares GNU: <http://www.gnu.org/gethelp/>.\n"
#: sed/sed.c:120
#, c-format
msgid "E-mail bug reports to: <%s>.\n"
-msgstr "Envie relatórios de problemas para: <%s>.\n"
+msgstr "Envie relatórios de erros para: <%s>.\n"
#: sed/sed.c:129
msgid ""
diff --git a/po/ro.gmo b/po/ro.gmo
index 717836c..d15927d 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index 45fe22f..0dfff74 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.1.4\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2005-04-19 12:00-0500\n"
"Last-Translator: Laurentiu Buzdugan <lbuz@rolix.org>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -28,18 +28,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Nume de clasã de caractere incorect"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -61,11 +59,11 @@ msgstr "Expresie regularã prea mare"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/ru.gmo b/po/ru.gmo
index eaba7e2..1058df5 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index a19cef6..b81ec7a 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.2.177\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2016-12-06 19:25+0300\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
"Language-Team: Russian <gnu@d07.ru>\n"
@@ -31,17 +31,15 @@ msgstr "ошибка запиÑи"
msgid "preserving permissions for %s"
msgstr "Ñохранение прав доÑтупа Ð´Ð»Ñ %s"
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr "неÑбаланÑÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ ["
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
msgid "invalid character class"
msgstr "неправильный клаÑÑ Ñимволов"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr "ÑинтакÑÐ¸Ñ ÐºÐ»Ð°ÑÑа Ñимволов: [[:space:]], а не [:space:]"
@@ -61,11 +59,11 @@ msgstr "регулÑрное выражение Ñлишком большое"
msgid "unbalanced ("
msgstr "неÑбаланÑÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ ("
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr "не указан ÑинтакÑиÑ"
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr "неÑбаланÑÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ )"
diff --git a/po/sed.pot b/po/sed.pot
index e07364a..e973a0a 100644
--- a/po/sed.pot
+++ b/po/sed.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: GNU sed 4.3\n"
+"Project-Id-Version: GNU sed 4.4\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-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"
@@ -27,17 +27,15 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
msgid "invalid character class"
msgstr ""
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -57,11 +55,11 @@ msgstr ""
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/sk.gmo b/po/sk.gmo
index 13f145d..471a601 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index 8db7410..7cc4386 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU sed 4.2.2.177\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2016-12-25 14:08+0100\n"
"Last-Translator: Marcel Telka <marcel@telka.sk>\n"
"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -28,17 +28,15 @@ msgstr "chyba zápisu"
msgid "preserving permissions for %s"
msgstr "zachovanie oprávnení pre %s"
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr "neuzavretá ["
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
msgid "invalid character class"
msgstr "neplatná trieda znakov"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr "syntax triedy znakov je [[:space:]], nie [:space:]"
@@ -58,11 +56,11 @@ msgstr "regulárny výraz je príliš veľký"
msgid "unbalanced ("
msgstr "neuzavretá ("
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr "nebola zadaná syntax"
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr "neuzavretá )"
diff --git a/po/sl.gmo b/po/sl.gmo
index 7335f8f..0210776 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index 21ce906..43e1b55 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.1\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2010-11-16 14:45+0100\n"
"Last-Translator: Primož Peterlin <primozz.peterlin@gmail.com>\n"
"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
@@ -29,18 +29,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Neveljavno ime razreda znakov"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -62,11 +60,11 @@ msgstr "Regularni izraz prevelik"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/sr.gmo b/po/sr.gmo
index 4b6a33d..ae4012d 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index 95ef3d4..3210c59 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed-4.2.2.177\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2016-12-18 08:03+0200\n"
"Last-Translator: МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n"
@@ -28,17 +28,15 @@ msgstr "грешка пиÑања"
msgid "preserving permissions for %s"
msgstr "причувавам овлашћења за %s"
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr "неуравнотежена ["
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
msgid "invalid character class"
msgstr "неиÑправна клаÑа знака"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr "ÑинтакÑа клаÑе знака је [[:размак:]], а не [:размак:]"
@@ -58,11 +56,11 @@ msgstr "регуларни израз је превелик"
msgid "unbalanced ("
msgstr "неуравнотежена ("
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr "ÑинтакÑа није наведена"
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr "неуравнотежена )"
diff --git a/po/sv.gmo b/po/sv.gmo
index 2cd9a50..4bb611c 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index b95bb97..5b32545 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.2\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2016-06-19 23:57+0200\n"
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -29,18 +29,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Ogiltigt teckenklassnamn"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -62,11 +60,11 @@ msgstr "Reguljärt uttryck för stort"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/tr.gmo b/po/tr.gmo
index 0224918..ca37e8d 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index 3e51ece..b41ef5f 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.1\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2013-04-17 17:34+0200\n"
"Last-Translator: Volkan Gezer <vlkngzr@gmail.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -28,18 +28,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "Hatalı karakter sınıf ismi"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -62,11 +60,11 @@ msgstr "Düzenli ifade fazla büyük"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/uk.gmo b/po/uk.gmo
index 3431559..41995f2 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index e64bcb7..8c4642d 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.2.177\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2016-12-06 12:33+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
@@ -31,17 +31,15 @@ msgstr "помилка під Ñ‡Ð°Ñ Ñпроби запиÑу"
msgid "preserving permissions for %s"
msgstr "зберігаємо права доÑтупу Ð´Ð»Ñ %s"
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr "неурівноважена ["
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
msgid "invalid character class"
msgstr "некоректний ÐºÐ»Ð°Ñ Ñимволів"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr "ÑинтакÑÐ¸Ñ ÐºÐ»Ð°Ñу Ñимволів передбачає [[:space:]], а не [:space:]"
@@ -61,11 +59,11 @@ msgstr "занадто об'ємний формальний вираз"
msgid "unbalanced ("
msgstr "неурівноважена ("
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr "не вказано ÑинтакÑиÑу"
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr "неурівноважена )"
diff --git a/po/vi.gmo b/po/vi.gmo
index 106cfe2..6a9e172 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index bcaa672..84072dd 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.2.177\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2016-12-09 13:31+0700\n"
"Last-Translator: Trần Ngá»c Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
@@ -30,17 +30,15 @@ msgstr "lá»—i ghi"
msgid "preserving permissions for %s"
msgstr "giữ nguyên quyá»n hạn cho %s"
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr "thiếu dấu ngoặc vuông mở ["
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
msgid "invalid character class"
msgstr "sai lớp ký tự"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr "cú pháp lớp ký tự là [[:space:]], không phải [:space:]"
@@ -60,11 +58,11 @@ msgstr "biểu thức chính quy quá lớn"
msgid "unbalanced ("
msgstr "thiếu dấu ngoặc đơn mở ("
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr "chưa đưa ra cú pháp"
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr "thiếu dấu ngoặc đơn đóng )"
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 713256b..1688fcb 100644
--- a/po/zh_CN.gmo
+++ b/po/zh_CN.gmo
Binary files differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 8890be1..854e5b5 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.0\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2008-01-28 23:17+0800\n"
"Last-Translator: LI Daobing <lidaobing@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -27,18 +27,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "éžæ³•çš„字符类型å"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -60,11 +58,11 @@ msgstr "正则表达å¼è¿‡å¤§"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
index c8842fb..c59140f 100644
--- a/po/zh_TW.gmo
+++ b/po/zh_TW.gmo
Binary files differ
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 0cdc378..a3e0e0b 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.1\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
-"POT-Creation-Date: 2016-12-30 00:59-0800\n"
+"POT-Creation-Date: 2017-02-03 17:17-0800\n"
"PO-Revision-Date: 2013-02-12 23:37+0800\n"
"Last-Translator: Wei-Lun Chao <bluebat@member.fsf.org>\n"
"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
@@ -28,18 +28,16 @@ msgstr ""
msgid "preserving permissions for %s"
msgstr ""
-#: lib/dfa.c:1025 lib/dfa.c:1028 lib/dfa.c:1047 lib/dfa.c:1057 lib/dfa.c:1070
-#: lib/dfa.c:1098 lib/dfa.c:1107 lib/dfa.c:1110 lib/dfa.c:1115 lib/dfa.c:1137
-#: lib/dfa.c:1140
+#: lib/dfa.c:949
msgid "unbalanced ["
msgstr ""
-#: lib/dfa.c:1083
+#: lib/dfa.c:1071
#, fuzzy
msgid "invalid character class"
msgstr "ä¸æ­£ç¢ºçš„字元等級å稱"
-#: lib/dfa.c:1206
+#: lib/dfa.c:1207
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
@@ -61,11 +59,11 @@ msgstr "æ­£è¦è¡¨ç¤ºå¼å¤ªå¤§"
msgid "unbalanced ("
msgstr ""
-#: lib/dfa.c:1980
+#: lib/dfa.c:1971
msgid "no syntax specified"
msgstr ""
-#: lib/dfa.c:1988
+#: lib/dfa.c:1979
msgid "unbalanced )"
msgstr ""
diff --git a/sed/compile.c b/sed/compile.c
index 7a28e56..e4fbb44 100644
--- a/sed/compile.c
+++ b/sed/compile.c
@@ -1,5 +1,5 @@
/* GNU SED, a batch stream editor.
- Copyright (C) 1989-2016 Free Software Foundation, Inc.
+ Copyright (C) 1989-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
@@ -257,7 +257,7 @@ savchar(int ch)
{
if (prog.cur <= prog.base || *--prog.cur != ch)
panic("Called savchar() with unexpected pushback (%x)",
- (unsigned char)ch);
+ (unsigned int) ch);
}
else
ungetc(ch, prog.file);
diff --git a/sed/execute.c b/sed/execute.c
index 009d188..2302a1e 100644
--- a/sed/execute.c
+++ b/sed/execute.c
@@ -1,5 +1,5 @@
/* GNU SED, a batch stream editor.
- Copyright (C) 1989-2016 Free Software Foundation, Inc.
+ Copyright (C) 1989-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
diff --git a/sed/local.mk b/sed/local.mk
index dd1da0a..d410d26 100644
--- a/sed/local.mk
+++ b/sed/local.mk
@@ -1,4 +1,4 @@
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/sed/mbcs.c b/sed/mbcs.c
index 3505ef6..26c6b54 100644
--- a/sed/mbcs.c
+++ b/sed/mbcs.c
@@ -1,5 +1,5 @@
/* GNU SED, a batch stream editor.
- Copyright (C) 2003-2016 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
diff --git a/sed/regexp.c b/sed/regexp.c
index ff898a8..049d9b9 100644
--- a/sed/regexp.c
+++ b/sed/regexp.c
@@ -1,5 +1,5 @@
/* GNU SED, a batch stream editor.
- Copyright (C) 1999-2016 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -419,8 +419,7 @@ match_regex(struct regex *regex, char *buf, size_t buflen,
#ifdef DEBUG_LEAKS
void
-release_regex(regex)
- struct regex *regex;
+release_regex(struct regex *regex)
{
regfree(&regex->pattern);
free(regex);
diff --git a/sed/sed.c b/sed/sed.c
index 7445178..15faff0 100644
--- a/sed/sed.c
+++ b/sed/sed.c
@@ -1,5 +1,5 @@
/* GNU SED, a batch stream editor.
- Copyright (C) 1989-2016 Free Software Foundation, Inc.
+ Copyright (C) 1989-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
diff --git a/sed/sed.h b/sed/sed.h
index 0d056e3..7510b0a 100644
--- a/sed/sed.h
+++ b/sed/sed.h
@@ -1,5 +1,5 @@
/* GNU SED, a batch stream editor.
- Copyright (C) 1989-2016 Free Software Foundation, Inc.
+ Copyright (C) 1989-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
@@ -28,7 +28,7 @@
/* Struct vector is used to describe a compiled sed program. */
struct vector {
struct sed_cmd *v; /* a dynamically allocated array */
- size_t v_allocated; /* ... number slots allocated */
+ size_t v_allocated; /* ... number of slots allocated */
size_t v_length; /* ... number of slots in use */
};
diff --git a/sed/utils.c b/sed/utils.c
index 8afea8e..25c4b6f 100644
--- a/sed/utils.c
+++ b/sed/utils.c
@@ -1,5 +1,5 @@
/* Functions from hack's utils library.
- Copyright (C) 1989-2016 Free Software Foundation, Inc.
+ Copyright (C) 1989-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
diff --git a/sed/utils.h b/sed/utils.h
index 6b9f8ef..fecf7c7 100644
--- a/sed/utils.h
+++ b/sed/utils.h
@@ -1,5 +1,5 @@
/* Functions from hack's utils library.
- Copyright (C) 1989-2016 Free Software Foundation, Inc.
+ Copyright (C) 1989-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
diff --git a/testsuite/bug-regex10.c b/testsuite/bug-regex10.c
index cdb0a46..d7b765a 100644
--- a/testsuite/bug-regex10.c
+++ b/testsuite/bug-regex10.c
@@ -1,5 +1,5 @@
/* Test for re_match with non-zero start.
- Copyright (C) 2002-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
diff --git a/testsuite/bug-regex11.c b/testsuite/bug-regex11.c
index 22a4bb0..e02c982 100644
--- a/testsuite/bug-regex11.c
+++ b/testsuite/bug-regex11.c
@@ -1,5 +1,5 @@
/* Regular expression tests.
- Copyright (C) 2002-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
diff --git a/testsuite/bug-regex12.c b/testsuite/bug-regex12.c
index 867e5fa..72e302c 100644
--- a/testsuite/bug-regex12.c
+++ b/testsuite/bug-regex12.c
@@ -1,5 +1,5 @@
/* Regular expression tests.
- Copyright (C) 2002-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
diff --git a/testsuite/bug-regex13.c b/testsuite/bug-regex13.c
index d04f246..9a14b66 100644
--- a/testsuite/bug-regex13.c
+++ b/testsuite/bug-regex13.c
@@ -1,5 +1,5 @@
/* Regular expression tests.
- Copyright (C) 2002-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>, 2002.
diff --git a/testsuite/bug-regex14.c b/testsuite/bug-regex14.c
index f20b183..e304fbc 100644
--- a/testsuite/bug-regex14.c
+++ b/testsuite/bug-regex14.c
@@ -1,5 +1,5 @@
/* Tests re_comp and re_exec.
- Copyright (C) 2002-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>, 2002.
diff --git a/testsuite/bug-regex21.c b/testsuite/bug-regex21.c
index 53a975d..eaff92b 100644
--- a/testsuite/bug-regex21.c
+++ b/testsuite/bug-regex21.c
@@ -1,5 +1,5 @@
/* Test for memory leaks in regcomp.
- Copyright (C) 2003-2016 Free Software Foundation, Inc.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
diff --git a/testsuite/bug-regex27.c b/testsuite/bug-regex27.c
index eb7ad5b..d6f6059 100644
--- a/testsuite/bug-regex27.c
+++ b/testsuite/bug-regex27.c
@@ -1,5 +1,5 @@
/* Test REG_NEWLINE.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2007.
diff --git a/testsuite/bug-regex28.c b/testsuite/bug-regex28.c
index 42dadd3..3a4dbec 100644
--- a/testsuite/bug-regex28.c
+++ b/testsuite/bug-regex28.c
@@ -1,5 +1,5 @@
/* Test RE_HAT_LISTS_NOT_NEWLINE and RE_DOT_NEWLINE.
- Copyright (C) 2007-2016 Free Software Foundation, Inc.
+ Copyright (C) 2007-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2007.
diff --git a/testsuite/bug-regex7.c b/testsuite/bug-regex7.c
index 6f3e435..7a99dfc 100644
--- a/testsuite/bug-regex7.c
+++ b/testsuite/bug-regex7.c
@@ -1,5 +1,5 @@
/* Test for regs allocation in re_search and re_match.
- Copyright (C) 2002-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Stepan Kasal <kasal@math.cas.cz>, 2002.
diff --git a/testsuite/bug-regex8.c b/testsuite/bug-regex8.c
index dfb27b8..f30341d 100644
--- a/testsuite/bug-regex8.c
+++ b/testsuite/bug-regex8.c
@@ -1,5 +1,5 @@
/* Test for the STOP parameter of re_match_2 and re_search_2.
- Copyright (C) 2002-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Stepan Kasal <kasal@math.cas.cz>, 2002.
diff --git a/testsuite/bug-regex9.c b/testsuite/bug-regex9.c
index e4d41c1..7895215 100644
--- a/testsuite/bug-regex9.c
+++ b/testsuite/bug-regex9.c
@@ -1,5 +1,5 @@
/* Test for memory handling in regex.
- Copyright (C) 2002-2016 Free Software Foundation, Inc.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
diff --git a/testsuite/cmd-R.sh b/testsuite/cmd-R.sh
index 55ed685..3f6da01 100644
--- a/testsuite/cmd-R.sh
+++ b/testsuite/cmd-R.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test 'R' command
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/cmd-l.sh b/testsuite/cmd-l.sh
index 743e326..395b134 100755
--- a/testsuite/cmd-l.sh
+++ b/testsuite/cmd-l.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test 'l' command with different widths
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/colon-with-no-label.sh b/testsuite/colon-with-no-label.sh
index 42de378..6b1c4ed 100755
--- a/testsuite/colon-with-no-label.sh
+++ b/testsuite/colon-with-no-label.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Verify that a ":" command with no label is now rejected.
-# Copyright (C) 2015-2016 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
diff --git a/testsuite/comment-n.sh b/testsuite/comment-n.sh
index 240cf86..5496115 100644
--- a/testsuite/comment-n.sh
+++ b/testsuite/comment-n.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test the '#n' silent mode (activated by first line comment)
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/compile-errors.sh b/testsuite/compile-errors.sh
index 9e7414c..d8e2f88 100644
--- a/testsuite/compile-errors.sh
+++ b/testsuite/compile-errors.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test compilation errors
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/compile-tests.sh b/testsuite/compile-tests.sh
index d1117b4..b4d4256 100644
--- a/testsuite/compile-tests.sh
+++ b/testsuite/compile-tests.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test compilation less-common cases
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/convert-number.sh b/testsuite/convert-number.sh
index e80a23e..b9ceccb 100755
--- a/testsuite/convert-number.sh
+++ b/testsuite/convert-number.sh
@@ -2,7 +2,7 @@
# Test number conversion from escape sequences \xNN \oNNN \dNNN
# (compile.c:convert_number())
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/envvar-check b/testsuite/envvar-check
index ad672fa..4843d64 100644
--- a/testsuite/envvar-check
+++ b/testsuite/envvar-check
@@ -1,7 +1,7 @@
# -*- sh -*-
# Check environment variables for sane values while testing.
-# Copyright (C) 2000-2016 Free Software Foundation, Inc.
+# Copyright (C) 2000-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
diff --git a/testsuite/execute-tests.sh b/testsuite/execute-tests.sh
index 2075c6f..d5f7032 100644
--- a/testsuite/execute-tests.sh
+++ b/testsuite/execute-tests.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test execution less-common cases
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/follow-symlinks-stdin.sh b/testsuite/follow-symlinks-stdin.sh
index fc04fe9..000be6c 100755
--- a/testsuite/follow-symlinks-stdin.sh
+++ b/testsuite/follow-symlinks-stdin.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Verify that --follow-symlinks does not break reading from stdin.
-# Copyright (C) 2015-2016 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
diff --git a/testsuite/follow-symlinks.sh b/testsuite/follow-symlinks.sh
index 09dde3f..5586eef 100644
--- a/testsuite/follow-symlinks.sh
+++ b/testsuite/follow-symlinks.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test --follow-symlinks option
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/get-mb-cur-max.c b/testsuite/get-mb-cur-max.c
index 403beb4..6be5137 100644
--- a/testsuite/get-mb-cur-max.c
+++ b/testsuite/get-mb-cur-max.c
@@ -1,5 +1,5 @@
/* Auxiliary program to detect support for a locale.
- Copyright 2010-2016 Free Software Foundation, Inc.
+ Copyright 2010-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
diff --git a/testsuite/help-version.sh b/testsuite/help-version.sh
index c93e51e..a0896ef 100755
--- a/testsuite/help-version.sh
+++ b/testsuite/help-version.sh
@@ -2,7 +2,7 @@
# Make sure all of these programs work properly
# when invoked with --help or --version.
-# Copyright (C) 2000-2016 Free Software Foundation, Inc.
+# Copyright (C) 2000-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
diff --git a/testsuite/in-place-hyphen.sh b/testsuite/in-place-hyphen.sh
index 8b6752e..c4dd8f9 100755
--- a/testsuite/in-place-hyphen.sh
+++ b/testsuite/in-place-hyphen.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Verify that "-" is treated as a file name with --in-place.
-# Copyright (C) 2015-2016 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
diff --git a/testsuite/in-place-suffix-backup.sh b/testsuite/in-place-suffix-backup.sh
index 6eaea82..1d239b4 100644
--- a/testsuite/in-place-suffix-backup.sh
+++ b/testsuite/in-place-suffix-backup.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test -i/--inplace with backup suffixes
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/init.sh b/testsuite/init.sh
index ee08022..584194f 100644
--- a/testsuite/init.sh
+++ b/testsuite/init.sh
@@ -1,6 +1,6 @@
# source this file; set up for tests
-# Copyright (C) 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 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
@@ -45,6 +45,9 @@
# Running a single test, with verbose output:
# $ make check TESTS=test-foo.sh VERBOSE=yes
#
+# Running a single test, keeping the temporary directory:
+# $ make check TESTS=test-foo.sh KEEP=yes
+#
# Running a single test, with single-stepping:
# 1. Go into a sub-shell:
# $ bash
@@ -128,6 +131,13 @@ else
fi
# We require $(...) support unconditionally.
+# We require non-surprising "local" semantics (this eliminates dash).
+# This takes the admittedly draconian step of eliminating dash, because the
+# assignment tab=$(printf '\t') works fine, yet preceding it with "local "
+# transforms it into an assignment that sets the variable to the empty string.
+# That is too counter-intuitive, and can lead to subtle run-time malfunction.
+# The example below is less subtle in that with dash, it evokes the run-time
+# exception "dash: 1: local: 1: bad variable name".
# We require a few additional shell features only when $EXEEXT is nonempty,
# in order to support automatic $EXEEXT emulation:
# - hyphen-containing alias names
@@ -151,6 +161,7 @@ fi
gl_shell_test_script_='
test $(echo y) = y || exit 1
f_local_() { local v=1; }; f_local_ || exit 1
+f_dash_local_fail_() { local t=$(printf " 1"); }; f_dash_local_fail_
score_=10
if test "$VERBOSE" = yes; then
test -n "$( (exec 3>&1; set -x; P=1 true 2>&3) 2> /dev/null)" && score_=9
@@ -287,44 +298,24 @@ compare_dev_null_ ()
return 2
}
-if diff_out_=`exec 2>/dev/null; diff -u "$0" "$0" < /dev/null` \
- && diff -u Makefile "$0" 2>/dev/null | grep '^[+]#!' >/dev/null; then
- # diff accepts the -u option and does not (like AIX 7 'diff') produce an
- # extra space on column 1 of every content line.
- if test -z "$diff_out_"; then
- compare_ () { diff -u "$@"; }
- else
- compare_ ()
- {
- if diff -u "$@" > diff.out; then
- # No differences were found, but Solaris 'diff' produces output
- # "No differences encountered". Hide this output.
- rm -f diff.out
- true
- else
- cat diff.out
- rm -f diff.out
- false
- fi
- }
- fi
-elif diff_out_=`exec 2>/dev/null; diff -c "$0" "$0" < /dev/null`; then
+for diff_opt_ in -u -U3 -c '' no; do
+ test "$diff_opt_" != no &&
+ diff_out_=`exec 2>/dev/null; diff $diff_opt_ "$0" "$0" < /dev/null` &&
+ break
+done
+if test "$diff_opt_" != no; then
if test -z "$diff_out_"; then
- compare_ () { diff -c "$@"; }
+ compare_ () { diff $diff_opt_ "$@"; }
else
compare_ ()
{
- if diff -c "$@" > diff.out; then
- # No differences were found, but AIX and HP-UX 'diff' produce output
- # "No differences encountered" or "There are no differences between the
- # files.". Hide this output.
- rm -f diff.out
- true
- else
- cat diff.out
- rm -f diff.out
- false
- fi
+ # If no differences were found, AIX and HP-UX 'diff' produce output
+ # like "No differences encountered". Hide this output.
+ diff $diff_opt_ "$@" > diff.out
+ diff_status_=$?
+ test $diff_status_ -eq 0 || cat diff.out || diff_status_=2
+ rm -f diff.out || diff_status_=2
+ return $diff_status_
}
fi
elif cmp -s /dev/null /dev/null 2>/dev/null; then
@@ -361,11 +352,15 @@ remove_tmp_ ()
{
__st=$?
cleanup_
- # cd out of the directory we're about to remove
- cd "$initial_cwd_" || cd / || cd /tmp
- chmod -R u+rwx "$test_dir_"
- # If removal fails and exit status was to be 0, then change it to 1.
- rm -rf "$test_dir_" || { test $__st = 0 && __st=1; }
+ if test "$KEEP" = yes; then
+ echo "Not removing temporary directory $test_dir_"
+ else
+ # cd out of the directory we're about to remove
+ cd "$initial_cwd_" || cd / || cd /tmp
+ chmod -R u+rwx "$test_dir_"
+ # If removal fails and exit status was to be 0, then change it to 1.
+ rm -rf "$test_dir_" || { test $__st = 0 && __st=1; }
+ fi
exit $__st
}
@@ -466,7 +461,6 @@ setup_ ()
fi
initial_cwd_=$PWD
- fail=0
pfx_=`testdir_prefix_`
test_dir_=`mktempd_ "$initial_cwd_" "$pfx_-$ME_.XXXX"` \
@@ -550,8 +544,9 @@ mktempd_ ()
# Disallow any trailing slash on specified destdir:
# it would subvert the post-mktemp "case"-based destdir test.
case $destdir_ in
- /) ;;
+ / | //) destdir_slash_=$destdir;;
*/) fail_ "invalid destination dir: remove trailing slash(es)";;
+ *) destdir_slash_=$destdir_/;;
esac
case $template_ in
@@ -561,20 +556,17 @@ mktempd_ ()
esac
# First, try to use mktemp.
- d=`unset TMPDIR; { mktemp -d -t -p "$destdir_" "$template_"; } 2>/dev/null` \
- || fail=1
+ d=`unset TMPDIR; { mktemp -d -t -p "$destdir_" "$template_"; } 2>/dev/null` &&
# The resulting name must be in the specified directory.
- case $d in "$destdir_"*);; *) fail=1;; esac
+ case $d in "$destdir_slash_"*) :;; *) false;; esac &&
# It must have created the directory.
- test -d "$d" || fail=1
+ test -d "$d" &&
# It must have 0700 permissions. Handle sticky "S" bits.
- perms=`ls -dgo "$d" 2>/dev/null|tr S -` || fail=1
- case $perms in drwx------*) ;; *) fail=1;; esac
-
- test $fail = 0 && {
+ perms=`ls -dgo "$d" 2>/dev/null` &&
+ case $perms in drwx--[-S]---*) :;; *) false;; esac && {
echo "$d"
return
}
@@ -593,7 +585,7 @@ mktempd_ ()
i_=1
while :; do
X_=`rand_bytes_ $nx_`
- candidate_dir_="$destdir_/$base_template_$X_"
+ candidate_dir_="$destdir_slash_$base_template_$X_"
err_=`mkdir -m 0700 "$candidate_dir_" 2>&1` \
&& { echo "$candidate_dir_"; return; }
test $MAX_TRIES_ -le $i_ && break;
diff --git a/testsuite/invalid-mb-seq-UMR.sh b/testsuite/invalid-mb-seq-UMR.sh
index d87bd4c..1602023 100755
--- a/testsuite/invalid-mb-seq-UMR.sh
+++ b/testsuite/invalid-mb-seq-UMR.sh
@@ -2,7 +2,7 @@
# Inserting an invalid multibyte sequence could lead to
# reading uninitialized memory.
-# Copyright (C) 2015-2016 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
diff --git a/testsuite/local.mk b/testsuite/local.mk
index ae1f06c..2c8c718 100644
--- a/testsuite/local.mk
+++ b/testsuite/local.mk
@@ -1,4 +1,4 @@
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -38,6 +38,7 @@ T = \
testsuite/mb-charclass-non-utf8.sh \
testsuite/mb-match-slash.sh \
testsuite/mb-y-translate.sh \
+ testsuite/newline-dfa-bug.sh \
testsuite/normalize-text.sh \
testsuite/nulldata.sh \
testsuite/panic-tests.sh \
diff --git a/testsuite/mb-bad-delim.sh b/testsuite/mb-bad-delim.sh
index ac43a49..a577c24 100755
--- a/testsuite/mb-bad-delim.sh
+++ b/testsuite/mb-bad-delim.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test 's' and 'y' non-slash delimiters in multibyte locales
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/mb-charclass-non-utf8.sh b/testsuite/mb-charclass-non-utf8.sh
index ab3d2fd..6ef2740 100755
--- a/testsuite/mb-charclass-non-utf8.sh
+++ b/testsuite/mb-charclass-non-utf8.sh
@@ -4,7 +4,7 @@
# a single-byte character, or the second byte of a multibyte
# character.
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/mb-match-slash.sh b/testsuite/mb-match-slash.sh
index 787b5d6..bfa9998 100755
--- a/testsuite/mb-match-slash.sh
+++ b/testsuite/mb-match-slash.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test slash following an incomplete multibyte character
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/mb-y-translate.sh b/testsuite/mb-y-translate.sh
index a1f59c4..a5188a1 100755
--- a/testsuite/mb-y-translate.sh
+++ b/testsuite/mb-y-translate.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test multibyte y/// translations
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/newline-dfa-bug.sh b/testsuite/newline-dfa-bug.sh
new file mode 100755
index 0000000..91f1ed1
--- /dev/null
+++ b/testsuite/newline-dfa-bug.sh
@@ -0,0 +1,38 @@
+#!/bin/sh
+# sed may access to uninitialized memory if transit to 15th dfa state
+# with newline. This bug affected sed version 4.3.
+
+# Copyright (C) 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/>.
+. "${srcdir=.}/testsuite/init.sh"; path_prepend_ ./sed
+print_ver_ sed
+
+require_valgrind_
+
+printf 'abcdefg abcdefg\nB\n' > in || framework_failure_
+printf 'B\n' > exp || framework_failure_
+
+valgrind --quiet --error-exitcode=1 \
+ sed 'N;s/abcdefg.*\n//' in > out 2> err || fail=1
+
+# Work around a bug in CentOS 5.10's valgrind
+# FIXME: remove in 2018 or when CentOS 5 is no longer officially supported
+grep 'valgrind: .*Assertion.*failed' err > /dev/null \
+ && skip_ 'you seem to have a buggy version of valgrind'
+
+compare exp out || fail=1
+compare /dev/null err || fail=1
+
+Exit $fail
diff --git a/testsuite/normalize-text.sh b/testsuite/normalize-text.sh
index 9a34a03..e3c0610 100644
--- a/testsuite/normalize-text.sh
+++ b/testsuite/normalize-text.sh
@@ -4,7 +4,7 @@
# \dNNN \xNN \oNNN - tested in 'convert-number.sh'
# character-classes in POSIX mode - tested in 'posix-char-class.sh'
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/nulldata.sh b/testsuite/nulldata.sh
index 91befc6..e2be647 100755
--- a/testsuite/nulldata.sh
+++ b/testsuite/nulldata.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test -z/--null-data option
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/panic-tests.sh b/testsuite/panic-tests.sh
index a2dba00..0cacd17 100644
--- a/testsuite/panic-tests.sh
+++ b/testsuite/panic-tests.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Exercise some panic stops
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/posix-char-class.sh b/testsuite/posix-char-class.sh
index db7a97f..d0a41f1 100644
--- a/testsuite/posix-char-class.sh
+++ b/testsuite/posix-char-class.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test character-class definitions in POSIX mode.
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/posix-mode-N.sh b/testsuite/posix-mode-N.sh
index 2c7c128..36306bf 100755
--- a/testsuite/posix-mode-N.sh
+++ b/testsuite/posix-mode-N.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test 'N' command with/without posix conformity
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/posix-mode-addr.sh b/testsuite/posix-mode-addr.sh
index 6f3c112..dd79a3a 100644
--- a/testsuite/posix-mode-addr.sh
+++ b/testsuite/posix-mode-addr.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Ensure GNU address extensions are rejected in posix mode
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/posix-mode-bad-ref.sh b/testsuite/posix-mode-bad-ref.sh
index f578917..f225cd2 100755
--- a/testsuite/posix-mode-bad-ref.sh
+++ b/testsuite/posix-mode-bad-ref.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test non-posix-conforming gnu extensions when using --posix.
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/posix-mode-s.sh b/testsuite/posix-mode-s.sh
index d284a4d..d76636a 100644
--- a/testsuite/posix-mode-s.sh
+++ b/testsuite/posix-mode-s.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Ensure GNU extensions are rejected in posix mode
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/range-overlap.sh b/testsuite/range-overlap.sh
index 267eb03..9d80bf8 100755
--- a/testsuite/range-overlap.sh
+++ b/testsuite/range-overlap.sh
@@ -2,7 +2,7 @@
# Verify that even with overlapping ranges of line numbers,
# only the selected lines are affected.
-# Copyright (C) 2015-2016 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
diff --git a/testsuite/recursive-escape-c.sh b/testsuite/recursive-escape-c.sh
index 88c9399..3d26532 100644
--- a/testsuite/recursive-escape-c.sh
+++ b/testsuite/recursive-escape-c.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# test \c escaping
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/regex-errors.sh b/testsuite/regex-errors.sh
index 292b2b3..6c41206 100644
--- a/testsuite/regex-errors.sh
+++ b/testsuite/regex-errors.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Exercise regex_compile errors
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/runptests.c b/testsuite/runptests.c
index fb787e7..0510b31 100644
--- a/testsuite/runptests.c
+++ b/testsuite/runptests.c
@@ -1,5 +1,5 @@
/* POSIX regex testsuite from IEEE 2003.2.
- Copyright (C) 1998-2016 Free Software Foundation, Inc.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
diff --git a/testsuite/sandbox.sh b/testsuite/sandbox.sh
index 3e529fe..3a2f551 100755
--- a/testsuite/sandbox.sh
+++ b/testsuite/sandbox.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test --sandbox mode
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/stdin-prog.sh b/testsuite/stdin-prog.sh
index a8f992c..9597503 100644
--- a/testsuite/stdin-prog.sh
+++ b/testsuite/stdin-prog.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test program file from STDIN
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/subst-mb-incomplete.sh b/testsuite/subst-mb-incomplete.sh
index 90d73cf..849061c 100755
--- a/testsuite/subst-mb-incomplete.sh
+++ b/testsuite/subst-mb-incomplete.sh
@@ -3,7 +3,7 @@
# performing a substitution with a replacement string containing an
# incomplete multi-byte character.
-# Copyright (C) 2015-2016 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
diff --git a/testsuite/subst-options.sh b/testsuite/subst-options.sh
index b05eb1b..5a9e211 100644
--- a/testsuite/subst-options.sh
+++ b/testsuite/subst-options.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test Substitute options (for code-coverage purposes as well)
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/subst-replacement.sh b/testsuite/subst-replacement.sh
index c385be3..cd41388 100644
--- a/testsuite/subst-replacement.sh
+++ b/testsuite/subst-replacement.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test Substitute replacements, e.g. 's/(.)/\U\1/'
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/temp-file-cleanup.sh b/testsuite/temp-file-cleanup.sh
index aadb9ce..953506a 100755
--- a/testsuite/temp-file-cleanup.sh
+++ b/testsuite/temp-file-cleanup.sh
@@ -2,7 +2,7 @@
# Verify that an erroneous use of sed -i no longer leaves behind
# a temporary file.
-# Copyright (C) 2015-2016 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
diff --git a/testsuite/test-mbrtowc.c b/testsuite/test-mbrtowc.c
index 04c20fc..b76d3fd 100644
--- a/testsuite/test-mbrtowc.c
+++ b/testsuite/test-mbrtowc.c
@@ -1,5 +1,5 @@
/* Auxiliary program to test mbrtowc(3) behaviour.
- Copyright 2016 Free Software Foundation, Inc.
+ Copyright 2016-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
diff --git a/testsuite/title-case.sh b/testsuite/title-case.sh
index 962929b..60c8341 100755
--- a/testsuite/title-case.sh
+++ b/testsuite/title-case.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test case insensitive matching for titlecase and similarly odd chars.
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/tst-boost.c b/testsuite/tst-boost.c
index 6265123..8227deb 100644
--- a/testsuite/tst-boost.c
+++ b/testsuite/tst-boost.c
@@ -1,5 +1,5 @@
/* Regular expression tests.
- Copyright (C) 2003-2016 Free Software Foundation, Inc.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
diff --git a/testsuite/tst-pcre.c b/testsuite/tst-pcre.c
index eb16424..c6c41fc 100644
--- a/testsuite/tst-pcre.c
+++ b/testsuite/tst-pcre.c
@@ -1,5 +1,5 @@
/* Regular expression tests.
- Copyright (C) 2003-2016 Free Software Foundation, Inc.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
diff --git a/testsuite/tst-rxspencer.c b/testsuite/tst-rxspencer.c
index 0c060a4..a8785bd 100644
--- a/testsuite/tst-rxspencer.c
+++ b/testsuite/tst-rxspencer.c
@@ -1,5 +1,5 @@
/* Regular expression tests.
- Copyright (C) 2003-2016 Free Software Foundation, Inc.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
diff --git a/testsuite/unbuffered.sh b/testsuite/unbuffered.sh
index b1a4c1b..a0996e7 100644
--- a/testsuite/unbuffered.sh
+++ b/testsuite/unbuffered.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test -u/--unbuffered option
-# Copyright (C) 2016 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
diff --git a/testsuite/xemacs.good b/testsuite/xemacs.good
index 4480027..3d97caf 100644
--- a/testsuite/xemacs.good
+++ b/testsuite/xemacs.good
@@ -1,6 +1,6 @@
#Makefile.in generated automatically by automake 1.5 from Makefile.am.
-#Copyright 1994-2016 Free Software Foundation, Inc.
+#Copyright 1994-2017 Free Software Foundation, Inc.
#This Makefile.in 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.
diff --git a/testsuite/xemacs.inp b/testsuite/xemacs.inp
index 6beacff..3b8b255 100644
--- a/testsuite/xemacs.inp
+++ b/testsuite/xemacs.inp
@@ -1,6 +1,6 @@
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
-# Copyright 1994-2016 Free Software Foundation, Inc.
+# Copyright 1994-2017 Free Software Foundation, Inc.
# This Makefile.in 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.