/* GNU dump extensions to tar.
- Copyright 1988, 1992-1994, 1996-1997, 1999-2001, 2003-2009, 2013
+ Copyright 1988, 1992-1994, 1996-1997, 1999-2001, 2003-2009, 2013-2014
Free Software Foundation, Inc.
This file is part of GNU tar.
if (! dirp)
savedir_error (dir);
+ info_attach_exclist (st);
+
tmp = xstrdup (dir);
zap_slashes (tmp);
entry = dumpdir_next (itr))
{
char *full_name = namebuf_name (nbuf, entry + 1);
-
+
if (*entry == 'I') /* Ignored entry */
*entry = 'N';
- else if (excluded_name (full_name))
+ else if (excluded_name (full_name, st))
*entry = 'N';
else
{
diag = stat_diag;
}
}
-
+
if (diag)
{
file_removed_diag (full_name, false, diag);
else if (directory->children == ALL_CHILDREN)
pd_flag |= PD_FORCE_CHILDREN | ALL_CHILDREN;
*entry = 'D';
-
+
stsub.parent = st;
procdir (full_name, &stsub, pd_flag, entry);
restore_parent_fd (&stsub);
*entry = 'N';
else
*entry = 'Y';
-
+
tar_stat_destroy (&stsub);
}
}
else if (directory->tagfile)
maketagdumpdir (directory);
}
-
+
namebuf_free (nbuf);
free (dirp);
}
if (c)
- FATAL_ERROR ((0, 0,
- _("%s: byte %s: %s %s followed by invalid byte 0x%02x"),
- quotearg_colon (listed_incremental_option),
- offtostr (ftello (fp), offbuf),
- fieldname, buf, c));
+ {
+ unsigned uc = c;
+ FATAL_ERROR ((0, 0,
+ _("%s: byte %s: %s %s followed by invalid byte 0x%02x"),
+ quotearg_colon (listed_incremental_option),
+ offtostr (ftello (fp), offbuf),
+ fieldname, buf, uc));
+ }
*pval = strtosysint (buf, NULL, min_val, max_val);
conversion_errno = errno;
show_snapshot_field_ranges (void)
{
struct field_range const *p;
- char minbuf[max (SYSINT_BUFSIZE, INT_BUFSIZE_BOUND (intmax_t))];
- char maxbuf[max (SYSINT_BUFSIZE, INT_BUFSIZE_BOUND (uintmax_t))];
+ char minbuf[SYSINT_BUFSIZE];
+ char maxbuf[SYSINT_BUFSIZE];
printf("This tar's snapshot file field ranges are\n");
printf (" (%-15s => [ %s, %s ]):\n\n", "field name", "min", "max");
if (DIR_IS_FOUND (directory))
{
- char buf[max (SYSINT_BUFSIZE, INT_BUFSIZE_BOUND (intmax_t))];
+ char buf[SYSINT_BUFSIZE];
char const *s;
s = DIR_IS_NFS (directory) ? "1" : "0";
{
if (expect && *p != expect)
{
+ unsigned char uc = *p;
ERROR ((0, 0,
_("Malformed dumpdir: expected '%c' but found %#3o"),
- expect, *p));
+ expect, uc));
return false;
}
switch (*p)
if (expect != 'T')
{
ERROR ((0, 0,
- _("Malformed dumpdir: 'T' not preceeded by 'R'")));
+ _("Malformed dumpdir: 'T' not preceded by 'R'")));
return false;
}
if (p[1] == 0 && !has_tempdir)