]> git.lizzy.rs Git - zlib.git/commitdiff
Merge vestigial vsnprintf determination from zutil.h to gzguts.h.
authorMark Adler <madler@alumni.caltech.edu>
Sun, 2 Oct 2011 18:15:00 +0000 (11:15 -0700)
committerMark Adler <madler@alumni.caltech.edu>
Sun, 2 Oct 2011 18:15:00 +0000 (11:15 -0700)
This also moves some of the same from zconf.h to gzguts.h. A new
function, gzflags(), was created to pass the compilation flags
related to vsnprintf usage back to zlibCompileFlags() in zutil.c.
In the process, various compiler configuration files were updated
to include gzflags(), as well as the new gzgetc_() function added
when the gzgetc() macro was introduced in a previous patch.

14 files changed:
as400/bndsrc
as400/zlib.inc
contrib/vstudio/vc10/zlibvc.def
contrib/vstudio/vc9/zlibvc.def
gzguts.h
gzwrite.c
win32/zlib.def
zconf.h
zconf.h.cmakein
zconf.h.in
zlib.h
zlib.map
zutil.c
zutil.h

index 06c3f43d2702abc240e55daf372d0fb0898d25a2..dad2bc9b0915bcbb705a464a85ef7b65929e5dce 100644 (file)
@@ -52,7 +52,6 @@ STRPGMEXP PGMLVL(*CURRENT) SIGNATURE('ZLIB')
   EXPORT SYMBOL("gzputs")
   EXPORT SYMBOL("gzgets")
   EXPORT SYMBOL("gzputc")
-  EXPORT SYMBOL("gzgetc")
   EXPORT SYMBOL("gzflush")
   EXPORT SYMBOL("gzseek")
   EXPORT SYMBOL("gzrewind")
@@ -170,6 +169,8 @@ STRPGMEXP PGMLVL(*CURRENT) SIGNATURE('ZLIB')
 /********************************************************************/
 
   EXPORT SYMBOL("gzclose_w")
+  EXPORT SYMBOL("gzgetc_")
+  EXPORT SYMBOL("gzflags")
 
 /********************************************************************/
 /*   *MODULE      INFLATE      ZLIB         01/02/01  00:15:09      */
index 71b0e5631c79e18efe3df1267f23179554e0bb09..41ff616b9ca07534b4c0ad99a363ece92ef4a02b 100644 (file)
      D  buf                       32767    options(*varsize)                    Read buffer
      D  len                          10i 0 value                                Buffer length
       *
+     D gzputc          PR            10i 0 extproc('gzputc')
+     D  file                               value like(gzFile)                   File pointer
+     D  c                            10I 0 value                                Character to write
+      *
+     D gzgetc_         PR            10i 0 extproc('gzgetc_')
+     D  file                               value like(gzFile)                   File pointer
+      *
+     D gzungetc        PR            10i 0 extproc('gzungetc')
+     D  c                            10I 0 value                                Character to push
+     D  file                               value like(gzFile)                   File pointer
+      *
      D gzflush         PR            10i 0 extproc('gzflush')
      D  file                               value like(gzFile)                   File pointer
      D  flush                        10I 0 value                                Type of flush
      D  strm                               like(z_stream)                       Expansion stream
      D  arg                          10I 0 value                                Error code
       *
+     D gzflags         PR            10U 0 extproc('gzflags')
+      *
       /endif
index ad8b4afabd5245c8ae821ae22c0ccac8c4b7150d..0d6dc38fbe6f08d8529e3b4fef97418f26a24a3f 100644 (file)
@@ -33,7 +33,6 @@ EXPORTS
         zlibVersion                              @27\r
         gzprintf                                 @28\r
         gzputc                                   @29\r
-        gzgetc                                   @30\r
         gzseek                                   @31\r
         gzrewind                                 @32\r
         gztell                                   @33\r
