]> Dogcows Code - chaz/tar/blobdiff - src/create.c
tar: remove trailing white space from source files
[chaz/tar] / src / create.c
index 8c66d9bc768b55bbd29290794065df10d6fab45c..6777f9cc078eac7b4c544a03d7a8b072d6d642ca 100644 (file)
@@ -1,7 +1,7 @@
 /* Create a tar archive.
 
    Copyright (C) 1985, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001,
-   2003, 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
+   2003, 2004, 2005, 2006, 2007, 2009, 2010 Free Software Foundation, Inc.
 
    Written by John Gilmore, on 1985-08-25.
 
@@ -71,7 +71,7 @@ exclusion_tag_warning (const char *dirname, const char *tagname,
              message));
 }
 
-enum exclusion_tag_type 
+enum exclusion_tag_type
 check_exclusion_tags (const char *dirname, const char **tag_file_name)
 {
   static char *tagname;
@@ -79,8 +79,8 @@ check_exclusion_tags (const char *dirname, const char **tag_file_name)
   struct exclusion_tag *tag;
   size_t dlen = strlen (dirname);
   int addslash = !ISSLASH (dirname[dlen-1]);
-  char *nptr = NULL;
-  
+  size_t noff = 0;
+
   for (tag = exclusion_tags; tag; tag = tag->next)
     {
       size_t size = dlen + addslash + tag->length + 1;
@@ -90,14 +90,14 @@ check_exclusion_tags (const char *dirname, const char **tag_file_name)
          tagname = xrealloc (tagname, tagsize);
        }
 
-      if (!nptr)
+      if (noff == 0)
        {
          strcpy (tagname, dirname);
-         nptr = tagname + dlen;
+         noff = dlen;
          if (addslash)
-           *nptr++ = '/';
+           tagname[noff++] = '/';
        }
-      strcpy (nptr, tag->name);
+      strcpy (tagname + noff, tag->name);
       if (access (tagname, F_OK) == 0
          && (!tag->predicate || tag->predicate (tagname)))
        {
@@ -263,7 +263,7 @@ to_chars_subst (int negative, int gnu_format, uintmax_t value, size_t valsize,
 
         1. In OLDGNU_FORMAT all strings in a tar header end in \0
         2. Incremental archives use oldgnu_header.
-        
+
         Apart from this they are completely identical. */
       uintmax_t s = (negsub &= archive_format == GNU_FORMAT) ? - sub : sub;
       char subbuf[UINTMAX_STRSIZE_BOUND + 1];
@@ -618,7 +618,7 @@ write_ustar_long_name (const char *name)
   size_t length = strlen (name);
   size_t i, nlen;
   union block *header;
