Commit 111408a0 authored by Paul Eggert's avatar Paul Eggert

Update from Gnulib

This incorporates:
2019-06-04 copy-file-range: new module
2019-05-28 binaty-io: O_BINARY on consoles no longer fails
* doc/misc/texinfo.tex, lib/binary-io.c, lib/binary-io.h:
* lib/unistd.in.h, m4/unistd_h.m4: Copy from Gnulib.
* lib/gnulib.mk.in: Regenerate.
parent a14eb432
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
% Load plain if necessary, i.e., if running under initex. % Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
% %
\def\texinfoversion{2019-05-18.15} \def\texinfoversion{2019-06-01.23}
% %
% Copyright 1985, 1986, 1988, 1990-2019 Free Software Foundation, Inc. % Copyright 1985, 1986, 1988, 1990-2019 Free Software Foundation, Inc.
% %
...@@ -5317,7 +5317,7 @@ ...@@ -5317,7 +5317,7 @@
% the current value of \escapechar. % the current value of \escapechar.
\def\escapeisbackslash{\escapechar=`\\} \def\escapeisbackslash{\escapechar=`\\}
% Use \ in index files by default. texi2dvi didn't support @ as as the escape % Use \ in index files by default. texi2dvi didn't support @ as the escape
% character (as it checked for "\entry" in the files, and not "@entry"). When % character (as it checked for "\entry" in the files, and not "@entry"). When
% the new version of texi2dvi has had a chance to become more prevalent, then % the new version of texi2dvi has had a chance to become more prevalent, then
% the escape character can change back to @ again. This should be an easy % the escape character can change back to @ again. This should be an easy
...@@ -5546,7 +5546,6 @@ ...@@ -5546,7 +5546,6 @@
\enddoublecolumns \enddoublecolumns
\fi \fi
\else \else
\message{trying to print index \indexname}%
\begindoublecolumns \begindoublecolumns
\catcode`\\=0\relax \catcode`\\=0\relax
\catcode`\@=12\relax \catcode`\@=12\relax
...@@ -5867,7 +5866,7 @@ ...@@ -5867,7 +5866,7 @@
} }
% Finished with with double columns. % Finished with double columns.
\def\enddoublecolumns{% \def\enddoublecolumns{%
% The following penalty ensures that the page builder is exercised % The following penalty ensures that the page builder is exercised
% _before_ we change the output routine. This is necessary in the % _before_ we change the output routine. This is necessary in the
......
...@@ -20,18 +20,20 @@ ...@@ -20,18 +20,20 @@
#include "binary-io.h" #include "binary-io.h"
#if defined __DJGPP__ || defined __EMX__ #if defined __DJGPP__ || defined __EMX__
# include <errno.h>
# include <unistd.h> # include <unistd.h>
int int
__gl_setmode_check (int fd) set_binary_mode (int fd, int mode)
{ {
if (isatty (fd)) if (isatty (fd))
{ /* If FD refers to a console (not a pipe, not a regular file),
errno = EINVAL; O_TEXT is the only reasonable mode, both on input and on output.
return -1; Silently ignore the request. If we were to return -1 here,
} all programs that use xset_binary_mode would fail when run
with console input or console output. */
return O_TEXT;
else else
return 0; return __gl_setmode (fd, mode);
} }
#endif #endif
...@@ -53,25 +53,21 @@ __gl_setmode (int fd _GL_UNUSED, int mode _GL_UNUSED) ...@@ -53,25 +53,21 @@ __gl_setmode (int fd _GL_UNUSED, int mode _GL_UNUSED)
} }
#endif #endif
#if defined __DJGPP__ || defined __EMX__
extern int __gl_setmode_check (int);
#else
BINARY_IO_INLINE int
__gl_setmode_check (int fd _GL_UNUSED) { return 0; }
#endif
/* Set FD's mode to MODE, which should be either O_TEXT or O_BINARY. /* Set FD's mode to MODE, which should be either O_TEXT or O_BINARY.
Return the old mode if successful, -1 (setting errno) on failure. Return the old mode if successful, -1 (setting errno) on failure.
Ordinarily this function would be called 'setmode', since that is Ordinarily this function would be called 'setmode', since that is
its name on MS-Windows, but it is called 'set_binary_mode' here its name on MS-Windows, but it is called 'set_binary_mode' here
to avoid colliding with a BSD function of another name. */ to avoid colliding with a BSD function of another name. */
#if defined __DJGPP__ || defined __EMX__
extern int set_binary_mode (int fd, int mode);
#else
BINARY_IO_INLINE int BINARY_IO_INLINE int
set_binary_mode (int fd, int mode) set_binary_mode (int fd, int mode)
{ {
int r = __gl_setmode_check (fd); return __gl_setmode (fd, mode);
return r != 0 ? r : __gl_setmode (fd, mode);
} }
#endif
/* This macro is obsolescent. */ /* This macro is obsolescent. */
#define SET_BINARY(fd) ((void) set_binary_mode (fd, O_BINARY)) #define SET_BINARY(fd) ((void) set_binary_mode (fd, O_BINARY))
......
...@@ -252,6 +252,7 @@ GNULIB_CHDIR = @GNULIB_CHDIR@ ...@@ -252,6 +252,7 @@ GNULIB_CHDIR = @GNULIB_CHDIR@
GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CHOWN = @GNULIB_CHOWN@
GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CLOSE = @GNULIB_CLOSE@
GNULIB_CLOSEDIR = @GNULIB_CLOSEDIR@ GNULIB_CLOSEDIR = @GNULIB_CLOSEDIR@
GNULIB_COPY_FILE_RANGE = @GNULIB_COPY_FILE_RANGE@
GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_CTIME = @GNULIB_CTIME@
GNULIB_DIRFD = @GNULIB_DIRFD@ GNULIB_DIRFD = @GNULIB_DIRFD@
GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DPRINTF = @GNULIB_DPRINTF@
...@@ -489,6 +490,7 @@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ ...@@ -489,6 +490,7 @@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@
HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CHOWN = @HAVE_CHOWN@
HAVE_CLOSEDIR = @HAVE_CLOSEDIR@ HAVE_CLOSEDIR = @HAVE_CLOSEDIR@
HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@
HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
...@@ -3115,6 +3117,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H ...@@ -3115,6 +3117,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
-e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \
-e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \
-e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \
-e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GNULIB_COPY_FILE_RANGE)/g' \
-e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \ -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \
-e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \
-e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \
...@@ -3165,6 +3168,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H ...@@ -3165,6 +3168,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
-e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \
< $(srcdir)/unistd.in.h | \ < $(srcdir)/unistd.in.h | \
sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \
-e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \
-e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
-e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \
-e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \
......
...@@ -331,6 +331,24 @@ _GL_WARN_ON_USE (close, "close does not portably work on sockets - " ...@@ -331,6 +331,24 @@ _GL_WARN_ON_USE (close, "close does not portably work on sockets - "
#endif #endif
#if @GNULIB_COPY_FILE_RANGE@
# if !@HAVE_COPY_FILE_RANGE@
_GL_FUNCDECL_SYS (copy_file_range, ssize_t, (int ifd, off_t *ipos,
int ofd, off_t *opos,
size_t len, unsigned flags));
_GL_CXXALIAS_SYS (copy_file_range, ssize_t, (int ifd, off_t *ipos,
int ofd, off_t *opos,
size_t len, unsigned flags));
# endif
_GL_CXXALIASWARN (copy_file_range);
#elif defined GNULIB_POSIXCHECK
/* Assume copy_file_range is always declared. */
_GL_WARN_ON_USE (copy_file_range,
"copy_file_range is unportable - "
"use gnulib module copy_file_range for portability");
#endif
#if @GNULIB_DUP@ #if @GNULIB_DUP@
# if @REPLACE_DUP@ # if @REPLACE_DUP@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE) # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
......
# unistd_h.m4 serial 74 # unistd_h.m4 serial 75
dnl Copyright (C) 2006-2019 Free Software Foundation, Inc. dnl Copyright (C) 2006-2019 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
...@@ -64,6 +64,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS], ...@@ -64,6 +64,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
GNULIB_CHDIR=0; AC_SUBST([GNULIB_CHDIR]) GNULIB_CHDIR=0; AC_SUBST([GNULIB_CHDIR])
GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN]) GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN])
GNULIB_CLOSE=0; AC_SUBST([GNULIB_CLOSE]) GNULIB_CLOSE=0; AC_SUBST([GNULIB_CLOSE])
GNULIB_COPY_FILE_RANGE=0; AC_SUBST([GNULIB_COPY_FILE_RANGE])
GNULIB_DUP=0; AC_SUBST([GNULIB_DUP]) GNULIB_DUP=0; AC_SUBST([GNULIB_DUP])
GNULIB_DUP2=0; AC_SUBST([GNULIB_DUP2]) GNULIB_DUP2=0; AC_SUBST([GNULIB_DUP2])
GNULIB_DUP3=0; AC_SUBST([GNULIB_DUP3]) GNULIB_DUP3=0; AC_SUBST([GNULIB_DUP3])
...@@ -113,6 +114,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS], ...@@ -113,6 +114,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
GNULIB_WRITE=0; AC_SUBST([GNULIB_WRITE]) GNULIB_WRITE=0; AC_SUBST([GNULIB_WRITE])
dnl Assume proper GNU behavior unless another module says otherwise. dnl Assume proper GNU behavior unless another module says otherwise.
HAVE_CHOWN=1; AC_SUBST([HAVE_CHOWN]) HAVE_CHOWN=1; AC_SUBST([HAVE_CHOWN])
HAVE_COPY_FILE_RANGE=1; AC_SUBST([HAVE_COPY_FILE_RANGE])
HAVE_DUP2=1; AC_SUBST([HAVE_DUP2]) HAVE_DUP2=1; AC_SUBST([HAVE_DUP2])
HAVE_DUP3=1; AC_SUBST([HAVE_DUP3]) HAVE_DUP3=1; AC_SUBST([HAVE_DUP3])
HAVE_EUIDACCESS=1; AC_SUBST([HAVE_EUIDACCESS]) HAVE_EUIDACCESS=1; AC_SUBST([HAVE_EUIDACCESS])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment