]> Dogcows Code - chaz/tar/blobdiff - src/update.c
*** empty log message ***
[chaz/tar] / src / update.c
index 19e98a7d1b5ce05f3ee05fd1a058b6f82ce050c6..6aa8a9d71f1715efc9bcaaee4b76448717a86936 100644 (file)
@@ -1,5 +1,5 @@
 /* Update a tar archive.
-   Copyright (C) 1988 Free Software Foundation
+   Copyright (C) 1988, 1992 Free Software Foundation
 
 This file is part of GNU Tar.
 
@@ -30,7 +30,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 extern int errno;
 #endif
 
-#ifndef NO_MTIO
+#ifdef HAVE_SYS_MTIO_H
 #include <sys/ioctl.h>
 #include <sys/mtio.h>
 #endif
@@ -135,14 +135,16 @@ update_archive()
                case 1:
  /* printf("File %s\n",head->header.name); */
                        /* head->header.name[NAMSIZ-1]='\0'; */
-                       if(cmd_mode==CMD_UPDATE && (name=name_scan(head->header.name))) {
+                       if(cmd_mode==CMD_UPDATE && (name=name_scan(current_file_name)))
+                         {
+                           
                                /* struct stat hstat; */
                                struct stat nstat;
                                int head_standard;
 
                                decode_header(head,&hstat,&head_standard,0);
-                               if(stat(head->header.name,&nstat)<0) {
-                                       msg_perror("can't stat %s:",head->header.name);
+                               if(stat(current_file_name,&nstat)<0) {
+                                       msg_perror("can't stat %s:",current_file_name);
                                } else {
                                        if(hstat.st_mtime>=nstat.st_mtime)
                                                name->found++;
@@ -171,7 +173,7 @@ update_archive()
                if(cmd_mode==CMD_CAT)
                        append_file(p);
                else
-                       dump_file(p,-1);
+                       dump_file(p,-1, 1);
        }
 
        write_eot();
@@ -314,7 +316,7 @@ junk_archive()
                case 1:
                        /* head->header.name[NAMSIZ-1] = '\0'; */
  /* fprintf(stderr,"file %s\n",head->header.name); */
-                       if((name=name_scan(head->header.name))==(struct name *)0) {
+                       if((name=name_scan(current_file_name))==(struct name *)0) {
                                userec(head);
  /* fprintf(stderr,"Skip %ld\n",(long)(hstat.st_size)); */
                                if (head->header.isextended)
@@ -395,7 +397,7 @@ junk_archive()
                /* Found another header.  Yipee! */
                /* head->header.name[NAMSIZ-1] = '\0'; */
  /* fprintf(stderr,"File %s ",head->header.name); */
-               if(name=name_scan(head->header.name)) {
+               if(name=name_scan(current_file_name)) {
                        name->found = 1;
  /* fprintf(stderr,"Flush it\n"); */
                /* flush_file: */
This page took 0.02243 seconds and 4 git commands to generate.