gzwrite.c (230837) | gzwrite.c (237248) |
---|---|
1/* gzwrite.c -- zlib functions for writing gzip files 2 * Copyright (C) 2004, 2005, 2010, 2011, 2012 Mark Adler 3 * For conditions of distribution and use, see copyright notice in zlib.h 4 */ 5 6#include "gzguts.h" 7 8/* Local functions */ --- 324 unchanged lines hidden (view full) --- 333 return 0; 334 335 /* do the printf() into the input buffer, put length in len */ 336 size = (int)(state->size); 337 state->in[size - 1] = 0; 338 va_start(va, format); 339#ifdef NO_vsnprintf 340# ifdef HAS_vsprintf_void | 1/* gzwrite.c -- zlib functions for writing gzip files 2 * Copyright (C) 2004, 2005, 2010, 2011, 2012 Mark Adler 3 * For conditions of distribution and use, see copyright notice in zlib.h 4 */ 5 6#include "gzguts.h" 7 8/* Local functions */ --- 324 unchanged lines hidden (view full) --- 333 return 0; 334 335 /* do the printf() into the input buffer, put length in len */ 336 size = (int)(state->size); 337 state->in[size - 1] = 0; 338 va_start(va, format); 339#ifdef NO_vsnprintf 340# ifdef HAS_vsprintf_void |
341 (void)vsprintf(state->in, format, va); | 341 (void)vsprintf((char *)(state->in), format, va); |
342 va_end(va); 343 for (len = 0; len < size; len++) 344 if (state->in[len] == 0) break; 345# else | 342 va_end(va); 343 for (len = 0; len < size; len++) 344 if (state->in[len] == 0) break; 345# else |
346 len = vsprintf(state->in, format, va); | 346 len = vsprintf((char *)(state->in), format, va); |
347 va_end(va); 348# endif 349#else 350# ifdef HAS_vsnprintf_void | 347 va_end(va); 348# endif 349#else 350# ifdef HAS_vsnprintf_void |
351 (void)vsnprintf(state->in, size, format, va); | 351 (void)vsnprintf((char *)(state->in), size, format, va); |
352 va_end(va); | 352 va_end(va); |
353 len = strlen(state->in); | 353 len = strlen((char *)(state->in)); |
354# else 355 len = vsnprintf((char *)(state->in), size, format, va); 356 va_end(va); 357# endif 358#endif 359 360 /* check that printf() results fit in buffer */ 361 if (len <= 0 || len >= (int)size || state->in[size - 1] != 0) --- 49 unchanged lines hidden (view full) --- 411 if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1) 412 return 0; 413 414 /* do the printf() into the input buffer, put length in len */ 415 size = (int)(state->size); 416 state->in[size - 1] = 0; 417#ifdef NO_snprintf 418# ifdef HAS_sprintf_void | 354# else 355 len = vsnprintf((char *)(state->in), size, format, va); 356 va_end(va); 357# endif 358#endif 359 360 /* check that printf() results fit in buffer */ 361 if (len <= 0 || len >= (int)size || state->in[size - 1] != 0) --- 49 unchanged lines hidden (view full) --- 411 if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1) 412 return 0; 413 414 /* do the printf() into the input buffer, put length in len */ 415 size = (int)(state->size); 416 state->in[size - 1] = 0; 417#ifdef NO_snprintf 418# ifdef HAS_sprintf_void |
419 sprintf(state->in, format, a1, a2, a3, a4, a5, a6, a7, a8, | 419 sprintf((char *)(state->in), format, a1, a2, a3, a4, a5, a6, a7, a8, |
420 a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); 421 for (len = 0; len < size; len++) 422 if (state->in[len] == 0) break; 423# else | 420 a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); 421 for (len = 0; len < size; len++) 422 if (state->in[len] == 0) break; 423# else |
424 len = sprintf(state->in, format, a1, a2, a3, a4, a5, a6, a7, a8, 425 a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); | 424 len = sprintf((char *)(state->in), format, a1, a2, a3, a4, a5, a6, a7, a8, 425 a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); |
426# endif 427#else 428# ifdef HAS_snprintf_void | 426# endif 427#else 428# ifdef HAS_snprintf_void |
429 snprintf(state->in, size, format, a1, a2, a3, a4, a5, a6, a7, a8, | 429 snprintf((char *)(state->in), size, format, a1, a2, a3, a4, a5, a6, a7, a8, |
430 a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); | 430 a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); |
431 len = strlen(state->in); | 431 len = strlen((char *)(state->in)); |
432# else | 432# else |
433 len = snprintf(state->in, size, format, a1, a2, a3, a4, a5, a6, a7, a8, 434 a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); | 433 len = snprintf((char *)(state->in), size, format, a1, a2, a3, a4, a5, a6, 434 a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, 435 a19, a20); |
435# endif 436#endif 437 438 /* check that printf() results fit in buffer */ 439 if (len <= 0 || len >= (int)size || state->in[size - 1] != 0) 440 return 0; 441 442 /* update buffer and position, defer compression until needed */ --- 98 unchanged lines hidden (view full) --- 541 /* check for seek request */ 542 if (state->seek) { 543 state->seek = 0; 544 if (gz_zero(state, state->skip) == -1) 545 ret = state->err; 546 } 547 548 /* flush, free memory, and close file */ | 436# endif 437#endif 438 439 /* check that printf() results fit in buffer */ 440 if (len <= 0 || len >= (int)size || state->in[size - 1] != 0) 441 return 0; 442 443 /* update buffer and position, defer compression until needed */ --- 98 unchanged lines hidden (view full) --- 542 /* check for seek request */ 543 if (state->seek) { 544 state->seek = 0; 545 if (gz_zero(state, state->skip) == -1) 546 ret = state->err; 547 } 548 549 /* flush, free memory, and close file */ |
549 if (gz_comp(state, Z_FINISH) == -1) 550 ret = state->err; 551 if (!state->direct) { 552 (void)deflateEnd(&(state->strm)); 553 free(state->out); | 550 if (state->size) { 551 if (gz_comp(state, Z_FINISH) == -1) 552 ret = state->err; 553 if (!state->direct) { 554 (void)deflateEnd(&(state->strm)); 555 free(state->out); 556 } 557 free(state->in); |
554 } | 558 } |
555 free(state->in); | |
556 gz_error(state, Z_OK, NULL); 557 free(state->path); 558 if (close(state->fd) == -1) 559 ret = Z_ERRNO; 560 free(state); 561 return ret; 562} | 559 gz_error(state, Z_OK, NULL); 560 free(state->path); 561 if (close(state->fd) == -1) 562 ret = Z_ERRNO; 563 free(state); 564 return ret; 565} |
563 564/* used by zlibVersion() to get the vsnprintf story from the horse's mouth */ 565unsigned long ZEXPORT gzflags() 566{ 567 unsigned long flags = 0; 568#if defined(STDC) || defined(Z_HAVE_STDARG_H) 569# ifdef NO_vsnprintf 570 flags += 1L << 25; 571# ifdef HAS_vsprintf_void 572 flags += 1L << 26; 573# endif 574# else 575# ifdef HAS_vsnprintf_void 576 flags += 1L << 26; 577# endif 578# endif 579#else 580 flags += 1L << 24; 581# ifdef NO_snprintf 582 flags += 1L << 25; 583# ifdef HAS_sprintf_void 584 flags += 1L << 26; 585# endif 586# else 587# ifdef HAS_snprintf_void 588 flags += 1L << 26; 589# endif 590# endif 591#endif 592 return flags; 593} | |