@@ -129,3 +128,7 @@ EXPORTS
         inflatePrime                            @158\r
         inflateReset2                           @159\r
         inflateUndermine                        @160\r
+
+; zlib1 v1.2.6 added:
+        gzgetc_                                 @30
+        gzflags                                 @162
index ad8b4afabd5245c8ae821ae22c0ccac8c4b7150d..0d6dc38fbe6f08d8529e3b4fef97418f26a24a3f 100644 (file)
@@ -33,7 +33,6 @@ EXPORTS
         zlibVersion                              @27\r
         gzprintf                                 @28\r
         gzputc                                   @29\r
-        gzgetc                                   @30\r
         gzseek                                   @31\r
         gzrewind                                 @32\r
         gztell                                   @33\r
@@ -129,3 +128,7 @@ EXPORTS
         inflatePrime                            @158\r
         inflateReset2                           @159\r
         inflateUndermine                        @160\r
+
+; zlib1 v1.2.6 added:
+        gzgetc_                                 @30
+        gzflags                                 @162
index c226a09fb956dcb5b71dce666ff12230ee9e612b..8193451b5193382fad1600e6dd0e78b76ee370ba 100644 (file)
--- a/gzguts.h
+++ b/gzguts.h
 #  define NO_GZCOMPRESS
 #endif
 
-#ifdef _MSC_VER
-#  include <io.h>
-#  define vsnprintf _vsnprintf
+#if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550)
+#  ifndef HAVE_VSNPRINTF
+#    define HAVE_VSNPRINTF
+#  endif
+#endif
+
+#if defined(__CYGWIN__)
+#  ifndef HAVE_VSNPRINTF
+#    define HAVE_VSNPRINTF
+#  endif
+#endif
+
+#ifndef HAVE_VSNPRINTF
+#  ifdef MSDOS
+/* vsnprintf may exist on some MS-DOS compilers (DJGPP?),
+ but for now we just assume it doesn't. */
+#    define NO_vsnprintf
+#  endif
+#  ifdef __TURBOC__
+#    define NO_vsnprintf
+#  endif
+#  ifdef WIN32
+/* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */
+#    if !defined(vsnprintf) && !defined(NO_vsnprintf)
+#      if !defined(_MSC_VER) || ( defined(_MSC_VER) && _MSC_VER < 1500 )
+#         include <io.h>
+#         define vsnprintf _vsnprintf
+#      endif
+#    endif
+#  endif
+#  ifdef __SASC
+#    define NO_vsnprintf
+#  endif
+#  ifdef VMS
+#    define NO_vsnprintf
+#  endif
+#  ifdef __OS400__
+#    define NO_vsnprintf
+#  endif
+#  ifdef __MVS__
+#    define NO_vsnprintf
+#  endif
 #endif
 
 #ifndef local
index 8eeca4ed2e6525c575298c44a2750c6e5c65fe33..1d288073d1bdce2ea71bbcbc7ed988c53d97e09a 100644 (file)
--- a/gzwrite.c
+++ b/gzwrite.c
@@ -536,3 +536,34 @@ int ZEXPORT gzclose_w(file)
     free(state);
     return ret;
 }
+
+/* used by zlibVersion() to get the vsnprintf story from the horse's mouth */
+unsigned long ZEXPORT gzflags()
+{
+    unsigned long flags = 0;
+#if defined(STDC) || defined(Z_HAVE_STDARG_H)
+#  ifdef NO_vsnprintf
+    flags += 1L << 25;
+#    ifdef HAS_vsprintf_void
+    flags += 1L << 26;
+#    endif
+#  else
+#    ifdef HAS_vsnprintf_void
+    flags += 1L << 26;
+#    endif
+#  endif
+#else
+    flags += 1L << 24;
+#  ifdef NO_snprintf
+    flags += 1L << 25;
+#    ifdef HAS_sprintf_void
+    flags += 1L << 26;
+#    endif
+#  else
+#    ifdef HAS_snprintf_void
+    flags += 1L << 26;
+#    endif
+#  endif
+#endif
+    return flags;
+}
index eee109fc7aec8900684891335f4e9d4dfdd8f764..93ea8bf380a6c04ba9852f471eda5747d13ed15f 100644 (file)
@@ -42,7 +42,6 @@ EXPORTS
     gzputs
     gzgets
     gzputc
