update rsyncable patch, etc
authorBdale Garbee <bdale@gag.com>
Tue, 19 Jun 2012 20:18:51 +0000 (14:18 -0600)
committerBdale Garbee <bdale@gag.com>
Tue, 19 Jun 2012 20:18:51 +0000 (14:18 -0600)
configure.ac
debian/patches/rsyncable.diff
doc/gzip.texi

index 50cb427731c12a9305d67226f31732a85b90a9c1..4705ce4b386a68bfc2d730fc3ab0c77791a39905 100644 (file)
@@ -130,12 +130,6 @@ if test "$gl_gcc_warnings" = yes; then
   AC_SUBST([GNULIB_WARN_CFLAGS])
 fi
 
-gl_FUNC_GETDTABLESIZE
-if test $HAVE_GETDTABLESIZE = 0; then
-  AC_LIBOBJ([getdtablesize])
-fi
-gl_UNISTD_MODULE_INDICATOR([getdtablesize])
-
 # cc -E produces incorrect asm files on SVR4, so postprocess it.
 ASCPPPOST="sed '/^ *\\#/d; s,//.*,,; s/% /%/g; s/\\. /./g'"
 AC_SUBST([ASCPPPOST])
index e615d984f72ea670151dd7f3511a1defe58fc8b6..1bb7d4a745fa5b4abbb5796a6f9b48a88239f011 100644 (file)
@@ -1,7 +1,6 @@
-diff --git a/deflate.c b/deflate.c
-index 0950391..1b3ac52 100644
---- a/deflate.c
-+++ b/deflate.c
+diff -u -r gzip-1.5/deflate.c /home/bdale/debian/gzip/deflate.c
+--- gzip-1.5/deflate.c 2012-04-24 10:25:28.000000000 -0600
++++ /home/bdale/debian/gzip/deflate.c  2012-06-19 14:01:41.885498670 -0600
 @@ -131,6 +131,14 @@
  #endif
  /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
@@ -17,8 +16,8 @@ index 0950391..1b3ac52 100644
  /* ===========================================================================
   * Local data used by the "longest match" routines.
   */
-@@ -212,6 +220,8 @@ local int compr_level;
- unsigned near good_match;
+@@ -212,6 +220,8 @@
+ unsigned good_match;
  /* Use a faster search when the previous match is longer than this */
  
 +local ulg rsync_sum;  /* rolling sum of rsync window */
@@ -26,7 +25,7 @@ index 0950391..1b3ac52 100644
  
  /* 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
-@@ -307,6 +317,10 @@ void lm_init (pack_level, flags)
+@@ -314,6 +324,10 @@
  #endif
      /* prev will be initialized on the fly */
  
@@ -37,7 +36,7 @@ index 0950391..1b3ac52 100644
      /* Set the default configuration parameters:
       */
      max_lazy_match   = configuration_table[pack_level].max_lazy;
-@@ -324,6 +338,7 @@ void lm_init (pack_level, flags)
+@@ -331,6 +345,7 @@
  
      strstart = 0;
      block_start = 0L;
@@ -45,7 +44,7 @@ index 0950391..1b3ac52 100644
  #ifdef ASMV
      match_init(); /* initialize the asm code */
  #endif
-@@ -543,6 +558,8 @@ local void fill_window()
+@@ -550,6 +565,8 @@
          memcpy((char*)window, (char*)window+WSIZE, (unsigned)WSIZE);
          match_start -= WSIZE;
          strstart    -= WSIZE; /* we now have strstart >= MAX_DIST: */
@@ -54,7 +53,7 @@ index 0950391..1b3ac52 100644
  
          block_start -= (long) WSIZE;
  
-@@ -570,6 +587,39 @@ local void fill_window()
+@@ -579,6 +596,39 @@
      }
  }
  
@@ -94,21 +93,23 @@ index 0950391..1b3ac52 100644
  /* ===========================================================================
   * Flush the current block, with given end-of-file flag.
   * IN assertion: strstart is set to the end of the current match.
-@@ -617,6 +667,7 @@ local off_t deflate_fast()
+@@ -626,7 +676,8 @@
  
              lookahead -= match_length;
  
+-            /* Insert new strings in the hash table only if the 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.
               */
