un-patch local checkout of master branch
authorBdale Garbee <bdale@gag.com>
Fri, 24 Feb 2017 21:48:01 +0000 (14:48 -0700)
committerBdale Garbee <bdale@gag.com>
Fri, 24 Feb 2017 21:48:01 +0000 (14:48 -0700)
deflate.c
doc/gzip.texi
gzip.1
gzip.c
gzip.h
lib/msvc-inval.c
trees.c
zgrep.1

index bb8a749ac5a08dabd589cbd999f9b2a3f6dddfba..f0f23940ac9d0c891877105ebc803d508483987d 100644 (file)
--- a/deflate.c
+++ b/deflate.c
 #endif
 /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
 
-#ifndef RSYNC_WIN
-#  define RSYNC_WIN 8192
-#endif
-/* Size of rsync window, must be < MAX_DIST */
-
-#define RSYNC_SUM_MATCH(sum) (((sum) & (RSYNC_WIN - 1)) == 0)
-/* Whether window sum matches magic value */
-
 /* ===========================================================================
  * Local data used by the "longest match" routines.
  */
@@ -220,8 +212,6 @@ local int compr_level;
 unsigned good_match;
 /* Use a faster search when the previous match is longer than this */
 
-local ulg rsync_sum;  /* rolling sum of rsync window */
-local ulg rsync_chunk_end; /* next rsync sequence point */
 
 /* Values for max_lazy_match, good_match and max_chain_length, depending on
  * the desired pack level (0..9). The values given below have been tuned to
@@ -324,10 +314,6 @@ void lm_init (pack_level, flags)
 #endif
     /* prev will be initialized on the fly */
 
-    /* rsync params */
-    rsync_chunk_end = 0xFFFFFFFFUL;
-    rsync_sum = 0;
-
     /* Set the default configuration parameters:
      */
     max_lazy_match   = configuration_table[pack_level].max_lazy;
@@ -564,8 +550,6 @@ local void fill_window()
         memcpy((char*)window, (char*)window+WSIZE, (unsigned)WSIZE);
         match_start -= WSIZE;
         strstart    -= WSIZE; /* we now have strstart >= MAX_DIST: */
-       if (rsync_chunk_end != 0xFFFFFFFFUL)
-           rsync_chunk_end -= WSIZE;
 
         block_start -= (long) WSIZE;
 
@@ -595,44 +579,13 @@ local void fill_window()
     }
 }
 
-local void rsync_roll(unsigned start, unsigned num)
-{
-    unsigned i;
-
-    if (start < RSYNC_WIN) {
-       /* before window fills. */
-       for (i = start; i < RSYNC_WIN; i++) {
-           if (i == start + num) return;
-           rsync_sum += (ulg)window[i];
-       }
-       num -= (RSYNC_WIN - start);
-       start = RSYNC_WIN;
-    }
-
-    /* buffer after window full */
-    for (i = start; i < start+num; i++) {
-       /* New character in */
-       rsync_sum += (ulg)window[i];
-       /* Old character out */
-       rsync_sum -= (ulg)window[i - RSYNC_WIN];
-       if (rsync_chunk_end == 0xFFFFFFFFUL && RSYNC_SUM_MATCH(rsync_sum))
-           rsync_chunk_end = i;
-    }
-}
-
-/* ===========================================================================
- * Set rsync_chunk_end if window sum matches magic value.
- */
-#define RSYNC_ROLL(s, n) \
-   do { if (rsync) rsync_roll((s), (n)); } while(0)
-
 /* ===========================================================================
  * Flush the current block, with given end-of-file flag.
  * IN assertion: strstart is set to the end of the current match.
  */
 #define FLUSH_BLOCK(eof) \
    flush_block(block_start >= 0L ? (char*)&window[(unsigned)block_start] : \
-                (char*)NULL, (long)strstart - block_start, flush-1, (eof))
+                (char*)NULL, (long)strstart - block_start, (eof))
 
 /* ===========================================================================
  * Processes a new input file and return its compressed length. This
@@ -643,7 +596,7 @@ local void rsync_roll(unsigned start, unsigned num)
 local off_t deflate_fast()
 {
     IPos hash_head; /* head of the hash chain */
