/* Diff files from a tar archive.
Copyright (C) 1988, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001,
- 2003, 2004, 2005 Free Software Foundation, Inc.
+ 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
Written by John Gilmore, on 1987-04-30.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#include <system.h>
+#include <system-ioctl.h>
#if HAVE_LINUX_FD_H
# include <linux/fd.h>
/* Sigh about something that differs by writing a MESSAGE to stdlis,
given MESSAGE is nonzero. Also set the exit status if not already. */
void
-report_difference (struct tar_stat_info *st __attribute__ ((unused)),
- const char *fmt, ...)
+report_difference (struct tar_stat_info *st, const char *fmt, ...)
{
if (fmt)
{
va_list ap;
- fprintf (stdlis, "%s: ", quotearg_colon (current_stat_info.file_name));
+ fprintf (stdlis, "%s: ", quotearg_colon (st->file_name));
va_start (ap, fmt);
vfprintf (stdlis, fmt, ap);
va_end (ap);
union block *data_block;
size_t data_size;
size_t size = st->stat.st_size;
-
+
mv_begin (st);
while (size)
{
if (!sys_compare_gid (&stat_data, ¤t_stat_info.stat))
report_difference (¤t_stat_info, _("Gid differs"));
- if (tar_timespec_cmp (get_stat_mtime (&stat_data),
+ if (tar_timespec_cmp (get_stat_mtime (&stat_data),
current_stat_info.mtime))
report_difference (¤t_stat_info, _("Mod time differs"));
if (current_header->header.typeflag != GNUTYPE_SPARSE
}
read_and_process (¤t_stat_info, process_rawdata);
-
+
status = close (fd);
if (status != 0)
close_error (current_stat_info.file_name);