-    gzgetc
     gzungetc
     gzflush
     gzseek
@@ -78,3 +77,5 @@ EXPORTS
     inflateSyncPoint
     get_crc_table
     inflateUndermine
+    gzgetc_
+    gzflags
diff --git a/zconf.h b/zconf.h
index c8c2aaadd590e92b1fd3849e43ded1e1589fb4fb..bcb761503fc123aa6074438dfaa8893bbe29ae04 100644 (file)
--- a/zconf.h
+++ b/zconf.h
 #  define gzdopen               z_gzdopen
 #  define gzeof                 z_gzeof
 #  define gzerror               z_gzerror
+#  define gzflags               z_gzflags
 #  define gzflush               z_gzflush
 #  define gzgetc                z_gzgetc
+#  define gzgetc_               z_gzgetc_
 #  define gzgets                z_gzgets
 #  define gzoffset              z_gzoffset
 #  define gzoffset64            z_gzoffset64
@@ -422,14 +424,6 @@ typedef uLong FAR uLongf;
 #endif
 #endif
 
-#if defined(__OS400__)
-#  define NO_vsnprintf
-#endif
-
-#if defined(__MVS__)
-#  define NO_vsnprintf
-#endif
-
 /* MVS linker does not support external names larger than 8 bytes */
 #if defined(__MVS__)
   #pragma map(deflateInit_,"DEIN")
index 0a36a729fb328ca992cd053e3f47022dd28314d7..29680aab230c0d564432e2d7ff9a0e029ca5fd62 100644 (file)
 #  define gzdopen               z_gzdopen
 #  define gzeof                 z_gzeof
 #  define gzerror               z_gzerror
+#  define gzflags               z_gzflags
 #  define gzflush               z_gzflush
 #  define gzgetc                z_gzgetc
+#  define gzgetc_               z_gzgetc_
 #  define gzgets                z_gzgets
 #  define gzoffset              z_gzoffset
 #  define gzoffset64            z_gzoffset64
@@ -424,14 +426,6 @@ typedef uLong FAR uLongf;
 #endif
 #endif
 
-#if defined(__OS400__)
-#  define NO_vsnprintf
-#endif
-
-#if defined(__MVS__)
-#  define NO_vsnprintf
-#endif
-
 /* MVS linker does not support external names larger than 8 bytes */
 #if defined(__MVS__)
   #pragma map(deflateInit_,"DEIN")
index c8c2aaadd590e92b1fd3849e43ded1e1589fb4fb..bcb761503fc123aa6074438dfaa8893bbe29ae04 100644 (file)
 #  define gzdopen               z_gzdopen
 #  define gzeof                 z_gzeof
 #  define gzerror               z_gzerror
+#  define gzflags               z_gzflags
 #  define gzflush               z_gzflush
 #  define gzgetc                z_gzgetc
+#  define gzgetc_               z_gzgetc_
 #  define gzgets                z_gzgets
 #  define gzoffset              z_gzoffset
 #  define gzoffset64            z_gzoffset64
@@ -422,14 +424,6 @@ typedef uLong FAR uLongf;
 #endif
 #endif
 
-#if defined(__OS400__)
-#  define NO_vsnprintf
-#endif
-
-#if defined(__MVS__)
-#  define NO_vsnprintf
-#endif
-
 /* MVS linker does not support external names larger than 8 bytes */
 #if defined(__MVS__)
   #pragma map(deflateInit_,"DEIN")