-  
+
   if (length > PREFIX_FIELD_SIZE + NAME_FIELD_SIZE + 1)
     {
       ERROR ((0, 0, _("%s: file name is too long (max %d); not dumped"),
@@ -713,7 +713,7 @@ write_extended (bool global, struct tar_stat_info *st, union block *old_header)
   char *p;
   int type;
   time_t t;
-  
+
   if (st->xhdr.buffer || st->xhdr.stk == NULL)
     return old_header;
 
@@ -996,11 +996,9 @@ finish_header (struct tar_stat_info *st,
       && header->header.typeflag != XHDTYPE
       && header->header.typeflag != XGLTYPE)
     {
-      /* These globals are parameters to print_header, sigh.  */
-
-      current_header = header;
+      /* FIXME: This global is used in print_header, sigh.  */
       current_format = archive_format;
-      print_header (st, block_ordinal);
+      print_header (st, header, block_ordinal);
     }
 
   header = write_extended (false, st, header);
@@ -1014,7 +1012,6 @@ pad_archive (off_t size_left)
   union block *blk;
   while (size_left > 0)
     {
-      mv_size_left (size_left);
       blk = find_next_block ();
       memset (blk->buffer, 0, BLOCKSIZE);
       set_next_block_after (blk);
@@ -1040,12 +1037,10 @@ dump_regular_file (int fd, struct tar_stat_info *st)
 
   finish_header (st, blk, block_ordinal);
 
-  mv_begin (st);
+  mv_begin_write (st->file_name, st->stat.st_size, st->stat.st_size);
   while (size_left > 0)
     {
       size_t bufsize, count;
-      
-      mv_size_left (size_left);
 
       blk = find_next_block ();
 
@@ -1082,7 +1077,7 @@ dump_regular_file (int fd, struct tar_stat_info *st)
                              size_left),
                    quotearg_colon (st->orig_file_name),
                    STRINGIFY_BIGINT (size_left, buf)));
-         if (! ignore_failed_read_option) 
+         if (! ignore_failed_read_option)
            set_exit_status (TAREXIT_DIFFERS);
          pad_archive (size_left - (bufsize - count));
          return dump_status_short;
@@ -1131,7 +1126,7 @@ dump_dir0 (char *directory,
          size_t bufsize;
          ssize_t count;
          const char *buffer, *p_buffer;
-         
+
          block_ordinal = current_block_ordinal ();
          buffer = safe_directory_contents (gnu_list_name->directory);
          totsize = dumpdir_size (buffer);
@@ -1139,12 +1134,10 @@ dump_dir0 (char *directory,
          finish_header (st, blk, block_ordinal);
          p_buffer = buffer;
          size_left = totsize;
-         
-         mv_begin (st);
-         mv_total_size (totsize);
+
+         mv_begin_write (st->file_name, totsize, totsize);
          while (size_left > 0)
            {
-             mv_size_left (size_left);
              blk = find_next_block ();
              bufsize = available_space_after (blk);
              if (size_left < bufsize)
@@ -1159,7 +1152,6 @@ dump_dir0 (char *directory,
              p_buffer += bufsize;
              set_next_block_after (blk + (bufsize - 1) / BLOCKSIZE);
            }
-         mv_end ();
        }
       return;
     }
@@ -1181,13 +1173,13 @@ dump_dir0 (char *directory,
     {
       char *name_buf;
       size_t name_size;
-      
+
       switch (check_exclusion_tags (st->orig_file_name, &tag_file_name))
        {
        case exclusion_tag_all:
          /* Handled in dump_file0 */
          break;
-         
+
        case exclusion_tag_none:
          {
            char const *entry;
@@ -1211,7 +1203,7 @@ dump_dir0 (char *directory,
                if (!excluded_name (name_buf))
                  dump_file (name_buf, false, our_device);
              }
-           
+
            free (name_buf);
          }
          break;
@@ -1226,7 +1218,7 @@ dump_dir0 (char *directory,
          dump_file (name_buf, false, our_device);
          free (name_buf);
          break;
-      
+
        case exclusion_tag_under:
          exclusion_tag_warning (st->orig_file_name, tag_file_name,
                                 _("contents not dumped"));
@@ -1435,7 +1427,7 @@ file_count_links (struct tar_stat_info *st)
 
       assign_string (&linkname, st->orig_file_name);
       transform_name (&linkname, XFORM_LINK);
-      
+
       lp = xmalloc (offsetof (struct link, name)
                                 + strlen (linkname) + 1);
       lp->ino = st->stat.st_ino;
@@ -1443,13 +1435,13 @@ file_count_links (struct tar_stat_info *st)
       lp->nlink = st->stat.st_nlink;
       strcpy (lp->name, linkname);
       free (linkname);
-      
+
       if (! ((link_table
              || (link_table = hash_initialize (0, 0, hash_link,
                                                compare_links, 0)))
             && (duplicate = hash_insert (link_table, lp))))
        xalloc_die ();
-      
+
       if (duplicate != lp)
        abort ();
       lp->nlink--;
@@ -1531,10 +1523,10 @@ dump_file0 (struct tar_stat_info *st, const char *p,
 
   /* See if we want only new files, and check if this one is too old to
      put in the archive.
-     
+
      This check is omitted if incremental_option is set *and* the
      requested file is not explicitely listed in the command line. */
-  
+
   if (!(incremental_option && !is_individual_file (p))
       && !S_ISDIR (st->stat.st_mode)
       && OLDER_TAR_STAT_TIME (*st, m)
@@ -1593,9 +1585,11 @@ dump_file0 (struct tar_stat_info *st, const char *p,
            {
              exclusion_tag_warning (st->orig_file_name, tag_file_name,
                                     _("directory not dumped"));
+             if (fd >= 0)
+               close (fd);
              return;
            }
-         
+
          ok = dump_dir (fd, st, top_level, parent_device);
 
          /* dump_dir consumes FD if successful.  */
@@ -1619,7 +1613,6 @@ dump_file0 (struct tar_stat_info *st, const char *p,
            {
            case dump_status_ok:
            case dump_status_short:
-             mv_end ();
              file_count_links (st);
              break;
 
This page took 0.027208 seconds and 4 git commands to generate.