-@@ -645,9 +696,18 @@ local off_t deflate_fast()
+             if (match_length <= max_insert_length) {
+@@ -654,9 +705,18 @@
              /* No match, output a literal byte */
              Tracevv((stderr,"%c",window[strstart]));
              flush = ct_tally (0, window[strstart]);
 +          RSYNC_ROLL(strstart, 1);
              lookahead--;
-           strstart++;
+             strstart++;
          }
 +        if (rsync && strstart > rsync_chunk_end) {
 +            ush  attr = 0;          /* ascii/binary flag */
@@ -121,7 +122,7 @@ index 0950391..1b3ac52 100644
          if (flush) FLUSH_BLOCK(0), block_start = strstart;
  
          /* Make sure that we always have enough lookahead, except
-@@ -721,6 +781,7 @@ off_t deflate()
+@@ -730,6 +790,7 @@
               */
              lookahead -= prev_length-1;
              prev_length -= 2;
@@ -129,7 +130,7 @@ index 0950391..1b3ac52 100644
              do {
                  strstart++;
                  INSERT_STRING(strstart, hash_head);
-@@ -733,24 +794,51 @@ off_t deflate()
+@@ -742,24 +803,51 @@
              match_available = 0;
              match_length = MIN_MATCH-1;
              strstart++;
@@ -185,14 +186,37 @@ index 0950391..1b3ac52 100644
              strstart++;
              lookahead--;
          }
-diff --git a/doc/gzip.texi b/doc/gzip.texi
-index a6009d2..84887c3 100644
---- a/doc/gzip.texi
-+++ b/doc/gzip.texi
-@@ -353,6 +353,14 @@ specified on the command line are directories, @command{gzip} will descend
+diff -u -r gzip-1.5/doc/gzip.texi /home/bdale/debian/gzip/doc/gzip.texi
+--- gzip-1.5/doc/gzip.texi     2012-01-01 01:53:58.000000000 -0700
++++ /home/bdale/debian/gzip/doc/gzip.texi      2012-06-19 14:09:36.041559612 -0600
+@@ -207,6 +207,7 @@
+   -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.
+@@ -353,6 +354,30 @@
  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 can reduce the compression slightly in some cases, but
++means that the @code{rsync} program can take advantage of similarities
++in the uncompressed input when syncronizing two files compressed with
++this flag.  @code{gunzip} cannot tell the difference between a
++compressed file created with this option, and one created without it.
++
++@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 --rsyncable
 +While compressing, synchronize the output occasionally based on the
 +input.  This can reduce the compression slightly in some cases, but
@@ -204,11 +228,9 @@ index a6009d2..84887c3 100644
  @item --suffix @var{suf}
  @itemx -S @var{suf}
  Use suffix @var{suf} instead of @samp{.gz}.  Any suffix can be
-diff --git a/gzip.c b/gzip.c
-index 9e2a890..b867350 100644
---- a/gzip.c
-+++ b/gzip.c
-@@ -218,6 +218,7 @@ int  ofd;                  /* output file descriptor */
+--- gzip-1.5/gzip.c    2012-04-24 10:25:28.000000000 -0600
++++ /home/bdale/debian/gzip/gzip.c     2012-06-19 14:00:43.283873180 -0600
+@@ -213,6 +213,7 @@
  unsigned insize;           /* valid bytes in inbuf */
  unsigned inptr;            /* index of next byte to be processed in inbuf */
  unsigned outcnt;           /* bytes in output buffer */
@@ -216,15 +238,16 @@ index 9e2a890..b867350 100644
  
  static int handled_sig[] =
    {
-@@ -271,6 +272,7 @@ struct option longopts[] =
+@@ -270,7 +271,7 @@
      {"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 }
  };
  
-@@ -352,6 +354,7 @@ local void help()
+@@ -353,6 +354,7 @@
   "  -Z, --lzw         produce output compatible with old compress",
   "  -b, --bits=BITS   max number of bits per code (implies -Z)",
  #endif
@@ -232,21 +255,24 @@ index 9e2a890..b867350 100644
   "",
   "With no FILE, or when FILE is -, read standard input.",
   "",
-@@ -479,6 +482,9 @@ int main (int argc, char **argv)
-           recursive = 1;
+@@ -481,8 +483,11 @@
+ #else
+             recursive = 1;
  #endif
-           break;
+-            break;
+-        case 'S':
++          break;
 +        case 'R':
 +          rsync = 1; break;
 +
-       case 'S':
++      case 'S':
  #ifdef NO_MULTIPLE_DOTS
              if (*optarg == '.') optarg++;
-diff --git a/gzip.h b/gzip.h
-index 0c3dd68..5270c56 100644
---- a/gzip.h
-+++ b/gzip.h
-@@ -146,6 +146,7 @@ EXTERN(uch, window);         /* Sliding window and suffix table (unlzw) */
+ #endif
+diff -u -r gzip-1.5/gzip.h /home/bdale/debian/gzip/gzip.h
+--- gzip-1.5/gzip.h    2012-01-01 01:53:58.000000000 -0700
++++ /home/bdale/debian/gzip/gzip.h     2012-06-19 13:57:36.833883093 -0600
+@@ -140,6 +140,7 @@
  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 */
@@ -254,30 +280,3 @@ index 0c3dd68..5270c56 100644
  
  extern off_t bytes_in;   /* number of input bytes */
  extern off_t bytes_out;  /* number of output bytes */
-diff --git a/doc/gzip.texi b/doc/gzip.texi
-index 84887c3..ecd4e00 100644
---- a/doc/gzip.texi
-+++ b/doc/gzip.texi
-@@ -207,6 +207,7 @@ 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.
-@@ -361,6 +362,14 @@ in the uncompressed input when syncronizing two files compressed with
- this flag.  @code{gunzip} cannot tell the difference between a
- compressed file created with this option, and one created without it.
-+@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
index 7f3d4523cf15542ef16d5668a7f1d37b2d5d04f1..ffe20b4acfcf811d6edff48382e6bce5e3f7700c 100644 (file)
@@ -370,6 +370,14 @@ 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 --rsyncable
+While compressing, synchronize the output occasionally based on the
+input.  This can reduce the compression slightly in some cases, but
+means that the @code{rsync} program can take advantage of similarities
+in the uncompressed input when syncronizing two files compressed with
+this flag.  @code{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