]> Dogcows Code - chaz/tar/blobdiff - src/compare.c
(diff_dumpdir): Pass a valid device number to get_directory_contents.
[chaz/tar] / src / compare.c
index 98a953bf403aa524ead280729c106f1379fd1e35..70d72513aaef6ea80e0e35ae99ba2002758f4e5c 100644 (file)
@@ -224,7 +224,7 @@ diff_file (void)
       if (!sys_compare_gid (&stat_data, &current_stat_info.stat))
        report_difference (&current_stat_info, _("Gid differs"));
 
-      if (stat_data.st_mtime != current_stat_info.stat.st_mtime)
+      if (timespec_cmp (get_stat_mtime (&stat_data), current_stat_info.mtime))
        report_difference (&current_stat_info, _("Mod time differs"));
       if (current_header->header.typeflag != GNUTYPE_SPARSE &&
          stat_data.st_size != current_stat_info.stat.st_size)
@@ -356,8 +356,21 @@ diff_special (void)
 static void
 diff_dumpdir (void)
 {
-  char *dumpdir_buffer = get_directory_contents (current_stat_info.file_name,
-                                                0);
+  char *dumpdir_buffer;
+  dev_t dev = 0;
+  struct stat stat;
+
+  if (deref_stat (true, current_stat_info.file_name, &stat))
+    {
+      if (errno == ENOENT)
+       stat_warn (current_stat_info.file_name);
+      else
+       stat_error (current_stat_info.file_name);
+    }
+  else
+    dev = stat.st_dev;
+      
+  dumpdir_buffer = get_directory_contents (current_stat_info.file_name, dev);
 
   if (multi_volume_option)
     {
This page took 0.021123 seconds and 4 git commands to generate.