]> Dogcows Code - chaz/tar/blobdiff - src/incremen.c
(procdir): If name_scan() returns something, check if it was explicitely given in...
[chaz/tar] / src / incremen.c
index ec8a86dfe4dc3c1f38fd6be2051aa76ffd482c0b..c0bbf4e8d06beb90ba21081e66c830636886f933 100644 (file)
@@ -150,6 +150,7 @@ procdir (char *name_buffer, struct stat *stat_data,
 { 
   struct directory *directory;
   bool nfs = NFS_FILE_STAT (*stat_data);
+  struct name *np;
   
   if ((directory = find_directory (name_buffer)) != NULL)
     {
@@ -202,8 +203,12 @@ procdir (char *name_buffer, struct stat *stat_data,
        ? ALL_CHILDREN
        : CHANGED_CHILDREN;
     }
-  
-  if (one_file_system_option && device != stat_data->st_dev)
+
+  /* If the directory is on another device and --one-file-system was given,
+     omit it... */
+  if (one_file_system_option && device != stat_data->st_dev
+      /* ... except if it was explicitely given in the command line */
+      && !((np = name_scan (name_buffer)) && np->explicit))
     directory->children = NO_CHILDREN;
   else if (children == ALL_CHILDREN)
     directory->children = ALL_CHILDREN;
This page took 0.020252 seconds and 4 git commands to generate.