1
2
3
4
5
6
7
8
9
10
|
1
2
3
4
5
6
7
8
9
10
|
-
+
|
/*
* gzlog.c
* Copyright (C) 2004, 2008, 2012 Mark Adler, all rights reserved
* Copyright (C) 2004, 2008, 2012, 2016 Mark Adler, all rights reserved
* For conditions of distribution and use, see copyright notice in gzlog.h
* version 2.2, 14 Aug 2012
*/
/*
gzlog provides a mechanism for frequently appending short strings to a gzip
file that is efficient both in execution time and compression ratio. The
|
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
|
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
|
-
+
|
#include "gzlog.h" /* header for external access */
#define local static
typedef unsigned int uint;
typedef unsigned long ulong;
/* Macro for debugging to deterministically force recovery operations */
#ifdef DEBUG
#ifdef GZLOG_DEBUG
#include <setjmp.h> /* longjmp */
jmp_buf gzlog_jump; /* where to go back to */
int gzlog_bail = 0; /* which point to bail at (1..8) */
int gzlog_count = -1; /* number of times through to wait */
# define BAIL(n) do { if (n == gzlog_bail && gzlog_count-- == 0) \
longjmp(gzlog_jump, gzlog_bail); } while (0)
#else
|