summaryrefslogtreecommitdiff
path: root/gzwrite.c
diff options
context:
space:
mode:
authorMark Adler <madler@alumni.caltech.edu>2013-03-22 18:32:37 -0700
committerMark Adler <madler@alumni.caltech.edu>2013-03-22 18:32:37 -0700
commitb06dee43696b5057ee8e1b9700655ad9e7d89669 (patch)
tree2c2faf2573f390a54dce9cdbda5e5e9747af087f /gzwrite.c
parentdd5d0940e93f2196a7791b1bf052d68309a7d45f (diff)
downloadzlib-b06dee43696b5057ee8e1b9700655ad9e7d89669.tar.gz
Add gzvprintf() as an undocumented function in zlib.
The function is only available if stdarg.h is available.
Diffstat (limited to 'gzwrite.c')
-rw-r--r--gzwrite.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/gzwrite.c b/gzwrite.c
index 1b06cdd..039225b 100644
--- a/gzwrite.c
+++ b/gzwrite.c
@@ -307,12 +307,11 @@ int ZEXPORT gzputs(file, str)
#include <stdarg.h>
/* -- see zlib.h -- */
-int ZEXPORTVA gzprintf (gzFile file, const char *format, ...)
+int ZEXPORTVA gzvprintf(gzFile file, const char *format, va_list va)
{
int size, len;
gz_statep state;
z_streamp strm;
- va_list va;
/* get internal structure */
if (file == NULL)
@@ -342,25 +341,20 @@ int ZEXPORTVA gzprintf (gzFile file, const char *format, ...)
/* do the printf() into the input buffer, put length in len */
size = (int)(state->size);
state->in[size - 1] = 0;
- va_start(va, format);
#ifdef NO_vsnprintf
# ifdef HAS_vsprintf_void
(void)vsprintf((char *)(state->in), format, va);
- va_end(va);
for (len = 0; len < size; len++)
if (state->in[len] == 0) break;
# else
len = vsprintf((char *)(state->in), format, va);
- va_end(va);
# endif
#else
# ifdef HAS_vsnprintf_void
(void)vsnprintf((char *)(state->in), size, format, va);
- va_end(va);
len = strlen((char *)(state->in));
# else
len = vsnprintf((char *)(state->in), size, format, va);
- va_end(va);
# endif
#endif
@@ -375,6 +369,17 @@ int ZEXPORTVA gzprintf (gzFile file, const char *format, ...)
return len;
}
+int ZEXPORTVA gzprintf(gzFile file, const char *format, ...)
+{
+ va_list va;
+ int ret;
+
+ va_start(va, format);
+ ret = gzvprintf(file, format, va);
+ va_end(va);
+ return ret;
+}
+
#else /* !STDC && !Z_HAVE_STDARG_H */
/* -- see zlib.h -- */