-    int flush = 0;      /* set if current block must be flushed, 2=>and padded  */
+    int flush;      /* set if current block must be flushed */
     unsigned match_length = 0;  /* length of best match */
 
     prev_length = MIN_MATCH-1;
@@ -673,8 +626,7 @@ local off_t deflate_fast()
 
             lookahead -= match_length;
 
-           RSYNC_ROLL(strstart, match_length);
-           /* Insert new strings in the hash table only if the match length
+            /* Insert new strings in the hash table only if the match length
              * is not too large. This saves time but degrades compression.
              */
             if (match_length <= max_insert_length) {
@@ -702,14 +654,9 @@ local off_t deflate_fast()
             /* No match, output a literal byte */
             Tracevv((stderr,"%c",window[strstart]));
             flush = ct_tally (0, window[strstart]);
-           RSYNC_ROLL(strstart, 1);
             lookahead--;
             strstart++;
         }
-        if (rsync && strstart > rsync_chunk_end) {
-            flush = 2;
-            rsync_chunk_end = 0xFFFFFFFFUL;
-        }
         if (flush) FLUSH_BLOCK(0), block_start = strstart;
 
         /* Make sure that we always have enough lookahead, except
@@ -732,7 +679,7 @@ off_t deflate()
 {
     IPos hash_head;          /* head of hash chain */
     IPos prev_match;         /* previous match */
-    int flush = 0;           /* set if current block must be flushed */
+    int flush;               /* set if current block must be flushed */
     int match_available = 0; /* set if previous match exists */
     register unsigned match_length = MIN_MATCH-1; /* length of best match */
 
@@ -783,7 +730,6 @@ off_t deflate()
              */
             lookahead -= prev_length-1;
             prev_length -= 2;
-           RSYNC_ROLL(strstart, prev_length+1);
             do {
                 strstart++;
                 INSERT_STRING(strstart, hash_head);
@@ -796,38 +742,24 @@ off_t deflate()
             match_available = 0;
             match_length = MIN_MATCH-1;
             strstart++;
-
-           if (rsync && strstart > rsync_chunk_end) {
-               rsync_chunk_end = 0xFFFFFFFFUL;
-               flush = 2;
-           }
             if (flush) FLUSH_BLOCK(0), block_start = strstart;
+
         } else if (match_available) {
             /* If there was no match at the previous position, output a
              * single literal. If there was a match but the current match
              * is longer, truncate the previous match to a single literal.
              */
             Tracevv((stderr,"%c",window[strstart-1]));
-           flush = ct_tally (0, window[strstart-1]);
-           if (rsync && strstart > rsync_chunk_end) {
-               rsync_chunk_end = 0xFFFFFFFFUL;
-               flush = 2;
-           }
-            if (flush) FLUSH_BLOCK(0), block_start = strstart;
-           RSYNC_ROLL(strstart, 1);
+            if (ct_tally (0, window[strstart-1])) {
+                FLUSH_BLOCK(0), block_start = strstart;
+            }
             strstart++;
             lookahead--;
         } else {
             /* There is no previous match to compare with, wait for
              * the next step to decide.
              */
-           if (rsync && strstart > rsync_chunk_end) {
-               rsync_chunk_end = 0xFFFFFFFFUL;
-               flush = 2;
-               FLUSH_BLOCK(0), block_start = strstart;
-           }
             match_available = 1;
-           RSYNC_ROLL(strstart, 1);
             strstart++;
             lookahead--;
         }
index 5bec221ba2fbc944979b71508b569c0eb5a7cfeb..3de3063c17b8f612321977646f16ff491beb9e53 100644 (file)
@@ -7,7 +7,8 @@
 @setchapternewpage odd
 @c %**end of header
 @copying
-This manual is for GNU Gzip (version @value{VERSION}),
+This manual is for GNU Gzip
+(version @value{VERSION}, @value{UPDATED}),
 and documents commands for compressing and decompressing data.
 
 Copyright @copyright{} 1998-1999, 2001-2002, 2006-2007, 2009-2013 Free Software
@@ -207,7 +208,6 @@ Mandatory arguments to long options are mandatory for short options too.
   -V, --version     display version number
   -1, --fast        compress faster
   -9, --best        compress better
-    --rsyncable   Make rsync-friendly archive
 
 With no FILE, or when FILE is -, read standard input.
 
