From: Bruno Haible Date: Thu, 21 Jun 2012 10:39:37 +0000 (+0200) Subject: nonblocking: Avoid compilation error on mingw64. X-Git-Tag: v0.1~602 X-Git-Url: http://erislabs.net/gitweb/?p=gnulib.git;a=commitdiff_plain;h=a02ba4bf889fee4622db87f185c3d0af84d74ae7 nonblocking: Avoid compilation error on mingw64. * m4/stdio_h.m4 (gl_STDIO_H): Invoke gl_MODULE_INDICATOR for scanf, fscanf. * modules/vscanf (configure.ac): Invoke gl_MODULE_INDICATOR. * modules/vfscanf (configure.ac): Likewise. * lib/stdio-read.c (scanf, fscanf, vscanf, vfscanf): Enable function definition only if stdio.h has prepared it. Reported by Daniel P. Berrange . --- diff --git a/ChangeLog b/ChangeLog index 442c4ec65..e65218a09 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2012-06-21 Bruno Haible + + nonblocking: Avoid compilation error on mingw64. + * m4/stdio_h.m4 (gl_STDIO_H): Invoke gl_MODULE_INDICATOR for scanf, + fscanf. + * modules/vscanf (configure.ac): Invoke gl_MODULE_INDICATOR. + * modules/vfscanf (configure.ac): Likewise. + * lib/stdio-read.c (scanf, fscanf, vscanf, vfscanf): Enable function + definition only if stdio.h has prepared it. + Reported by Daniel P. Berrange . + 2012-06-20 Bernd Jendrissek (tiny change) gnulib-tool: Use readlink if it is available. diff --git a/lib/stdio-read.c b/lib/stdio-read.c index 358d8cd9d..8f3e94529 100644 --- a/lib/stdio-read.c +++ b/lib/stdio-read.c @@ -72,6 +72,9 @@ return ret; \ } +/* Enable this function definition only of gnulib's has prepared it. + Otherwise we get a function definition conflict with mingw64's . */ +# if GNULIB_SCANF int scanf (const char *format, ...) { @@ -84,7 +87,11 @@ scanf (const char *format, ...) return retval; } +# endif +/* Enable this function definition only of gnulib's has prepared it. + Otherwise we get a function definition conflict with mingw64's . */ +# if GNULIB_FSCANF int fscanf (FILE *stream, const char *format, ...) { @@ -97,19 +104,28 @@ fscanf (FILE *stream, const char *format, ...) return retval; } +# endif +/* Enable this function definition only of gnulib's has prepared it. + Otherwise we get a function definition conflict with mingw64's . */ +# if GNULIB_VSCANF int vscanf (const char *format, va_list args) { return vfscanf (stdin, format, args); } +# endif +/* Enable this function definition only of gnulib's has prepared it. + Otherwise we get a function definition conflict with mingw64's . */ +# if GNULIB_VFSCANF int vfscanf (FILE *stream, const char *format, va_list args) #undef vfscanf { CALL_WITH_ERRNO_FIX (int, vfscanf (stream, format, args), ret == EOF) } +# endif int getchar (void) diff --git a/m4/stdio_h.m4 b/m4/stdio_h.m4 index b03393b95..5298dd6d9 100644 --- a/m4/stdio_h.m4 +++ b/m4/stdio_h.m4 @@ -1,4 +1,4 @@ -# stdio_h.m4 serial 41 +# stdio_h.m4 serial 42 dnl Copyright (C) 2007-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -13,7 +13,9 @@ AC_DEFUN([gl_STDIO_H], dnl No need to create extra modules for these functions. Everyone who uses dnl likely needs them. GNULIB_FSCANF=1 + gl_MODULE_INDICATOR([fscanf]) GNULIB_SCANF=1 + gl_MODULE_INDICATOR([scanf]) GNULIB_FGETC=1 GNULIB_GETC=1 GNULIB_GETCHAR=1 diff --git a/modules/vfscanf b/modules/vfscanf index c2d6a8d35..06bb78a43 100644 --- a/modules/vfscanf +++ b/modules/vfscanf @@ -8,6 +8,7 @@ stdio configure.ac: gl_STDIO_MODULE_INDICATOR([vfscanf]) +gl_MODULE_INDICATOR([vfscanf]) Makefile.am: diff --git a/modules/vscanf b/modules/vscanf index cf1d8c240..882d259bf 100644 --- a/modules/vscanf +++ b/modules/vscanf @@ -8,6 +8,7 @@ stdio configure.ac: gl_STDIO_MODULE_INDICATOR([vscanf]) +gl_MODULE_INDICATOR([vscanf]) Makefile.am: