Mercurial > hg > octave-kai > gnulib-hg
changeset 16926:9e800db3ffe6
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 <berrange@redhat.com>.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Thu, 21 Jun 2012 12:39:37 +0200 |
parents | eb8ffcf6fd24 |
children | 849fe7deed28 |
files | ChangeLog lib/stdio-read.c m4/stdio_h.m4 modules/vfscanf modules/vscanf |
diffstat | 5 files changed, 32 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2012-06-21 Bruno Haible <bruno@clisp.org> + + 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 <berrange@redhat.com>. + 2012-06-20 Bernd Jendrissek <bernd.jendrissek@gmail.com> (tiny change) gnulib-tool: Use readlink if it is available.
--- a/lib/stdio-read.c +++ b/lib/stdio-read.c @@ -72,6 +72,9 @@ return ret; \ } +/* Enable this function definition only of gnulib's <stdio.h> has prepared it. + Otherwise we get a function definition conflict with mingw64's <stdio.h>. */ +# if GNULIB_SCANF int scanf (const char *format, ...) { @@ -84,7 +87,11 @@ return retval; } +# endif +/* Enable this function definition only of gnulib's <stdio.h> has prepared it. + Otherwise we get a function definition conflict with mingw64's <stdio.h>. */ +# if GNULIB_FSCANF int fscanf (FILE *stream, const char *format, ...) { @@ -97,19 +104,28 @@ return retval; } +# endif +/* Enable this function definition only of gnulib's <stdio.h> has prepared it. + Otherwise we get a function definition conflict with mingw64's <stdio.h>. */ +# 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 <stdio.h> has prepared it. + Otherwise we get a function definition conflict with mingw64's <stdio.h>. */ +# 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)
--- 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 @@ dnl No need to create extra modules for these functions. Everyone who uses dnl <stdio.h> 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