]> Dogcows Code - chaz/tar/blobdiff - src/extract.c
tar: port --overwrite symlink test to GNU/Hurd
[chaz/tar] / src / extract.c
index 6c3849274e1281e72f9334e5a6e4f288e5f33022..bd5e7bf588daecfa0da25ef9fa1bc64957e1be8e 100644 (file)
@@ -649,7 +649,7 @@ maybe_recoverable (char *file_name, bool regular, bool *interdir_made)
 
        case KEEP_OLD_FILES:
          return RECOVER_NO;
-         
+
        case KEEP_NEWER_FILES:
          if (file_newer_p (file_name, stp, &current_stat_info))
            break;
@@ -887,7 +887,8 @@ open_output_file (char const *file_name, int typeflag, mode_t mode,
   /* If O_NOFOLLOW is needed but does not work, check for a symlink
      separately.  There's a race condition, but that cannot be avoided
      on hosts lacking O_NOFOLLOW.  */
-  if (! O_NOFOLLOW && overwriting_old_files && ! dereference_option)
+  if (! HAVE_WORKING_O_NOFOLLOW
+      && overwriting_old_files && ! dereference_option)
     {
       struct stat st;
       if (fstatat (chdir_fd, file_name, &st, AT_SYMLINK_NOFOLLOW) == 0
@@ -998,7 +999,7 @@ extract_file (char *file_name, int typeflag)
        if (written > size)
          written = size;
        errno = 0;
-       count = full_write (fd, data_block->buffer, written);
+       count = blocking_write (fd, data_block->buffer, written);
        size -= written;
 
        set_next_block_after ((union block *)
This page took 0.023743 seconds and 4 git commands to generate.