X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fstdio-read.c;h=4e87380c23ea8477d288af31f30877581738669a;hb=cd56634a4a8179fd5a4419fbb3e27211b042ab1c;hp=d7901dd676fb757a81da595719573f7a7a4a7ff9;hpb=b6772983c800c6faee7fc793b83975afb6d58bcc;p=gnulib.git diff --git a/lib/stdio-read.c b/lib/stdio-read.c index d7901dd67..4e87380c2 100644 --- a/lib/stdio-read.c +++ b/lib/stdio-read.c @@ -1,5 +1,5 @@ /* POSIX compatible FILE stream read function. - Copyright (C) 2008-2011 Free Software Foundation, Inc. + Copyright (C) 2008-2014 Free Software Foundation, Inc. Written by Bruno Haible , 2011. This program is free software: you can redistribute it and/or modify @@ -37,6 +37,8 @@ # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include +# include "msvc-nothrow.h" + # define CALL_WITH_ERRNO_FIX(RETTYPE, EXPRESSION, FAILED) \ if (ferror (stream)) \ return (EXPRESSION); \ @@ -70,6 +72,9 @@ return ret; \ } +/* Enable this function definition only if gnulib's has prepared it. + Otherwise we get a function definition conflict with mingw64's . */ +# if GNULIB_SCANF int scanf (const char *format, ...) { @@ -82,7 +87,11 @@ scanf (const char *format, ...) return retval; } +# endif +/* Enable this function definition only if 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, ...) { @@ -95,19 +104,28 @@ fscanf (FILE *stream, const char *format, ...) return retval; } +# endif +/* Enable this function definition only if 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 if 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) @@ -129,13 +147,7 @@ fgets (char *s, int n, FILE *stream) CALL_WITH_ERRNO_FIX (char *, fgets (s, n, stream), ret == NULL) } -char * -gets (char *s) -#undef gets -{ - FILE *stream = stdin; - CALL_WITH_ERRNO_FIX (char *, gets (s), ret == NULL) -} +/* We intentionally don't bother to fix gets. */ size_t fread (void *ptr, size_t s, size_t n, FILE *stream)