diff --git a/zlib.h b/zlib.h
index 16b20ce8393347e2712407ccf6cb4de2c1ae1428..371af261058fa149af7eb9b36fc9050172c190d1 100644 (file)
--- a/zlib.h
+++ b/zlib.h
@@ -1660,6 +1660,7 @@ ZEXTERN const char   * ZEXPORT zError           OF((int));
 ZEXTERN int            ZEXPORT inflateSyncPoint OF((z_streamp));
 ZEXTERN const uLongf * ZEXPORT get_crc_table    OF((void));
 ZEXTERN int            ZEXPORT inflateUndermine OF((z_streamp, int));
+ZEXTERN unsigned long  ZEXPORT gzflags          OF((void));
 
 #ifdef __cplusplus
 }
index f65a1250b4f043015d5f9bff7a6ba819331ee10c..627133dfbfec0216852c1bfb285cf126fe04a228 100644 (file)
--- a/zlib.map
+++ b/zlib.map
@@ -70,3 +70,8 @@ ZLIB_1.2.3.5 {
 ZLIB_1.2.5.1 {
     deflatePending;
 } ZLIB_1.2.3.5;
+
+ZLIB_1.2.5.2 {
+    gzflags;
+    gzgetc_;
+} ZLIB_1.2.5.1;
diff --git a/zutil.c b/zutil.c
index 2ccee8118554703723fe8dfde87b91b026eedd88..8f697cc110e71751979b848144f747546cbc9230 100644 (file)
--- a/zutil.c
+++ b/zutil.c
@@ -85,31 +85,7 @@ uLong ZEXPORT zlibCompileFlags()
 #ifdef FASTEST
     flags += 1L << 21;
 #endif
-#if defined(STDC) || defined(Z_HAVE_STDARG_H)
-#  ifdef NO_vsnprintf
-        flags += 1L << 25;
-#    ifdef HAS_vsprintf_void
-        flags += 1L << 26;
-#    endif
-#  else
-#    ifdef HAS_vsnprintf_void
-        flags += 1L << 26;
-#    endif
-#  endif
-#else
-        flags += 1L << 24;
-#  ifdef NO_snprintf
-        flags += 1L << 25;
-#    ifdef HAS_sprintf_void
-        flags += 1L << 26;
-#    endif
-#  else
-#    ifdef HAS_snprintf_void
-        flags += 1L << 26;
-#    endif
-#  endif
-#endif
-    return flags;
+    return flags + gzflags();
 }
 
 #ifdef DEBUG
diff --git a/zutil.h b/zutil.h
index c199b20148a36dddd58c7ecf34efd6d14cba8ba4..86d64bce7864938f26525e0ec16242fc16d0c623 100644 (file)
--- a/zutil.h
+++ b/zutil.h
@@ -177,41 +177,6 @@ extern const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
 
          /* functions */
 
-#if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550)
-#  ifndef HAVE_VSNPRINTF
-#    define HAVE_VSNPRINTF
-#  endif
-#endif
-#if defined(__CYGWIN__)
-#  ifndef HAVE_VSNPRINTF
-#    define HAVE_VSNPRINTF
-#  endif
-#endif
-#ifndef HAVE_VSNPRINTF
-#  ifdef MSDOS
-     /* vsnprintf may exist on some MS-DOS compilers (DJGPP?),
-        but for now we just assume it doesn't. */
-#    define NO_vsnprintf
-#  endif
-#  ifdef __TURBOC__
-#    define NO_vsnprintf
-#  endif
-#  ifdef WIN32
-     /* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */
-#    if !defined(vsnprintf) && !defined(NO_vsnprintf)
-#      if !defined(_MSC_VER) || ( defined(_MSC_VER) && _MSC_VER < 1500 )
-#         define vsnprintf _vsnprintf
-#      endif
-#    endif
-#  endif
-#  ifdef __SASC
-#    define NO_vsnprintf
-#  endif
-#endif
-#ifdef VMS
-#  define NO_vsnprintf
-#endif
-
 #if defined(pyr)
 #  define NO_MEMCPY
 #endif