Sync from gnulib, to remove dependencies of other modules on unlocked-io.
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 4 Oct 2004 20:18:43 +0000 (20:18 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 4 Oct 2004 20:18:43 +0000 (20:18 +0000)
22 files changed:
lib/ChangeLog
lib/argmatch.c
lib/closeout.c
lib/error.c
lib/exclude.c
lib/getdate.y
lib/getndelim2.c
lib/getpass.c
lib/getusershell.c
lib/linebuffer.c
lib/md5.c
lib/mountlist.c
lib/posixtm.c
lib/readtokens.c
lib/readutmp.c
lib/regex.c
lib/sha1.c
lib/unlocked-io.h
lib/version-etc.c
lib/yesno.c
m4/ChangeLog
m4/unlocked-io.m4

index b8d9b08..7cb4619 100644 (file)
@@ -1,3 +1,14 @@
+2004-10-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Sync from gnulib.
+       * argmatch.c, closeout.c, error.c, exclude.c, getdate.y,
+       getndelim2.c, getpass.c, getusershell.c, linebuffer.c,
+       md5.c, mountlist.c, posixtm.c, readtokens.c, readutmp.c,
+       regex.c, sha1.c, version-etc.c, yesno.c:
+       Include "unlocked-io.h" only if USE_UNLOCKED_IO.
+       * unlocked-io.h: Don't worry about USE_UNLOCKED_IO; that's now
+       the includer's responsibility.
+
 2004-10-03  Paul Eggert  <eggert@cs.ucla.edu>
 
        Sync from gnulib.
index ffc638c..e7c2575 100644 (file)
 #include "exit.h"
 #include "quotearg.h"
 #include "quote.h"
-#include "unlocked-io.h"
+
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
 
 /* When reporting an invalid argument, show nonprinting characters
    by using the quoting style ARGMATCH_QUOTING_STYLE.  Do not use
index 3c7bed9..16e6f9f 100644 (file)
 #include "error.h"
 #include "exitfail.h"
 #include "quotearg.h"
-#include "unlocked-io.h"
 #include "__fpending.h"
 
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
 static const char *file_name;
 
 /* Set the file name to be reported in the event an error is detected
index 5a5e126..94e32fd 100644 (file)
@@ -40,7 +40,7 @@
 # define mbsrtowcs __mbsrtowcs
 #endif
 
-#if !_LIBC
+#ifdef USE_UNLOCKED_IO
 # include "unlocked-io.h"
 #endif
 
index 4ca2c78..24146eb 100644 (file)
 
 #include "exclude.h"
 #include "fnmatch.h"
-#include "unlocked-io.h"
 #include "xalloc.h"
 
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
 #if STDC_HEADERS || (! defined isascii && ! HAVE_ISASCII)
 # define IN_CTYPE_DOMAIN(c) true
 #else
index 9d948dc..e8cbfeb 100644 (file)
@@ -77,7 +77,9 @@
 
 #include <string.h>
 
-#include "unlocked-io.h"
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
 
 #if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
 # define __attribute__(x)
index 9571e50..aef9780 100644 (file)
@@ -29,7 +29,9 @@
 #include <stdlib.h>
 #include <stddef.h>
 
-#include "unlocked-io.h"
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
 
 #include <limits.h>
 #if HAVE_INTTYPES_H
index 9ac01f2..bc8eb44 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2001, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2001, 2003, 2004 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
@@ -55,7 +55,7 @@
 #if _LIBC
 # define flockfile(s) _IO_flockfile (s)
 # define funlockfile(s) _IO_funlockfile (s)
-#else
+#elif USE_UNLOCKED_IO
 # include "unlocked-io.h"
 #endif
 
index 9b60f18..015cb34 100644 (file)
@@ -1,5 +1,7 @@
 /* getusershell.c -- Return names of valid user shells.
-   Copyright (C) 1991, 1997, 2000, 2001, 2003 Free Software Foundation, Inc.
+
+   Copyright (C) 1991, 1997, 2000, 2001, 2003, 2004 Free Software
+   Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #include <stdio.h>
 #include <stdlib.h>
 #include <ctype.h>
-#include "unlocked-io.h"
+
 #include "xalloc.h"
 
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
 #if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
 # define IN_CTYPE_DOMAIN(c) 1
 #else
index 67d0f1f..c12cdbd 100644 (file)
@@ -1,7 +1,7 @@
 /* linebuffer.c -- read arbitrarily long lines
 
-   Copyright (C) 1986, 1991, 1998, 1999, 2001, 2003 Free Software
-   Foundation, Inc.
+   Copyright (C) 1986, 1991, 1998, 1999, 2001, 2003, 2004 Free
+   Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #include <string.h>
 #include <sys/types.h>
 #include "linebuffer.h"
-#include "unlocked-io.h"
 #include "xalloc.h"
 
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
 /* Initialize linebuffer LINEBUFFER for use. */
 
 void
index b938e1c..39d2bb4 100644 (file)
--- a/lib/md5.c
+++ b/lib/md5.c
@@ -29,7 +29,9 @@
 #include <stddef.h>
 #include <string.h>
 
-#include "unlocked-io.h"
+#ifdef USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
 
 #ifdef _LIBC
 # include <endian.h>
index c9c1463..55071c3 100644 (file)
@@ -134,7 +134,10 @@ char *strstr ();
 #endif
 
 #include "mountlist.h"
-#include "unlocked-io.h"
+
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
 
 #ifndef SIZE_MAX
 # define SIZE_MAX ((size_t) -1)
index 22f636e..1400e5a 100644 (file)
 #endif
 
 #include "posixtm.h"
-#include "unlocked-io.h"
+
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
 
 /* ISDIGIT differs from isdigit, as follows:
    - Its arg may be any int or unsigned int; it need not be an unsigned char.
index 2ccf6a9..9fb611d 100644 (file)
 #include <string.h>
 #include <stdbool.h>
 
-#include "unlocked-io.h"
 #include "xalloc.h"
 
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
 #define STREQ(a,b) ((a) == (b) || ((a) && (b) && *(a) == *(b) \
                                   && strcmp(a, b) == 0))
 
index 91d341a..ed58893 100644 (file)
 #include <stdlib.h>
 
 #include "readutmp.h"
-#include "unlocked-io.h"
 #include "xalloc.h"
 
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
 /* Copy UT->ut_name into storage obtained from malloc.  Then remove any
    trailing spaces from the copy, NUL terminate it, and return the copy.  */
 
index 32c1519..45db40e 100644 (file)
@@ -583,7 +583,10 @@ typedef enum
 #  undef INSIDE_RECURSION
 # endif
 #endif
-#include "unlocked-io.h"
+
+#ifdef USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
 
 #ifdef INSIDE_RECURSION
 /* Common operations on the compiled pattern.  */
index c86140c..2bed14d 100644 (file)
@@ -31,7 +31,9 @@
 #include <stddef.h>
 #include <string.h>
 
-#include "unlocked-io.h"
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
 
 /*
   Not-swap is a macro that does an endian swap on architectures that are
index 36a7a48..3ff42f2 100644 (file)
@@ -1,6 +1,6 @@
 /* Prefer faster, non-thread-safe stdio functions if available.
 
-   Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 /* Written by Jim Meyering.  */
 
 #ifndef UNLOCKED_IO_H
-# define UNLOCKED_IO_H 1
-
-# ifndef USE_UNLOCKED_IO
-#  define USE_UNLOCKED_IO 1
-# endif
-
-# if USE_UNLOCKED_IO
+#define UNLOCKED_IO_H 1
 
 /* These are wrappers for functions/macros from the GNU C library, and
    from other C libraries supporting POSIX's optional thread-safe functions.
    the *_unlocked functions directly.  On hosts that lack those
    functions, invoke the non-thread-safe versions instead.  */
 
-#  include <stdio.h>
-
-#  if HAVE_DECL_CLEARERR_UNLOCKED
-#   undef clearerr
-#   define clearerr(x) clearerr_unlocked (x)
-#  else
-#   define clearerr_unlocked(x) clearerr (x)
-#  endif
-#  if HAVE_DECL_FEOF_UNLOCKED
-#   undef feof
-#   define feof(x) feof_unlocked (x)
-#  else
-#   define feof_unlocked(x) feof (x)
-#  endif
-#  if HAVE_DECL_FERROR_UNLOCKED
-#   undef ferror
-#   define ferror(x) ferror_unlocked (x)
-#  else
-#   define ferror_unlocked(x) ferror (x)
-#  endif
-#  if HAVE_DECL_FFLUSH_UNLOCKED
-#   undef fflush
-#   define fflush(x) fflush_unlocked (x)
-#  else
-#   define fflush_unlocked(x) fflush (x)
-#  endif
-#  if HAVE_DECL_FGETS_UNLOCKED
-#   undef fgets
-#   define fgets(x,y,z) fgets_unlocked (x,y,z)
-#  else
-#   define fgets_unlocked(x,y,z) fgets (x,y,z)
-#  endif
-#  if HAVE_DECL_FPUTC_UNLOCKED
-#   undef fputc
-#   define fputc(x,y) fputc_unlocked (x,y)
-#  else
-#   define fputc_unlocked(x,y) fputc (x,y)
-#  endif
-#  if HAVE_DECL_FPUTS_UNLOCKED
-#   undef fputs
-#   define fputs(x,y) fputs_unlocked (x,y)
-#  else
-#   define fputs_unlocked(x,y) fputs (x,y)
-#  endif
-#  if HAVE_DECL_FREAD_UNLOCKED
-#   undef fread
-#   define fread(w,x,y,z) fread_unlocked (w,x,y,z)
-#  else
-#   define fread_unlocked(w,x,y,z) fread (w,x,y,z)
-#  endif
-#  if HAVE_DECL_FWRITE_UNLOCKED
-#   undef fwrite
-#   define fwrite(w,x,y,z) fwrite_unlocked (w,x,y,z)
-#  else
-#   define fwrite_unlocked(w,x,y,z) fwrite (w,x,y,z)
-#  endif
-#  if HAVE_DECL_GETC_UNLOCKED
-#   undef getc
-#   define getc(x) getc_unlocked (x)
-#  else
-#   define getc_unlocked(x) getc (x)
-#  endif
-#  if HAVE_DECL_GETCHAR_UNLOCKED
-#   undef getchar
-#   define getchar() getchar_unlocked ()
-#  else
-#   define getchar_unlocked() getchar ()
-#  endif
-#  if HAVE_DECL_PUTC_UNLOCKED
-#   undef putc
-#   define putc(x,y) putc_unlocked (x,y)
-#  else
-#   define putc_unlocked(x,y) putc (x,y)
-#  endif
-#  if HAVE_DECL_PUTCHAR_UNLOCKED
-#   undef putchar
-#   define putchar(x) putchar_unlocked (x)
-#  else
-#   define putchar_unlocked(x) putchar (x)
-#  endif
-
-#  undef flockfile
-#  define flockfile(x) ((void) 0)
-
-#  undef ftrylockfile
-#  define ftrylockfile(x) 0
-
-#  undef funlockfile
-#  define funlockfile(x) ((void) 0)
-
-# endif /* USE_UNLOCKED_IO */
+#include <stdio.h>
+
+#if HAVE_DECL_CLEARERR_UNLOCKED
+# undef clearerr
+# define clearerr(x) clearerr_unlocked (x)
+#else
+# define clearerr_unlocked(x) clearerr (x)
+#endif
+
+#if HAVE_DECL_FEOF_UNLOCKED
+# undef feof
+# define feof(x) feof_unlocked (x)
+#else
+# define feof_unlocked(x) feof (x)
+#endif
+
+#if HAVE_DECL_FERROR_UNLOCKED
+# undef ferror
+# define ferror(x) ferror_unlocked (x)
+#else
+# define ferror_unlocked(x) ferror (x)
+#endif
+
+#if HAVE_DECL_FFLUSH_UNLOCKED
+# undef fflush
+# define fflush(x) fflush_unlocked (x)
+#else
+# define fflush_unlocked(x) fflush (x)
+#endif
+
+#if HAVE_DECL_FGETS_UNLOCKED
+# undef fgets
+# define fgets(x,y,z) fgets_unlocked (x,y,z)
+#else
+# define fgets_unlocked(x,y,z) fgets (x,y,z)
+#endif
+
+#if HAVE_DECL_FPUTC_UNLOCKED
+# undef fputc
+# define fputc(x,y) fputc_unlocked (x,y)
+#else
+# define fputc_unlocked(x,y) fputc (x,y)
+#endif
+
+#if HAVE_DECL_FPUTS_UNLOCKED
+# undef fputs
+# define fputs(x,y) fputs_unlocked (x,y)
+#else
+# define fputs_unlocked(x,y) fputs (x,y)
+#endif
+
+#if HAVE_DECL_FREAD_UNLOCKED
+# undef fread
+# define fread(w,x,y,z) fread_unlocked (w,x,y,z)
+#else
+# define fread_unlocked(w,x,y,z) fread (w,x,y,z)
+#endif
+
+#if HAVE_DECL_FWRITE_UNLOCKED
+# undef fwrite
+# define fwrite(w,x,y,z) fwrite_unlocked (w,x,y,z)
+#else
+# define fwrite_unlocked(w,x,y,z) fwrite (w,x,y,z)
+#endif
+
+#if HAVE_DECL_GETC_UNLOCKED
+# undef getc
+# define getc(x) getc_unlocked (x)
+#else
+# define getc_unlocked(x) getc (x)
+#endif
+
+#if HAVE_DECL_GETCHAR_UNLOCKED
+# undef getchar
+# define getchar() getchar_unlocked ()
+#else
+# define getchar_unlocked() getchar ()
+#endif
+
+#if HAVE_DECL_PUTC_UNLOCKED
+# undef putc
+# define putc(x,y) putc_unlocked (x,y)
+#else
+# define putc_unlocked(x,y) putc (x,y)
+#endif
+
+#if HAVE_DECL_PUTCHAR_UNLOCKED
+# undef putchar
+# define putchar(x) putchar_unlocked (x)
+#else
+# define putchar_unlocked(x) putchar (x)
+#endif
+
+#undef flockfile
+#define flockfile(x) ((void) 0)
+
+#undef ftrylockfile
+#define ftrylockfile(x) 0
+
+#undef funlockfile
+#define funlockfile(x) ((void) 0)
+
 #endif /* UNLOCKED_IO_H */
index fd71eff..f9a701a 100644 (file)
 #include <stdarg.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include "unlocked-io.h"
+
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
 
 #include "gettext.h"
 #define _(msgid) gettext (msgid)
index 35d4ba7..54691b7 100644 (file)
 #include <ctype.h>
 #include <stdlib.h>
 #include <stdio.h>
-#include "unlocked-io.h"
+
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
 
 /* Read one line from standard input
    and return nonzero if that line begins with y or Y,
index aeeffa1..450fd1e 100644 (file)
@@ -1,3 +1,9 @@
+2004-10-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Sync from gnulib.
+       * unlocked-io.m4: Add copyright notice.
+       (gl_FUNC_GLIBC_UNLOCKED_IO): Define USE_UNLOCKED_IO.
+
 2004-10-03  Paul Eggert  <eggert@cs.ucla.edu>
 
        Sync from gnulib.
index cd1c5f4..5849e4a 100644 (file)
@@ -1,4 +1,21 @@
-#serial 9
+# unlocked-io.m4 serial 10
+
+# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
+# Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
 dnl From Jim Meyering.
 dnl
@@ -10,6 +27,11 @@ dnl on Solaris 2.6).
 
 AC_DEFUN([gl_FUNC_GLIBC_UNLOCKED_IO],
 [
+  AC_DEFINE([USE_UNLOCKED_IO], 1,
+    [Define to 1 if you want getc etc. to use unlocked I/O if available.
+     Unlocked I/O can improve performance in unithreaded apps,
+     but it is not safe for multithreaded apps.])
+
   dnl Persuade glibc and Solaris <stdio.h> to declare
   dnl fgets_unlocked(), fputs_unlocked() etc.
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])