@@ -358,14 +358,6 @@ specified on the command line are directories, @command{gzip} will descend
 into the directory and compress all the files it finds there (or
 decompress them in the case of @command{gunzip}).
 
-@item --rsyncable
-While compressing, synchronize the output occasionally based on
-the input.  This increases size by less than 1 percent most
-cases, but means that the @command{rsync} program can much more efficiently
-synchronize files compressed with this flag.  @command{gunzip}
-cannot tell the difference between a compressed file created
-with this option, and one created without it.
-
 @item --suffix @var{suf}
 @itemx -S @var{suf}
 Use suffix @var{suf} instead of @samp{.gz}.  Any suffix can be
diff --git a/gzip.1 b/gzip.1
index 9b221a78cb225161947916cf8744a012037df01e..71e097cefc04feb33d3dc44c59bf7f8058e1cf73 100644 (file)
--- a/gzip.1
+++ b/gzip.1
@@ -5,7 +5,6 @@ gzip, gunzip, zcat \- compress or expand files
 .ll +8
 .B gzip
 .RB [ " \-acdfhklLnNrtvV19 " ]
-.RB [ --rsyncable ]
 .RB [ \-S\ suffix ]
 [
 .I "name \&..."
@@ -288,16 +287,6 @@ will descend into the directory and compress all the files it finds there
 .I gunzip
 ).
 .TP
-.B --rsyncable
-While compressing, synchronize the output occasionally based on the input.
-This increases size by less than 1 percent most cases, but means that the
-.BR rsync (1)
-program can take advantage of similarities in the uncompressed input
-when synchronizing two files compressed with this flag.
-.I gunzip
-cannot tell the difference between a compressed file created with this option,
-and one created without it.
-.TP
 .B \-S .suf   --suffix .suf
 When compressing, use suffix .suf instead of .gz.
 Any non-empty suffix can be given, but suffixes
diff --git a/gzip.c b/gzip.c
index cceb42000d48e80536f3c352a103c6cea63aa644..93cc7384ff3959664807e7dad470fe01f4c4f99c 100644 (file)
--- a/gzip.c
+++ b/gzip.c
@@ -215,7 +215,6 @@ int  ofd;                  /* output file descriptor */
 unsigned insize;           /* valid bytes in inbuf */
 unsigned inptr;            /* index of next byte to be processed in inbuf */
 unsigned outcnt;           /* bytes in output buffer */
-int rsync = 0;             /* make ryncable chunks */
 
 static int handled_sig[] =
   {
@@ -276,7 +275,7 @@ static const struct option longopts[] =
     {"best",       0, 0, '9'}, /* compress better */
     {"lzw",        0, 0, 'Z'}, /* make output compatible with old compress */
     {"bits",       1, 0, 'b'}, /* max number of bits per code (implies -Z) */
-    {"rsyncable",  0, 0, 'R'}, /* make rsync-friendly archive */
+
     { 0, 0, 0, 0 }
 };
 
@@ -360,7 +359,6 @@ local void help()
  "  -Z, --lzw         produce output compatible with old compress",
  "  -b, --bits=BITS   max number of bits per code (implies -Z)",
 #endif
- "  --rsyncable       Make rsync-friendly archive",
  "",
  "With no FILE, or when FILE is -, read standard input.",
  "",
@@ -491,11 +489,8 @@ int main (int argc, char **argv)
 #else
             recursive = 1;
 #endif
-           break;
-        case 'R':
-           rsync = 1; break;
-
-       case 'S':
+            break;
+        case 'S':
 #ifdef NO_MULTIPLE_DOTS
             if (*optarg == '.') optarg++;
 #endif
@@ -562,11 +557,7 @@ int main (int argc, char **argv)
     ALLOC(ush, tab_prefix1, 1L<<(BITS-1));
 #endif
 
-#ifdef SIGPIPE
     exiting_signal = quiet ? SIGPIPE : 0;
-#else
-    exiting_signal = 0;
-#endif
     install_signal_handlers ();
 
     /* And get to work */
diff --git a/gzip.h b/gzip.h
index 6d6e32331fd99803aa9da739382a92db41fa1db0..648073eee4b3106513c4102dddfd8de02e99ca1a 100644 (file)
--- a/gzip.h
+++ b/gzip.h
@@ -140,7 +140,6 @@ EXTERN(uch, window);         /* Sliding window and suffix table (unlzw) */
 extern unsigned insize; /* valid bytes in inbuf */
 extern unsigned inptr;  /* index of next byte to be processed in inbuf */
 extern unsigned outcnt; /* bytes in output buffer */
