#include "common.h"
#include <hash.h>
+extern int debian_longlink_hack;
+
/* Error number to use when an impostor is discovered.
Pretend the impostor isn't there. */
enum { IMPOSTOR_ERRNO = ENOENT };
return write_short_name (st);
}
else if (NAME_FIELD_SIZE - (archive_format == OLDGNU_FORMAT)
- < strlen (st->file_name))
+ < strlen (st->file_name) + debian_longlink_hack)
return write_long_name (st);
else
return write_short_name (st);
block_ordinal = current_block_ordinal ();
assign_string (&st->link_name, link_name);
if (NAME_FIELD_SIZE - (archive_format == OLDGNU_FORMAT)
- < strlen (link_name))
+ < strlen (link_name) + debian_longlink_hack)
write_long_link (st);
st->stat.st_size = 0;
put in the archive.
This check is omitted if incremental_option is set *and* the
- requested file is not explicitely listed in the command line. */
+ requested file is not explicitly listed in the command line. */
- if (!(incremental_option && !is_individual_file (p))
+ if (! (incremental_option && ! top_level)
&& !S_ISDIR (st->stat.st_mode)
&& OLDER_TAR_STAT_TIME (*st, m)
&& (!after_date_option || OLDER_TAR_STAT_TIME (*st, c)))
set_exit_status (TAREXIT_DIFFERS);
}
else if (atime_preserve_option == replace_atime_preserve
+ && fd && (is_dir || original_size != 0)
&& set_file_atime (fd, parentfd, name, st->atime) != 0)
utime_error (p);
}