]> Dogcows Code - chaz/tar/blobdiff - src/buffer.c
New actions: bell and ttyout
[chaz/tar] / src / buffer.c
index cea5f253f438e62bdaa65e03565a8e67f9f4ff4d..c022971562240e629b415092c709f46f548e8a8c 100644 (file)
@@ -26,7 +26,6 @@
 
 #include <closeout.h>
 #include <fnmatch.h>
-#include <getline.h>
 #include <human.h>
 #include <quotearg.h>
 
@@ -75,9 +74,6 @@ static int read_error_count;
 /* Have we hit EOF yet?  */
 static bool hit_eof;
 
-/* Checkpointing counter */
-static unsigned checkpoint;
-
 static bool read_full_records = false;
 
 /* We're reading, but we just read the last block and it's time to update.
@@ -205,7 +201,8 @@ enum compress_type {
   ct_none,
   ct_compress,
   ct_gzip,
-  ct_bzip2
+  ct_bzip2,
+  ct_lzma
 };
 
 struct zip_magic
@@ -222,6 +219,7 @@ static struct zip_magic const magic[] = {
   { ct_compress, 2, "\037\235", "compress", "-Z" },
   { ct_gzip,     2, "\037\213", "gzip", "-z"  },
   { ct_bzip2,    3, "BZh",      "bzip2", "-j" },
+  { ct_lzma,     6, "\xFFLZMA", "lzma", "-a" }, /* FIXME: ???? */
 };
 
 #define NMAGIC (sizeof(magic)/sizeof(magic[0]))
@@ -590,43 +588,13 @@ _open_archive (enum access_mode wanted_access)
     }
 }
 
-static void
-do_checkpoint (bool write)
-{
-  if (checkpoint_option && !(++checkpoint % checkpoint_option))
-    {
-      switch (checkpoint_style)
-       {
-       case checkpoint_dot:
-         fputc ('.', stdlis);
-         fflush (stdlis);
-         break;
-
-       case checkpoint_text:
-         if (write)
-           /* TRANSLATORS: This is a ``checkpoint of write operation'',
-            *not* ``Writing a checkpoint''.
-            E.g. in Spanish ``Punto de comprobaci@'on de escritura'',
-            *not* ``Escribiendo un punto de comprobaci@'on'' */
-           WARN ((0, 0, _("Write checkpoint %u"), checkpoint));
-         else
-           /* TRANSLATORS: This is a ``checkpoint of read operation'',
-              *not* ``Reading a checkpoint''.
-              E.g. in Spanish ``Punto de comprobaci@'on de lectura'',
-              *not* ``Leyendo un punto de comprobaci@'on'' */
-           WARN ((0, 0, _("Read checkpoint %u"), checkpoint));
-         break;
-       }
-    }
-}  
-
 /* Perform a write to flush the buffer.  */
 ssize_t
 _flush_write (void)
 {
   ssize_t status;
 
-  do_checkpoint (true);
+  checkpoint_run (true);
   if (tape_length_option && tape_length_option <= bytes_written)
     {
       errno = ENOSPC;
@@ -636,7 +604,7 @@ _flush_write (void)
     status = record_size;
   else
     status = sys_write_archive_buffer ();
-
+  
   return status;
 }
 
@@ -1137,22 +1105,22 @@ try_new_volume ()
 {
   size_t status;
   union block *header;
-  int access;
+  enum access_mode acc;
   
   switch (subcommand_option)
     {
     case APPEND_SUBCOMMAND:
     case CAT_SUBCOMMAND:
     case UPDATE_SUBCOMMAND:
-      access = ACCESS_UPDATE;
+      acc = ACCESS_UPDATE;
       break;
 
     default:
-      access = ACCESS_READ;
+      acc = ACCESS_READ;
       break;
     }
 
-  if (!new_volume (access))
+  if (!new_volume (acc))
     return true;
   
   while ((status = rmtread (archive, record_start->buffer, record_size))
@@ -1465,7 +1433,7 @@ simple_flush_read (void)
 {
   size_t status;               /* result from system call */
 
-  do_checkpoint (false);
+  checkpoint_run (false);
   
   /* Clear the count of errors.  This only applies to a single call to
      flush_read.  */
@@ -1524,7 +1492,7 @@ _gnu_flush_read (void)
 {
   size_t status;               /* result from system call */
 
-  do_checkpoint (false);
+  checkpoint_run (false);
   
   /* Clear the count of errors.  This only applies to a single call to
      flush_read.  */
This page took 0.023123 seconds and 4 git commands to generate.