]> Dogcows Code - chaz/tar/blobdiff - src/create.c
(usage): tar-bugs@gnu.org -> bug-tar@gnu.org
[chaz/tar] / src / create.c
index a701c5a0807918b00238f146f966907a24d76d74..1ca34a62100fbf26b54aca228f621c299c8c5830 100644 (file)
@@ -327,7 +327,7 @@ Removing leading `/' from absolute path names in the archive")));
   if (group_option != (gid_t) -1)
     st->st_gid = group_option;
   if (mode_option)
-    st->st_mode = ((st->st_mode & S_IFMT)
+    st->st_mode = ((st->st_mode & ~MODE_ALL)
                   | mode_adjust (st->st_mode, mode_option));
 
   /* Paul Eggert tried the trivial test ($WRITER cf a b; $READER tvf a)
@@ -1478,9 +1478,10 @@ Read error at byte %s, reading %lu bytes, in file %s"),
 
       while (entry = readdir (directory), entry)
        {
-         /* Skip `.' and `..'.  */
+         /* Skip `.', `..', and excluded file names.  */
 
-         if (is_dot_or_dotdot (entry->d_name))
+         if (is_dot_or_dotdot (entry->d_name)
+             || excluded_filename (excluded, entry->d_name))
            continue;
 
          if ((int) NAMLEN (entry) + len >= buflen)
@@ -1495,8 +1496,6 @@ Read error at byte %s, reading %lu bytes, in file %s"),
 #endif
            }
          strcpy (namebuf + len, entry->d_name);
-         if (exclude_option && check_exclude (namebuf))
-           continue;
          dump_file (namebuf, our_device, 0);
        }
 
@@ -1517,9 +1516,7 @@ Read error at byte %s, reading %lu bytes, in file %s"),
     type = BLKTYPE;
 #endif
 
-  /* Avoid screwy apollo lossage where S_IFIFO == S_IFSOCK.  */
-
-#if (_ISP__M68K == 0) && (_ISP__A88K == 0) && defined(S_ISFIFO)
+#ifdef S_ISFIFO
   else if (S_ISFIFO (current_stat.st_mode))
     type = FIFOTYPE;
 #endif
@@ -1545,7 +1542,7 @@ Read error at byte %s, reading %lu bytes, in file %s"),
 
   header->header.typeflag = type;
 
-#if defined(S_IFBLK) || defined(S_IFCHR)
+#if defined S_ISBLK || defined S_ISCHR
   if (type != FIFOTYPE)
     {
       MAJOR_TO_OCT (major (current_stat.st_rdev), header->header.devmajor);
This page took 0.026448 seconds and 4 git commands to generate.