X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fcreate.c;h=6e49b59be090b0e45c620e580248d3c8266f4c8d;hb=aa5d3fc8a6553b1095c1311a78f6ab22c833e8df;hp=7ba71dc1e2661bc042f4a933c3c539c1cf01353f;hpb=25d9ca11632b3f4c643c3a5bcacc384986388b16;p=chaz%2Ftar diff --git a/src/create.c b/src/create.c index 7ba71dc..6e49b59 100644 --- a/src/create.c +++ b/src/create.c @@ -487,7 +487,7 @@ write_long_link (struct tar_stat_info *st) switch (archive_format) { case POSIX_FORMAT: - xheader_store ("linkpath", st); + xheader_store ("linkpath", st, NULL); break; case V7_FORMAT: /* old V7 tar format */ @@ -514,7 +514,7 @@ write_long_name (struct tar_stat_info *st) switch (archive_format) { case POSIX_FORMAT: - xheader_store ("path", st); + xheader_store ("path", st, NULL); break; case V7_FORMAT: @@ -641,17 +641,17 @@ start_header (struct tar_stat_info *st) MODE_TO_CHARS (st->stat.st_mode, header->header.mode); if (st->stat.st_uid > MAXOCTAL7 && archive_format == POSIX_FORMAT) - xheader_store ("uid", st); + xheader_store ("uid", st, NULL); else UID_TO_CHARS (st->stat.st_uid, header->header.uid); if (st->stat.st_gid > MAXOCTAL7 && archive_format == POSIX_FORMAT) - xheader_store ("gid", st); + xheader_store ("gid", st, NULL); else GID_TO_CHARS (st->stat.st_gid, header->header.gid); if (st->stat.st_size > MAXOCTAL11 && archive_format == POSIX_FORMAT) - xheader_store ("size", st); + xheader_store ("size", st, NULL); else OFF_TO_CHARS (st->stat.st_size, header->header.size); @@ -665,12 +665,12 @@ start_header (struct tar_stat_info *st) st->devminor = minor (st->stat.st_rdev); if (st->devmajor > MAXOCTAL7 && archive_format == POSIX_FORMAT) - xheader_store ("devmajor", st); + xheader_store ("devmajor", st, NULL); else MAJOR_TO_CHARS (st->devmajor, header->header.devmajor); if (st->devminor > MAXOCTAL7 && archive_format == POSIX_FORMAT) - xheader_store ("devminor", st); + xheader_store ("devminor", st, NULL); else MAJOR_TO_CHARS (st->devminor, header->header.devminor); } @@ -682,8 +682,8 @@ start_header (struct tar_stat_info *st) if (archive_format == POSIX_FORMAT) { - xheader_store ("atime", st); - xheader_store ("ctime", st); + xheader_store ("atime", st, NULL); + xheader_store ("ctime", st, NULL); } else if (incremental_option) if (archive_format == OLDGNU_FORMAT) @@ -726,13 +726,13 @@ start_header (struct tar_stat_info *st) if (archive_format == POSIX_FORMAT && strlen (st->uname) > UNAME_FIELD_SIZE) - xheader_store ("uname", st); + xheader_store ("uname", st, NULL); else UNAME_TO_CHARS (st->uname, header->header.uname); if (archive_format == POSIX_FORMAT && strlen (st->gname) > GNAME_FIELD_SIZE) - xheader_store ("gname", st); + xheader_store ("gname", st, NULL); else GNAME_TO_CHARS (st->gname, header->header.gname); } @@ -981,9 +981,11 @@ dump_dir0 (char *directory, return; } } - else if (!recursion_option) + + if (!recursion_option) return; - else if (one_file_system_option + + if (one_file_system_option && !top_level && parent_device != stat->stat.st_dev) { @@ -1283,7 +1285,7 @@ dump_file0 (struct tar_stat_info *stat, char *p, return; } stat->archive_file_size = stat->stat.st_size; - + sys_stat_nanoseconds(stat); original_ctime = stat->stat.st_ctime; restore_times.actime = stat->stat.st_atime; restore_times.modtime = stat->stat.st_mtime;