]> Dogcows Code - chaz/tar/blobdiff - src/buffer.c
(new_volume): Initialize current_block
[chaz/tar] / src / buffer.c
index 2b53ec38d6d90d4c0ef1fed3e7373fe1b372a306..57b271527ba3d4c64dbad00d04ba92ed9cfb44c2 100644 (file)
@@ -338,6 +338,9 @@ print_total_stats ()
       print_stats (stderr, _("Total bytes read"),
                   records_read * record_size);
       break;
+
+    default:
+      abort ();
     }
 }
 
@@ -433,16 +436,6 @@ _open_archive (enum access_mode wanted_access)
 {
   int backed_up_flag = 0;
 
-  if (index_file_name)
-    {
-      stdlis = freopen (index_file_name, "w", stdout);
-      if (! stdlis)
-       open_error (index_file_name);
-      close_stdout_set_file_name (index_file_name);
-    }
-  else
-    stdlis = to_stdout_option ? stderr : stdout;
-
   if (record_size == 0)
     FATAL_ERROR ((0, 0, _("Invalid value for record_size")));
 
@@ -481,10 +474,6 @@ _open_archive (enum access_mode wanted_access)
          abort (); /* Should not happen */
          break;
        }
-
-      if (wanted_access == ACCESS_WRITE
-         && strcmp (archive_name_array[0], "-") == 0)
-       stdlis = stderr;
     }
   else if (strcmp (archive_name_array[0], "-") == 0)
     {
@@ -510,12 +499,10 @@ _open_archive (enum access_mode wanted_access)
 
        case ACCESS_WRITE:
          archive = STDOUT_FILENO;
-         stdlis = stderr;
          break;
 
        case ACCESS_UPDATE:
          archive = STDIN_FILENO;
-         stdlis = stderr;
          write_archive_to_stdout = true;
          record_end = record_start; /* set up for 1st record = # 0 */
          break;
@@ -1033,7 +1020,8 @@ new_volume (enum access_mode mode)
   assign_string (&volume_label, NULL);
   assign_string (&continued_file_name, NULL);
   continued_file_size = continued_file_offset = 0;
-
+  current_block = record_start;
+  
   if (rmtclose (archive) != 0)
     close_warn (*archive_name_cursor);
 
@@ -1127,22 +1115,24 @@ try_new_volume ()
   size_t status;
   union block *header;
   struct tar_stat_info dummy;
-       
+  int access;
+  
   switch (subcommand_option)
     {
     case APPEND_SUBCOMMAND:
     case CAT_SUBCOMMAND:
     case UPDATE_SUBCOMMAND:
-      if (!new_volume (ACCESS_UPDATE))
-       return true;
+      access = ACCESS_UPDATE;
       break;
 
     default:
-      if (!new_volume (ACCESS_READ))
-       return true;
+      access = ACCESS_READ;
       break;
     }
 
+  if (!new_volume (access))
+    return true;
+  
   while ((status = rmtread (archive, record_start->buffer, record_size))
         == SAFE_READ_ERROR)
     archive_read_error ();
This page took 0.026751 seconds and 4 git commands to generate.