Skip to content

Commit e342bb3

Browse files
committed
Assume no snprintf() or vsnprintf() if C89/90 in gzguts.h.
Those functions were introduced in C99. However it is assumed that they are there if under Windows, since Visual C claims C89/90, but does have those functions, or variants.
1 parent 915a3d5 commit e342bb3

File tree

1 file changed

+14
-19
lines changed

1 file changed

+14
-19
lines changed

gzguts.h

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -72,33 +72,28 @@
7272
#endif
7373

7474
#ifndef HAVE_VSNPRINTF
75-
# ifdef MSDOS
75+
# if !defined(NO_vsnprintf) && \
76+
(defined(MSDOS) || defined(__TURBOC__) || defined(__SASC) || \
77+
defined(VMS) || defined(__OS400) || defined(__MVS__))
7678
/* vsnprintf may exist on some MS-DOS compilers (DJGPP?),
7779
but for now we just assume it doesn't. */
7880
# define NO_vsnprintf
7981
# endif
80-
# ifdef __TURBOC__
81-
# define NO_vsnprintf
82-
# endif
8382
# ifdef WIN32
8483
/* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */
85-
# if !defined(vsnprintf) && !defined(NO_vsnprintf)
86-
# if !defined(_MSC_VER) || ( defined(_MSC_VER) && _MSC_VER < 1500 )
87-
# define vsnprintf _vsnprintf
84+
# if !defined(_MSC_VER) || ( defined(_MSC_VER) && _MSC_VER < 1500 )
85+
# ifndef vsnprintf
86+
# define vsnprintf _vsnprintf
8887
# endif
8988
# endif
90-
# endif
91-
# ifdef __SASC
92-
# define NO_vsnprintf
93-
# endif
94-
# ifdef VMS
95-
# define NO_vsnprintf
96-
# endif
97-
# ifdef __OS400__
98-
# define NO_vsnprintf
99-
# endif
100-
# ifdef __MVS__
101-
# define NO_vsnprintf
89+
# elif !defined(__STDC_VERSION__) || __STDC_VERSION__-0 < 199901L
90+
/* Otherwise if C89/90, assume no C99 snprintf() or vsnprintf() */
91+
# ifndef NO_snprintf
92+
# define NO_snprintf
93+
# endif
94+
# ifndef NO_vsnprintf
95+
# define NO_vsnprintf
96+
# endif
10297
# endif
10398
#endif
10499

0 commit comments

Comments
 (0)