-extern int rsync;  /* deflate into rsyncable chunks */
 
 extern off_t bytes_in;   /* number of input bytes */
 extern off_t bytes_out;  /* number of output bytes */
@@ -288,7 +287,7 @@ extern off_t deflate (void);
         /* in trees.c */
 extern void ct_init     (ush *attr, int *method);
 extern int  ct_tally    (int dist, int lc);
-extern off_t flush_block (char *buf, ulg stored_len, int pad, int eof);
+extern off_t flush_block (char *buf, ulg stored_len, int eof);
 
         /* in bits.c */
 extern void     bi_init    (file_t zipfile);
index 396031e4c224b1950f8ddf3769aaddd16093db74..72a6b6ee89de1a7c3752cb8666ee440bbccdacc2 100644 (file)
@@ -28,7 +28,7 @@
 
 # if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING
 
-static void __cdecl
+static void cdecl
 gl_msvc_invalid_parameter_handler (const wchar_t *expression,
                                    const wchar_t *function,
                                    const wchar_t *file,
@@ -45,7 +45,7 @@ gl_msvc_invalid_parameter_handler (const wchar_t *expression,
 
 #  if defined _MSC_VER
 
-static void __cdecl
+static void cdecl
 gl_msvc_invalid_parameter_handler (const wchar_t *expression,
                                    const wchar_t *function,
                                    const wchar_t *file,
@@ -94,7 +94,7 @@ gl_msvc_inval_current (void)
     }
 }
 
-static void __cdecl
+static void cdecl
 gl_msvc_invalid_parameter_handler (const wchar_t *expression,
                                    const wchar_t *function,
                                    const wchar_t *file,
diff --git a/trees.c b/trees.c
index 1e1a2ca8af832d0a9e03f1d7b073a3c504b3a389..f2ad3602f50763cbd34751eb0fa1b846e42f44c4 100644 (file)
--- a/trees.c
+++ b/trees.c
@@ -856,10 +856,9 @@ local void send_all_trees(lcodes, dcodes, blcodes)
  * trees or store, and output the encoded block to the zip file. This function
  * returns the total compressed length for the file so far.
  */
-off_t flush_block(buf, stored_len, pad, eof)
+off_t flush_block(buf, stored_len, eof)
     char *buf;        /* input block, or NULL if too old */
     ulg stored_len;   /* length of input block */
-    int pad;          /* pad output to byte boundary */
     int eof;          /* true if this is the last block for a file */
 {
     ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */
@@ -952,10 +951,6 @@ off_t flush_block(buf, stored_len, pad, eof)
         Assert (input_len == bytes_in, "bad input size");
         bi_windup();
         compressed_len += 7;  /* align on byte boundary */
-    } else if (pad && (compressed_len % 8) != 0) {
-        send_bits((STORED_BLOCK<<1)+eof, 3);  /* send block type */
-        compressed_len = (compressed_len + 3 + 7) & ~7L;
-        copy_block(buf, 0, 1); /* with header */
     }
 
     return compressed_len >> 3;
diff --git a/zgrep.1 b/zgrep.1
index acc319505ccfc56663f488d245610321faf21e22..ef37bd8b0660054bc496b25ecdabc8f60ad2056b 100644 (file)
--- a/zgrep.1
+++ b/zgrep.1
@@ -11,13 +11,7 @@ zgrep \- search possibly compressed files for a regular expression
 invokes
 .I grep
 on compressed or gzipped files.
-These
-.I grep
-options will cause
-.I zgrep
-to terminate with an error code:
-.BI (-[drRzZ] | --di* | --exc* | --inc* | --rec* | --nu*) .
-All other options specified are passed directly to
+All options specified are passed directly to
 .IR grep .
 If no file is specified, then the standard input is decompressed
 if necessary and fed to grep.
@@ -29,8 +23,6 @@ If the GREP environment variable is set,
 uses it as the
 .I grep
 program to be invoked.
-.SH EXIT CODE
-2 - An option that is not supported was specified.
 .SH AUTHOR
 Charles Levert (charles@comm.polymtl.ca)
 .SH "SEE ALSO"