From: Paolo Bonzini Date: Wed, 27 Aug 2008 12:44:58 +0000 (+0200) Subject: use unlocked I/O in getdelim X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fcdfb4b5916a2a1605e02e3f801262d72c2cf453;p=pspp use unlocked I/O in getdelim 2008-08-27 Paolo Bonzini * lib/getdelim.c (flockfile, funlockfile): Make all of them dummy if one is not available. Do not touch them if USE_UNLOCKED_IO, instead letting unlocked-io.h do that. (getc_maybe_unlocked): New. * m4/getdelim.m4 (gl_PREREQ_GETDELIM): Check for getc_unlocked. --- diff --git a/ChangeLog b/ChangeLog index 1f25783a83..0b3050d616 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-08-27 Paolo Bonzini + + * lib/getdelim.c (flockfile, funlockfile): Make all of them + dummy if one is not available. Do not touch them if + USE_UNLOCKED_IO, instead letting unlocked-io.h do that. + (getc_maybe_unlocked): New. + * m4/getdelim.m4 (gl_PREREQ_GETDELIM): Check for getc_unlocked. + 2008-08-26 Eric Blake doc/INSTALL: resync from autoconf diff --git a/lib/getdelim.c b/lib/getdelim.c index 2e127fcaaa..35cb2d8737 100644 --- a/lib/getdelim.c +++ b/lib/getdelim.c @@ -33,13 +33,18 @@ #ifndef SSIZE_MAX # define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2)) #endif -#if !HAVE_FLOCKFILE + +#if USE_UNLOCKED_IO +# include "unlocked-io.h" +# define getc_maybe_unlocked(fp) getc(fp) +#elif !HAVE_FLOCKFILE || !HAVE_FUNLOCKFILE || !HAVE_DECL_GETC_UNLOCKED # undef flockfile -# define flockfile(x) ((void) 0) -#endif -#if !HAVE_FUNLOCKFILE # undef funlockfile +# define flockfile(x) ((void) 0) # define funlockfile(x) ((void) 0) +# define getc_maybe_unlocked(fp) getc(fp) +#else +# define getc_maybe_unlocked(fp) getc_unlocked(fp) #endif /* Read up to (and including) a DELIMITER from FP into *LINEPTR (and @@ -79,7 +84,7 @@ getdelim (char **lineptr, size_t *n, int delimiter, FILE *fp) { int i; - i = getc (fp); + i = getc_maybe_unlocked (fp); if (i == EOF) { result = -1; diff --git a/m4/getdelim.m4 b/m4/getdelim.m4 index 18b96bef85..7760f8279b 100644 --- a/m4/getdelim.m4 +++ b/m4/getdelim.m4 @@ -31,4 +31,5 @@ AC_DEFUN([gl_FUNC_GETDELIM], AC_DEFUN([gl_PREREQ_GETDELIM], [ AC_CHECK_FUNCS([flockfile funlockfile]) + AC_CHECK_DECLS([getc_unlocked]) ])