Import upstream version 1.29
[debian/tar] / tests / testsuite
index c1432b1681ad16be0b7dea8998006d1593a5ead0..4c0d7bec0a863789e50b3266a8ecc587953bf93d 100755 (executable)
@@ -590,10 +590,10 @@ at_tested='tar'
 # numerical order.
 at_format='???'
 # Description of all the test groups.
-at_help_all="1;version.at:19;tar version;;
+at_help_all="1;version.at:20;tar version;;
 2;pipe.at:29;decompressing from stdin;pipe;
-3;options.at:24;mixing options;options options00;
-4;options02.at:26;interspersed options;options options02;
+3;options.at:25;mixing options;options options00;
+4;options02.at:27;interspersed options;options options02;
 5;opcomp01.at:21;occurrence compatibility;opcomp opcomp01;
 6;opcomp02.at:21;occurrence compatibility;opcomp opcomp02;
 7;opcomp03.at:21;--verify compatibility;opcomp opcomp03;
@@ -603,181 +603,197 @@ at_help_all="1;version.at:19;tar version;;
 11;T-mult.at:21;multiple file lists;files-from t-mult;
 12;T-nest.at:21;nested file lists;files-from t-nest;
 13;T-rec.at:21;recursive file lists;files-from t-rec;
-14;T-cd.at:21;-C in file lists;files-from t-cd;
-15;T-empty.at:26;empty entries;files-from empty-line;
-16;T-null.at:21;0-separated file without -0;files-from null t-null;
-17;T-zfile.at:26;empty file;files-from empty-file;
-18;T-nonl.at:27;entries with missing newlines;files-from nonewline nonl t-nonl;
-19;indexfile.at:26;tar --index-file=FILE --file=-;stdout indexfile;
-20;verbose.at:26;tar cvf -;stdout verbose;
-21;gzip.at:24;gzip;gzip;
-22;recurse.at:21;recurse;recurse;
-23;recurs02.at:30;recurse: toggle;recurse options recurse02;
-24;shortrec.at:25;short records;shortrec;
-25;iotty.at:26;terminal input;options iotty;
-26;same-order01.at:26;working -C with --same-order;same-order same-order01;
-27;same-order02.at:25;multiple -C options;same-order same-order02;
-28;append.at:21;append;append append00;
-29;append01.at:29;appending files with long names;append append01;
-30;append02.at:54;append vs. create;append append02 append-gnu;
-31;append03.at:21;append with name transformation;append append03;
-32;append04.at:29;append with verify;append append04 verify append-verify;
-33;xform-h.at:30;transforming hard links on create;transform xform xform-h;
-34;xform01.at:26;transformations and GNU volume labels;transform xform xform01 volume;
-35;exclude.at:23;exclude;exclude;
-36;exclude01.at:19;exclude wildcards;exclude exclude01;
-37;exclude02.at:19;exclude: anchoring;exclude exclude02;
-38;exclude03.at:19;exclude: wildcards match slash;exclude exclude03;
-39;exclude04.at:19;exclude: case insensitive;exclude exclude04;
-40;exclude05.at:21;exclude: lots of excludes;exclude exclude05;
-41;exclude06.at:26;exclude: long files in pax archives;exclude exclude06;
-42;exclude07.at:19;exclude: --exclude-backups option;exclude exclude07;
-43;exclude08.at:36;--exclude-tag option;exclude exclude-tag exclude08;
-44;exclude09.at:37;--exclude-tag option and --listed-incremental;exclude exclude-tag listed incremental exclude09;
-45;exclude10.at:38;--exclude-tag option in incremental pass;exclude exclude-tag listed incremental exclude10;
-46;exclude11.at:36;--exclude-tag-under option;exclude exclude-tag exclude-tag-under exclude11;
-47;exclude12.at:37;--exclude-tag-under and --listed-incremental;exclude exclude-tag exclude-tag-under listed incremental exclude12;
-48;exclude13.at:39;--exclude-tag-under option in incremental pass;exclude exclude-tag exclude-tag-under listed incremental exclude13;
-49;exclude14.at:36;--exclude-tag-all option;exclude exclude-tag exclude-tag-all exclude14;
-50;exclude15.at:36;--exclude-tag-all and --listed-incremental;exclude exclude-tag exclude-tag-all listed incremental exclude15;
-51;exclude16.at:38;--exclude-tag-all option in incremental pass;exclude exclude-tag exclude-tag-all listed incremental exclude16;
-52;delete01.at:23;deleting a member after a big one;delete delete01;
-53;delete02.at:23;deleting a member from stdin archive;delete delete02;
-54;delete03.at:21;deleting members with long names;delete delete03;
-55;delete04.at:23;deleting a large last member;delete delete04;
-56;delete05.at:27;deleting non-existing member;delete delete05;
-57;extrac01.at:23;extract over an existing directory;extract extract01;
-58;extrac02.at:23;extracting symlinks over an existing file;extract extract02 symlink;
-59;extrac03.at:23;extraction loops;extract extract03;
-60;extrac04.at:23;extract + fnmatch;extract extract04 fnmatch;
-61;extrac05.at:30;extracting selected members from pax;extract extract05;
-62;extrac06.at:34;mode of extracted directories;extract extract06 directory mode;
-63;extrac07.at:27;extracting symlinks to a read-only dir;extract extract07 read-only symlink;
-64;extrac08.at:33;restoring mode on existing directory;extract extrac08;
-65;extrac09.at:34;extracting even when . and .. are unreadable;extract extrac09;
-66;extrac10.at:29;-C and delayed setting of metadata;extract extrac10;
-67;extrac11.at:25;scarce file descriptors;extract extrac11;
-68;extrac12.at:25;extract dot permissions;extract extrac12;
-69;extrac13.at:26;extract over symlinks;extract extrac13;
-70;extrac14.at:25;extract -C symlink;extract extrac14;
-71;extrac15.at:25;extract parent mkdir failure;extract extrac15;
-72;extrac16.at:26;extract empty directory with -C;extract extrac16;
-73;extrac17.at:21;name matching/transformation ordering;extract extrac17;
-74;extrac18.at:34;keep-old-files;extract extrac18 old-files keep-old-files;
-75;extrac19.at:21;skip-old-files;extract extrac19 old-files skip-old-files;
-76;backup01.at:33;extracting existing dir with --backup;extract backup backup01;
-77;label01.at:21;single-volume label;label label01;
-78;label02.at:21;multi-volume label;label label02 multi-label multivolume multiv;
-79;label03.at:27;test-label option;label label03 test-label;
-80;label04.at:27;label with non-create option;label label04;
-81;label05.at:24;label with non-create option;label label05;
-82;incremental.at:23;incremental;incremental listed incr00;
-83;incr01.at:27;restore broken symlinks from incremental;incremental incr01;
-84;incr02.at:32;restoring timestamps from incremental;incremental timestamp restore incr02;
-85;listed01.at:26;--listed for individual files;listed incremental listed01;
-86;listed02.at:28;working --listed;listed incremental listed02;
-87;listed03.at:24;incremental dump when the parent directory is unreadable;listed incremental listed03;
-88;listed04.at:26;--listed-incremental and --one-file-system;listed incremental listed04;
-89;listed05.at:33;--listed-incremental and remounted directories;listed incremental listed05;
-90;incr03.at:28;renamed files in incrementals;incremental incr03 rename;
-91;incr04.at:29;proper icontents initialization;incremental incr04 icontents;
-92;incr05.at:21;incremental dumps with -C;incremental incr05;
-93;incr06.at:21;incremental dumps of nested directories;incremental incr06;
-94;incr07.at:18;incremental restores with -C;incremental extract incr07;
-95;incr08.at:38;filename normalization;incremental create incr08;
-96;incr09.at:26;incremental with alternating -C;incremental create incr09;
-97;filerem01.at:36;file removed as we read it (ca. 22 seconds);create incremental listed filechange filerem filerem01;
-98;filerem02.at:26;toplevel file removed (ca. 24 seconds);create incremental listed filechange filerem filerem02;
-99;rename01.at:24;renamed dirs in incrementals;incremental rename rename01;
-100;rename02.at:24;move between hierarchies;incremental rename rename02;
-101;rename03.at:23;cyclic renames;incremental rename rename03 cyclic-rename;
-102;rename04.at:27;renamed directory containing subdirectories;incremental rename04 rename;
-103;rename05.at:24;renamed subdirectories;incremental rename05 rename;
-104;chtype.at:27;changed file types in incrementals;incremental listed chtype;
-105;ignfail.at:23;ignfail;ignfail;
-106;link01.at:33;link count gt 2;hardlinks link01;
-107;link02.at:32;preserve hard links with --remove-files;hardlinks link02;
-108;link03.at:24;working -l with --remove-files;hardlinks link03;
-109;link04.at:29;link count is 1 but multiple occurrences;hardlinks link04;
-110;longv7.at:24;long names in V7 archives;longname longv7;
-111;long01.at:28;long file names divisible by block size;longname long512;
-112;lustar01.at:21;ustar: unsplittable file name;longname ustar lustar01;
-113;lustar02.at:21;ustar: unsplittable path name;longname ustar lustar02;
-114;lustar03.at:21;ustar: splitting long names;longname ustar lustar03;
-115;old.at:23;old archives;old;
-116;time01.at:20;time: tricky time stamps;time time01;
-117;multiv01.at:24;multivolume dumps from pipes;multivolume multiv multiv01;
-118;multiv02.at:28;skipping a straddling member;multivolume multiv multiv02;
-119;multiv03.at:30;MV archive & long filenames;multivolume multiv multiv03;
-120;multiv04.at:36;split directory members in a MV archive;multivolume multiv incremental listed multiv04;
-121;multiv05.at:26;Restoring after an out of sync volume;multivolume multiv multiv05 sync;
-122;multiv06.at:27;Multivolumes with L=record_size;multivolume multiv multiv06;
-123;multiv07.at:28;volumes split at an extended header;multivolume multiv multiv07 xsplit;
-124;multiv08.at:25;multivolume header creation;multivolume multiv multiv08;
-125;owner.at:21;--owner and --group;owner;
-126;sparse01.at:21;sparse files;sparse sparse01;
-127;sparse02.at:21;extracting sparse file over a pipe;sparse sparse02;
-128;sparse03.at:21;storing sparse files > 8G;sparse sparse03;
-129;sparse04.at:21;storing long sparse file names;sparse sparse04;
-130;sparsemv.at:21;sparse files in MV archives;sparse multiv sparsemv;
-131;spmvp00.at:21;sparse files in PAX MV archives, v.0.0;sparse multivolume multiv sparsemvp sparsemvp00;
-132;spmvp01.at:21;sparse files in PAX MV archives, v.0.1;sparse multiv sparsemvp sparsemvp01;
-133;spmvp10.at:21;sparse files in PAX MV archives, v.1.0;sparse multivolume multiv sparsemvp sparsemvp10;
-134;update.at:28;update unchanged directories;update update00;
-135;update01.at:29;update directories;update update01;
-136;update02.at:26;update changed files;update update02;
-137;verify.at:25;verify;verify;
-138;volume.at:23;volume;volume volcheck;
-139;volsize.at:29;volume header size;volume volsize;
-140;comprec.at:21;compressed format recognition;comprec;
-141;shortfile.at:26;short input files;shortfile shortfile0;
-142;shortupd.at:31;updating short archives;shortfile shortfile1 shortupd;
-143;truncate.at:29;truncate;truncate filechange;
-144;grow.at:24;grow;grow filechange;
-145;sigpipe.at:21;sigpipe handling;sigpipe;
-146;remfiles01.at:28;remove-files with compression;create remove-files remfiles01 gzip;
-147;remfiles02.at:28;remove-files with compression: grand-child;create remove-files remfiles02 gzip;
-148;remfiles03.at:28;remove-files with symbolic links;create remove-files remfiles03;
-149;remfiles04a.at:25;remove-files with -C:rel in -c/non-incr. mode;create remove-files remfiles04 remfiles04a;
-150;remfiles04b.at:33;remove-files with -C:rel in -c/incr. mode;create incremental remove-files remfiles04 remfiles04b;
-151;remfiles04c.at:33;remove-files with -C:rel in -r mode;create append remove-files remfiles04 remfiles04c;
-152;remfiles05a.at:34;remove-files with -C:rel,rel in -c/non-incr. mode;create remove-files remfiles05 remfiles05a;
-153;remfiles05b.at:25;remove-files with -C:rel,rel in -c/incr. mode;create incremental remove-files remfiles05 remfiles05b;
-154;remfiles05c.at:25;remove-files with -C:rel,rel in -r mode;create append remove-files remfiles05 remfiles05c;
-155;remfiles06a.at:25;remove-files with -C:rel,abs in -c/non-incr. mode;create remove-files remfiles06 remfiles06a;
-156;remfiles06b.at:25;remove-files with -C:rel,abs in -c/incr. mode;create incremental remove-files remfiles06 remfiles06b;
-157;remfiles06c.at:25;remove-files with -C:rel,abs in -r mode;create append remove-files remfiles06 remfiles06c;
-158;remfiles07a.at:25;remove-files with -C:abs,rel in -c/non-incr. mode;create remove-files remfiles07 remfiles07a;
-159;remfiles07b.at:25;remove-files with -C:abs,rel in -c/incr. mode;create incremental remove-files remfiles07 remfiles07b;
-160;remfiles07c.at:25;remove-files with -C:abs,rel in -r mode;create append remove-files remfiles07 remfiles07c;
-161;remfiles08a.at:28;remove-files deleting two subdirs in -c/non-incr. mode;create remove-files remfiles08 remfiles08a;
-162;remfiles08b.at:31;remove-files deleting two subdirs in -c/incr. mode;create incremental remove-files remfiles08 remfiles08b;
-163;remfiles08c.at:28;remove-files deleting two subdirs in -r mode;create append remove-files remfiles08 remfiles08c;
-164;remfiles09a.at:25;remove-files on full directory in -c/non-incr. mode;create remove-files remfiles09 remfiles09a;
-165;remfiles09b.at:29;remove-files on full directory in -c/incr. mode;create incremental remove-files remfiles09 remfiles09b;
-166;remfiles09c.at:25;remove-files on full directory in -r mode;create append remove-files remfiles09 remfiles09c;
-167;remfiles10.at:20;remove-files;create remove-files remfiles10;
-168;xattr01.at:25;xattrs: basic functionality;xattrs xattr01;
-169;xattr02.at:25;xattrs: change directory with -C option;xattrs xattr02;
-170;xattr03.at:25;xattrs: trusted.* attributes;xattrs xattr03;
-171;xattr04.at:26;xattrs: s/open/openat/ regression;xattrs xattr04;
-172;xattr05.at:28;xattrs: keywords with '=' and '%';xattrs xattr05;
-173;acls01.at:25;acls: basic functionality;xattrs acls acls01;
-174;acls02.at:25;acls: work with -C;xattrs acls acls02;
-175;acls03.at:30;acls: default ACLs;xattrs acls acls03;
-176;selnx01.at:25;selinux: basic store/restore;xattrs selinux selnx01;
-177;selacl01.at:25;acls/selinux: special files & fifos;xattrs selinux acls selacls01;
-178;capabs_raw01.at:25;capabilities: binary store/restore;xattrs capabilities capabs_raw01;
-179;onetop01.at:21;tar --one-top-level;extract onetop onetop01;
-180;onetop02.at:21;tar --one-top-level --show-transformed;extract onetop onetop02;
-181;onetop03.at:21;tar --one-top-level --transform;extract onetop onetop02;
-182;onetop04.at:21;tar --one-top-level --transform;extract onetop onetop02;
-183;gtarfail.at:21;gtarfail;star gtarfail;
-184;gtarfail2.at:21;gtarfail2;star gtarfail2;
-185;multi-fail.at:21;multi-fail;star multivolume multiv multi-fail;
-186;ustar-big-2g.at:21;ustar-big-2g;star ustar-big-2g;
-187;ustar-big-8g.at:21;ustar-big-8g;star ustar-big-8g;
-188;pax-big-10g.at:21;pax-big-10g;star pax-big-10g;
+14;T-recurse.at:27;files-from & recurse: toggle;recurse t-recurse files-from;
+15;T-recurse.at:66;toggle --recursion (not) from -T;recurse t-recurse t-recurse2 files-from;
+16;T-cd.at:21;-C in file lists;files-from t-cd;
+17;T-empty.at:26;empty entries;files-from empty-line;
+18;T-null.at:21;0-separated file without -0;files-from null t-null;
+19;T-null2.at:17;--null enables verbatim reading;files-from null t-null2 t-verbatim;
+20;T-zfile.at:26;empty file;files-from empty-file;
+21;T-nonl.at:27;entries with missing newlines;files-from nonewline nonl t-nonl;
+22;T-dir00.at:28;recursive extraction from --files-from;files-from extract t-dir t-dir00;
+23;T-dir01.at:28;trailing slash in --files-from;files-from extract t-dir t-dir01;
+24;indexfile.at:26;tar --index-file=FILE --file=-;stdout indexfile;
+25;verbose.at:26;tar cvf -;stdout verbose;
+26;gzip.at:24;gzip;gzip;
+27;recurse.at:21;recurse;recurse;
+28;recurs02.at:30;recurse: toggle;recurse options recurse02;
+29;shortrec.at:26;short records;shortrec;
+30;numeric.at:18;--numeric-owner basic tests;options numeric numeric-owner;
+31;same-order01.at:27;working -C with --same-order;same-order same-order01;
+32;same-order02.at:26;multiple -C options;same-order same-order02;
+33;append.at:22;append;append append00;
+34;append01.at:29;appending files with long names;append append01;
+35;append02.at:55;append vs. create;append append02 append-gnu;
+36;append03.at:21;append with name transformation;append append03;
+37;append04.at:29;append with verify;append append04 verify append-verify;
+38;append05.at:32;append after changed blocking;append append05 blocking;
+39;xform-h.at:30;transforming hard links on create;transform xform xform-h;
+40;xform01.at:26;transformations and GNU volume labels;transform xform xform01 volume;
+41;xform02.at:21;transforming escaped delimiters on create;transform xform delimiter;
+42;exclude.at:23;exclude;exclude;
+43;exclude01.at:19;exclude wildcards;exclude exclude01;
+44;exclude02.at:19;exclude: anchoring;exclude exclude02;
+45;exclude03.at:19;exclude: wildcards match slash;exclude exclude03;
+46;exclude04.at:19;exclude: case insensitive;exclude exclude04;
+47;exclude05.at:21;exclude: lots of excludes;exclude exclude05;
+48;exclude06.at:26;exclude: long files in pax archives;exclude exclude06;
+49;exclude07.at:19;exclude: --exclude-backups option;exclude exclude07;
+50;exclude08.at:36;--exclude-tag option;exclude exclude-tag exclude08;
+51;exclude09.at:37;--exclude-tag option and --listed-incremental;exclude exclude-tag listed incremental exclude09;
+52;exclude10.at:38;--exclude-tag option in incremental pass;exclude exclude-tag listed incremental exclude10;
+53;exclude11.at:36;--exclude-tag-under option;exclude exclude-tag exclude-tag-under exclude11;
+54;exclude12.at:37;--exclude-tag-under and --listed-incremental;exclude exclude-tag exclude-tag-under listed incremental exclude12;
+55;exclude13.at:39;--exclude-tag-under option in incremental pass;exclude exclude-tag exclude-tag-under listed incremental exclude13;
+56;exclude14.at:36;--exclude-tag-all option;exclude exclude-tag exclude-tag-all exclude14;
+57;exclude15.at:36;--exclude-tag-all and --listed-incremental;exclude exclude-tag exclude-tag-all listed incremental exclude15;
+58;exclude16.at:38;--exclude-tag-all option in incremental pass;exclude exclude-tag exclude-tag-all listed incremental exclude16;
+59;delete01.at:24;deleting a member after a big one;delete delete01;
+60;delete02.at:24;deleting a member from stdin archive;delete delete02;
+61;delete03.at:21;deleting members with long names;delete delete03;
+62;delete04.at:24;deleting a large last member;delete delete04;
+63;delete05.at:28;deleting non-existing member;delete delete05;
+64;extrac01.at:24;extract over an existing directory;extract extract01;
+65;extrac02.at:24;extracting symlinks over an existing file;extract extract02 symlink;
+66;extrac03.at:23;extraction loops;extract extract03;
+67;extrac04.at:24;extract + fnmatch;extract extract04 fnmatch;
+68;extrac05.at:31;extracting selected members from pax;extract extract05;
+69;extrac06.at:34;mode of extracted directories;extract extract06 directory mode;
+70;extrac07.at:27;extracting symlinks to a read-only dir;extract extract07 read-only symlink;
+71;extrac08.at:33;restoring mode on existing directory;extract extrac08;
+72;extrac09.at:34;extracting even when . and .. are unreadable;extract extrac09;
+73;extrac10.at:29;-C and delayed setting of metadata;extract extrac10;
+74;extrac11.at:25;scarce file descriptors;extract extrac11;
+75;extrac12.at:25;extract dot permissions;extract extrac12;
+76;extrac13.at:26;extract over symlinks;extract extrac13;
+77;extrac14.at:25;extract -C symlink;extract extrac14;
+78;extrac15.at:25;extract parent mkdir failure;extract extrac15;
+79;extrac16.at:26;extract empty directory with -C;extract extrac16;
+80;extrac17.at:21;name matching/transformation ordering;extract extrac17;
+81;extrac18.at:34;keep-old-files;extract extrac18 old-files keep-old-files;
+82;extrac19.at:21;skip-old-files;extract extrac19 old-files skip-old-files;
+83;backup01.at:33;extracting existing dir with --backup;extract backup backup01;
+84;label01.at:21;single-volume label;label label01;
+85;label02.at:21;multi-volume label;label label02 multi-label multivolume multiv;
+86;label03.at:27;test-label option;label label03 test-label;
+87;label04.at:27;label with non-create option;label label04;
+88;label05.at:24;label with non-create option;label label05;
+89;incremental.at:23;incremental;incremental listed incr00;
+90;incr01.at:27;restore broken symlinks from incremental;incremental incr01;
+91;incr02.at:32;restoring timestamps from incremental;incremental timestamp restore incr02;
+92;listed01.at:27;--listed for individual files;listed incremental listed01;
+93;listed02.at:29;working --listed;listed incremental listed02;
+94;listed03.at:24;incremental dump when the parent directory is unreadable;listed incremental listed03;
+95;listed04.at:26;--listed-incremental and --one-file-system;listed incremental listed04;
+96;listed05.at:33;--listed-incremental and remounted directories;listed incremental listed05;
+97;incr03.at:29;renamed files in incrementals;incremental incr03 rename;
+98;incr04.at:30;proper icontents initialization;incremental incr04 icontents;
+99;incr05.at:21;incremental dumps with -C;incremental incr05;
+100;incr06.at:21;incremental dumps of nested directories;incremental incr06;
+101;incr07.at:18;incremental restores with -C;incremental extract incr07;
+102;incr08.at:38;filename normalization;incremental create incr08;
+103;incr09.at:26;incremental with alternating -C;incremental create incr09;
+104;incr10.at:18;concatenated incremental archives (deletes);incremental concat cat incr10;
+105;incr11.at:25;concatenated incremental archives (renames);incremental concat cat incr11;
+106;filerem01.at:36;file removed as we read it (ca. 22 seconds);create incremental listed filechange filerem filerem01;
+107;filerem02.at:26;toplevel file removed (ca. 24 seconds);create incremental listed filechange filerem filerem02;
+108;rename01.at:25;renamed dirs in incrementals;incremental rename rename01;
+109;rename02.at:25;move between hierarchies;incremental rename rename02;
+110;rename03.at:24;cyclic renames;incremental rename rename03 cyclic-rename;
+111;rename04.at:27;renamed directory containing subdirectories;incremental rename04 rename;
+112;rename05.at:24;renamed subdirectories;incremental rename05 rename;
+113;chtype.at:27;changed file types in incrementals;incremental listed chtype;
+114;ignfail.at:24;ignfail;ignfail;
+115;link01.at:34;link count gt 2;hardlinks link01;
+116;link02.at:32;preserve hard links with --remove-files;hardlinks link02;
+117;link03.at:24;working -l with --remove-files;hardlinks link03;
+118;link04.at:29;link count is 1 but multiple occurrences;hardlinks link04;
+119;longv7.at:25;long names in V7 archives;longname longv7;
+120;long01.at:28;long file names divisible by block size;longname long512;
+121;lustar01.at:21;ustar: unsplittable file name;longname ustar lustar01;
+122;lustar02.at:21;ustar: unsplittable path name;longname ustar lustar02;
+123;lustar03.at:21;ustar: splitting long names;longname ustar lustar03;
+124;old.at:23;old archives;old;
+125;time01.at:20;time: tricky time stamps;time time01;
+126;time02.at:20;time: clamping mtime;time time02;
+127;multiv01.at:24;multivolume dumps from pipes;multivolume multiv multiv01;
+128;multiv02.at:29;skipping a straddling member;multivolume multiv multiv02;
+129;multiv03.at:30;MV archive & long filenames;multivolume multiv multiv03;
+130;multiv04.at:36;split directory members in a MV archive;multivolume multiv incremental listed multiv04;
+131;multiv05.at:26;Restoring after an out of sync volume;multivolume multiv multiv05 sync;
+132;multiv06.at:27;Multivolumes with L=record_size;multivolume multiv multiv06;
+133;multiv07.at:28;volumes split at an extended header;multivolume multiv multiv07 xsplit;
+134;multiv08.at:25;multivolume header creation;multivolume multiv multiv08;
+135;multiv09.at:26;bad next volume;multivolume multiv multiv09;
+136;owner.at:21;--owner and --group;owner;
+137;map.at:21;--owner-map and --group-map;owner map;
+138;sparse01.at:22;sparse files;sparse sparse01;
+139;sparse02.at:22;extracting sparse file over a pipe;sparse sparse02;
+140;sparse03.at:21;storing sparse files > 8G;sparse sparse03;
+141;sparse04.at:21;storing long sparse file names;sparse sparse04;
+142;sparse05.at:21;listing sparse files bigger than 2^33 B;sparse sparse05;
+143;sparse06.at:21;storing sparse file using seek method;sparse sparse06;
+144;sparsemv.at:21;sparse files in MV archives;sparse multiv sparsemv;
+145;spmvp00.at:21;sparse files in PAX MV archives, v.0.0;sparse multivolume multiv sparsemvp sparsemvp00;
+146;spmvp01.at:21;sparse files in PAX MV archives, v.0.1;sparse multiv sparsemvp sparsemvp01;
+147;spmvp10.at:21;sparse files in PAX MV archives, v.1.0;sparse multivolume multiv sparsemvp sparsemvp10;
+148;update.at:28;update unchanged directories;update update00;
+149;update01.at:29;update directories;update update01;
+150;update02.at:26;update changed files;update update02;
+151;verify.at:25;verify;verify;
+152;volume.at:24;volume;volume volcheck;
+153;volsize.at:29;volume header size;volume volsize;
+154;comprec.at:22;compressed format recognition;comprec;
+155;shortfile.at:26;short input files;shortfile shortfile0;
+156;shortupd.at:31;updating short archives;shortfile shortfile1 shortupd;
+157;truncate.at:29;truncate;truncate filechange;
+158;grow.at:24;grow;grow filechange;
+159;sigpipe.at:21;sigpipe handling;sigpipe;
+160;comperr.at:18;compressor program failure;compress comperr;
+161;remfiles01.at:28;remove-files with compression;create remove-files remfiles01 gzip;
+162;remfiles02.at:28;remove-files with compression: grand-child;create remove-files remfiles02 gzip;
+163;remfiles03.at:28;remove-files with symbolic links;create remove-files remfiles03;
+164;remfiles04a.at:25;remove-files with -C:rel in -c/non-incr. mode;create remove-files remfiles04 remfiles04a;
+165;remfiles04b.at:33;remove-files with -C:rel in -c/incr. mode;create incremental remove-files remfiles04 remfiles04b;
+166;remfiles04c.at:33;remove-files with -C:rel in -r mode;create append remove-files remfiles04 remfiles04c;
+167;remfiles05a.at:34;remove-files with -C:rel,rel in -c/non-incr. mode;create remove-files remfiles05 remfiles05a;
+168;remfiles05b.at:25;remove-files with -C:rel,rel in -c/incr. mode;create incremental remove-files remfiles05 remfiles05b;
+169;remfiles05c.at:25;remove-files with -C:rel,rel in -r mode;create append remove-files remfiles05 remfiles05c;
+170;remfiles06a.at:25;remove-files with -C:rel,abs in -c/non-incr. mode;create remove-files remfiles06 remfiles06a;
+171;remfiles06b.at:25;remove-files with -C:rel,abs in -c/incr. mode;create incremental remove-files remfiles06 remfiles06b;
+172;remfiles06c.at:25;remove-files with -C:rel,abs in -r mode;create append remove-files remfiles06 remfiles06c;
+173;remfiles07a.at:25;remove-files with -C:abs,rel in -c/non-incr. mode;create remove-files remfiles07 remfiles07a;
+174;remfiles07b.at:25;remove-files with -C:abs,rel in -c/incr. mode;create incremental remove-files remfiles07 remfiles07b;
+175;remfiles07c.at:25;remove-files with -C:abs,rel in -r mode;create append remove-files remfiles07 remfiles07c;
+176;remfiles08a.at:28;remove-files deleting two subdirs in -c/non-incr. mode;create remove-files remfiles08 remfiles08a;
+177;remfiles08b.at:31;remove-files deleting two subdirs in -c/incr. mode;create incremental remove-files remfiles08 remfiles08b;
+178;remfiles08c.at:28;remove-files deleting two subdirs in -r mode;create append remove-files remfiles08 remfiles08c;
+179;remfiles09a.at:25;remove-files on full directory in -c/non-incr. mode;create remove-files remfiles09 remfiles09a;
+180;remfiles09b.at:29;remove-files on full directory in -c/incr. mode;create incremental remove-files remfiles09 remfiles09b;
+181;remfiles09c.at:25;remove-files on full directory in -r mode;create append remove-files remfiles09 remfiles09c;
+182;remfiles10.at:20;remove-files;create remove-files remfiles10;
+183;xattr01.at:25;xattrs: basic functionality;xattrs xattr01;
+184;xattr02.at:25;xattrs: change directory with -C option;xattrs xattr02;
+185;xattr03.at:25;xattrs: trusted.* attributes;xattrs xattr03;
+186;xattr04.at:26;xattrs: s/open/openat/ regression;xattrs xattr04;
+187;xattr05.at:28;xattrs: keywords with '=' and '%';xattrs xattr05;
+188;acls01.at:25;acls: basic functionality;xattrs acls acls01;
+189;acls02.at:25;acls: work with -C;xattrs acls acls02;
+190;acls03.at:30;acls: default ACLs;xattrs acls acls03;
+191;selnx01.at:25;selinux: basic store/restore;xattrs selinux selnx01;
+192;selacl01.at:25;acls/selinux: special files & fifos;xattrs selinux acls selacls01;
+193;capabs_raw01.at:25;capabilities: binary store/restore;xattrs capabilities capabs_raw01;
+194;onetop01.at:21;tar --one-top-level;extract onetop onetop01;
+195;onetop02.at:21;tar --one-top-level --show-transformed;extract onetop onetop02;
+196;onetop03.at:21;tar --one-top-level --transform;extract onetop onetop03;
+197;onetop04.at:21;tar --one-top-level --transform;extract onetop onetop04;
+198;onetop05.at:21;tar --one-top-level restoring permissions;extract onetop onetop05;
+199;gtarfail.at:22;gtarfail;star gtarfail;
+200;gtarfail2.at:22;gtarfail2;star gtarfail2;
+201;multi-fail.at:22;multi-fail;star multivolume multiv multi-fail;
+202;ustar-big-2g.at:22;ustar-big-2g;star ustar-big-2g;
+203;ustar-big-8g.at:22;ustar-big-8g;star ustar-big-8g;
+204;pax-big-10g.at:22;pax-big-10g;star pax-big-10g;
 "
 # List of the all the test groups.
 at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`
@@ -791,7 +807,7 @@ at_fn_validate_ranges ()
   for at_grp
   do
     eval at_value=\$$at_grp
-    if test $at_value -lt 1 || test $at_value -gt 188; then
+    if test $at_value -lt 1 || test $at_value -gt 204; then
       $as_echo "invalid test group: $at_value" >&2
       exit 1
     fi
@@ -1090,7 +1106,7 @@ fi
 # List of tests.
 if $at_list_p; then
   cat <<_ATEOF || at_write_fail=1
-GNU tar 1.28 test suite test groups:
+GNU tar 1.29 test suite test groups:
 
  NUM: FILE-NAME:LINE     TEST-GROUP-NAME
       KEYWORDS
@@ -1131,7 +1147,7 @@ _ATEOF
   exit $at_write_fail
 fi
 if $at_version_p; then
-  $as_echo "$as_me (GNU tar 1.28)" &&
+  $as_echo "$as_me (GNU tar 1.29)" &&
   cat <<\_ATEOF || at_write_fail=1
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1148,86 +1164,86 @@ case $at_groups in #(
   * ) at_print_banners=false ;;
 esac
 # Text for banner N, set to a single space once printed.
-# Banner 1. testsuite.at:191
+# Banner 1. testsuite.at:208
 # Category starts at test group 5.
 at_banner_text_1="Option compatibility"
-# Banner 2. testsuite.at:199
+# Banner 2. testsuite.at:216
 # Category starts at test group 11.
 at_banner_text_2="The -T option"
-# Banner 3. testsuite.at:209
-# Category starts at test group 19.
+# Banner 3. testsuite.at:230
+# Category starts at test group 24.
 at_banner_text_3="Various options"
-# Banner 4. testsuite.at:218
-# Category starts at test group 26.
+# Banner 4. testsuite.at:239
+# Category starts at test group 31.
 at_banner_text_4="The --same-order option"
-# Banner 5. testsuite.at:222
-# Category starts at test group 28.
-at_banner_text_5="Append"
-# Banner 6. testsuite.at:229
+# Banner 5. testsuite.at:243
 # Category starts at test group 33.
+at_banner_text_5="Append"
+# Banner 6. testsuite.at:251
+# Category starts at test group 39.
 at_banner_text_6="Transforms"
-# Banner 7. testsuite.at:233
-# Category starts at test group 35.
+# Banner 7. testsuite.at:256
+# Category starts at test group 42.
 at_banner_text_7="Exclude"
-# Banner 8. testsuite.at:252
-# Category starts at test group 52.
+# Banner 8. testsuite.at:275
+# Category starts at test group 59.
 at_banner_text_8="Deletions"
-# Banner 9. testsuite.at:259
-# Category starts at test group 57.
+# Banner 9. testsuite.at:282
+# Category starts at test group 64.
 at_banner_text_9="Extracting"
-# Banner 10. testsuite.at:281
-# Category starts at test group 77.
+# Banner 10. testsuite.at:304
+# Category starts at test group 84.
 at_banner_text_10="Volume label operations"
-# Banner 11. testsuite.at:288
-# Category starts at test group 82.
+# Banner 11. testsuite.at:311
+# Category starts at test group 89.
 at_banner_text_11="Incremental archives"
-# Banner 12. testsuite.at:305
-# Category starts at test group 97.
+# Banner 12. testsuite.at:330
+# Category starts at test group 106.
 at_banner_text_12="Files removed while archiving"
-# Banner 13. testsuite.at:309
-# Category starts at test group 99.
+# Banner 13. testsuite.at:334
+# Category starts at test group 108.
 at_banner_text_13="Renames"
-# Banner 14. testsuite.at:317
-# Category starts at test group 105.
+# Banner 14. testsuite.at:342
+# Category starts at test group 114.
 at_banner_text_14="Ignore failing reads"
-# Banner 15. testsuite.at:320
-# Category starts at test group 106.
+# Banner 15. testsuite.at:345
+# Category starts at test group 115.
 at_banner_text_15="Link handling"
-# Banner 16. testsuite.at:326
-# Category starts at test group 110.
+# Banner 16. testsuite.at:351
+# Category starts at test group 119.
 at_banner_text_16="Specific archive formats"
-# Banner 17. testsuite.at:336
-# Category starts at test group 117.
+# Banner 17. testsuite.at:362
+# Category starts at test group 127.
 at_banner_text_17="Multivolume archives"
-# Banner 18. testsuite.at:346
-# Category starts at test group 125.
+# Banner 18. testsuite.at:373
+# Category starts at test group 136.
 at_banner_text_18="Owner and Groups"
-# Banner 19. testsuite.at:349
-# Category starts at test group 126.
+# Banner 19. testsuite.at:377
+# Category starts at test group 138.
 at_banner_text_19="Sparse files"
-# Banner 20. testsuite.at:359
-# Category starts at test group 134.
+# Banner 20. testsuite.at:389
+# Category starts at test group 148.
 at_banner_text_20="Updates"
-# Banner 21. testsuite.at:364
-# Category starts at test group 137.
+# Banner 21. testsuite.at:394
+# Category starts at test group 151.
 at_banner_text_21="Verifying the archive"
-# Banner 22. testsuite.at:367
-# Category starts at test group 138.
+# Banner 22. testsuite.at:397
+# Category starts at test group 152.
 at_banner_text_22="Volume operations"
-# Banner 23. testsuite.at:371
-# Category starts at test group 140.
+# Banner 23. testsuite.at:401
+# Category starts at test group 154.
 at_banner_text_23=""
-# Banner 24. testsuite.at:380
-# Category starts at test group 146.
+# Banner 24. testsuite.at:411
+# Category starts at test group 161.
 at_banner_text_24="Removing files after archiving"
-# Banner 25. testsuite.at:404
-# Category starts at test group 168.
+# Banner 25. testsuite.at:435
+# Category starts at test group 183.
 at_banner_text_25="Extended attributes"
-# Banner 26. testsuite.at:420
-# Category starts at test group 179.
+# Banner 26. testsuite.at:451
+# Category starts at test group 194.
 at_banner_text_26="One top level"
-# Banner 27. testsuite.at:426
-# Category starts at test group 183.
+# Banner 27. testsuite.at:458
+# Category starts at test group 199.
 at_banner_text_27="Star tests"
 
 # Take any -C into account.
@@ -1389,11 +1405,11 @@ exec 5>>"$at_suite_log"
 
 # Banners and logs.
 $as_echo "## ------------------------ ##
-## GNU tar 1.28 test suite. ##
+## GNU tar 1.29 test suite. ##
 ## ------------------------ ##"
 {
   $as_echo "## ------------------------ ##
-## GNU tar 1.28 test suite. ##
+## GNU tar 1.29 test suite. ##
 ## ------------------------ ##"
   echo
 
@@ -1638,7 +1654,7 @@ IFS=$as_save_IFS
   esac
   if test -f "$at_program_"; then
     {
-      $as_echo "$at_srcdir/testsuite.at:180: $at_program_ --version"
+      $as_echo "$at_srcdir/testsuite.at:197: $at_program_ --version"
       "$at_program_" --version </dev/null
       echo
     } >&5 2>&1
@@ -2237,7 +2253,7 @@ _ASBOX
   $as_echo "Please send $at_msg and all information you think might help:
 
    To: <bug-tar@gnu.org>
-   Subject: [GNU tar 1.28] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
+   Subject: [GNU tar 1.29] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
 
 You may investigate any problem if you feel able to do so, in which
 case the test suite provides a good starting point.  Its output may
@@ -2252,7 +2268,7 @@ exit 0
 ## Actual tests. ##
 ## ------------- ##
 #AT_START_1
-at_fn_group_banner 1 'version.at:19' \
+at_fn_group_banner 1 'version.at:20' \
   "tar version" "                                    "
 at_xfail=no
 (
@@ -2261,17 +2277,17 @@ at_xfail=no
 
 
 { set +x
-$as_echo "$at_srcdir/version.at:21: tar --version | sed 1q"
-at_fn_check_prepare_notrace 'a shell pipeline' "version.at:21"
+$as_echo "$at_srcdir/version.at:22: tar --version | sed 1q"
+at_fn_check_prepare_notrace 'a shell pipeline' "version.at:22"
 ( $at_check_trace; tar --version | sed 1q
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "tar (GNU tar) 1.28
+echo >>"$at_stdout"; $as_echo "tar (GNU tar) 1.29
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/version.at:21"
+at_fn_check_status 0 $at_status "$at_srcdir/version.at:22"
 if $at_failed; then :
   cat >$XFAILFILE <<'_EOT'
 
@@ -2630,7 +2646,7 @@ $at_traceon; }
 read at_status <"$at_status_file"
 #AT_STOP_2
 #AT_START_3
-at_fn_group_banner 3 'options.at:24' \
+at_fn_group_banner 3 'options.at:25' \
   "mixing options" "                                 "
 at_xfail=no
 (
@@ -2640,12 +2656,12 @@ at_xfail=no
 
 
 { set +x
-$as_echo "$at_srcdir/options.at:27:
+$as_echo "$at_srcdir/options.at:28:
 echo > file1
 TAR_OPTIONS=--numeric-owner tar chof archive file1
 tar tf archive
 "
-at_fn_check_prepare_notrace 'an embedded newline' "options.at:27"
+at_fn_check_prepare_notrace 'an embedded newline' "options.at:28"
 ( $at_check_trace;
 echo > file1
 TAR_OPTIONS=--numeric-owner tar chof archive file1
@@ -2658,7 +2674,7 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/options.at:27"
+at_fn_check_status 0 $at_status "$at_srcdir/options.at:28"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -2669,7 +2685,7 @@ $at_traceon; }
 read at_status <"$at_status_file"
 #AT_STOP_3
 #AT_START_4
-at_fn_group_banner 4 'options02.at:26' \
+at_fn_group_banner 4 'options02.at:27' \
   "interspersed options" "                           "
 at_xfail=no
 (
@@ -2679,12 +2695,12 @@ at_xfail=no
 
 
 { set +x
-$as_echo "$at_srcdir/options02.at:29:
+$as_echo "$at_srcdir/options02.at:30:
 echo > file1
 tar c file1 -f archive
 tar tf archive
 "
-at_fn_check_prepare_notrace 'an embedded newline' "options02.at:29"
+at_fn_check_prepare_notrace 'an embedded newline' "options02.at:30"
 ( $at_check_trace;
 echo > file1
 tar c file1 -f archive
@@ -2697,7 +2713,7 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/options02.at:29"
+at_fn_check_status 0 $at_status "$at_srcdir/options02.at:30"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -3255,8 +3271,8 @@ $at_traceon; }
 read at_status <"$at_status_file"
 #AT_STOP_13
 #AT_START_14
-at_fn_group_banner 14 'T-cd.at:21' \
-  "-C in file lists" "                               " 2
+at_fn_group_banner 14 'T-recurse.at:27' \
+  "files-from & recurse: toggle" "                   " 2
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
@@ -3268,170 +3284,195 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/T-cd.at:24:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+$as_echo "$at_srcdir/T-recurse.at:30:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
+TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory1 directory2
+touch directory1/file directory2/file
 
-test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
-
->file1
-mkdir dir
->dir/file2
->dir/file3
 cat >F1 <<'_ATEOF'
-file1
--C dir
-.
+--no-recursion
+directory1/
+--recursion
+directory2/
 _ATEOF
 
-tar cf archive -T F1
-tar tf archive | sort
+
+cat >F2A <<'_ATEOF'
+directory1/
+_ATEOF
+
+
+cat >F2B <<'_ATEOF'
+directory2/
+_ATEOF
+
+
+a=archive
+tar cf \"\$a\" --files-from F1
+tar tf \"\$a\"
+
+a=archive2
+tar cf \"\$a\" --no-recursion -T F2A --recursion -T F2B
+tar tf \"\$a\"
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "T-cd.at:24"
+at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:30"
 ( $at_check_trace;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory1 directory2
+touch directory1/file directory2/file
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
-
->file1
-mkdir dir
->dir/file2
->dir/file3
 cat >F1 <<'_ATEOF'
-file1
--C dir
-.
+--no-recursion
+directory1/
+--recursion
+directory2/
 _ATEOF
 
-tar cf archive -T F1
-tar tf archive | sort
+
+cat >F2A <<'_ATEOF'
+directory1/
+_ATEOF
+
+
+cat >F2B <<'_ATEOF'
+directory2/
+_ATEOF
+
+
+a=archive
+tar cf "$a" --files-from F1
+tar tf "$a"
+
+a=archive2
+tar cf "$a" --no-recursion -T F2A --recursion -T F2B
+tar tf "$a"
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "./
-./file2
-./file3
-file1
+echo >>"$at_stdout"; $as_echo "directory1/
+directory2/
+directory2/file
+directory1/
+directory2/
+directory2/file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/T-cd.at:24"
+at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:30"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
+              { set +x
+$as_echo "$at_srcdir/T-recurse.at:30:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
 
+mkdir directory1 directory2
+touch directory1/file directory2/file
 
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_14
-#AT_START_15
-at_fn_group_banner 15 'T-empty.at:26' \
-  "empty entries" "                                  " 2
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-(
-  $as_echo "15. $at_setup_line: testing $at_desc ..."
-  $at_traceon
+cat >F1 <<'_ATEOF'
+--no-recursion
+directory1/
+--recursion
+directory2/
+_ATEOF
 
 
+cat >F2A <<'_ATEOF'
+directory1/
+_ATEOF
 
-cat >file-list <<'_ATEOF'
-jeden
-dwa
 
-trzy
+cat >F2B <<'_ATEOF'
+directory2/
 _ATEOF
 
 
+a=archive
+tar cf \"\$a\" --files-from F1
+tar tf \"\$a\"
 
-
-  { set +x
-$as_echo "$at_srcdir/T-empty.at:36:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+a=archive2
+tar cf \"\$a\" --no-recursion -T F2A --recursion -T F2B
+tar tf \"\$a\"
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:30"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
+TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory1 directory2
+touch directory1/file directory2/file
 
-genfile --file jeden
-genfile --file dwa
-genfile --file trzy
+cat >F1 <<'_ATEOF'
+--no-recursion
+directory1/
+--recursion
+directory2/
+_ATEOF
 
-tar cfvT archive ../file-list
-)"
-at_fn_check_prepare_notrace 'an embedded newline' "T-empty.at:36"
-( $at_check_trace;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
-export TAR_OPTIONS
-rm -rf *
 
+cat >F2A <<'_ATEOF'
+directory1/
+_ATEOF
 
-genfile --file jeden
-genfile --file dwa
-genfile --file trzy
 
-tar cfvT archive ../file-list
+cat >F2B <<'_ATEOF'
+directory2/
+_ATEOF
+
+
+a=archive
+tar cf "$a" --files-from F1
+tar tf "$a"
+
+a=archive2
+tar cf "$a" --no-recursion -T F2A --recursion -T F2B
+tar tf "$a"
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "jeden
-dwa
-trzy
+echo >>"$at_stdout"; $as_echo "directory1/
+directory2/
+directory2/file
+directory1/
+directory2/
+directory2/file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/T-empty.at:36"
+at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:30"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
-
- # Testing one format is enough
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_15
-#AT_START_16
-at_fn_group_banner 16 'T-null.at:21' \
-  "0-separated file without -0" "                    " 2
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-(
-  $as_echo "16. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
-
-
-
-
-  { set +x
-$as_echo "$at_srcdir/T-null.at:24:
+              { set +x
+$as_echo "$at_srcdir/T-recurse.at:30:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -3440,22 +3481,36 @@ TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory1 directory2
+touch directory1/file directory2/file
 
-test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+cat >F1 <<'_ATEOF'
+--no-recursion
+directory1/
+--recursion
+directory2/
+_ATEOF
 
 
-echo jeden > temp
-echo dwa >> temp
-echo trzy >> temp
-cat temp | tr '\\n' '\\0' > file-list
+cat >F2A <<'_ATEOF'
+directory1/
+_ATEOF
 
-genfile -f jeden
-genfile -f dwa
-genfile -f trzy
 
-tar cfTv archive file-list
+cat >F2B <<'_ATEOF'
+directory2/
+_ATEOF
+
+
+a=archive
+tar cf \"\$a\" --files-from F1
+tar tf \"\$a\"
+
+a=archive2
+tar cf \"\$a\" --no-recursion -T F2A --recursion -T F2B
+tar tf \"\$a\"
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "T-null.at:24"
+at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:30"
 ( $at_check_trace;
 mkdir ustar
 (cd ustar
@@ -3465,215 +3520,236 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory1 directory2
+touch directory1/file directory2/file
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+cat >F1 <<'_ATEOF'
+--no-recursion
+directory1/
+--recursion
+directory2/
+_ATEOF
 
 
-echo jeden > temp
-echo dwa >> temp
-echo trzy >> temp
-cat temp | tr '\n' '\0' > file-list
+cat >F2A <<'_ATEOF'
+directory1/
+_ATEOF
 
-genfile -f jeden
-genfile -f dwa
-genfile -f trzy
 
-tar cfTv archive file-list
+cat >F2B <<'_ATEOF'
+directory2/
+_ATEOF
+
+
+a=archive
+tar cf "$a" --files-from F1
+tar tf "$a"
+
+a=archive2
+tar cf "$a" --no-recursion -T F2A --recursion -T F2B
+tar tf "$a"
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-echo >>"$at_stderr"; $as_echo "tar: file-list: file name read contains nul character
-" | \
-  $at_diff - "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "jeden
-dwa
-trzy
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory1/
+directory2/
+directory2/file
+directory1/
+directory2/
+directory2/file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/T-null.at:24"
+at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:30"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
+              { set +x
+$as_echo "$at_srcdir/T-recurse.at:30:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
 
- # Testing one format is enough
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_16
-#AT_START_17
-at_fn_group_banner 17 'T-zfile.at:26' \
-  "empty file" "                                     " 2
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-(
-  $as_echo "17. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
+mkdir directory1 directory2
+touch directory1/file directory2/file
 
+cat >F1 <<'_ATEOF'
+--no-recursion
+directory1/
+--recursion
+directory2/
+_ATEOF
 
 
+cat >F2A <<'_ATEOF'
+directory1/
+_ATEOF
 
-  { set +x
-$as_echo "$at_srcdir/T-zfile.at:29:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --length=0 --file empty
-genfile --file a
-genfile --file b
-cat >valid <<'_ATEOF'
-a
-b
+cat >F2B <<'_ATEOF'
+directory2/
 _ATEOF
 
 
-tar cf archive -T empty -T valid
-tar tf archive
-echo \"==\"
-tar cf archive -T valid -T empty
-tar tf archive
+a=archive
+tar cf \"\$a\" --files-from F1
+tar tf \"\$a\"
+
+a=archive2
+tar cf \"\$a\" --no-recursion -T F2A --recursion -T F2B
+tar tf \"\$a\"
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "T-zfile.at:29"
+at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:30"
 ( $at_check_trace;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --length=0 --file empty
-genfile --file a
-genfile --file b
-cat >valid <<'_ATEOF'
-a
-b
+mkdir directory1 directory2
+touch directory1/file directory2/file
+
+cat >F1 <<'_ATEOF'
+--no-recursion
+directory1/
+--recursion
+directory2/
 _ATEOF
 
 
-tar cf archive -T empty -T valid
-tar tf archive
-echo "=="
-tar cf archive -T valid -T empty
-tar tf archive
+cat >F2A <<'_ATEOF'
+directory1/
+_ATEOF
+
+
+cat >F2B <<'_ATEOF'
+directory2/
+_ATEOF
+
+
+a=archive
+tar cf "$a" --files-from F1
+tar tf "$a"
+
+a=archive2
+tar cf "$a" --no-recursion -T F2A --recursion -T F2B
+tar tf "$a"
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "a
-b
-==
-a
-b
+echo >>"$at_stdout"; $as_echo "directory1/
+directory2/
+directory2/file
+directory1/
+directory2/
+directory2/file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/T-zfile.at:29"
+at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:30"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
+              { set +x
+$as_echo "$at_srcdir/T-recurse.at:30:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
 
- # Testing one format is enough
-
-  set +x
-  $at_times_p && times >"$at_times_file"
-) 5>&1 2>&1 7>&- | eval $at_tee_pipe
-read at_status <"$at_status_file"
-#AT_STOP_17
-#AT_START_18
-at_fn_group_banner 18 'T-nonl.at:27' \
-  "entries with missing newlines" "                  " 2
-at_xfail=no
-      test -f $XFAILFILE && at_xfail=yes
-(
-  $as_echo "18. $at_setup_line: testing $at_desc ..."
-  $at_traceon
-
+mkdir directory1 directory2
+touch directory1/file directory2/file
 
+cat >F1 <<'_ATEOF'
+--no-recursion
+directory1/
+--recursion
+directory2/
+_ATEOF
 
 
+cat >F2A <<'_ATEOF'
+directory1/
+_ATEOF
 
-  { set +x
-$as_echo "$at_srcdir/T-nonl.at:30:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
-export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
-export TAR_OPTIONS
-rm -rf *
 
-genfile --length=0 --file empty
-\$as_echo_n c > 1.nonl
-echo d > 2.nonl
-\$as_echo_n e >> 2.nonl
-touch a b c d e
-cat >filelist <<'_ATEOF'
-a
-b
+cat >F2B <<'_ATEOF'
+directory2/
 _ATEOF
 
 
-tar cf archive -T empty -T 1.nonl -T 2.nonl -T filelist
-tar tf archive
-echo ==
-tar cf archive -T 2.nonl -T empty -T filelist -T 1.nonl
-tar tf archive
+a=archive
+tar cf \"\$a\" --files-from F1
+tar tf \"\$a\"
+
+a=archive2
+tar cf \"\$a\" --no-recursion -T F2A --recursion -T F2B
+tar tf \"\$a\"
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "T-nonl.at:30"
+at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:30"
 ( $at_check_trace;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-genfile --length=0 --file empty
-$as_echo_n c > 1.nonl
-echo d > 2.nonl
-$as_echo_n e >> 2.nonl
-touch a b c d e
-cat >filelist <<'_ATEOF'
-a
-b
+mkdir directory1 directory2
+touch directory1/file directory2/file
+
+cat >F1 <<'_ATEOF'
+--no-recursion
+directory1/
+--recursion
+directory2/
 _ATEOF
 
 
-tar cf archive -T empty -T 1.nonl -T 2.nonl -T filelist
-tar tf archive
-echo ==
-tar cf archive -T 2.nonl -T empty -T filelist -T 1.nonl
-tar tf archive
+cat >F2A <<'_ATEOF'
+directory1/
+_ATEOF
+
+
+cat >F2B <<'_ATEOF'
+directory2/
+_ATEOF
+
+
+a=archive
+tar cf "$a" --files-from F1
+tar tf "$a"
+
+a=archive2
+tar cf "$a" --no-recursion -T F2A --recursion -T F2B
+tar tf "$a"
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "c
-d
-e
-a
-b
-==
-d
-e
-a
-b
-c
+echo >>"$at_stdout"; $as_echo "directory1/
+directory2/
+directory2/file
+directory1/
+directory2/
+directory2/file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/T-nonl.at:30"
+at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:30"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -3684,14 +3760,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_18
-#AT_START_19
-at_fn_group_banner 19 'indexfile.at:26' \
-  "tar --index-file=FILE --file=-" "                 " 3
+#AT_STOP_14
+#AT_START_15
+at_fn_group_banner 15 'T-recurse.at:66' \
+  "toggle --recursion (not) from -T" "               " 2
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "19. $at_setup_line: testing $at_desc ..."
+  $as_echo "15. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -3699,7 +3775,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/indexfile.at:29:
+$as_echo "$at_srcdir/T-recurse.at:69:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -3708,17 +3784,25 @@ TAR_OPTIONS=\"-H v7\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory1 directory2
+touch directory1/file directory2/file
 
-mkdir directory
-genfile --file=directory/a --length=1035
+cat >F1 <<'_ATEOF'
+--no-recursion
+directory1/
+_ATEOF
 
-echo \"Creating the archive\"
-tar -c -v -f - --index-file=idx directory > archive
 
-echo \"Testing the archive\"
-tar -tf archive
+cat >F2 <<'_ATEOF'
+directory2/
+_ATEOF
+
+
+tar cf archive -T F1 --recursion -T F2
+tar tf archive
+
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "indexfile.at:29"
+at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:69"
 ( $at_check_trace;
 mkdir v7
 (cd v7
@@ -3728,32 +3812,39 @@ TAR_OPTIONS="-H v7"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory1 directory2
+touch directory1/file directory2/file
 
-mkdir directory
-genfile --file=directory/a --length=1035
+cat >F1 <<'_ATEOF'
+--no-recursion
+directory1/
+_ATEOF
 
-echo "Creating the archive"
-tar -c -v -f - --index-file=idx directory > archive
 
-echo "Testing the archive"
-tar -tf archive
+cat >F2 <<'_ATEOF'
+directory2/
+_ATEOF
+
+
+tar cf archive -T F1 --recursion -T F2
+tar tf archive
+
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "Creating the archive
-Testing the archive
-directory/
-directory/a
+echo >>"$at_stdout"; $as_echo "directory1/
+directory2/
+directory2/file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:29"
+at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:69"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/indexfile.at:29:
+$as_echo "$at_srcdir/T-recurse.at:69:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -3762,15 +3853,1469 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+mkdir directory1 directory2
+touch directory1/file directory2/file
+
+cat >F1 <<'_ATEOF'
+--no-recursion
+directory1/
+_ATEOF
 
-mkdir directory
-genfile --file=directory/a --length=1035
 
-echo \"Creating the archive\"
-tar -c -v -f - --index-file=idx directory > archive
+cat >F2 <<'_ATEOF'
+directory2/
+_ATEOF
+
+
+tar cf archive -T F1 --recursion -T F2
+tar tf archive
 
-echo \"Testing the archive\"
-tar -tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:69"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir directory1 directory2
+touch directory1/file directory2/file
+
+cat >F1 <<'_ATEOF'
+--no-recursion
+directory1/
+_ATEOF
+
+
+cat >F2 <<'_ATEOF'
+directory2/
+_ATEOF
+
+
+tar cf archive -T F1 --recursion -T F2
+tar tf archive
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory1/
+directory2/
+directory2/file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:69"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/T-recurse.at:69:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir directory1 directory2
+touch directory1/file directory2/file
+
+cat >F1 <<'_ATEOF'
+--no-recursion
+directory1/
+_ATEOF
+
+
+cat >F2 <<'_ATEOF'
+directory2/
+_ATEOF
+
+
+tar cf archive -T F1 --recursion -T F2
+tar tf archive
+
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:69"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir directory1 directory2
+touch directory1/file directory2/file
+
+cat >F1 <<'_ATEOF'
+--no-recursion
+directory1/
+_ATEOF
+
+
+cat >F2 <<'_ATEOF'
+directory2/
+_ATEOF
+
+
+tar cf archive -T F1 --recursion -T F2
+tar tf archive
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory1/
+directory2/
+directory2/file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:69"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/T-recurse.at:69:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir directory1 directory2
+touch directory1/file directory2/file
+
+cat >F1 <<'_ATEOF'
+--no-recursion
+directory1/
+_ATEOF
+
+
+cat >F2 <<'_ATEOF'
+directory2/
+_ATEOF
+
+
+tar cf archive -T F1 --recursion -T F2
+tar tf archive
+
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:69"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir directory1 directory2
+touch directory1/file directory2/file
+
+cat >F1 <<'_ATEOF'
+--no-recursion
+directory1/
+_ATEOF
+
+
+cat >F2 <<'_ATEOF'
+directory2/
+_ATEOF
+
+
+tar cf archive -T F1 --recursion -T F2
+tar tf archive
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory1/
+directory2/
+directory2/file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:69"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/T-recurse.at:69:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir directory1 directory2
+touch directory1/file directory2/file
+
+cat >F1 <<'_ATEOF'
+--no-recursion
+directory1/
+_ATEOF
+
+
+cat >F2 <<'_ATEOF'
+directory2/
+_ATEOF
+
+
+tar cf archive -T F1 --recursion -T F2
+tar tf archive
+
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:69"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir directory1 directory2
+touch directory1/file directory2/file
+
+cat >F1 <<'_ATEOF'
+--no-recursion
+directory1/
+_ATEOF
+
+
+cat >F2 <<'_ATEOF'
+directory2/
+_ATEOF
+
+
+tar cf archive -T F1 --recursion -T F2
+tar tf archive
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "directory1/
+directory2/
+directory2/file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:69"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_15
+#AT_START_16
+at_fn_group_banner 16 'T-cd.at:21' \
+  "-C in file lists" "                               " 2
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "16. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/T-cd.at:24:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+>file1
+mkdir dir
+>dir/file2
+>dir/file3
+cat >F1 <<'_ATEOF'
+file1
+-C dir
+.
+_ATEOF
+
+tar cf archive -T F1
+tar tf archive | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "T-cd.at:24"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+>file1
+mkdir dir
+>dir/file2
+>dir/file3
+cat >F1 <<'_ATEOF'
+file1
+-C dir
+.
+_ATEOF
+
+tar cf archive -T F1
+tar tf archive | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "./
+./file2
+./file3
+file1
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-cd.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_16
+#AT_START_17
+at_fn_group_banner 17 'T-empty.at:26' \
+  "empty entries" "                                  " 2
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "17. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+cat >file-list <<'_ATEOF'
+jeden
+dwa
+
+trzy
+_ATEOF
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/T-empty.at:36:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
+
+
+genfile --file jeden
+genfile --file dwa
+genfile --file trzy
+
+tar cfvT archive ../file-list
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "T-empty.at:36"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+
+genfile --file jeden
+genfile --file dwa
+genfile --file trzy
+
+tar cfvT archive ../file-list
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "jeden
+dwa
+trzy
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-empty.at:36"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ # Testing one format is enough
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_17
+#AT_START_18
+at_fn_group_banner 18 'T-null.at:21' \
+  "0-separated file without -0" "                    " 2
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "18. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/T-null.at:24:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+
+echo jeden > temp
+echo dwa >> temp
+echo trzy >> temp
+cat temp | tr '\\n' '\\0' > file-list
+
+genfile -f jeden
+genfile -f dwa
+genfile -f trzy
+
+tar cfTv archive file-list
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "T-null.at:24"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+echo jeden > temp
+echo dwa >> temp
+echo trzy >> temp
+cat temp | tr '\n' '\0' > file-list
+
+genfile -f jeden
+genfile -f dwa
+genfile -f trzy
+
+tar cfTv archive file-list
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "tar: file-list: file name read contains nul character
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "jeden
+dwa
+trzy
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-null.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ # Testing one format is enough
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_18
+#AT_START_19
+at_fn_group_banner 19 'T-null2.at:17' \
+  "--null enables verbatim reading" "                " 2
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "19. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+# According to the docs, --null should read each line from the file
+# list verbatim.  This feature was broken by commit 26538c9b (tar version
+# 1.27).
+
+
+
+  { set +x
+$as_echo "$at_srcdir/T-null2.at:24:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
+
+cat >file-list <<'_ATEOF'
+a
+-b
+--c d
+_ATEOF
+
+
+genfile -f a
+genfile -f -b
+genfile -f '--c d'
+
+cat file-list | tr '\\n' '\\0' | tar -c -f archive -v --null -T -
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "T-null2.at:24"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+cat >file-list <<'_ATEOF'
+a
+-b
+--c d
+_ATEOF
+
+
+genfile -f a
+genfile -f -b
+genfile -f '--c d'
+
+cat file-list | tr '\n' '\0' | tar -c -f archive -v --null -T -
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "a
+-b
+--c d
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-null2.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ # Testing one format is enough
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_19
+#AT_START_20
+at_fn_group_banner 20 'T-zfile.at:26' \
+  "empty file" "                                     " 2
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "20. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/T-zfile.at:29:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --length=0 --file empty
+genfile --file a
+genfile --file b
+cat >valid <<'_ATEOF'
+a
+b
+_ATEOF
+
+
+tar cf archive -T empty -T valid
+tar tf archive
+echo \"==\"
+tar cf archive -T valid -T empty
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "T-zfile.at:29"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --length=0 --file empty
+genfile --file a
+genfile --file b
+cat >valid <<'_ATEOF'
+a
+b
+_ATEOF
+
+
+tar cf archive -T empty -T valid
+tar tf archive
+echo "=="
+tar cf archive -T valid -T empty
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "a
+b
+==
+a
+b
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-zfile.at:29"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+ # Testing one format is enough
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_20
+#AT_START_21
+at_fn_group_banner 21 'T-nonl.at:27' \
+  "entries with missing newlines" "                  " 2
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "21. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/T-nonl.at:30:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --length=0 --file empty
+\$as_echo_n c > 1.nonl
+echo d > 2.nonl
+\$as_echo_n e >> 2.nonl
+touch a b c d e
+cat >filelist <<'_ATEOF'
+a
+b
+_ATEOF
+
+
+tar cf archive -T empty -T 1.nonl -T 2.nonl -T filelist
+tar tf archive
+echo ==
+tar cf archive -T 2.nonl -T empty -T filelist -T 1.nonl
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "T-nonl.at:30"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --length=0 --file empty
+$as_echo_n c > 1.nonl
+echo d > 2.nonl
+$as_echo_n e >> 2.nonl
+touch a b c d e
+cat >filelist <<'_ATEOF'
+a
+b
+_ATEOF
+
+
+tar cf archive -T empty -T 1.nonl -T 2.nonl -T filelist
+tar tf archive
+echo ==
+tar cf archive -T 2.nonl -T empty -T filelist -T 1.nonl
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "c
+d
+e
+a
+b
+==
+d
+e
+a
+b
+c
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-nonl.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_21
+#AT_START_22
+at_fn_group_banner 22 'T-dir00.at:28' \
+  "recursive extraction from --files-from" "         " 2
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "22. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/T-dir00.at:30:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H v7\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir > list
+tar xfTv archive list | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir00.at:30"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir > list
+tar xfTv archive list | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file1
+dir/file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-dir00.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/T-dir00.at:30:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir > list
+tar xfTv archive list | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir00.at:30"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir > list
+tar xfTv archive list | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file1
+dir/file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-dir00.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/T-dir00.at:30:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir > list
+tar xfTv archive list | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir00.at:30"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir > list
+tar xfTv archive list | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file1
+dir/file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-dir00.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/T-dir00.at:30:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir > list
+tar xfTv archive list | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir00.at:30"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir > list
+tar xfTv archive list | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file1
+dir/file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-dir00.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/T-dir00.at:30:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir > list
+tar xfTv archive list | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir00.at:30"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir > list
+tar xfTv archive list | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file1
+dir/file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-dir00.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_22
+#AT_START_23
+at_fn_group_banner 23 'T-dir01.at:28' \
+  "trailing slash in --files-from" "                 " 2
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "23. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/T-dir01.at:30:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H v7\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir/ > list
+tar xfTv archive list | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir01.at:30"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir/ > list
+tar xfTv archive list | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file1
+dir/file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-dir01.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/T-dir01.at:30:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir/ > list
+tar xfTv archive list | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir01.at:30"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir/ > list
+tar xfTv archive list | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file1
+dir/file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-dir01.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/T-dir01.at:30:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir/ > list
+tar xfTv archive list | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir01.at:30"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir/ > list
+tar xfTv archive list | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file1
+dir/file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-dir01.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/T-dir01.at:30:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir/ > list
+tar xfTv archive list | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir01.at:30"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir/ > list
+tar xfTv archive list | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file1
+dir/file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-dir01.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/T-dir01.at:30:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir/ > list
+tar xfTv archive list | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir01.at:30"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir dir
+genfile -f dir/file1
+genfile -f dir/file2
+tar cf archive dir
+rm -rf dir
+echo dir/ > list
+tar xfTv archive list | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/
+dir/file1
+dir/file2
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/T-dir01.at:30"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_23
+#AT_START_24
+at_fn_group_banner 24 'indexfile.at:26' \
+  "tar --index-file=FILE --file=-" "                 " 3
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "24. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/indexfile.at:29:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H v7\"
+export TAR_OPTIONS
+rm -rf *
+
+
+mkdir directory
+genfile --file=directory/a --length=1035
+
+echo \"Creating the archive\"
+tar -c -v -f - --index-file=idx directory > archive
+
+echo \"Testing the archive\"
+tar -tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "indexfile.at:29"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
+
+
+mkdir directory
+genfile --file=directory/a --length=1035
+
+echo "Creating the archive"
+tar -c -v -f - --index-file=idx directory > archive
+
+echo "Testing the archive"
+tar -tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Creating the archive
+Testing the archive
+directory/
+directory/a
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:29"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/indexfile.at:29:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+
+
+mkdir directory
+genfile --file=directory/a --length=1035
+
+echo \"Creating the archive\"
+tar -c -v -f - --index-file=idx directory > archive
+
+echo \"Testing the archive\"
+tar -tf archive
 )"
 at_fn_check_prepare_notrace 'an embedded newline' "indexfile.at:29"
 ( $at_check_trace;
@@ -3975,14 +5520,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_19
-#AT_START_20
-at_fn_group_banner 20 'verbose.at:26' \
+#AT_STOP_24
+#AT_START_25
+at_fn_group_banner 25 'verbose.at:26' \
   "tar cvf -" "                                      " 3
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "20. $at_setup_line: testing $at_desc ..."
+  $as_echo "25. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -4231,13 +5776,13 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_20
-#AT_START_21
-at_fn_group_banner 21 'gzip.at:24' \
+#AT_STOP_25
+#AT_START_26
+at_fn_group_banner 26 'gzip.at:24' \
   "gzip" "                                           " 3
 at_xfail=no
 (
-  $as_echo "21. $at_setup_line: testing $at_desc ..."
+  $as_echo "26. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -4281,14 +5826,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_21
-#AT_START_22
-at_fn_group_banner 22 'recurse.at:21' \
+#AT_STOP_26
+#AT_START_27
+at_fn_group_banner 27 'recurse.at:21' \
   "recurse" "                                        " 3
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "22. $at_setup_line: testing $at_desc ..."
+  $as_echo "27. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -4507,14 +6052,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_22
-#AT_START_23
-at_fn_group_banner 23 'recurs02.at:30' \
+#AT_STOP_27
+#AT_START_28
+at_fn_group_banner 28 'recurs02.at:30' \
   "recurse: toggle" "                                " 3
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "23. $at_setup_line: testing $at_desc ..."
+  $as_echo "28. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -4537,6 +6082,10 @@ tar --create --file archive \\
     --no-recursion directory1 \\
     --recursion directory2 || exit 1
 tar tf archive
+tar cf archive directory1 directory2
+tar tf archive \\
+    --no-recursion directory1 \\
+    --recursion directory2 || exit 1
 )"
 at_fn_check_prepare_notrace 'an embedded newline' "recurs02.at:33"
 ( $at_check_trace;
@@ -4554,6 +6103,10 @@ tar --create --file archive \
     --no-recursion directory1 \
     --recursion directory2 || exit 1
 tar tf archive
+tar cf archive directory1 directory2
+tar tf archive \
+    --no-recursion directory1 \
+    --recursion directory2 || exit 1
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
@@ -4562,6 +6115,9 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "directory1/
 directory2/
 directory2/file
+directory1/
+directory2/
+directory2/file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/recurs02.at:33"
@@ -4584,6 +6140,10 @@ tar --create --file archive \\
     --no-recursion directory1 \\
     --recursion directory2 || exit 1
 tar tf archive
+tar cf archive directory1 directory2
+tar tf archive \\
+    --no-recursion directory1 \\
+    --recursion directory2 || exit 1
 )"
 at_fn_check_prepare_notrace 'an embedded newline' "recurs02.at:33"
 ( $at_check_trace;
@@ -4601,6 +6161,10 @@ tar --create --file archive \
     --no-recursion directory1 \
     --recursion directory2 || exit 1
 tar tf archive
+tar cf archive directory1 directory2
+tar tf archive \
+    --no-recursion directory1 \
+    --recursion directory2 || exit 1
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
@@ -4609,6 +6173,9 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "directory1/
 directory2/
 directory2/file
+directory1/
+directory2/
+directory2/file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/recurs02.at:33"
@@ -4631,6 +6198,10 @@ tar --create --file archive \\
     --no-recursion directory1 \\
     --recursion directory2 || exit 1
 tar tf archive
+tar cf archive directory1 directory2
+tar tf archive \\
+    --no-recursion directory1 \\
+    --recursion directory2 || exit 1
 )"
 at_fn_check_prepare_notrace 'an embedded newline' "recurs02.at:33"
 ( $at_check_trace;
@@ -4648,6 +6219,10 @@ tar --create --file archive \
     --no-recursion directory1 \
     --recursion directory2 || exit 1
 tar tf archive
+tar cf archive directory1 directory2
+tar tf archive \
+    --no-recursion directory1 \
+    --recursion directory2 || exit 1
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
@@ -4656,6 +6231,9 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "directory1/
 directory2/
 directory2/file
+directory1/
+directory2/
+directory2/file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/recurs02.at:33"
@@ -4678,6 +6256,10 @@ tar --create --file archive \\
     --no-recursion directory1 \\
     --recursion directory2 || exit 1
 tar tf archive
+tar cf archive directory1 directory2
+tar tf archive \\
+    --no-recursion directory1 \\
+    --recursion directory2 || exit 1
 )"
 at_fn_check_prepare_notrace 'an embedded newline' "recurs02.at:33"
 ( $at_check_trace;
@@ -4695,6 +6277,10 @@ tar --create --file archive \
     --no-recursion directory1 \
     --recursion directory2 || exit 1
 tar tf archive
+tar cf archive directory1 directory2
+tar tf archive \
+    --no-recursion directory1 \
+    --recursion directory2 || exit 1
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
@@ -4703,6 +6289,9 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "directory1/
 directory2/
 directory2/file
+directory1/
+directory2/
+directory2/file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/recurs02.at:33"
@@ -4725,6 +6314,10 @@ tar --create --file archive \\
     --no-recursion directory1 \\
     --recursion directory2 || exit 1
 tar tf archive
+tar cf archive directory1 directory2
+tar tf archive \\
+    --no-recursion directory1 \\
+    --recursion directory2 || exit 1
 )"
 at_fn_check_prepare_notrace 'an embedded newline' "recurs02.at:33"
 ( $at_check_trace;
@@ -4742,6 +6335,10 @@ tar --create --file archive \
     --no-recursion directory1 \
     --recursion directory2 || exit 1
 tar tf archive
+tar cf archive directory1 directory2
+tar tf archive \
+    --no-recursion directory1 \
+    --recursion directory2 || exit 1
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
@@ -4750,6 +6347,9 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "directory1/
 directory2/
 directory2/file
+directory1/
+directory2/
+directory2/file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/recurs02.at:33"
@@ -4763,14 +6363,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_23
-#AT_START_24
-at_fn_group_banner 24 'shortrec.at:25' \
+#AT_STOP_28
+#AT_START_29
+at_fn_group_banner 29 'shortrec.at:26' \
   "short records" "                                  " 3
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "24. $at_setup_line: testing $at_desc ..."
+  $as_echo "29. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -4778,7 +6378,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/shortrec.at:28:
+$as_echo "$at_srcdir/shortrec.at:29:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -4796,7 +6396,7 @@ tar -t -f - < archive > /dev/null
 
 rm -r directory
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28"
+at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:29"
 ( $at_check_trace;
 mkdir v7
 (cd v7
@@ -4820,12 +6420,12 @@ at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
+at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/shortrec.at:28:
+$as_echo "$at_srcdir/shortrec.at:29:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -4843,7 +6443,7 @@ tar -t -f - < archive > /dev/null
 
 rm -r directory
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28"
+at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:29"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -4867,12 +6467,12 @@ at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
+at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/shortrec.at:28:
+$as_echo "$at_srcdir/shortrec.at:29:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -4890,7 +6490,7 @@ tar -t -f - < archive > /dev/null
 
 rm -r directory
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28"
+at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:29"
 ( $at_check_trace;
 mkdir ustar
 (cd ustar
@@ -4914,12 +6514,12 @@ at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
+at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/shortrec.at:28:
+$as_echo "$at_srcdir/shortrec.at:29:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -4937,7 +6537,7 @@ tar -t -f - < archive > /dev/null
 
 rm -r directory
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28"
+at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:29"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -4961,12 +6561,12 @@ at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
+at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/shortrec.at:28:
+$as_echo "$at_srcdir/shortrec.at:29:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -4984,7 +6584,7 @@ tar -t -f - < archive > /dev/null
 
 rm -r directory
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28"
+at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:29"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -5008,7 +6608,7 @@ at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
+at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -5019,22 +6619,24 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_24
-#AT_START_25
-at_fn_group_banner 25 'iotty.at:26' \
-  "terminal input" "                                 " 3
+#AT_STOP_29
+#AT_START_30
+at_fn_group_banner 30 'numeric.at:18' \
+  "--numeric-owner basic tests" "                    " 3
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "25. $at_setup_line: testing $at_desc ..."
+  $as_echo "30. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
 
 
+
+
   { set +x
-$as_echo "$at_srcdir/iotty.at:29:
+$as_echo "$at_srcdir/numeric.at:29:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -5043,17 +6645,36 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-test -x \$abs_builddir/ttyemu || exit 77
-TAPE=-
-export TAPE
-ttyemu -t5 -i/dev/null tar -x
-echo \$?
-ttyemu -t5 -i/dev/null tar -xz
-echo \$?
-ttyemu -t5 -i/dev/null tar -c .
-echo \$?
+mkdir dir
+genfile --file dir/file
+
+MYUID=\$(id -u) || exit 77
+MYGID=\$(id -g) || exit 77
+MYUSR=\$(id -un) || exit 77
+MYGRP=\$(id -gn) || exit 77
+
+
+decho --create
+tar --create -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
+tar --create -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
+
+
+decho --list
+tar --list -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
+tar --list -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
+
+
+decho --diff
+tar --diff -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
+tar --diff -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
+
+
+decho --extract
+tar --extract -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
+tar --extract -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
+
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "iotty.at:29"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "numeric.at:29"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -5063,37 +6684,72 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-test -x $abs_builddir/ttyemu || exit 77
-TAPE=-
-export TAPE
-ttyemu -t5 -i/dev/null tar -x
-echo $?
-ttyemu -t5 -i/dev/null tar -xz
-echo $?
-ttyemu -t5 -i/dev/null tar -c .
-echo $?
+mkdir dir
+genfile --file dir/file
+
+MYUID=$(id -u) || exit 77
+MYGID=$(id -g) || exit 77
+MYUSR=$(id -un) || exit 77
+MYGRP=$(id -gn) || exit 77
+
+
+decho --create
+tar --create -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
+tar --create -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
+
+
+decho --list
+tar --list -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
+tar --list -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
+
+
+decho --diff
+tar --diff -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
+tar --diff -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
+
+
+decho --extract
+tar --extract -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
+tar --extract -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
+
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "tar: Refusing to read archive contents from terminal (missing -f option?)
-tar: Error is not recoverable: exiting now
-2
-tar: Refusing to read archive contents from terminal (missing -f option?)
-tar: Error is not recoverable: exiting now
-2
-tar: Refusing to write archive contents to terminal (missing -f option?)
-tar: Error is not recoverable: exiting now
-2
+echo >>"$at_stderr"; $as_echo "--create
+--list
+--diff
+--extract
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "--create
+OK
+OK
+OK
+OK
+--list
+OK
+OK
+OK
+OK
+--diff
+OK
+OK
+OK
+OK
+--extract
+OK
+OK
+OK
+OK
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/iotty.at:29"
+at_fn_check_status 0 $at_status "$at_srcdir/numeric.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/iotty.at:29:
+$as_echo "$at_srcdir/numeric.at:29:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -5102,17 +6758,36 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-test -x \$abs_builddir/ttyemu || exit 77
-TAPE=-
-export TAPE
-ttyemu -t5 -i/dev/null tar -x
-echo \$?
-ttyemu -t5 -i/dev/null tar -xz
-echo \$?
-ttyemu -t5 -i/dev/null tar -c .
-echo \$?
+mkdir dir
+genfile --file dir/file
+
+MYUID=\$(id -u) || exit 77
+MYGID=\$(id -g) || exit 77
+MYUSR=\$(id -un) || exit 77
+MYGRP=\$(id -gn) || exit 77
+
+
+decho --create
+tar --create -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
+tar --create -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
+
+
+decho --list
+tar --list -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
+tar --list -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
+
+
+decho --diff
+tar --diff -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
+tar --diff -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
+
+
+decho --extract
+tar --extract -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
+tar --extract -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
+
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "iotty.at:29"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "numeric.at:29"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -5122,37 +6797,185 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-test -x $abs_builddir/ttyemu || exit 77
-TAPE=-
-export TAPE
-ttyemu -t5 -i/dev/null tar -x
-echo $?
-ttyemu -t5 -i/dev/null tar -xz
-echo $?
-ttyemu -t5 -i/dev/null tar -c .
-echo $?
+mkdir dir
+genfile --file dir/file
+
+MYUID=$(id -u) || exit 77
+MYGID=$(id -g) || exit 77
+MYUSR=$(id -un) || exit 77
+MYGRP=$(id -gn) || exit 77
+
+
+decho --create
+tar --create -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
+tar --create -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
+
+
+decho --list
+tar --list -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
+tar --list -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
+
+
+decho --diff
+tar --diff -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
+tar --diff -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
+
+
+decho --extract
+tar --extract -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
+tar --extract -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
+
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "tar: Refusing to read archive contents from terminal (missing -f option?)
-tar: Error is not recoverable: exiting now
-2
-tar: Refusing to read archive contents from terminal (missing -f option?)
-tar: Error is not recoverable: exiting now
-2
-tar: Refusing to write archive contents to terminal (missing -f option?)
-tar: Error is not recoverable: exiting now
-2
+echo >>"$at_stderr"; $as_echo "--create
+--list
+--diff
+--extract
 " | \
-  $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/iotty.at:29"
-$at_failed && at_fn_log_failure
-$at_traceon; }
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "--create
+OK
+OK
+OK
+OK
+--list
+OK
+OK
+OK
+OK
+--diff
+OK
+OK
+OK
+OK
+--extract
+OK
+OK
+OK
+OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/numeric.at:29"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/numeric.at:29:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
 
-              { set +x
-$as_echo "$at_srcdir/iotty.at:29:
+mkdir dir
+genfile --file dir/file
+
+MYUID=\$(id -u) || exit 77
+MYGID=\$(id -g) || exit 77
+MYUSR=\$(id -un) || exit 77
+MYGRP=\$(id -gn) || exit 77
+
+
+decho --create
+tar --create -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
+tar --create -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
+
+
+decho --list
+tar --list -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
+tar --list -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
+
+
+decho --diff
+tar --diff -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
+tar --diff -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
+
+
+decho --extract
+tar --extract -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
+tar --extract -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
+
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "numeric.at:29"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+mkdir dir
+genfile --file dir/file
+
+MYUID=$(id -u) || exit 77
+MYGID=$(id -g) || exit 77
+MYUSR=$(id -un) || exit 77
+MYGRP=$(id -gn) || exit 77
+
+
+decho --create
+tar --create -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
+tar --create -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
+
+
+decho --list
+tar --list -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
+tar --list -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
+
+
+decho --diff
+tar --diff -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
+tar --diff -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
+
+
+decho --extract
+tar --extract -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
+tar --extract -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "--create
+--list
+--diff
+--extract
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "--create
+OK
+OK
+OK
+OK
+--list
+OK
+OK
+OK
+OK
+--diff
+OK
+OK
+OK
+OK
+--extract
+OK
+OK
+OK
+OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/numeric.at:29"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/numeric.at:29:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -5161,17 +6984,36 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-test -x \$abs_builddir/ttyemu || exit 77
-TAPE=-
-export TAPE
-ttyemu -t5 -i/dev/null tar -x
-echo \$?
-ttyemu -t5 -i/dev/null tar -xz
-echo \$?
-ttyemu -t5 -i/dev/null tar -c .
-echo \$?
+mkdir dir
+genfile --file dir/file
+
+MYUID=\$(id -u) || exit 77
+MYGID=\$(id -g) || exit 77
+MYUSR=\$(id -un) || exit 77
+MYGRP=\$(id -gn) || exit 77
+
+
+decho --create
+tar --create -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
+tar --create -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
+
+
+decho --list
+tar --list -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
+tar --list -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
+
+
+decho --diff
+tar --diff -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
+tar --diff -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
+
+
+decho --extract
+tar --extract -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
+tar --extract -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
+
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "iotty.at:29"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "numeric.at:29"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -5181,32 +7023,67 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-test -x $abs_builddir/ttyemu || exit 77
-TAPE=-
-export TAPE
-ttyemu -t5 -i/dev/null tar -x
-echo $?
-ttyemu -t5 -i/dev/null tar -xz
-echo $?
-ttyemu -t5 -i/dev/null tar -c .
-echo $?
+mkdir dir
+genfile --file dir/file
+
+MYUID=$(id -u) || exit 77
+MYGID=$(id -g) || exit 77
+MYUSR=$(id -un) || exit 77
+MYGRP=$(id -gn) || exit 77
+
+
+decho --create
+tar --create -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
+tar --create -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
+
+
+decho --list
+tar --list -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
+tar --list -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
+
+
+decho --diff
+tar --diff -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
+tar --diff -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
+
+
+decho --extract
+tar --extract -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
+tar --extract -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
+
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "tar: Refusing to read archive contents from terminal (missing -f option?)
-tar: Error is not recoverable: exiting now
-2
-tar: Refusing to read archive contents from terminal (missing -f option?)
-tar: Error is not recoverable: exiting now
-2
-tar: Refusing to write archive contents to terminal (missing -f option?)
-tar: Error is not recoverable: exiting now
-2
+echo >>"$at_stderr"; $as_echo "--create
+--list
+--diff
+--extract
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "--create
+OK
+OK
+OK
+OK
+--list
+OK
+OK
+OK
+OK
+--diff
+OK
+OK
+OK
+OK
+--extract
+OK
+OK
+OK
+OK
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/iotty.at:29"
+at_fn_check_status 0 $at_status "$at_srcdir/numeric.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -5217,14 +7094,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_25
-#AT_START_26
-at_fn_group_banner 26 'same-order01.at:26' \
+#AT_STOP_30
+#AT_START_31
+at_fn_group_banner 31 'same-order01.at:27' \
   "working -C with --same-order" "                   " 4
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "26. $at_setup_line: testing $at_desc ..."
+  $as_echo "31. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -5232,7 +7109,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/same-order01.at:29:
+$as_echo "$at_srcdir/same-order01.at:30:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -5254,7 +7131,7 @@ tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
 
 ls directory|sort
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29"
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:30"
 ( $at_check_trace;
 mkdir v7
 (cd v7
@@ -5285,12 +7162,12 @@ echo >>"$at_stdout"; $as_echo "file1
 file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
+at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:30"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/same-order01.at:29:
+$as_echo "$at_srcdir/same-order01.at:30:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -5312,7 +7189,7 @@ tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
 
 ls directory|sort
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29"
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:30"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -5343,12 +7220,12 @@ echo >>"$at_stdout"; $as_echo "file1
 file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
+at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:30"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/same-order01.at:29:
+$as_echo "$at_srcdir/same-order01.at:30:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -5370,7 +7247,7 @@ tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
 
 ls directory|sort
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29"
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:30"
 ( $at_check_trace;
 mkdir ustar
 (cd ustar
@@ -5401,12 +7278,12 @@ echo >>"$at_stdout"; $as_echo "file1
 file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
+at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:30"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/same-order01.at:29:
+$as_echo "$at_srcdir/same-order01.at:30:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -5428,7 +7305,7 @@ tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
 
 ls directory|sort
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29"
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:30"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -5459,12 +7336,12 @@ echo >>"$at_stdout"; $as_echo "file1
 file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
+at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:30"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/same-order01.at:29:
+$as_echo "$at_srcdir/same-order01.at:30:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -5486,7 +7363,7 @@ tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
 
 ls directory|sort
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29"
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:30"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -5517,7 +7394,7 @@ echo >>"$at_stdout"; $as_echo "file1
 file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
+at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:30"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -5528,14 +7405,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_26
-#AT_START_27
-at_fn_group_banner 27 'same-order02.at:25' \
+#AT_STOP_31
+#AT_START_32
+at_fn_group_banner 32 'same-order02.at:26' \
   "multiple -C options" "                            " 4
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "27. $at_setup_line: testing $at_desc ..."
+  $as_echo "32. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -5543,7 +7420,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/same-order02.at:28:
+$as_echo "$at_srcdir/same-order02.at:29:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -5568,7 +7445,7 @@ ls en
 echo separator
 ls to
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28"
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:29"
 ( $at_check_trace;
 mkdir v7
 (cd v7
@@ -5603,12 +7480,12 @@ separator
 file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
+at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/same-order02.at:28:
+$as_echo "$at_srcdir/same-order02.at:29:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -5633,7 +7510,7 @@ ls en
 echo separator
 ls to
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28"
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:29"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -5668,12 +7545,12 @@ separator
 file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
+at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/same-order02.at:28:
+$as_echo "$at_srcdir/same-order02.at:29:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -5698,7 +7575,7 @@ ls en
 echo separator
 ls to
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28"
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:29"
 ( $at_check_trace;
 mkdir ustar
 (cd ustar
@@ -5733,12 +7610,12 @@ separator
 file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
+at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/same-order02.at:28:
+$as_echo "$at_srcdir/same-order02.at:29:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -5763,7 +7640,7 @@ ls en
 echo separator
 ls to
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28"
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:29"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -5798,12 +7675,12 @@ separator
 file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
+at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/same-order02.at:28:
+$as_echo "$at_srcdir/same-order02.at:29:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -5828,7 +7705,7 @@ ls en
 echo separator
 ls to
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28"
+at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:29"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -5863,7 +7740,7 @@ separator
 file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
+at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -5874,14 +7751,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_27
-#AT_START_28
-at_fn_group_banner 28 'append.at:21' \
+#AT_STOP_32
+#AT_START_33
+at_fn_group_banner 33 'append.at:22' \
   "append" "                                         " 5
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "28. $at_setup_line: testing $at_desc ..."
+  $as_echo "33. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -5889,7 +7766,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/append.at:24:
+$as_echo "$at_srcdir/append.at:25:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -5902,7 +7779,7 @@ touch file1
           tar cf archive file1
           tar rf archive file2
           tar tf archive)"
-at_fn_check_prepare_notrace 'an embedded newline' "append.at:24"
+at_fn_check_prepare_notrace 'an embedded newline' "append.at:25"
 ( $at_check_trace;
 mkdir v7
 (cd v7
@@ -5924,12 +7801,12 @@ echo >>"$at_stdout"; $as_echo "file1
 file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/append.at:24"
+at_fn_check_status 0 $at_status "$at_srcdir/append.at:25"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/append.at:24:
+$as_echo "$at_srcdir/append.at:25:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -5942,7 +7819,7 @@ touch file1
           tar cf archive file1
           tar rf archive file2
           tar tf archive)"
-at_fn_check_prepare_notrace 'an embedded newline' "append.at:24"
+at_fn_check_prepare_notrace 'an embedded newline' "append.at:25"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -5964,12 +7841,12 @@ echo >>"$at_stdout"; $as_echo "file1
 file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/append.at:24"
+at_fn_check_status 0 $at_status "$at_srcdir/append.at:25"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/append.at:24:
+$as_echo "$at_srcdir/append.at:25:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -5982,7 +7859,7 @@ touch file1
           tar cf archive file1
           tar rf archive file2
           tar tf archive)"
-at_fn_check_prepare_notrace 'an embedded newline' "append.at:24"
+at_fn_check_prepare_notrace 'an embedded newline' "append.at:25"
 ( $at_check_trace;
 mkdir ustar
 (cd ustar
@@ -6004,12 +7881,12 @@ echo >>"$at_stdout"; $as_echo "file1
 file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/append.at:24"
+at_fn_check_status 0 $at_status "$at_srcdir/append.at:25"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/append.at:24:
+$as_echo "$at_srcdir/append.at:25:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -6022,7 +7899,7 @@ touch file1
           tar cf archive file1
           tar rf archive file2
           tar tf archive)"
-at_fn_check_prepare_notrace 'an embedded newline' "append.at:24"
+at_fn_check_prepare_notrace 'an embedded newline' "append.at:25"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -6044,12 +7921,12 @@ echo >>"$at_stdout"; $as_echo "file1
 file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/append.at:24"
+at_fn_check_status 0 $at_status "$at_srcdir/append.at:25"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/append.at:24:
+$as_echo "$at_srcdir/append.at:25:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -6062,7 +7939,7 @@ touch file1
           tar cf archive file1
           tar rf archive file2
           tar tf archive)"
-at_fn_check_prepare_notrace 'an embedded newline' "append.at:24"
+at_fn_check_prepare_notrace 'an embedded newline' "append.at:25"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -6084,7 +7961,7 @@ echo >>"$at_stdout"; $as_echo "file1
 file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/append.at:24"
+at_fn_check_status 0 $at_status "$at_srcdir/append.at:25"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -6095,14 +7972,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_28
-#AT_START_29
-at_fn_group_banner 29 'append01.at:29' \
+#AT_STOP_33
+#AT_START_34
+at_fn_group_banner 34 'append01.at:29' \
   "appending files with long names" "                " 5
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "29. $at_setup_line: testing $at_desc ..."
+  $as_echo "34. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -6295,14 +8172,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_29
-#AT_START_30
-at_fn_group_banner 30 'append02.at:54' \
+#AT_STOP_34
+#AT_START_35
+at_fn_group_banner 35 'append02.at:55' \
   "append vs. create" "                              " 5
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "30. $at_setup_line: testing $at_desc ..."
+  $as_echo "35. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -6310,7 +8187,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/append02.at:57:
+$as_echo "$at_srcdir/append02.at:58:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -6342,7 +8219,7 @@ tar \$MTIME -rf archive.2 file2
 echo Comparing archives
 cmp archive.1 archive.2
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57"
+at_fn_check_prepare_notrace 'an embedded newline' "append02.at:58"
 ( $at_check_trace;
 mkdir v7
 (cd v7
@@ -6384,12 +8261,12 @@ Creating archive.2
 Comparing archives
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57"
+at_fn_check_status 0 $at_status "$at_srcdir/append02.at:58"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/append02.at:57:
+$as_echo "$at_srcdir/append02.at:58:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -6421,7 +8298,7 @@ tar \$MTIME -rf archive.2 file2
 echo Comparing archives
 cmp archive.1 archive.2
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57"
+at_fn_check_prepare_notrace 'an embedded newline' "append02.at:58"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -6463,12 +8340,12 @@ Creating archive.2
 Comparing archives
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57"
+at_fn_check_status 0 $at_status "$at_srcdir/append02.at:58"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/append02.at:57:
+$as_echo "$at_srcdir/append02.at:58:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -6500,7 +8377,7 @@ tar \$MTIME -rf archive.2 file2
 echo Comparing archives
 cmp archive.1 archive.2
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57"
+at_fn_check_prepare_notrace 'an embedded newline' "append02.at:58"
 ( $at_check_trace;
 mkdir ustar
 (cd ustar
@@ -6542,12 +8419,12 @@ Creating archive.2
 Comparing archives
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57"
+at_fn_check_status 0 $at_status "$at_srcdir/append02.at:58"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/append02.at:57:
+$as_echo "$at_srcdir/append02.at:58:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -6579,7 +8456,7 @@ tar \$MTIME -rf archive.2 file2
 echo Comparing archives
 cmp archive.1 archive.2
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57"
+at_fn_check_prepare_notrace 'an embedded newline' "append02.at:58"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -6621,12 +8498,12 @@ Creating archive.2
 Comparing archives
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57"
+at_fn_check_status 0 $at_status "$at_srcdir/append02.at:58"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/append02.at:57:
+$as_echo "$at_srcdir/append02.at:58:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -6658,7 +8535,7 @@ tar \$MTIME -rf archive.2 file2
 echo Comparing archives
 cmp archive.1 archive.2
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57"
+at_fn_check_prepare_notrace 'an embedded newline' "append02.at:58"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -6700,7 +8577,7 @@ Creating archive.2
 Comparing archives
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57"
+at_fn_check_status 0 $at_status "$at_srcdir/append02.at:58"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -6711,14 +8588,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_30
-#AT_START_31
-at_fn_group_banner 31 'append03.at:21' \
+#AT_STOP_35
+#AT_START_36
+at_fn_group_banner 36 'append03.at:21' \
   "append with name transformation" "                " 5
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "31. $at_setup_line: testing $at_desc ..."
+  $as_echo "36. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -7004,14 +8881,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_31
-#AT_START_32
-at_fn_group_banner 32 'append04.at:29' \
+#AT_STOP_36
+#AT_START_37
+at_fn_group_banner 37 'append04.at:29' \
   "append with verify" "                             " 5
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "32. $at_setup_line: testing $at_desc ..."
+  $as_echo "37. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -7091,7 +8968,422 @@ $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/append04.at:32:
+$as_echo "$at_srcdir/append04.at:32:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+
+# Create two empty files:
+touch file1 file2
+
+# Create an archive:
+tar cpfW archive.tar file1 file2
+
+# Verify created archive by listing its content:
+tar -tf archive.tar
+echo ==
+# Create another empty file:
+touch file3
+
+# Append it to the already created archive:
+tar rpfW archive.tar file3
+
+# Verify content of the new archive:
+tar -tf archive.tar
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "append04.at:32"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
+
+# Create two empty files:
+touch file1 file2
+
+# Create an archive:
+tar cpfW archive.tar file1 file2
+
+# Verify created archive by listing its content:
+tar -tf archive.tar
+echo ==
+# Create another empty file:
+touch file3
+
+# Append it to the already created archive:
+tar rpfW archive.tar file3
+
+# Verify content of the new archive:
+tar -tf archive.tar
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
+==
+file1
+file2
+file3
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/append04.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/append04.at:32:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
+
+# Create two empty files:
+touch file1 file2
+
+# Create an archive:
+tar cpfW archive.tar file1 file2
+
+# Verify created archive by listing its content:
+tar -tf archive.tar
+echo ==
+# Create another empty file:
+touch file3
+
+# Append it to the already created archive:
+tar rpfW archive.tar file3
+
+# Verify content of the new archive:
+tar -tf archive.tar
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "append04.at:32"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+# Create two empty files:
+touch file1 file2
+
+# Create an archive:
+tar cpfW archive.tar file1 file2
+
+# Verify created archive by listing its content:
+tar -tf archive.tar
+echo ==
+# Create another empty file:
+touch file3
+
+# Append it to the already created archive:
+tar rpfW archive.tar file3
+
+# Verify content of the new archive:
+tar -tf archive.tar
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
+==
+file1
+file2
+file3
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/append04.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/append04.at:32:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+# Create two empty files:
+touch file1 file2
+
+# Create an archive:
+tar cpfW archive.tar file1 file2
+
+# Verify created archive by listing its content:
+tar -tf archive.tar
+echo ==
+# Create another empty file:
+touch file3
+
+# Append it to the already created archive:
+tar rpfW archive.tar file3
+
+# Verify content of the new archive:
+tar -tf archive.tar
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "append04.at:32"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+# Create two empty files:
+touch file1 file2
+
+# Create an archive:
+tar cpfW archive.tar file1 file2
+
+# Verify created archive by listing its content:
+tar -tf archive.tar
+echo ==
+# Create another empty file:
+touch file3
+
+# Append it to the already created archive:
+tar rpfW archive.tar file3
+
+# Verify content of the new archive:
+tar -tf archive.tar
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
+==
+file1
+file2
+file3
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/append04.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/append04.at:32:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+# Create two empty files:
+touch file1 file2
+
+# Create an archive:
+tar cpfW archive.tar file1 file2
+
+# Verify created archive by listing its content:
+tar -tf archive.tar
+echo ==
+# Create another empty file:
+touch file3
+
+# Append it to the already created archive:
+tar rpfW archive.tar file3
+
+# Verify content of the new archive:
+tar -tf archive.tar
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "append04.at:32"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+# Create two empty files:
+touch file1 file2
+
+# Create an archive:
+tar cpfW archive.tar file1 file2
+
+# Verify created archive by listing its content:
+tar -tf archive.tar
+echo ==
+# Create another empty file:
+touch file3
+
+# Append it to the already created archive:
+tar rpfW archive.tar file3
+
+# Verify content of the new archive:
+tar -tf archive.tar
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "file1
+file2
+==
+file1
+file2
+file3
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/append04.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_37
+#AT_START_38
+at_fn_group_banner 38 'append05.at:32' \
+  "append after changed blocking" "                  " 5
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "38. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/append05.at:35:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H v7\"
+export TAR_OPTIONS
+rm -rf *
+
+for f in a b c d e f g h i
+do
+  echo \$f > \$f
+done
+
+decho 'creating archive'
+tar -cf archive -b1 a b c
+
+tar tf archive
+
+decho 'adding d e f'
+tar -vrf archive -b3 d e f
+echo ==
+tar tf archive
+
+decho 'adding g h i'
+tar -vrf archive -b5 g h i
+
+decho 'resulting archive'
+tar tf archive
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "append05.at:35"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
+
+for f in a b c d e f g h i
+do
+  echo $f > $f
+done
+
+decho 'creating archive'
+tar -cf archive -b1 a b c
+
+tar tf archive
+
+decho 'adding d e f'
+tar -vrf archive -b3 d e f
+echo ==
+tar tf archive
+
+decho 'adding g h i'
+tar -vrf archive -b5 g h i
+
+decho 'resulting archive'
+tar tf archive
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "creating archive
+adding d e f
+adding g h i
+resulting archive
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "creating archive
+a
+b
+c
+adding d e f
+d
+e
+f
+==
+a
+b
+c
+d
+e
+f
+adding g h i
+g
+h
+i
+resulting archive
+a
+b
+c
+d
+e
+f
+g
+h
+i
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/append05.at:35"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/append05.at:35:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -7100,25 +9392,28 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
-# Create two empty files:
-touch file1 file2
+for f in a b c d e f g h i
+do
+  echo \$f > \$f
+done
 
-# Create an archive:
-tar cpfW archive.tar file1 file2
+decho 'creating archive'
+tar -cf archive -b1 a b c
 
-# Verify created archive by listing its content:
-tar -tf archive.tar
+tar tf archive
+
+decho 'adding d e f'
+tar -vrf archive -b3 d e f
 echo ==
-# Create another empty file:
-touch file3
+tar tf archive
 
-# Append it to the already created archive:
-tar rpfW archive.tar file3
+decho 'adding g h i'
+tar -vrf archive -b5 g h i
 
-# Verify content of the new archive:
-tar -tf archive.tar
+decho 'resulting archive'
+tar tf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "append04.at:32"
+at_fn_check_prepare_notrace 'an embedded newline' "append05.at:35"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -7128,42 +9423,73 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
-# Create two empty files:
-touch file1 file2
+for f in a b c d e f g h i
+do
+  echo $f > $f
+done
 
-# Create an archive:
-tar cpfW archive.tar file1 file2
+decho 'creating archive'
+tar -cf archive -b1 a b c
 
-# Verify created archive by listing its content:
-tar -tf archive.tar
+tar tf archive
+
+decho 'adding d e f'
+tar -vrf archive -b3 d e f
 echo ==
-# Create another empty file:
-touch file3
+tar tf archive
 
-# Append it to the already created archive:
-tar rpfW archive.tar file3
+decho 'adding g h i'
+tar -vrf archive -b5 g h i
 
-# Verify content of the new archive:
-tar -tf archive.tar
+decho 'resulting archive'
+tar tf archive
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file2
+echo >>"$at_stderr"; $as_echo "creating archive
+adding d e f
+adding g h i
+resulting archive
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "creating archive
+a
+b
+c
+adding d e f
+d
+e
+f
 ==
-file1
-file2
-file3
+a
+b
+c
+d
+e
+f
+adding g h i
+g
+h
+i
+resulting archive
+a
+b
+c
+d
+e
+f
+g
+h
+i
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/append04.at:32"
+at_fn_check_status 0 $at_status "$at_srcdir/append05.at:35"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/append04.at:32:
+$as_echo "$at_srcdir/append05.at:35:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -7172,25 +9498,28 @@ TAR_OPTIONS=\"-H ustar\"
 export TAR_OPTIONS
 rm -rf *
 
-# Create two empty files:
-touch file1 file2
+for f in a b c d e f g h i
+do
+  echo \$f > \$f
+done
 
-# Create an archive:
-tar cpfW archive.tar file1 file2
+decho 'creating archive'
+tar -cf archive -b1 a b c
 
-# Verify created archive by listing its content:
-tar -tf archive.tar
+tar tf archive
+
+decho 'adding d e f'
+tar -vrf archive -b3 d e f
 echo ==
-# Create another empty file:
-touch file3
+tar tf archive
 
-# Append it to the already created archive:
-tar rpfW archive.tar file3
+decho 'adding g h i'
+tar -vrf archive -b5 g h i
 
-# Verify content of the new archive:
-tar -tf archive.tar
+decho 'resulting archive'
+tar tf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "append04.at:32"
+at_fn_check_prepare_notrace 'an embedded newline' "append05.at:35"
 ( $at_check_trace;
 mkdir ustar
 (cd ustar
@@ -7200,42 +9529,73 @@ TAR_OPTIONS="-H ustar"
 export TAR_OPTIONS
 rm -rf *
 
-# Create two empty files:
-touch file1 file2
+for f in a b c d e f g h i
+do
+  echo $f > $f
+done
 
-# Create an archive:
-tar cpfW archive.tar file1 file2
+decho 'creating archive'
+tar -cf archive -b1 a b c
 
-# Verify created archive by listing its content:
-tar -tf archive.tar
+tar tf archive
+
+decho 'adding d e f'
+tar -vrf archive -b3 d e f
 echo ==
-# Create another empty file:
-touch file3
+tar tf archive
 
-# Append it to the already created archive:
-tar rpfW archive.tar file3
+decho 'adding g h i'
+tar -vrf archive -b5 g h i
 
-# Verify content of the new archive:
-tar -tf archive.tar
+decho 'resulting archive'
+tar tf archive
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file2
+echo >>"$at_stderr"; $as_echo "creating archive
+adding d e f
+adding g h i
+resulting archive
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "creating archive
+a
+b
+c
+adding d e f
+d
+e
+f
 ==
-file1
-file2
-file3
+a
+b
+c
+d
+e
+f
+adding g h i
+g
+h
+i
+resulting archive
+a
+b
+c
+d
+e
+f
+g
+h
+i
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/append04.at:32"
+at_fn_check_status 0 $at_status "$at_srcdir/append05.at:35"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/append04.at:32:
+$as_echo "$at_srcdir/append05.at:35:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -7244,25 +9604,28 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
-# Create two empty files:
-touch file1 file2
+for f in a b c d e f g h i
+do
+  echo \$f > \$f
+done
 
-# Create an archive:
-tar cpfW archive.tar file1 file2
+decho 'creating archive'
+tar -cf archive -b1 a b c
 
-# Verify created archive by listing its content:
-tar -tf archive.tar
+tar tf archive
+
+decho 'adding d e f'
+tar -vrf archive -b3 d e f
 echo ==
-# Create another empty file:
-touch file3
+tar tf archive
 
-# Append it to the already created archive:
-tar rpfW archive.tar file3
+decho 'adding g h i'
+tar -vrf archive -b5 g h i
 
-# Verify content of the new archive:
-tar -tf archive.tar
+decho 'resulting archive'
+tar tf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "append04.at:32"
+at_fn_check_prepare_notrace 'an embedded newline' "append05.at:35"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -7272,42 +9635,73 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
-# Create two empty files:
-touch file1 file2
+for f in a b c d e f g h i
+do
+  echo $f > $f
+done
 
-# Create an archive:
-tar cpfW archive.tar file1 file2
+decho 'creating archive'
+tar -cf archive -b1 a b c
 
-# Verify created archive by listing its content:
-tar -tf archive.tar
+tar tf archive
+
+decho 'adding d e f'
+tar -vrf archive -b3 d e f
 echo ==
-# Create another empty file:
-touch file3
+tar tf archive
 
-# Append it to the already created archive:
-tar rpfW archive.tar file3
+decho 'adding g h i'
+tar -vrf archive -b5 g h i
 
-# Verify content of the new archive:
-tar -tf archive.tar
+decho 'resulting archive'
+tar tf archive
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file2
+echo >>"$at_stderr"; $as_echo "creating archive
+adding d e f
+adding g h i
+resulting archive
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "creating archive
+a
+b
+c
+adding d e f
+d
+e
+f
 ==
-file1
-file2
-file3
+a
+b
+c
+d
+e
+f
+adding g h i
+g
+h
+i
+resulting archive
+a
+b
+c
+d
+e
+f
+g
+h
+i
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/append04.at:32"
+at_fn_check_status 0 $at_status "$at_srcdir/append05.at:35"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/append04.at:32:
+$as_echo "$at_srcdir/append05.at:35:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -7316,25 +9710,28 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-# Create two empty files:
-touch file1 file2
+for f in a b c d e f g h i
+do
+  echo \$f > \$f
+done
 
-# Create an archive:
-tar cpfW archive.tar file1 file2
+decho 'creating archive'
+tar -cf archive -b1 a b c
 
-# Verify created archive by listing its content:
-tar -tf archive.tar
+tar tf archive
+
+decho 'adding d e f'
+tar -vrf archive -b3 d e f
 echo ==
-# Create another empty file:
-touch file3
+tar tf archive
 
-# Append it to the already created archive:
-tar rpfW archive.tar file3
+decho 'adding g h i'
+tar -vrf archive -b5 g h i
 
-# Verify content of the new archive:
-tar -tf archive.tar
+decho 'resulting archive'
+tar tf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "append04.at:32"
+at_fn_check_prepare_notrace 'an embedded newline' "append05.at:35"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -7344,37 +9741,68 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-# Create two empty files:
-touch file1 file2
+for f in a b c d e f g h i
+do
+  echo $f > $f
+done
 
-# Create an archive:
-tar cpfW archive.tar file1 file2
+decho 'creating archive'
+tar -cf archive -b1 a b c
 
-# Verify created archive by listing its content:
-tar -tf archive.tar
+tar tf archive
+
+decho 'adding d e f'
+tar -vrf archive -b3 d e f
 echo ==
-# Create another empty file:
-touch file3
+tar tf archive
 
-# Append it to the already created archive:
-tar rpfW archive.tar file3
+decho 'adding g h i'
+tar -vrf archive -b5 g h i
 
-# Verify content of the new archive:
-tar -tf archive.tar
+decho 'resulting archive'
+tar tf archive
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "file1
-file2
+echo >>"$at_stderr"; $as_echo "creating archive
+adding d e f
+adding g h i
+resulting archive
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "creating archive
+a
+b
+c
+adding d e f
+d
+e
+f
 ==
-file1
-file2
-file3
+a
+b
+c
+d
+e
+f
+adding g h i
+g
+h
+i
+resulting archive
+a
+b
+c
+d
+e
+f
+g
+h
+i
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/append04.at:32"
+at_fn_check_status 0 $at_status "$at_srcdir/append05.at:35"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -7385,14 +9813,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_32
-#AT_START_33
-at_fn_group_banner 33 'xform-h.at:30' \
+#AT_STOP_38
+#AT_START_39
+at_fn_group_banner 39 'xform-h.at:30' \
   "transforming hard links on create" "              " 6
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "33. $at_setup_line: testing $at_desc ..."
+  $as_echo "39. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -7790,14 +10218,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_33
-#AT_START_34
-at_fn_group_banner 34 'xform01.at:26' \
+#AT_STOP_39
+#AT_START_40
+at_fn_group_banner 40 'xform01.at:26' \
   "transformations and GNU volume labels" "          " 6
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "34. $at_setup_line: testing $at_desc ..."
+  $as_echo "40. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -7851,14 +10279,240 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_34
-#AT_START_35
-at_fn_group_banner 35 'exclude.at:23' \
+#AT_STOP_40
+#AT_START_41
+at_fn_group_banner 41 'xform02.at:21' \
+  "transforming escaped delimiters on create" "      " 6
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "41. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/xform02.at:24:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H v7\"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --file file
+tar cvf /dev/null file \\
+   --transform='s/file/other\\/name/' \\
+   --show-transformed-name
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "xform02.at:24"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --file file
+tar cvf /dev/null file \
+   --transform='s/file/other\/name/' \
+   --show-transformed-name
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "other/name
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xform02.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/xform02.at:24:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --file file
+tar cvf /dev/null file \\
+   --transform='s/file/other\\/name/' \\
+   --show-transformed-name
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "xform02.at:24"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --file file
+tar cvf /dev/null file \
+   --transform='s/file/other\/name/' \
+   --show-transformed-name
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "other/name
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xform02.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/xform02.at:24:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --file file
+tar cvf /dev/null file \\
+   --transform='s/file/other\\/name/' \\
+   --show-transformed-name
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "xform02.at:24"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --file file
+tar cvf /dev/null file \
+   --transform='s/file/other\/name/' \
+   --show-transformed-name
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "other/name
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xform02.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/xform02.at:24:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --file file
+tar cvf /dev/null file \\
+   --transform='s/file/other\\/name/' \\
+   --show-transformed-name
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "xform02.at:24"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --file file
+tar cvf /dev/null file \
+   --transform='s/file/other\/name/' \
+   --show-transformed-name
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "other/name
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xform02.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/xform02.at:24:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --file file
+tar cvf /dev/null file \\
+   --transform='s/file/other\\/name/' \\
+   --show-transformed-name
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "xform02.at:24"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --file file
+tar cvf /dev/null file \
+   --transform='s/file/other\/name/' \
+   --show-transformed-name
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "other/name
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/xform02.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_41
+#AT_START_42
+at_fn_group_banner 42 'exclude.at:23' \
   "exclude" "                                        " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "35. $at_setup_line: testing $at_desc ..."
+  $as_echo "42. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -8068,14 +10722,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_35
-#AT_START_36
-at_fn_group_banner 36 'exclude01.at:19' \
+#AT_STOP_42
+#AT_START_43
+at_fn_group_banner 43 'exclude01.at:19' \
   "exclude wildcards" "                              " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "36. $at_setup_line: testing $at_desc ..."
+  $as_echo "43. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -8649,14 +11303,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_36
-#AT_START_37
-at_fn_group_banner 37 'exclude02.at:19' \
+#AT_STOP_43
+#AT_START_44
+at_fn_group_banner 44 'exclude02.at:19' \
   "exclude: anchoring" "                             " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "37. $at_setup_line: testing $at_desc ..."
+  $as_echo "44. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -9290,14 +11944,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_37
-#AT_START_38
-at_fn_group_banner 38 'exclude03.at:19' \
+#AT_STOP_44
+#AT_START_45
+at_fn_group_banner 45 'exclude03.at:19' \
   "exclude: wildcards match slash" "                 " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "38. $at_setup_line: testing $at_desc ..."
+  $as_echo "45. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -9891,14 +12545,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_38
-#AT_START_39
-at_fn_group_banner 39 'exclude04.at:19' \
+#AT_STOP_45
+#AT_START_46
+at_fn_group_banner 46 'exclude04.at:19' \
   "exclude: case insensitive" "                      " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "39. $at_setup_line: testing $at_desc ..."
+  $as_echo "46. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -10507,14 +13161,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_39
-#AT_START_40
-at_fn_group_banner 40 'exclude05.at:21' \
+#AT_STOP_46
+#AT_START_47
+at_fn_group_banner 47 'exclude05.at:21' \
   "exclude: lots of excludes" "                      " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "40. $at_setup_line: testing $at_desc ..."
+  $as_echo "47. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -10983,14 +13637,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_40
-#AT_START_41
-at_fn_group_banner 41 'exclude06.at:26' \
+#AT_STOP_47
+#AT_START_48
+at_fn_group_banner 48 'exclude06.at:26' \
   "exclude: long files in pax archives" "            " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "41. $at_setup_line: testing $at_desc ..."
+  $as_echo "48. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -11058,14 +13712,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_41
-#AT_START_42
-at_fn_group_banner 42 'exclude07.at:19' \
+#AT_STOP_48
+#AT_START_49
+at_fn_group_banner 49 'exclude07.at:19' \
   "exclude: --exclude-backups option" "              " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "42. $at_setup_line: testing $at_desc ..."
+  $as_echo "49. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -11319,14 +13973,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_42
-#AT_START_43
-at_fn_group_banner 43 'exclude08.at:36' \
+#AT_STOP_49
+#AT_START_50
+at_fn_group_banner 50 'exclude08.at:36' \
   "--exclude-tag option" "                           " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "43. $at_setup_line: testing $at_desc ..."
+  $as_echo "50. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -11580,14 +14234,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_43
-#AT_START_44
-at_fn_group_banner 44 'exclude09.at:37' \
+#AT_STOP_50
+#AT_START_51
+at_fn_group_banner 51 'exclude09.at:37' \
   "--exclude-tag option and --listed-incremental" "  " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "44. $at_setup_line: testing $at_desc ..."
+  $as_echo "51. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -11651,14 +14305,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_44
-#AT_START_45
-at_fn_group_banner 45 'exclude10.at:38' \
+#AT_STOP_51
+#AT_START_52
+at_fn_group_banner 52 'exclude10.at:38' \
   "--exclude-tag option in incremental pass" "       " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "45. $at_setup_line: testing $at_desc ..."
+  $as_echo "52. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -11745,14 +14399,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_45
-#AT_START_46
-at_fn_group_banner 46 'exclude11.at:36' \
+#AT_STOP_52
+#AT_START_53
+at_fn_group_banner 53 'exclude11.at:36' \
   "--exclude-tag-under option" "                     " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "46. $at_setup_line: testing $at_desc ..."
+  $as_echo "53. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -12001,14 +14655,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_46
-#AT_START_47
-at_fn_group_banner 47 'exclude12.at:37' \
+#AT_STOP_53
+#AT_START_54
+at_fn_group_banner 54 'exclude12.at:37' \
   "--exclude-tag-under and --listed-incremental" "   " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "47. $at_setup_line: testing $at_desc ..."
+  $as_echo "54. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -12071,14 +14725,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_47
-#AT_START_48
-at_fn_group_banner 48 'exclude13.at:39' \
+#AT_STOP_54
+#AT_START_55
+at_fn_group_banner 55 'exclude13.at:39' \
   "--exclude-tag-under option in incremental pass" " " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "48. $at_setup_line: testing $at_desc ..."
+  $as_echo "55. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -12164,14 +14818,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_48
-#AT_START_49
-at_fn_group_banner 49 'exclude14.at:36' \
+#AT_STOP_55
+#AT_START_56
+at_fn_group_banner 56 'exclude14.at:36' \
   "--exclude-tag-all option" "                       " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "49. $at_setup_line: testing $at_desc ..."
+  $as_echo "56. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -12415,14 +15069,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_49
-#AT_START_50
-at_fn_group_banner 50 'exclude15.at:36' \
+#AT_STOP_56
+#AT_START_57
+at_fn_group_banner 57 'exclude15.at:36' \
   "--exclude-tag-all and --listed-incremental" "     " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "50. $at_setup_line: testing $at_desc ..."
+  $as_echo "57. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -12484,14 +15138,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_50
-#AT_START_51
-at_fn_group_banner 51 'exclude16.at:38' \
+#AT_STOP_57
+#AT_START_58
+at_fn_group_banner 58 'exclude16.at:38' \
   "--exclude-tag-all option in incremental pass" "   " 7
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "51. $at_setup_line: testing $at_desc ..."
+  $as_echo "58. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -12576,14 +15230,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_51
-#AT_START_52
-at_fn_group_banner 52 'delete01.at:23' \
+#AT_STOP_58
+#AT_START_59
+at_fn_group_banner 59 'delete01.at:24' \
   "deleting a member after a big one" "              " 8
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "52. $at_setup_line: testing $at_desc ..."
+  $as_echo "59. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -12591,7 +15245,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/delete01.at:26:
+$as_echo "$at_srcdir/delete01.at:27:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -12605,7 +15259,7 @@ genfile -l 1024 --file file2
 tar cf archive file1 file2
 tar f archive --delete file2
 tar tf archive)"
-at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:27"
 ( $at_check_trace;
 mkdir v7
 (cd v7
@@ -12627,12 +15281,12 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/delete01.at:26:
+$as_echo "$at_srcdir/delete01.at:27:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -12646,7 +15300,7 @@ genfile -l 1024 --file file2
 tar cf archive file1 file2
 tar f archive --delete file2
 tar tf archive)"
-at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:27"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -12668,12 +15322,12 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/delete01.at:26:
+$as_echo "$at_srcdir/delete01.at:27:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -12687,7 +15341,7 @@ genfile -l 1024 --file file2
 tar cf archive file1 file2
 tar f archive --delete file2
 tar tf archive)"
-at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:27"
 ( $at_check_trace;
 mkdir ustar
 (cd ustar
@@ -12709,12 +15363,12 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/delete01.at:26:
+$as_echo "$at_srcdir/delete01.at:27:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -12728,7 +15382,7 @@ genfile -l 1024 --file file2
 tar cf archive file1 file2
 tar f archive --delete file2
 tar tf archive)"
-at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:27"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -12750,12 +15404,12 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/delete01.at:26:
+$as_echo "$at_srcdir/delete01.at:27:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -12769,7 +15423,7 @@ genfile -l 1024 --file file2
 tar cf archive file1 file2
 tar f archive --delete file2
 tar tf archive)"
-at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:27"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -12791,7 +15445,7 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -12802,14 +15456,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_52
-#AT_START_53
-at_fn_group_banner 53 'delete02.at:23' \
+#AT_STOP_59
+#AT_START_60
+at_fn_group_banner 60 'delete02.at:24' \
   "deleting a member from stdin archive" "           " 8
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "53. $at_setup_line: testing $at_desc ..."
+  $as_echo "60. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -12817,7 +15471,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/delete02.at:26:
+$as_echo "$at_srcdir/delete02.at:27:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -12834,7 +15488,7 @@ tar tf archive
 cat archive | tar f - --delete 2 > archive2
 echo separator
 tar tf archive2)"
-at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:27"
 ( $at_check_trace;
 mkdir v7
 (cd v7
@@ -12864,12 +15518,12 @@ separator
 3
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/delete02.at:26:
+$as_echo "$at_srcdir/delete02.at:27:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -12886,7 +15540,7 @@ tar tf archive
 cat archive | tar f - --delete 2 > archive2
 echo separator
 tar tf archive2)"
-at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:27"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -12916,12 +15570,12 @@ separator
 3
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/delete02.at:26:
+$as_echo "$at_srcdir/delete02.at:27:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -12938,7 +15592,7 @@ tar tf archive
 cat archive | tar f - --delete 2 > archive2
 echo separator
 tar tf archive2)"
-at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:27"
 ( $at_check_trace;
 mkdir ustar
 (cd ustar
@@ -12968,12 +15622,12 @@ separator
 3
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/delete02.at:26:
+$as_echo "$at_srcdir/delete02.at:27:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -12990,7 +15644,7 @@ tar tf archive
 cat archive | tar f - --delete 2 > archive2
 echo separator
 tar tf archive2)"
-at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:27"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -13020,12 +15674,12 @@ separator
 3
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/delete02.at:26:
+$as_echo "$at_srcdir/delete02.at:27:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -13042,7 +15696,7 @@ tar tf archive
 cat archive | tar f - --delete 2 > archive2
 echo separator
 tar tf archive2)"
-at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:27"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -13072,7 +15726,7 @@ separator
 3
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -13083,14 +15737,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_53
-#AT_START_54
-at_fn_group_banner 54 'delete03.at:21' \
+#AT_STOP_60
+#AT_START_61
+at_fn_group_banner 61 'delete03.at:21' \
   "deleting members with long names" "               " 8
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "54. $at_setup_line: testing $at_desc ..."
+  $as_echo "61. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -13281,14 +15935,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_54
-#AT_START_55
-at_fn_group_banner 55 'delete04.at:23' \
+#AT_STOP_61
+#AT_START_62
+at_fn_group_banner 62 'delete04.at:24' \
   "deleting a large last member" "                   " 8
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "55. $at_setup_line: testing $at_desc ..."
+  $as_echo "62. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -13296,7 +15950,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/delete04.at:26:
+$as_echo "$at_srcdir/delete04.at:27:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -13319,7 +15973,7 @@ tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
 tar f archive --delete file10
 tar tf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:27"
 ( $at_check_trace;
 mkdir v7
 (cd v7
@@ -13358,12 +16012,12 @@ file8
 file9
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/delete04.at:26:
+$as_echo "$at_srcdir/delete04.at:27:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -13386,7 +16040,7 @@ tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
 tar f archive --delete file10
 tar tf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:27"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -13425,12 +16079,12 @@ file8
 file9
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/delete04.at:26:
+$as_echo "$at_srcdir/delete04.at:27:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -13453,7 +16107,7 @@ tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
 tar f archive --delete file10
 tar tf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:27"
 ( $at_check_trace;
 mkdir ustar
 (cd ustar
@@ -13492,12 +16146,12 @@ file8
 file9
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/delete04.at:26:
+$as_echo "$at_srcdir/delete04.at:27:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -13520,7 +16174,7 @@ tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
 tar f archive --delete file10
 tar tf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:27"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -13559,12 +16213,12 @@ file8
 file9
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/delete04.at:26:
+$as_echo "$at_srcdir/delete04.at:27:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -13587,7 +16241,7 @@ tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
 tar f archive --delete file10
 tar tf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:27"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -13626,7 +16280,7 @@ file8
 file9
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -13637,14 +16291,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_55
-#AT_START_56
-at_fn_group_banner 56 'delete05.at:27' \
+#AT_STOP_62
+#AT_START_63
+at_fn_group_banner 63 'delete05.at:28' \
   "deleting non-existing member" "                   " 8
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "56. $at_setup_line: testing $at_desc ..."
+  $as_echo "63. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -13652,7 +16306,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/delete05.at:30:
+$as_echo "$at_srcdir/delete05.at:31:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -13670,7 +16324,7 @@ tar cf archive en to
 tar --file archive --blocking-factor=20 --delete tre
 tar tf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30"
+at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:31"
 ( $at_check_trace;
 mkdir v7
 (cd v7
@@ -13700,12 +16354,12 @@ echo >>"$at_stdout"; $as_echo "en
 to
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:30"
+at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:31"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/delete05.at:30:
+$as_echo "$at_srcdir/delete05.at:31:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -13723,7 +16377,7 @@ tar cf archive en to
 tar --file archive --blocking-factor=20 --delete tre
 tar tf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30"
+at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:31"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -13753,12 +16407,12 @@ echo >>"$at_stdout"; $as_echo "en
 to
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:30"
+at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:31"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/delete05.at:30:
+$as_echo "$at_srcdir/delete05.at:31:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -13776,7 +16430,7 @@ tar cf archive en to
 tar --file archive --blocking-factor=20 --delete tre
 tar tf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30"
+at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:31"
 ( $at_check_trace;
 mkdir ustar
 (cd ustar
@@ -13806,12 +16460,12 @@ echo >>"$at_stdout"; $as_echo "en
 to
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:30"
+at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:31"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/delete05.at:30:
+$as_echo "$at_srcdir/delete05.at:31:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -13829,7 +16483,7 @@ tar cf archive en to
 tar --file archive --blocking-factor=20 --delete tre
 tar tf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30"
+at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:31"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -13859,12 +16513,12 @@ echo >>"$at_stdout"; $as_echo "en
 to
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:30"
+at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:31"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/delete05.at:30:
+$as_echo "$at_srcdir/delete05.at:31:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -13882,7 +16536,7 @@ tar cf archive en to
 tar --file archive --blocking-factor=20 --delete tre
 tar tf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30"
+at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:31"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -13912,7 +16566,7 @@ echo >>"$at_stdout"; $as_echo "en
 to
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:30"
+at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:31"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -13923,14 +16577,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_56
-#AT_START_57
-at_fn_group_banner 57 'extrac01.at:23' \
+#AT_STOP_63
+#AT_START_64
+at_fn_group_banner 64 'extrac01.at:24' \
   "extract over an existing directory" "             " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "57. $at_setup_line: testing $at_desc ..."
+  $as_echo "64. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -13938,7 +16592,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/extrac01.at:26:
+$as_echo "$at_srcdir/extrac01.at:27:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -13952,7 +16606,7 @@ touch directory/file
 tar cf archive directory || exit 1
 tar xf archive --warning=no-timestamp || exit 1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:27"
 ( $at_check_trace;
 mkdir v7
 (cd v7
@@ -13972,12 +16626,12 @@ at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/extrac01.at:26:
+$as_echo "$at_srcdir/extrac01.at:27:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -13991,7 +16645,7 @@ touch directory/file
 tar cf archive directory || exit 1
 tar xf archive --warning=no-timestamp || exit 1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:27"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -14011,12 +16665,12 @@ at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/extrac01.at:26:
+$as_echo "$at_srcdir/extrac01.at:27:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -14030,7 +16684,7 @@ touch directory/file
 tar cf archive directory || exit 1
 tar xf archive --warning=no-timestamp || exit 1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:27"
 ( $at_check_trace;
 mkdir ustar
 (cd ustar
@@ -14050,12 +16704,12 @@ at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/extrac01.at:26:
+$as_echo "$at_srcdir/extrac01.at:27:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -14069,7 +16723,7 @@ touch directory/file
 tar cf archive directory || exit 1
 tar xf archive --warning=no-timestamp || exit 1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:27"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -14089,12 +16743,12 @@ at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/extrac01.at:26:
+$as_echo "$at_srcdir/extrac01.at:27:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -14108,7 +16762,7 @@ touch directory/file
 tar cf archive directory || exit 1
 tar xf archive --warning=no-timestamp || exit 1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:27"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -14128,7 +16782,7 @@ at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -14139,14 +16793,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_57
-#AT_START_58
-at_fn_group_banner 58 'extrac02.at:23' \
+#AT_STOP_64
+#AT_START_65
+at_fn_group_banner 65 'extrac02.at:24' \
   "extracting symlinks over an existing file" "      " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "58. $at_setup_line: testing $at_desc ..."
+  $as_echo "65. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -14156,7 +16810,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/extrac02.at:28:
+$as_echo "$at_srcdir/extrac02.at:29:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -14172,7 +16826,7 @@ rm link
 touch link
 tar xf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:29"
 ( $at_check_trace;
 mkdir v7
 (cd v7
@@ -14194,12 +16848,12 @@ at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
+at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/extrac02.at:28:
+$as_echo "$at_srcdir/extrac02.at:29:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -14215,7 +16869,7 @@ rm link
 touch link
 tar xf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:29"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -14237,12 +16891,12 @@ at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
+at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/extrac02.at:28:
+$as_echo "$at_srcdir/extrac02.at:29:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -14258,7 +16912,7 @@ rm link
 touch link
 tar xf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:29"
 ( $at_check_trace;
 mkdir ustar
 (cd ustar
@@ -14280,12 +16934,12 @@ at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
+at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/extrac02.at:28:
+$as_echo "$at_srcdir/extrac02.at:29:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -14301,7 +16955,7 @@ rm link
 touch link
 tar xf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:29"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -14323,12 +16977,12 @@ at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
+at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/extrac02.at:28:
+$as_echo "$at_srcdir/extrac02.at:29:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -14344,7 +16998,7 @@ rm link
 touch link
 tar xf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:29"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -14366,7 +17020,7 @@ at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
+at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -14377,14 +17031,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_58
-#AT_START_59
-at_fn_group_banner 59 'extrac03.at:23' \
+#AT_STOP_65
+#AT_START_66
+at_fn_group_banner 66 'extrac03.at:23' \
   "extraction loops" "                               " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "59. $at_setup_line: testing $at_desc ..."
+  $as_echo "66. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -14603,14 +17257,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_59
-#AT_START_60
-at_fn_group_banner 60 'extrac04.at:23' \
+#AT_STOP_66
+#AT_START_67
+at_fn_group_banner 67 'extrac04.at:24' \
   "extract + fnmatch" "                              " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "60. $at_setup_line: testing $at_desc ..."
+  $as_echo "67. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -14618,7 +17272,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/extrac04.at:26:
+$as_echo "$at_srcdir/extrac04.at:27:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -14643,7 +17297,7 @@ tar -tf archive \\
   --exclude='d*/*1' \\
   --exclude='d*/s*/*2' | sort
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26"
+at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:27"
 ( $at_check_trace;
 mkdir v7
 (cd v7
@@ -14678,12 +17332,12 @@ directory/file2
 directory/subdirectory/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/extrac04.at:26:
+$as_echo "$at_srcdir/extrac04.at:27:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -14708,7 +17362,7 @@ tar -tf archive \\
   --exclude='d*/*1' \\
   --exclude='d*/s*/*2' | sort
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26"
+at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:27"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -14743,12 +17397,12 @@ directory/file2
 directory/subdirectory/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/extrac04.at:26:
+$as_echo "$at_srcdir/extrac04.at:27:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -14773,7 +17427,7 @@ tar -tf archive \\
   --exclude='d*/*1' \\
   --exclude='d*/s*/*2' | sort
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26"
+at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:27"
 ( $at_check_trace;
 mkdir ustar
 (cd ustar
@@ -14808,12 +17462,12 @@ directory/file2
 directory/subdirectory/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/extrac04.at:26:
+$as_echo "$at_srcdir/extrac04.at:27:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -14838,7 +17492,7 @@ tar -tf archive \\
   --exclude='d*/*1' \\
   --exclude='d*/s*/*2' | sort
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26"
+at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:27"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -14873,12 +17527,12 @@ directory/file2
 directory/subdirectory/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/extrac04.at:26:
+$as_echo "$at_srcdir/extrac04.at:27:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -14903,7 +17557,7 @@ tar -tf archive \\
   --exclude='d*/*1' \\
   --exclude='d*/s*/*2' | sort
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26"
+at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:27"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -14938,7 +17592,7 @@ directory/file2
 directory/subdirectory/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -14949,14 +17603,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_60
-#AT_START_61
-at_fn_group_banner 61 'extrac05.at:30' \
+#AT_STOP_67
+#AT_START_68
+at_fn_group_banner 68 'extrac05.at:31' \
   "extracting selected members from pax" "           " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "61. $at_setup_line: testing $at_desc ..."
+  $as_echo "68. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -14970,7 +17624,7 @@ _ATEOF
 
 
   { set +x
-$as_echo "$at_srcdir/extrac05.at:38:
+$as_echo "$at_srcdir/extrac05.at:39:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -14994,7 +17648,7 @@ tar xvfT ../archive ../../list --warning=no-timestamp || exit 1
 
 cd ..
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "extrac05.at:38"
+at_fn_check_prepare_notrace 'an embedded newline' "extrac05.at:39"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -15027,7 +17681,7 @@ echo >>"$at_stdout"; $as_echo "jeden
 cztery
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/extrac05.at:38"
+at_fn_check_status 0 $at_status "$at_srcdir/extrac05.at:39"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -15038,14 +17692,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_61
-#AT_START_62
-at_fn_group_banner 62 'extrac06.at:34' \
+#AT_STOP_68
+#AT_START_69
+at_fn_group_banner 69 'extrac06.at:34' \
   "mode of extracted directories" "                  " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "62. $at_setup_line: testing $at_desc ..."
+  $as_echo "69. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -15509,14 +18163,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_62
-#AT_START_63
-at_fn_group_banner 63 'extrac07.at:27' \
+#AT_STOP_69
+#AT_START_70
+at_fn_group_banner 70 'extrac07.at:27' \
   "extracting symlinks to a read-only dir" "         " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "63. $at_setup_line: testing $at_desc ..."
+  $as_echo "70. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -15617,14 +18271,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_63
-#AT_START_64
-at_fn_group_banner 64 'extrac08.at:33' \
+#AT_STOP_70
+#AT_START_71
+at_fn_group_banner 71 'extrac08.at:33' \
   "restoring mode on existing directory" "           " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "64. $at_setup_line: testing $at_desc ..."
+  $as_echo "71. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -15893,14 +18547,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_64
-#AT_START_65
-at_fn_group_banner 65 'extrac09.at:34' \
+#AT_STOP_71
+#AT_START_72
+at_fn_group_banner 72 'extrac09.at:34' \
   "extracting even when . and .. are unreadable" "   " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "65. $at_setup_line: testing $at_desc ..."
+  $as_echo "72. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -15993,14 +18647,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_65
-#AT_START_66
-at_fn_group_banner 66 'extrac10.at:29' \
+#AT_STOP_72
+#AT_START_73
+at_fn_group_banner 73 'extrac10.at:29' \
   "-C and delayed setting of metadata" "             " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "66. $at_setup_line: testing $at_desc ..."
+  $as_echo "73. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -16061,14 +18715,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_66
-#AT_START_67
-at_fn_group_banner 67 'extrac11.at:25' \
+#AT_STOP_73
+#AT_START_74
+at_fn_group_banner 74 'extrac11.at:25' \
   "scarce file descriptors" "                        " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "67. $at_setup_line: testing $at_desc ..."
+  $as_echo "74. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -16221,14 +18875,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_67
-#AT_START_68
-at_fn_group_banner 68 'extrac12.at:25' \
+#AT_STOP_74
+#AT_START_75
+at_fn_group_banner 75 'extrac12.at:25' \
   "extract dot permissions" "                        " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "68. $at_setup_line: testing $at_desc ..."
+  $as_echo "75. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -16291,14 +18945,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_68
-#AT_START_69
-at_fn_group_banner 69 'extrac13.at:26' \
+#AT_STOP_75
+#AT_START_76
+at_fn_group_banner 76 'extrac13.at:26' \
   "extract over symlinks" "                          " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "69. $at_setup_line: testing $at_desc ..."
+  $as_echo "76. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -16387,14 +19041,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_69
-#AT_START_70
-at_fn_group_banner 70 'extrac14.at:25' \
+#AT_STOP_76
+#AT_START_77
+at_fn_group_banner 77 'extrac14.at:25' \
   "extract -C symlink" "                             " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "70. $at_setup_line: testing $at_desc ..."
+  $as_echo "77. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -16451,14 +19105,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_70
-#AT_START_71
-at_fn_group_banner 71 'extrac15.at:25' \
+#AT_STOP_77
+#AT_START_78
+at_fn_group_banner 78 'extrac15.at:25' \
   "extract parent mkdir failure" "                   " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "71. $at_setup_line: testing $at_desc ..."
+  $as_echo "78. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -16543,14 +19197,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_71
-#AT_START_72
-at_fn_group_banner 72 'extrac16.at:26' \
+#AT_STOP_78
+#AT_START_79
+at_fn_group_banner 79 'extrac16.at:26' \
   "extract empty directory with -C" "                " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "72. $at_setup_line: testing $at_desc ..."
+  $as_echo "79. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -16605,14 +19259,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_72
-#AT_START_73
-at_fn_group_banner 73 'extrac17.at:21' \
+#AT_STOP_79
+#AT_START_80
+at_fn_group_banner 80 'extrac17.at:21' \
   "name matching/transformation ordering" "          " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "73. $at_setup_line: testing $at_desc ..."
+  $as_echo "80. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -16881,14 +19535,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_73
-#AT_START_74
-at_fn_group_banner 74 'extrac18.at:34' \
+#AT_STOP_80
+#AT_START_81
+at_fn_group_banner 81 'extrac18.at:34' \
   "keep-old-files" "                                 " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "74. $at_setup_line: testing $at_desc ..."
+  $as_echo "81. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -17227,14 +19881,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_74
-#AT_START_75
-at_fn_group_banner 75 'extrac19.at:21' \
+#AT_STOP_81
+#AT_START_82
+at_fn_group_banner 82 'extrac19.at:21' \
   "skip-old-files" "                                 " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "75. $at_setup_line: testing $at_desc ..."
+  $as_echo "82. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -17558,14 +20212,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_75
-#AT_START_76
-at_fn_group_banner 76 'backup01.at:33' \
+#AT_STOP_82
+#AT_START_83
+at_fn_group_banner 83 'backup01.at:33' \
   "extracting existing dir with --backup" "          " 9
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "76. $at_setup_line: testing $at_desc ..."
+  $as_echo "83. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -17809,14 +20463,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_76
-#AT_START_77
-at_fn_group_banner 77 'label01.at:21' \
+#AT_STOP_83
+#AT_START_84
+at_fn_group_banner 84 'label01.at:21' \
   "single-volume label" "                            " 10
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "77. $at_setup_line: testing $at_desc ..."
+  $as_echo "84. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -17959,14 +20613,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_77
-#AT_START_78
-at_fn_group_banner 78 'label02.at:21' \
+#AT_STOP_84
+#AT_START_85
+at_fn_group_banner 85 'label02.at:21' \
   "multi-volume label" "                             " 10
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "78. $at_setup_line: testing $at_desc ..."
+  $as_echo "85. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -18124,14 +20778,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_78
-#AT_START_79
-at_fn_group_banner 79 'label03.at:27' \
+#AT_STOP_85
+#AT_START_86
+at_fn_group_banner 86 'label03.at:27' \
   "test-label option" "                              " 10
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "79. $at_setup_line: testing $at_desc ..."
+  $as_echo "86. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -18469,14 +21123,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_79
-#AT_START_80
-at_fn_group_banner 80 'label04.at:27' \
+#AT_STOP_86
+#AT_START_87
+at_fn_group_banner 87 'label04.at:27' \
   "label with non-create option" "                   " 10
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "80. $at_setup_line: testing $at_desc ..."
+  $as_echo "87. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -18664,14 +21318,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_80
-#AT_START_81
-at_fn_group_banner 81 'label05.at:24' \
+#AT_STOP_87
+#AT_START_88
+at_fn_group_banner 88 'label05.at:24' \
   "label with non-create option" "                   " 10
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "81. $at_setup_line: testing $at_desc ..."
+  $as_echo "88. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -18859,14 +21513,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_81
-#AT_START_82
-at_fn_group_banner 82 'incremental.at:23' \
+#AT_STOP_88
+#AT_START_89
+at_fn_group_banner 89 'incremental.at:23' \
   "incremental" "                                    " 11
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "82. $at_setup_line: testing $at_desc ..."
+  $as_echo "89. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -18883,6 +21537,8 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
+
 mkdir structure
 echo x >structure/file
 
@@ -18920,6 +21576,8 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
+
 mkdir structure
 echo x >structure/file
 
@@ -18971,6 +21629,8 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
+
 mkdir structure
 echo x >structure/file
 
@@ -19008,6 +21668,8 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
+
 mkdir structure
 echo x >structure/file
 
@@ -19059,6 +21721,8 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
+
 mkdir structure
 echo x >structure/file
 
@@ -19096,6 +21760,8 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
+
 mkdir structure
 echo x >structure/file
 
@@ -19144,14 +21810,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_82
-#AT_START_83
-at_fn_group_banner 83 'incr01.at:27' \
+#AT_STOP_89
+#AT_START_90
+at_fn_group_banner 90 'incr01.at:27' \
   "restore broken symlinks from incremental" "       " 11
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "83. $at_setup_line: testing $at_desc ..."
+  $as_echo "90. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -19168,6 +21834,8 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
+
 mkdir directory
 \$as_ln_s foo directory/bar
 
@@ -19191,6 +21859,8 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
+
 mkdir directory
 $as_ln_s foo directory/bar
 
@@ -19229,6 +21899,8 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
+
 mkdir directory
 \$as_ln_s foo directory/bar
 
@@ -19252,6 +21924,8 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
+
 mkdir directory
 $as_ln_s foo directory/bar
 
@@ -19290,6 +21964,8 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
+
 mkdir directory
 \$as_ln_s foo directory/bar
 
@@ -19313,6 +21989,8 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
+
 mkdir directory
 $as_ln_s foo directory/bar
 
@@ -19348,14 +22026,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_83
-#AT_START_84
-at_fn_group_banner 84 'incr02.at:32' \
+#AT_STOP_90
+#AT_START_91
+at_fn_group_banner 91 'incr02.at:32' \
   "restoring timestamps from incremental" "          " 11
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "84. $at_setup_line: testing $at_desc ..."
+  $as_echo "91. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -19372,6 +22050,7 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 # Create directory structure
 mkdir dir
 mkdir dir/subdir1
@@ -19418,6 +22097,7 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 # Create directory structure
 mkdir dir
 mkdir dir/subdir1
@@ -19473,6 +22153,7 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 # Create directory structure
 mkdir dir
 mkdir dir/subdir1
@@ -19519,6 +22200,7 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 # Create directory structure
 mkdir dir
 mkdir dir/subdir1
@@ -19574,6 +22256,7 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 # Create directory structure
 mkdir dir
 mkdir dir/subdir1
@@ -19620,6 +22303,7 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 # Create directory structure
 mkdir dir
 mkdir dir/subdir1
@@ -19672,14 +22356,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_84
-#AT_START_85
-at_fn_group_banner 85 'listed01.at:26' \
+#AT_STOP_91
+#AT_START_92
+at_fn_group_banner 92 'listed01.at:27' \
   "--listed for individual files" "                  " 11
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "85. $at_setup_line: testing $at_desc ..."
+  $as_echo "92. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -19687,7 +22371,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/listed01.at:29:
+$as_echo "$at_srcdir/listed01.at:30:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -19696,6 +22380,8 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
+
 mkdir directory
 genfile --length 10240 --pattern zeros --file directory/file1
 # Let the things settle
@@ -19721,7 +22407,7 @@ tar --create \\
 
 tar tf archive.2 || exit 1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "listed01.at:29"
+at_fn_check_prepare_notrace 'an embedded newline' "listed01.at:30"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -19731,6 +22417,8 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
+
 mkdir directory
 genfile --length 10240 --pattern zeros --file directory/file1
 # Let the things settle
@@ -19765,12 +22453,12 @@ separator
 directory/file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/listed01.at:29"
+at_fn_check_status 0 $at_status "$at_srcdir/listed01.at:30"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/listed01.at:29:
+$as_echo "$at_srcdir/listed01.at:30:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -19779,6 +22467,8 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
+
 mkdir directory
 genfile --length 10240 --pattern zeros --file directory/file1
 # Let the things settle
@@ -19804,7 +22494,7 @@ tar --create \\
 
 tar tf archive.2 || exit 1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "listed01.at:29"
+at_fn_check_prepare_notrace 'an embedded newline' "listed01.at:30"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -19814,6 +22504,8 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
+
 mkdir directory
 genfile --length 10240 --pattern zeros --file directory/file1
 # Let the things settle
@@ -19848,7 +22540,7 @@ separator
 directory/file2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/listed01.at:29"
+at_fn_check_status 0 $at_status "$at_srcdir/listed01.at:30"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -19859,14 +22551,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_85
-#AT_START_86
-at_fn_group_banner 86 'listed02.at:28' \
+#AT_STOP_92
+#AT_START_93
+at_fn_group_banner 93 'listed02.at:29' \
   "working --listed" "                               " 11
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "86. $at_setup_line: testing $at_desc ..."
+  $as_echo "93. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -19874,7 +22566,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/listed02.at:31:
+$as_echo "$at_srcdir/listed02.at:32:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -19883,6 +22575,7 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
@@ -19942,7 +22635,7 @@ tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null
 echo Final files:
 find tart -print | sort 2>/dev/null
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "listed02.at:31"
+at_fn_check_prepare_notrace 'a `...` command substitution' "listed02.at:32"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -19952,6 +22645,7 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 test -z "`sort < /dev/null 2>&1`" || exit 77
 
@@ -20081,12 +22775,12 @@ tart/c2/ca2
 tart/c2/ca3
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/listed02.at:31"
+at_fn_check_status 0 $at_status "$at_srcdir/listed02.at:32"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/listed02.at:31:
+$as_echo "$at_srcdir/listed02.at:32:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -20095,6 +22789,7 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
@@ -20154,7 +22849,7 @@ tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null
 echo Final files:
 find tart -print | sort 2>/dev/null
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "listed02.at:31"
+at_fn_check_prepare_notrace 'a `...` command substitution' "listed02.at:32"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -20164,6 +22859,7 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 test -z "`sort < /dev/null 2>&1`" || exit 77
 
@@ -20293,7 +22989,7 @@ tart/c2/ca2
 tart/c2/ca3
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/listed02.at:31"
+at_fn_check_status 0 $at_status "$at_srcdir/listed02.at:32"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -20304,14 +23000,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_86
-#AT_START_87
-at_fn_group_banner 87 'listed03.at:24' \
+#AT_STOP_93
+#AT_START_94
+at_fn_group_banner 94 'listed03.at:24' \
   "incremental dump when the parent directory is unreadable" "" 11
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "87. $at_setup_line: testing $at_desc ..."
+  $as_echo "94. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -20328,6 +23024,7 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 echo \"test\" > \$\$
 chmod 0 \$\$
@@ -20344,9 +23041,13 @@ genfile --file dir/sub/a/file
 cd dir/sub
 
 chmod a-r ..
-tar -c -f archive.tar --listed-incremental=db.1 -v a
+tar -c -f archive.tar --listed-incremental=db.1 -v a 2>err
 status=\$?
 chmod a+r ..
+if test \$status -eq 2; then
+  grep '^tar: \\.: Cannot getcwd' err >/dev/null 2>&1 && exit 77
+fi
+cat err >&2
 exit \$status
 )"
 at_fn_check_prepare_notrace 'an embedded newline' "listed03.at:27"
@@ -20359,6 +23060,7 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 echo "test" > $$
 chmod 0 $$
@@ -20375,9 +23077,13 @@ genfile --file dir/sub/a/file
 cd dir/sub
 
 chmod a-r ..
-tar -c -f archive.tar --listed-incremental=db.1 -v a
+tar -c -f archive.tar --listed-incremental=db.1 -v a 2>err
 status=$?
 chmod a+r ..
+if test $status -eq 2; then
+  grep '^tar: \.: Cannot getcwd' err >/dev/null 2>&1 && exit 77
+fi
+cat err >&2
 exit $status
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
@@ -20401,14 +23107,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_87
-#AT_START_88
-at_fn_group_banner 88 'listed04.at:26' \
+#AT_STOP_94
+#AT_START_95
+at_fn_group_banner 95 'listed04.at:26' \
   "--listed-incremental and --one-file-system" "     " 11
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "88. $at_setup_line: testing $at_desc ..."
+  $as_echo "95. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -20425,7 +23131,7 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
-
+ckmtime || exit 77
 mkdir dir
 echo a >dir/a
 echo b >dir/b
@@ -20443,7 +23149,7 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
-
+ckmtime || exit 77
 mkdir dir
 echo a >dir/a
 echo b >dir/b
@@ -20476,14 +23182,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_88
-#AT_START_89
-at_fn_group_banner 89 'listed05.at:33' \
+#AT_STOP_95
+#AT_START_96
+at_fn_group_banner 96 'listed05.at:33' \
   "--listed-incremental and remounted directories" " " 11
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "89. $at_setup_line: testing $at_desc ..."
+  $as_echo "96. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -20500,6 +23206,7 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 echo \"test\" > \$\$
 chmod 0 \$\$
@@ -20542,6 +23249,7 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 echo "test" > $$
 chmod 0 $$
@@ -20604,14 +23312,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_89
-#AT_START_90
-at_fn_group_banner 90 'incr03.at:28' \
+#AT_STOP_96
+#AT_START_97
+at_fn_group_banner 97 'incr03.at:29' \
   "renamed files in incrementals" "                  " 11
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "90. $at_setup_line: testing $at_desc ..."
+  $as_echo "97. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -20619,7 +23327,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/incr03.at:31:
+$as_echo "$at_srcdir/incr03.at:32:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -20628,6 +23336,7 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
@@ -20658,7 +23367,7 @@ echo Directory after second restore
 tar -xf archive.2 -g db --warning=no-timestamp
 find directory | sort
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "incr03.at:31"
+at_fn_check_prepare_notrace 'a `...` command substitution' "incr03.at:32"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -20668,6 +23377,7 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 test -z "`sort < /dev/null 2>&1`" || exit 77
 
@@ -20719,12 +23429,12 @@ directory/y
 directory/z
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/incr03.at:31"
+at_fn_check_status 0 $at_status "$at_srcdir/incr03.at:32"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/incr03.at:31:
+$as_echo "$at_srcdir/incr03.at:32:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -20733,6 +23443,7 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
@@ -20763,7 +23474,7 @@ echo Directory after second restore
 tar -xf archive.2 -g db --warning=no-timestamp
 find directory | sort
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "incr03.at:31"
+at_fn_check_prepare_notrace 'a `...` command substitution' "incr03.at:32"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -20773,6 +23484,7 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 test -z "`sort < /dev/null 2>&1`" || exit 77
 
@@ -20824,12 +23536,12 @@ directory/y
 directory/z
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/incr03.at:31"
+at_fn_check_status 0 $at_status "$at_srcdir/incr03.at:32"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/incr03.at:31:
+$as_echo "$at_srcdir/incr03.at:32:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -20838,6 +23550,7 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
@@ -20868,7 +23581,7 @@ echo Directory after second restore
 tar -xf archive.2 -g db --warning=no-timestamp
 find directory | sort
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "incr03.at:31"
+at_fn_check_prepare_notrace 'a `...` command substitution' "incr03.at:32"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -20878,6 +23591,7 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 test -z "`sort < /dev/null 2>&1`" || exit 77
 
@@ -20929,7 +23643,7 @@ directory/y
 directory/z
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/incr03.at:31"
+at_fn_check_status 0 $at_status "$at_srcdir/incr03.at:32"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -20940,14 +23654,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_90
-#AT_START_91
-at_fn_group_banner 91 'incr04.at:29' \
+#AT_STOP_97
+#AT_START_98
+at_fn_group_banner 98 'incr04.at:30' \
   "proper icontents initialization" "                " 11
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "91. $at_setup_line: testing $at_desc ..."
+  $as_echo "98. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -20957,7 +23671,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/incr04.at:34:
+$as_echo "$at_srcdir/incr04.at:35:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -20966,6 +23680,7 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 install-sh -d a/b >/dev/null  || exit 77
 awk 'BEGIN {
@@ -20981,7 +23696,7 @@ mv a/b a/c
 echo \"Incremental dump\"
 tar cvf a1.tar -g a.sna a
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "incr04.at:34"
+at_fn_check_prepare_notrace 'an embedded newline' "incr04.at:35"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -20991,6 +23706,7 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 install-sh -d a/b >/dev/null  || exit 77
 awk 'BEGIN {
 a/c/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/incr04.at:34"
+at_fn_check_status 0 $at_status "$at_srcdir/incr04.at:35"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/incr04.at:34:
+$as_echo "$at_srcdir/incr04.at:35:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -21178,6 +23894,7 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 install-sh -d a/b >/dev/null  || exit 77
 awk 'BEGIN {
@@ -21193,7 +23910,7 @@ mv a/b a/c
 echo \"Incremental dump\"
 tar cvf a1.tar -g a.sna a
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "incr04.at:34"
+at_fn_check_prepare_notrace 'an embedded newline' "incr04.at:35"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -21203,6 +23920,7 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 install-sh -d a/b >/dev/null  || exit 77
 awk 'BEGIN {
 a/c/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/incr04.at:34"
+at_fn_check_status 0 $at_status "$at_srcdir/incr04.at:35"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/incr04.at:34:
+$as_echo "$at_srcdir/incr04.at:35:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -21390,6 +24108,7 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 install-sh -d a/b >/dev/null  || exit 77
 awk 'BEGIN {
@@ -21405,7 +24124,7 @@ mv a/b a/c
 echo \"Incremental dump\"
 tar cvf a1.tar -g a.sna a
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "incr04.at:34"
+at_fn_check_prepare_notrace 'an embedded newline' "incr04.at:35"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -21415,6 +24134,7 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 install-sh -d a/b >/dev/null  || exit 77
 awk 'BEGIN {
@@ -21588,7 +24308,7 @@ a/
 a/c/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/incr04.at:34"
+at_fn_check_status 0 $at_status "$at_srcdir/incr04.at:35"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -21600,14 +24320,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_91
-#AT_START_92
-at_fn_group_banner 92 'incr05.at:21' \
+#AT_STOP_98
+#AT_START_99
+at_fn_group_banner 99 'incr05.at:21' \
   "incremental dumps with -C" "                      " 11
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "92. $at_setup_line: testing $at_desc ..."
+  $as_echo "99. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -21624,6 +24344,7 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 mkdir dir
 mkdir dir/sub
 genfile --file dir/file1
@@ -21646,6 +24367,7 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 mkdir dir
 mkdir dir/sub
 genfile --file dir/file1
@@ -21687,6 +24409,7 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 mkdir dir
 mkdir dir/sub
 genfile --file dir/file1
@@ -21709,6 +24432,7 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 mkdir dir
 mkdir dir/sub
 genfile --file dir/file1
@@ -21750,6 +24474,7 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 mkdir dir
 mkdir dir/sub
 genfile --file dir/file1
@@ -21772,6 +24497,7 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 mkdir dir
 mkdir dir/sub
 genfile --file dir/file1
@@ -21810,14 +24536,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_92
-#AT_START_93
-at_fn_group_banner 93 'incr06.at:21' \
+#AT_STOP_99
+#AT_START_100
+at_fn_group_banner 100 'incr06.at:21' \
   "incremental dumps of nested directories" "        " 11
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "93. $at_setup_line: testing $at_desc ..."
+  $as_echo "100. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -21834,6 +24560,7 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 mkdir dir
 mkdir dir/sub
 mkdir dir/sub/a
@@ -21865,6 +24592,7 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 mkdir dir
 mkdir dir/sub
 mkdir dir/sub/a
@@ -21936,6 +24664,7 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 mkdir dir
 mkdir dir/sub
 mkdir dir/sub/a
@@ -21967,6 +24696,7 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 mkdir dir
 mkdir dir/sub
 mkdir dir/sub/a
@@ -22038,6 +24768,7 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 mkdir dir
 mkdir dir/sub
 mkdir dir/sub/a
@@ -22069,6 +24800,7 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 mkdir dir
 mkdir dir/sub
 mkdir dir/sub/a
@@ -22137,14 +24869,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_93
-#AT_START_94
-at_fn_group_banner 94 'incr07.at:18' \
+#AT_STOP_100
+#AT_START_101
+at_fn_group_banner 101 'incr07.at:18' \
   "incremental restores with -C" "                   " 11
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "94. $at_setup_line: testing $at_desc ..."
+  $as_echo "101. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -22180,6 +24912,7 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 mkdir dirA
 echo 'a' > dirA/a
 echo 'a' > dirA/b
@@ -22226,6 +24959,7 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 mkdir dirA
 echo 'a' > dirA/a
 echo 'a' > dirA/b
@@ -22314,6 +25048,7 @@ TAR_OPTIONS=\"-H oldgnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 mkdir dirA
 echo 'a' > dirA/a
 echo 'a' > dirA/b
@@ -22360,6 +25095,7 @@ TAR_OPTIONS="-H oldgnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 mkdir dirA
 echo 'a' > dirA/a
 echo 'a' > dirA/b
@@ -22448,6 +25184,7 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 mkdir dirA
 echo 'a' > dirA/a
 echo 'a' > dirA/b
@@ -22494,6 +25231,7 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 mkdir dirA
 echo 'a' > dirA/a
 echo 'a' > dirA/b
@@ -22579,14 +25317,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_94
-#AT_START_95
-at_fn_group_banner 95 'incr08.at:38' \
+#AT_STOP_101
+#AT_START_102
+at_fn_group_banner 102 'incr08.at:38' \
   "filename normalization" "                         " 11
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "95. $at_setup_line: testing $at_desc ..."
+  $as_echo "102. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -22603,6 +25341,7 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
@@ -22632,6 +25371,7 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 test -z "`sort < /dev/null 2>&1`" || exit 77
 
@@ -22692,14 +25432,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_95
-#AT_START_96
-at_fn_group_banner 96 'incr09.at:26' \
+#AT_STOP_102
+#AT_START_103
+at_fn_group_banner 103 'incr09.at:26' \
   "incremental with alternating -C" "                " 11
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "96. $at_setup_line: testing $at_desc ..."
+  $as_echo "103. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -22716,6 +25456,7 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
 
@@ -22741,6 +25482,7 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+ckmtime || exit 77
 
 test -z "`sort < /dev/null 2>&1`" || exit 77
 
@@ -22794,14 +25536,238 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_96
-#AT_START_97
-at_fn_group_banner 97 'filerem01.at:36' \
+#AT_STOP_103
+#AT_START_104
+at_fn_group_banner 104 'incr10.at:18' \
+  "concatenated incremental archives (deletes)" "    " 11
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "104. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+# Description: Extraction from concatenated incremental archives
+# produced spurious error messages when trying to set file ownership
+# and permissions on deleted directories.
+# Reported by: Alex Efros <powerman@powerman.name>
+# References: <20150411224008.GO24600@home.power>
+#             http://lists.gnu.org/archive/html/bug-tar/2015-04/msg00003.html
+
+
+
+  { set +x
+$as_echo "$at_srcdir/incr10.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+ckmtime || exit 77
+mkdir in
+mkdir in/dir
+decho Level 0
+tar -cvf 1.tar -g snap -C in .
+rmdir in/dir
+decho Level 1
+tar -cvf 2.tar -g snap -C in .
+cp 1.tar full.tar
+decho Concat
+tar -A 2.tar -f full.tar -g /dev/null
+decho Extract
+mkdir out
+tar -xvf full.tar -g /dev/null -C out
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "incr10.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+ckmtime || exit 77
+mkdir in
+mkdir in/dir
+decho Level 0
+tar -cvf 1.tar -g snap -C in .
+rmdir in/dir
+decho Level 1
+tar -cvf 2.tar -g snap -C in .
+cp 1.tar full.tar
+decho Concat
+tar -A 2.tar -f full.tar -g /dev/null
+decho Extract
+mkdir out
+tar -xvf full.tar -g /dev/null -C out
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "Level 0
+tar: .: Directory is new
+tar: ./dir: Directory is new
+Level 1
+Concat
+Extract
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Level 0
+./
+./dir/
+Level 1
+./
+Concat
+Extract
+./
+./dir/
+./
+tar: Deleting './dir'
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr10.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_104
+#AT_START_105
+at_fn_group_banner 105 'incr11.at:25' \
+  "concatenated incremental archives (renames)" "    " 11
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "105. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/incr11.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+ckmtime || exit 77
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+
+install-sh -d data/dir >/dev/null && genfile --file data/dir/file || exit 77
+decho Level 0
+tar -cvf full.tar -g snap -C data .
+decho Level 1
+mv data/dir data/dir2
+tar -cvf incr.tar -g snap -C data .
+decho Concat
+cp full.tar full2.tar
+tar -A -f full2.tar incr.tar
+decho Extract
+mkdir out
+tar -xvf full2.tar -g /dev/null -C out
+decho List
+find out | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "incr11.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+ckmtime || exit 77
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+
+install-sh -d data/dir >/dev/null && genfile --file data/dir/file || exit 77
+decho Level 0
+tar -cvf full.tar -g snap -C data .
+decho Level 1
+mv data/dir data/dir2
+tar -cvf incr.tar -g snap -C data .
+decho Concat
+cp full.tar full2.tar
+tar -A -f full2.tar incr.tar
+decho Extract
+mkdir out
+tar -xvf full2.tar -g /dev/null -C out
+decho List
+find out | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo >>"$at_stderr"; $as_echo "Level 0
+tar: .: Directory is new
+tar: ./dir: Directory is new
+Level 1
+tar: ./dir2: Directory has been renamed from './dir'
+Concat
+Extract
+List
+" | \
+  $at_diff - "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "Level 0
+./
+./dir/
+./dir/file
+Level 1
+./
+./dir2/
+Concat
+Extract
+./
+./dir/
+./dir/file
+./
+./dir2/
+List
+out
+out/dir2
+out/dir2/file
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/incr11.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_105
+#AT_START_106
+at_fn_group_banner 106 'filerem01.at:36' \
   "file removed as we read it (ca. 22 seconds)" "    " 12
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "97. $at_setup_line: testing $at_desc ..."
+  $as_echo "106. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -22966,14 +25932,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_97
-#AT_START_98
-at_fn_group_banner 98 'filerem02.at:26' \
+#AT_STOP_106
+#AT_START_107
+at_fn_group_banner 107 'filerem02.at:26' \
   "toplevel file removed (ca. 24 seconds)" "         " 12
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "98. $at_setup_line: testing $at_desc ..."
+  $as_echo "107. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -23098,14 +26064,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_98
-#AT_START_99
-at_fn_group_banner 99 'rename01.at:24' \
+#AT_STOP_107
+#AT_START_108
+at_fn_group_banner 108 'rename01.at:25' \
   "renamed dirs in incrementals" "                   " 13
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "99. $at_setup_line: testing $at_desc ..."
+  $as_echo "108. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -23113,7 +26079,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/rename01.at:27:
+$as_echo "$at_srcdir/rename01.at:28:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -23153,7 +26119,7 @@ echo Begin directory listing 2
 find foo | sort
 echo End directory listing 2
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "rename01.at:27"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename01.at:28"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -23227,12 +26193,12 @@ foo/file2
 End directory listing 2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/rename01.at:27"
+at_fn_check_status 0 $at_status "$at_srcdir/rename01.at:28"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/rename01.at:27:
+$as_echo "$at_srcdir/rename01.at:28:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -23272,7 +26238,7 @@ echo Begin directory listing 2
 find foo | sort
 echo End directory listing 2
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "rename01.at:27"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename01.at:28"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -23346,12 +26312,12 @@ foo/file2
 End directory listing 2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/rename01.at:27"
+at_fn_check_status 0 $at_status "$at_srcdir/rename01.at:28"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/rename01.at:27:
+$as_echo "$at_srcdir/rename01.at:28:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -23391,7 +26357,7 @@ echo Begin directory listing 2
 find foo | sort
 echo End directory listing 2
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "rename01.at:27"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename01.at:28"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -23465,7 +26431,7 @@ foo/file2
 End directory listing 2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/rename01.at:27"
+at_fn_check_status 0 $at_status "$at_srcdir/rename01.at:28"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -23476,14 +26442,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_99
-#AT_START_100
-at_fn_group_banner 100 'rename02.at:24' \
+#AT_STOP_108
+#AT_START_109
+at_fn_group_banner 109 'rename02.at:25' \
   "move between hierarchies" "                       " 13
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "100. $at_setup_line: testing $at_desc ..."
+  $as_echo "109. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -23491,7 +26457,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/rename02.at:27:
+$as_echo "$at_srcdir/rename02.at:28:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -23535,7 +26501,7 @@ echo Begin directory listing 2
 find foo | sort
 echo End directory listing 2
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "rename02.at:27"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename02.at:28"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -23624,12 +26590,12 @@ foo/file2
 End directory listing 2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/rename02.at:27"
+at_fn_check_status 0 $at_status "$at_srcdir/rename02.at:28"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/rename02.at:27:
+$as_echo "$at_srcdir/rename02.at:28:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -23673,7 +26639,7 @@ echo Begin directory listing 2
 find foo | sort
 echo End directory listing 2
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "rename02.at:27"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename02.at:28"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -23762,12 +26728,12 @@ foo/file2
 End directory listing 2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/rename02.at:27"
+at_fn_check_status 0 $at_status "$at_srcdir/rename02.at:28"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/rename02.at:27:
+$as_echo "$at_srcdir/rename02.at:28:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -23811,7 +26777,7 @@ echo Begin directory listing 2
 find foo | sort
 echo End directory listing 2
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "rename02.at:27"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename02.at:28"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -23900,7 +26866,7 @@ foo/file2
 End directory listing 2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/rename02.at:27"
+at_fn_check_status 0 $at_status "$at_srcdir/rename02.at:28"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -23911,14 +26877,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_100
-#AT_START_101
-at_fn_group_banner 101 'rename03.at:23' \
+#AT_STOP_109
+#AT_START_110
+at_fn_group_banner 110 'rename03.at:24' \
   "cyclic renames" "                                 " 13
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "101. $at_setup_line: testing $at_desc ..."
+  $as_echo "110. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -23926,7 +26892,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/rename03.at:26:
+$as_echo "$at_srcdir/rename03.at:27:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -23982,7 +26948,7 @@ echo Begin directory listing 2
 find foo | sort
 echo End directory listing 2
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "rename03.at:26"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename03.at:27"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -24096,12 +27062,12 @@ foo/file2
 End directory listing 2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/rename03.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/rename03.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/rename03.at:26:
+$as_echo "$at_srcdir/rename03.at:27:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -24157,7 +27123,7 @@ echo Begin directory listing 2
 find foo | sort
 echo End directory listing 2
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "rename03.at:26"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename03.at:27"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -24271,12 +27237,12 @@ foo/file2
 End directory listing 2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/rename03.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/rename03.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/rename03.at:26:
+$as_echo "$at_srcdir/rename03.at:27:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -24332,7 +27298,7 @@ echo Begin directory listing 2
 find foo | sort
 echo End directory listing 2
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "rename03.at:26"
+at_fn_check_prepare_notrace 'a `...` command substitution' "rename03.at:27"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -24446,7 +27412,7 @@ foo/file2
 End directory listing 2
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/rename03.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/rename03.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -24457,14 +27423,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_101
-#AT_START_102
-at_fn_group_banner 102 'rename04.at:27' \
+#AT_STOP_110
+#AT_START_111
+at_fn_group_banner 111 'rename04.at:27' \
   "renamed directory containing subdirectories" "    " 13
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "102. $at_setup_line: testing $at_desc ..."
+  $as_echo "111. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -24796,14 +27762,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_102
-#AT_START_103
-at_fn_group_banner 103 'rename05.at:24' \
+#AT_STOP_111
+#AT_START_112
+at_fn_group_banner 112 'rename05.at:24' \
   "renamed subdirectories" "                         " 13
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "103. $at_setup_line: testing $at_desc ..."
+  $as_echo "112. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -25141,14 +28107,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_103
-#AT_START_104
-at_fn_group_banner 104 'chtype.at:27' \
+#AT_STOP_112
+#AT_START_113
+at_fn_group_banner 113 'chtype.at:27' \
   "changed file types in incrementals" "             " 13
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "104. $at_setup_line: testing $at_desc ..."
+  $as_echo "113. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -25465,14 +28431,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_104
-#AT_START_105
-at_fn_group_banner 105 'ignfail.at:23' \
+#AT_STOP_113
+#AT_START_114
+at_fn_group_banner 114 'ignfail.at:24' \
   "ignfail" "                                        " 14
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "105. $at_setup_line: testing $at_desc ..."
+  $as_echo "114. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -25480,7 +28446,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/ignfail.at:26:
+$as_echo "$at_srcdir/ignfail.at:27:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -25531,7 +28497,7 @@ status=\$?
 chmod 700 directory
 test \$status = 0
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:27"
 ( $at_check_trace;
 mkdir v7
 (cd v7
@@ -25599,12 +28565,12 @@ tar: directory: Warning: Cannot open: Permission denied
 " | \
   $at_diff - "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/ignfail.at:26:
+$as_echo "$at_srcdir/ignfail.at:27:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -25655,7 +28621,7 @@ status=\$?
 chmod 700 directory
 test \$status = 0
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:27"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -25723,12 +28689,12 @@ tar: directory: Warning: Cannot open: Permission denied
 " | \
   $at_diff - "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/ignfail.at:26:
+$as_echo "$at_srcdir/ignfail.at:27:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -25779,7 +28745,7 @@ status=\$?
 chmod 700 directory
 test \$status = 0
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:27"
 ( $at_check_trace;
 mkdir ustar
 (cd ustar
@@ -25847,12 +28813,12 @@ tar: directory: Warning: Cannot open: Permission denied
 " | \
   $at_diff - "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/ignfail.at:26:
+$as_echo "$at_srcdir/ignfail.at:27:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -25903,7 +28869,7 @@ status=\$?
 chmod 700 directory
 test \$status = 0
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:27"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -25971,12 +28937,12 @@ tar: directory: Warning: Cannot open: Permission denied
 " | \
   $at_diff - "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/ignfail.at:26:
+$as_echo "$at_srcdir/ignfail.at:27:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -26027,7 +28993,7 @@ status=\$?
 chmod 700 directory
 test \$status = 0
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:27"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -26095,7 +29061,7 @@ tar: directory: Warning: Cannot open: Permission denied
 " | \
   $at_diff - "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -26106,14 +29072,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_105
-#AT_START_106
-at_fn_group_banner 106 'link01.at:33' \
+#AT_STOP_114
+#AT_START_115
+at_fn_group_banner 115 'link01.at:34' \
   "link count gt 2" "                                " 15
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "106. $at_setup_line: testing $at_desc ..."
+  $as_echo "115. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -26121,7 +29087,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/link01.at:36:
+$as_echo "$at_srcdir/link01.at:37:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -26144,7 +29110,7 @@ tar xf archive --warning=no-timestamp
 
 ls directory/test1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36"
+at_fn_check_prepare_notrace 'an embedded newline' "link01.at:37"
 ( $at_check_trace;
 mkdir v7
 (cd v7
@@ -26175,12 +29141,12 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "test.txt
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/link01.at:36"
+at_fn_check_status 0 $at_status "$at_srcdir/link01.at:37"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/link01.at:36:
+$as_echo "$at_srcdir/link01.at:37:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -26203,7 +29169,7 @@ tar xf archive --warning=no-timestamp
 
 ls directory/test1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36"
+at_fn_check_prepare_notrace 'an embedded newline' "link01.at:37"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -26234,12 +29200,12 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "test.txt
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/link01.at:36"
+at_fn_check_status 0 $at_status "$at_srcdir/link01.at:37"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/link01.at:36:
+$as_echo "$at_srcdir/link01.at:37:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -26262,7 +29228,7 @@ tar xf archive --warning=no-timestamp
 
 ls directory/test1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36"
+at_fn_check_prepare_notrace 'an embedded newline' "link01.at:37"
 ( $at_check_trace;
 mkdir ustar
 (cd ustar
@@ -26293,12 +29259,12 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "test.txt
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/link01.at:36"
+at_fn_check_status 0 $at_status "$at_srcdir/link01.at:37"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/link01.at:36:
+$as_echo "$at_srcdir/link01.at:37:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -26321,7 +29287,7 @@ tar xf archive --warning=no-timestamp
 
 ls directory/test1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36"
+at_fn_check_prepare_notrace 'an embedded newline' "link01.at:37"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -26352,12 +29318,12 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "test.txt
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/link01.at:36"
+at_fn_check_status 0 $at_status "$at_srcdir/link01.at:37"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/link01.at:36:
+$as_echo "$at_srcdir/link01.at:37:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -26380,7 +29346,7 @@ tar xf archive --warning=no-timestamp
 
 ls directory/test1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36"
+at_fn_check_prepare_notrace 'an embedded newline' "link01.at:37"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -26411,7 +29377,7 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "test.txt
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/link01.at:36"
+at_fn_check_status 0 $at_status "$at_srcdir/link01.at:37"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -26422,14 +29388,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_106
-#AT_START_107
-at_fn_group_banner 107 'link02.at:32' \
+#AT_STOP_115
+#AT_START_116
+at_fn_group_banner 116 'link02.at:32' \
   "preserve hard links with --remove-files" "        " 15
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "107. $at_setup_line: testing $at_desc ..."
+  $as_echo "116. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -26678,14 +29644,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_107
-#AT_START_108
-at_fn_group_banner 108 'link03.at:24' \
+#AT_STOP_116
+#AT_START_117
+at_fn_group_banner 117 'link03.at:24' \
   "working -l with --remove-files" "                 " 15
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "108. $at_setup_line: testing $at_desc ..."
+  $as_echo "117. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -27077,14 +30043,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_108
-#AT_START_109
-at_fn_group_banner 109 'link04.at:29' \
+#AT_STOP_117
+#AT_START_118
+at_fn_group_banner 118 'link04.at:29' \
   "link count is 1 but multiple occurrences" "       " 15
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "109. $at_setup_line: testing $at_desc ..."
+  $as_echo "118. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -27110,6 +30076,10 @@ tar tvf archive | sed '
   s,.*[0-9] dir/,dir/,
 ' | sort
 
+echo --
+
+tar cfl archive dir dir
+
 echo ==
 
 tar chf archive dir
@@ -27138,6 +30108,10 @@ tar tvf archive | sed '
   s,.*[0-9] dir/,dir/,
 ' | sort
 
+echo --
+
+tar cfl archive dir dir
+
 echo ==
 
 tar chf archive dir
@@ -27157,6 +30131,7 @@ dir/file
 dir/file link to dir/file
 dir/symlink -> file
 dir/symlink link to dir/symlink
+--
 ==
 dir/
 dir/FOO
@@ -27186,6 +30161,10 @@ tar tvf archive | sed '
   s,.*[0-9] dir/,dir/,
 ' | sort
 
+echo --
+
+tar cfl archive dir dir
+
 echo ==
 
 tar chf archive dir
@@ -27214,6 +30193,10 @@ tar tvf archive | sed '
   s,.*[0-9] dir/,dir/,
 ' | sort
 
+echo --
+
+tar cfl archive dir dir
+
 echo ==
 
 tar chf archive dir
@@ -27233,6 +30216,7 @@ dir/file
 dir/file link to dir/file
 dir/symlink -> file
 dir/symlink link to dir/symlink
+--
 ==
 dir/
 dir/FOO
@@ -27262,6 +30246,10 @@ tar tvf archive | sed '
   s,.*[0-9] dir/,dir/,
 ' | sort
 
+echo --
+
+tar cfl archive dir dir
+
 echo ==
 
 tar chf archive dir
@@ -27290,6 +30278,10 @@ tar tvf archive | sed '
   s,.*[0-9] dir/,dir/,
 ' | sort
 
+echo --
+
+tar cfl archive dir dir
+
 echo ==
 
 tar chf archive dir
@@ -27309,6 +30301,7 @@ dir/file
 dir/file link to dir/file
 dir/symlink -> file
 dir/symlink link to dir/symlink
+--
 ==
 dir/
 dir/FOO
@@ -27338,6 +30331,10 @@ tar tvf archive | sed '
   s,.*[0-9] dir/,dir/,
 ' | sort
 
+echo --
+
+tar cfl archive dir dir
+
 echo ==
 
 tar chf archive dir
@@ -27366,6 +30363,10 @@ tar tvf archive | sed '
   s,.*[0-9] dir/,dir/,
 ' | sort
 
+echo --
+
+tar cfl archive dir dir
+
 echo ==
 
 tar chf archive dir
@@ -27385,6 +30386,7 @@ dir/file
 dir/file link to dir/file
 dir/symlink -> file
 dir/symlink link to dir/symlink
+--
 ==
 dir/
 dir/FOO
@@ -27414,6 +30416,10 @@ tar tvf archive | sed '
   s,.*[0-9] dir/,dir/,
 ' | sort
 
+echo --
+
+tar cfl archive dir dir
+
 echo ==
 
 tar chf archive dir
@@ -27442,6 +30448,10 @@ tar tvf archive | sed '
   s,.*[0-9] dir/,dir/,
 ' | sort
 
+echo --
+
+tar cfl archive dir dir
+
 echo ==
 
 tar chf archive dir
@@ -27461,6 +30471,7 @@ dir/file
 dir/file link to dir/file
 dir/symlink -> file
 dir/symlink link to dir/symlink
+--
 ==
 dir/
 dir/FOO
@@ -27478,14 +30489,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_109
-#AT_START_110
-at_fn_group_banner 110 'longv7.at:24' \
+#AT_STOP_118
+#AT_START_119
+at_fn_group_banner 119 'longv7.at:25' \
   "long names in V7 archives" "                      " 16
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "110. $at_setup_line: testing $at_desc ..."
+  $as_echo "119. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -27496,7 +30507,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/longv7.at:30:
+$as_echo "$at_srcdir/longv7.at:31:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -27512,7 +30523,7 @@ tar cf archive this_is_a_very_long_name_for_a_directory_which_causes_problems
 echo separator
 tar tf archive
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "longv7.at:30"
+at_fn_check_prepare_notrace 'an embedded newline' "longv7.at:31"
 ( $at_check_trace;
 mkdir v7
 (cd v7
@@ -27540,7 +30551,7 @@ echo >>"$at_stdout"; $as_echo "separator
 this_is_a_very_long_name_for_a_directory_which_causes_problems/
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/longv7.at:30"
+at_fn_check_status 0 $at_status "$at_srcdir/longv7.at:31"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -27553,14 +30564,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_110
-#AT_START_111
-at_fn_group_banner 111 'long01.at:28' \
+#AT_STOP_119
+#AT_START_120
+at_fn_group_banner 120 'long01.at:28' \
   "long file names divisible by block size" "        " 16
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "111. $at_setup_line: testing $at_desc ..."
+  $as_echo "120. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -27668,14 +30679,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_111
-#AT_START_112
-at_fn_group_banner 112 'lustar01.at:21' \
+#AT_STOP_120
+#AT_START_121
+at_fn_group_banner 121 'lustar01.at:21' \
   "ustar: unsplittable file name" "                  " 16
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "112. $at_setup_line: testing $at_desc ..."
+  $as_echo "121. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -27730,14 +30741,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_112
-#AT_START_113
-at_fn_group_banner 113 'lustar02.at:21' \
+#AT_STOP_121
+#AT_START_122
+at_fn_group_banner 122 'lustar02.at:21' \
   "ustar: unsplittable path name" "                  " 16
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "113. $at_setup_line: testing $at_desc ..."
+  $as_echo "122. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -27801,14 +30812,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_113
-#AT_START_114
-at_fn_group_banner 114 'lustar03.at:21' \
+#AT_STOP_122
+#AT_START_123
+at_fn_group_banner 123 'lustar03.at:21' \
   "ustar: splitting long names" "                    " 16
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "114. $at_setup_line: testing $at_desc ..."
+  $as_echo "123. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -27874,13 +30885,13 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_114
-#AT_START_115
-at_fn_group_banner 115 'old.at:23' \
+#AT_STOP_123
+#AT_START_124
+at_fn_group_banner 124 'old.at:23' \
   "old archives" "                                   " 16
 at_xfail=no
 (
-  $as_echo "115. $at_setup_line: testing $at_desc ..."
+  $as_echo "124. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -27915,14 +30926,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_115
-#AT_START_116
-at_fn_group_banner 116 'time01.at:20' \
+#AT_STOP_124
+#AT_START_125
+at_fn_group_banner 125 'time01.at:20' \
   "time: tricky time stamps" "                       " 16
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "116. $at_setup_line: testing $at_desc ..."
+  $as_echo "125. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -28049,14 +31060,95 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_116
-#AT_START_117
-at_fn_group_banner 117 'multiv01.at:24' \
+#AT_STOP_125
+#AT_START_126
+at_fn_group_banner 126 'time02.at:20' \
+  "time: clamping mtime" "                           " 16
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "126. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/time02.at:23:
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H pax\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+export TZ=UTC0
+mkdir dir
+
+touch -d 2015-12-01T00:00:00 dir/a >/dev/null 2>&1 || exit 77
+touch -d 2016-01-01T00:00:00 dir/b >/dev/null 2>&1 || exit 77
+touch -d 2016-02-01T00:00:00 dir/c >/dev/null 2>&1 || exit 77
+touch -d 2038-01-01T00:00:00 dir/d >/dev/null 2>&1 || exit 77
+
+tar -c --mtime 2016-01-15T00:00:00 --clamp-mtime -f archive.tar dir
+tar -d -f archive.tar dir|sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "time02.at:23"
+( $at_check_trace;
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H pax"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+export TZ=UTC0
+mkdir dir
+
+touch -d 2015-12-01T00:00:00 dir/a >/dev/null 2>&1 || exit 77
+touch -d 2016-01-01T00:00:00 dir/b >/dev/null 2>&1 || exit 77
+touch -d 2016-02-01T00:00:00 dir/c >/dev/null 2>&1 || exit 77
+touch -d 2038-01-01T00:00:00 dir/d >/dev/null 2>&1 || exit 77
+
+tar -c --mtime 2016-01-15T00:00:00 --clamp-mtime -f archive.tar dir
+tar -d -f archive.tar dir|sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "dir/c: Mod time differs
+dir/d: Mod time differs
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/time02.at:23"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_126
+#AT_START_127
+at_fn_group_banner 127 'multiv01.at:24' \
   "multivolume dumps from pipes" "                   " 17
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "117. $at_setup_line: testing $at_desc ..."
+  $as_echo "127. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -28335,14 +31427,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_117
-#AT_START_118
-at_fn_group_banner 118 'multiv02.at:28' \
+#AT_STOP_127
+#AT_START_128
+at_fn_group_banner 128 'multiv02.at:29' \
   "skipping a straddling member" "                   " 17
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "118. $at_setup_line: testing $at_desc ..."
+  $as_echo "128. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -28350,7 +31442,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/multiv02.at:31:
+$as_echo "$at_srcdir/multiv02.at:32:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -28370,7 +31462,7 @@ tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
 echo separator
 tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "multiv02.at:31"
+at_fn_check_prepare_notrace 'an embedded newline' "multiv02.at:32"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -28399,12 +31491,12 @@ echo >>"$at_stdout"; $as_echo "separator
 en
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/multiv02.at:31"
+at_fn_check_status 0 $at_status "$at_srcdir/multiv02.at:32"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/multiv02.at:31:
+$as_echo "$at_srcdir/multiv02.at:32:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -28424,7 +31516,7 @@ tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
 echo separator
 tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "multiv02.at:31"
+at_fn_check_prepare_notrace 'an embedded newline' "multiv02.at:32"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -28453,12 +31545,12 @@ echo >>"$at_stdout"; $as_echo "separator
 en
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/multiv02.at:31"
+at_fn_check_status 0 $at_status "$at_srcdir/multiv02.at:32"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/multiv02.at:31:
+$as_echo "$at_srcdir/multiv02.at:32:
 mkdir pax
 (cd pax
 TEST_TAR_FORMAT=pax
@@ -28478,7 +31570,7 @@ tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
 echo separator
 tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "multiv02.at:31"
+at_fn_check_prepare_notrace 'an embedded newline' "multiv02.at:32"
 ( $at_check_trace;
 mkdir pax
 (cd pax
@@ -28507,7 +31599,7 @@ echo >>"$at_stdout"; $as_echo "separator
 en
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/multiv02.at:31"
+at_fn_check_status 0 $at_status "$at_srcdir/multiv02.at:32"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -28518,14 +31610,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_118
-#AT_START_119
-at_fn_group_banner 119 'multiv03.at:30' \
+#AT_STOP_128
+#AT_START_129
+at_fn_group_banner 129 'multiv03.at:30' \
   "MV archive & long filenames" "                    " 17
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "119. $at_setup_line: testing $at_desc ..."
+  $as_echo "129. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -28721,14 +31813,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_119
-#AT_START_120
-at_fn_group_banner 120 'multiv04.at:36' \
+#AT_STOP_129
+#AT_START_130
+at_fn_group_banner 130 'multiv04.at:36' \
   "split directory members in a MV archive" "        " 17
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "120. $at_setup_line: testing $at_desc ..."
+  $as_echo "130. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -28878,14 +31970,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_120
-#AT_START_121
-at_fn_group_banner 121 'multiv05.at:26' \
+#AT_STOP_130
+#AT_START_131
+at_fn_group_banner 131 'multiv05.at:26' \
   "Restoring after an out of sync volume" "          " 17
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "121. $at_setup_line: testing $at_desc ..."
+  $as_echo "131. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -29005,14 +32097,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_121
-#AT_START_122
-at_fn_group_banner 122 'multiv06.at:27' \
+#AT_STOP_131
+#AT_START_132
+at_fn_group_banner 132 'multiv06.at:27' \
   "Multivolumes with L=record_size" "                " 17
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "122. $at_setup_line: testing $at_desc ..."
+  $as_echo "132. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -29130,14 +32222,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_122
-#AT_START_123
-at_fn_group_banner 123 'multiv07.at:28' \
+#AT_STOP_132
+#AT_START_133
+at_fn_group_banner 133 'multiv07.at:28' \
   "volumes split at an extended header" "            " 17
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "123. $at_setup_line: testing $at_desc ..."
+  $as_echo "133. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -29190,14 +32282,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_123
-#AT_START_124
-at_fn_group_banner 124 'multiv08.at:25' \
+#AT_STOP_133
+#AT_START_134
+at_fn_group_banner 134 'multiv08.at:25' \
   "multivolume header creation" "                    " 17
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "124. $at_setup_line: testing $at_desc ..."
+  $as_echo "134. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -29263,14 +32355,273 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_124
-#AT_START_125
-at_fn_group_banner 125 'owner.at:21' \
+#AT_STOP_134
+#AT_START_135
+at_fn_group_banner 135 'multiv09.at:26' \
+  "bad next volume" "                                " 17
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "135. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+# filename of length 100 characters
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/multiv09.at:33:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H v7\"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit \$?
+echo \"created\"
+tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
+y
+q
+EOF
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "multiv09.at:33"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit $?
+echo "created"
+tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
+y
+q
+EOF
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "created
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/multiv09.at:33"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/multiv09.at:33:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit \$?
+echo \"created\"
+tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
+y
+q
+EOF
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "multiv09.at:33"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit $?
+echo "created"
+tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
+y
+q
+EOF
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "created
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/multiv09.at:33"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/multiv09.at:33:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit \$?
+echo \"created\"
+tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
+y
+q
+EOF
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "multiv09.at:33"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit $?
+echo "created"
+tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
+y
+q
+EOF
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "created
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/multiv09.at:33"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/multiv09.at:33:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit \$?
+echo \"created\"
+tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
+y
+q
+EOF
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "multiv09.at:33"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit $?
+echo "created"
+tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
+y
+q
+EOF
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "created
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/multiv09.at:33"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/multiv09.at:33:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit \$?
+echo \"created\"
+tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
+y
+q
+EOF
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "multiv09.at:33"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit $?
+echo "created"
+tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
+y
+q
+EOF
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "created
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/multiv09.at:33"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_135
+#AT_START_136
+at_fn_group_banner 136 'owner.at:21' \
   "--owner and --group" "                            " 18
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "125. $at_setup_line: testing $at_desc ..."
+  $as_echo "136. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -29342,14 +32693,145 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_125
-#AT_START_126
-at_fn_group_banner 126 'sparse01.at:21' \
+#AT_STOP_136
+#AT_START_137
+at_fn_group_banner 137 'map.at:21' \
+  "--owner-map and --group-map" "                    " 18
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "137. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/map.at:24:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+export TZ=UTC0
+
+genfile --file a
+set -- \`genfile --stat=uid,gid a\`
+cat > uid.map <<EOT
+# Owner mapping
++\$1   \"Joe the Plumber:1234\"
+EOT
+# Group mapping
+cat > gid.map <<EOT
++\$2   \"Plumber's Union:5678\"
+EOT
+
+tar --owner-map=uid.map\\
+    --group-map=gid.map\\
+    --owner=\"Fallback Owner:4321\" \\
+    --group=\"Fallback Group:8765\" \\
+    --mtime='@0' \\
+    --mode='u=rw,go=r' \\
+    -cf 1.tar a
+
+tar -tvf 1.tar
+tar --numeric-owner -tvf 1.tar
+
+> uid.map
+> gid.map
+
+tar --owner-map=uid.map\\
+    --group-map=gid.map\\
+    --owner=\"Fallback Owner:4321\" \\
+    --group=\"Fallback Group:8765\" \\
+    --mtime='@0' \\
+    --mode='u=rw,go=r' \\
+    -cf 2.tar a
+
+tar -tvf 2.tar
+tar --numeric-owner -tvf 2.tar
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "map.at:24"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+export TZ=UTC0
+
+genfile --file a
+set -- `genfile --stat=uid,gid a`
+cat > uid.map <<EOT
+# Owner mapping
++$1    "Joe the Plumber:1234"
+EOT
+# Group mapping
+cat > gid.map <<EOT
++$2    "Plumber's Union:5678"
+EOT
+
+tar --owner-map=uid.map\
+    --group-map=gid.map\
+    --owner="Fallback Owner:4321" \
+    --group="Fallback Group:8765" \
+    --mtime='@0' \
+    --mode='u=rw,go=r' \
+    -cf 1.tar a
+
+tar -tvf 1.tar
+tar --numeric-owner -tvf 1.tar
+
+> uid.map
+> gid.map
+
+tar --owner-map=uid.map\
+    --group-map=gid.map\
+    --owner="Fallback Owner:4321" \
+    --group="Fallback Group:8765" \
+    --mtime='@0' \
+    --mode='u=rw,go=r' \
+    -cf 2.tar a
+
+tar -tvf 2.tar
+tar --numeric-owner -tvf 2.tar
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "-rw-r--r-- Joe the Plumber/Plumber's Union 0 1970-01-01 00:00 a
+-rw-r--r-- 1234/5678         0 1970-01-01 00:00 a
+-rw-r--r-- Fallback Owner/Fallback Group 0 1970-01-01 00:00 a
+-rw-r--r-- 4321/8765         0 1970-01-01 00:00 a
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/map.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_137
+#AT_START_138
+at_fn_group_banner 138 'sparse01.at:22' \
   "sparse files" "                                   " 19
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "126. $at_setup_line: testing $at_desc ..."
+  $as_echo "138. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -29357,7 +32839,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/sparse01.at:24:
+$as_echo "$at_srcdir/sparse01.at:25:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -29379,7 +32861,7 @@ tar Cxf directory archive --warning=no-timestamp
 genfile --stat=name,size sparsefile
 cmp sparsefile directory/sparsefile
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "sparse01.at:24"
+at_fn_check_prepare_notrace 'an embedded newline' "sparse01.at:25"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -29407,12 +32889,12 @@ at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/sparse01.at:24"
+at_fn_check_status 0 $at_status "$at_srcdir/sparse01.at:25"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/sparse01.at:24:
+$as_echo "$at_srcdir/sparse01.at:25:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -29434,7 +32916,7 @@ tar Cxf directory archive --warning=no-timestamp
 genfile --stat=name,size sparsefile
 cmp sparsefile directory/sparsefile
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "sparse01.at:24"
+at_fn_check_prepare_notrace 'an embedded newline' "sparse01.at:25"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -29462,12 +32944,12 @@ at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/sparse01.at:24"
+at_fn_check_status 0 $at_status "$at_srcdir/sparse01.at:25"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/sparse01.at:24:
+$as_echo "$at_srcdir/sparse01.at:25:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -29489,7 +32971,7 @@ tar Cxf directory archive --warning=no-timestamp
 genfile --stat=name,size sparsefile
 cmp sparsefile directory/sparsefile
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "sparse01.at:24"
+at_fn_check_prepare_notrace 'an embedded newline' "sparse01.at:25"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -29517,7 +32999,7 @@ at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; tee stdout <"$at_stdout"
-at_fn_check_status 0 $at_status "$at_srcdir/sparse01.at:24"
+at_fn_check_status 0 $at_status "$at_srcdir/sparse01.at:25"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -29546,14 +33028,14 @@ done
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_126
-#AT_START_127
-at_fn_group_banner 127 'sparse02.at:21' \
+#AT_STOP_138
+#AT_START_139
+at_fn_group_banner 139 'sparse02.at:22' \
   "extracting sparse file over a pipe" "             " 19
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "127. $at_setup_line: testing $at_desc ..."
+  $as_echo "139. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -29565,7 +33047,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/sparse02.at:28:
+$as_echo "$at_srcdir/sparse02.at:29:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -29575,13 +33057,13 @@ export TAR_OPTIONS
 rm -rf *
 
 genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse sparsefile || exit 1
+tar --hole-detection=raw -c -f archive --sparse sparsefile || exit 1
 echo separator
 
 tar xfO archive | cat - > sparsecopy || exit 1
 cmp sparsefile sparsecopy
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "sparse02.at:28"
+at_fn_check_prepare_notrace 'an embedded newline' "sparse02.at:29"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -29592,7 +33074,7 @@ export TAR_OPTIONS
 rm -rf *
 
 genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse sparsefile || exit 1
+tar --hole-detection=raw -c -f archive --sparse sparsefile || exit 1
 echo separator
 
 tar xfO archive | cat - > sparsecopy || exit 1
@@ -29605,12 +33087,12 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "separator
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/sparse02.at:28"
+at_fn_check_status 0 $at_status "$at_srcdir/sparse02.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/sparse02.at:28:
+$as_echo "$at_srcdir/sparse02.at:29:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -29620,13 +33102,13 @@ export TAR_OPTIONS
 rm -rf *
 
 genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse sparsefile || exit 1
+tar --hole-detection=raw -c -f archive --sparse sparsefile || exit 1
 echo separator
 
 tar xfO archive | cat - > sparsecopy || exit 1
 cmp sparsefile sparsecopy
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "sparse02.at:28"
+at_fn_check_prepare_notrace 'an embedded newline' "sparse02.at:29"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -29637,7 +33119,7 @@ export TAR_OPTIONS
 rm -rf *
 
 genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse sparsefile || exit 1
+tar --hole-detection=raw -c -f archive --sparse sparsefile || exit 1
 echo separator
 
 tar xfO archive | cat - > sparsecopy || exit 1
@@ -29650,12 +33132,12 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "separator
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/sparse02.at:28"
+at_fn_check_status 0 $at_status "$at_srcdir/sparse02.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/sparse02.at:28:
+$as_echo "$at_srcdir/sparse02.at:29:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -29665,13 +33147,13 @@ export TAR_OPTIONS
 rm -rf *
 
 genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse sparsefile || exit 1
+tar --hole-detection=raw -c -f archive --sparse sparsefile || exit 1
 echo separator
 
 tar xfO archive | cat - > sparsecopy || exit 1
 cmp sparsefile sparsecopy
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "sparse02.at:28"
+at_fn_check_prepare_notrace 'an embedded newline' "sparse02.at:29"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -29682,7 +33164,7 @@ export TAR_OPTIONS
 rm -rf *
 
 genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
-tar -c -f archive --sparse sparsefile || exit 1
+tar --hole-detection=raw -c -f archive --sparse sparsefile || exit 1
 echo separator
 
 tar xfO archive | cat - > sparsecopy || exit 1
@@ -29695,7 +33177,7 @@ at_fn_diff_devnull "$at_stderr" || at_failed=:
 echo >>"$at_stdout"; $as_echo "separator
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/sparse02.at:28"
+at_fn_check_status 0 $at_status "$at_srcdir/sparse02.at:29"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -29706,14 +33188,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_127
-#AT_START_128
-at_fn_group_banner 128 'sparse03.at:21' \
+#AT_STOP_139
+#AT_START_140
+at_fn_group_banner 140 'sparse03.at:21' \
   "storing sparse files > 8G" "                      " 19
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "128. $at_setup_line: testing $at_desc ..."
+  $as_echo "140. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -29805,14 +33287,14 @@ done
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_128
-#AT_START_129
-at_fn_group_banner 129 'sparse04.at:21' \
+#AT_STOP_140
+#AT_START_141
+at_fn_group_banner 141 'sparse04.at:21' \
   "storing long sparse file names" "                 " 19
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "129. $at_setup_line: testing $at_desc ..."
+  $as_echo "141. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -29874,14 +33356,2261 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_129
-#AT_START_130
-at_fn_group_banner 130 'sparsemv.at:21' \
+#AT_STOP_141
+#AT_START_142
+at_fn_group_banner 142 'sparse05.at:21' \
+  "listing sparse files bigger than 2^33 B" "        " 19
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "142. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+# Description: If an archive in POSIX.1-2001 archive contained a sparse file
+# member whose real size (excluding zero blocks) is bigger than 2^33 bytes,
+# tar 1.28 would incorrectly list the real member size.
+# Reported by: Pavel Raiskup <praiskup@redhat.com>
+# References: <1359119879.15037.4.camel@raiskup>,
+#             http://lists.gnu.org/archive/html/bug-tar/2013-01/msg00001.html
+
+
+
+  { set +x
+$as_echo "$at_srcdir/sparse05.at:31:
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H pax\"
+export TAR_OPTIONS
+rm -rf *
+
+cat >mapfile <<'_ATEOF'
+0 =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+_ATEOF
+
+genfile --sparse --file BIGFILE --block-size 4K - < mapfile || exit 77
+tar -f - -c --sparse --posix BIGFILE | tar tvf - | awk '{ print \$3, \$(NF) }'
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "sparse05.at:31"
+( $at_check_trace;
+mkdir pax
+(cd pax
+TEST_TAR_FORMAT=pax
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H pax"
+export TAR_OPTIONS
+rm -rf *
+
+cat >mapfile <<'_ATEOF'
+0 =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+10M =2560
+_ATEOF
+
+genfile --sparse --file BIGFILE --block-size 4K - < mapfile || exit 77
+tar -f - -c --sparse --posix BIGFILE | tar tvf - | awk '{ print $3, $(NF) }'
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "20961034240 BIGFILE
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/sparse05.at:31"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_142
+#AT_START_143
+at_fn_group_banner 143 'sparse06.at:21' \
+  "storing sparse file using seek method" "          " 19
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "143. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+
+
+
+
+  { set +x
+$as_echo "$at_srcdir/sparse06.at:32:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+
+checkseekhole || exit 77
+
+
+TAR_OPTIONS=\"\$TAR_OPTIONS --hole-detection=seek\"
+genfile --sparse --file bigsparse 0 ABC 8G DEF
+tar -cSf a bigsparse
+test \$? -eq 0 || exit 1
+
+
+rm -rf out archive.tar smallsparse && mkdir out
+genfile --sparse --quiet --file smallsparse 0 ABC
+tar -cSf archive.tar smallsparse
+tar -xf archive.tar -C out
+cmp smallsparse out/smallsparse
+
+
+rm -rf out archive.tar smallsparse && mkdir out
+genfile --sparse --quiet --file smallsparse 0 ABC 10M
+tar -cSf archive.tar smallsparse
+tar -xf archive.tar -C out
+cmp smallsparse out/smallsparse
+
+
+rm -rf out archive.tar smallsparse && mkdir out
+genfile --sparse --quiet --file smallsparse 0 ABC 10M DEF
+tar -cSf archive.tar smallsparse
+tar -xf archive.tar -C out
+cmp smallsparse out/smallsparse
+
+
+
+rm -rf out archive.tar smallsparse && mkdir out
+genfile --sparse --quiet --file smallsparse 10M
+tar -cSf archive.tar smallsparse
+tar -xf archive.tar -C out
+cmp smallsparse out/smallsparse
+
+
+rm -rf out archive.tar smallsparse && mkdir out
+genfile --sparse --quiet --file smallsparse 10M ABC
+tar -cSf archive.tar smallsparse
+tar -xf archive.tar -C out
+cmp smallsparse out/smallsparse
+
+
+rm -rf out archive.tar smallsparse && mkdir out
+genfile --sparse --quiet --file smallsparse 10M ABC 20M
+tar -cSf archive.tar smallsparse
+tar -xf archive.tar -C out
+cmp smallsparse out/smallsparse
+
+
+
+rm -rf out archive.tar smallsparse && mkdir out
+genfile --sparse --quiet --file smallsparse 10M DEF 20M GHI 30M JKL 40M
+tar -cSf archive.tar smallsparse
+tar -xf archive.tar -C out
+cmp smallsparse out/smallsparse
+
+
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "sparse06.at:32"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+
+checkseekhole || exit 77
+
+
+TAR_OPTIONS="$TAR_OPTIONS --hole-detection=seek"
+genfile --sparse --file bigsparse 0 ABC 8G DEF
+tar -cSf a bigsparse
+test $? -eq 0 || exit 1
+
+
+rm -rf out archive.tar smallsparse && mkdir out
+genfile --sparse --quiet --file smallsparse 0 ABC
+tar -cSf archive.tar smallsparse
+tar -xf archive.tar -C out
+cmp smallsparse out/smallsparse
+
+
+rm -rf out archive.tar smallsparse && mkdir out
+genfile --sparse --quiet --file smallsparse 0 ABC 10M
+tar -cSf archive.tar smallsparse
+tar -xf archive.tar -C out
+cmp smallsparse out/smallsparse
+
+
+rm -rf out archive.tar smallsparse && mkdir out
+genfile --sparse --quiet --file smallsparse 0 ABC 10M DEF
+tar -cSf archive.tar smallsparse
+tar -xf archive.tar -C out
+cmp smallsparse out/smallsparse
+
+
+
+rm -rf out archive.tar smallsparse && mkdir out
+genfile --sparse --quiet --file smallsparse 10M
+tar -cSf archive.tar smallsparse
+tar -xf archive.tar -C out
+cmp smallsparse out/smallsparse
+
+
+rm -rf out archive.tar smallsparse && mkdir out
+genfile --sparse --quiet --file smallsparse 10M ABC
+tar -cSf archive.tar smallsparse
+tar -xf archive.tar -C out
+cmp smallsparse out/smallsparse
+
+
+rm -rf out archive.tar smallsparse && mkdir out
+genfile --sparse --quiet --file smallsparse 10M ABC 20M
+tar -cSf archive.tar smallsparse
+tar -xf archive.tar -C out
+cmp smallsparse out/smallsparse
+
+
+
+rm -rf out archive.tar smallsparse && mkdir out
+genfile --sparse --quiet --file smallsparse 10M DEF 20M GHI 30M JKL 40M
+tar -cSf archive.tar smallsparse
+tar -xf archive.tar -C out
+cmp smallsparse out/smallsparse
+
+
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/sparse06.at:32"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_143
+#AT_START_144
+at_fn_group_banner 144 'sparsemv.at:21' \
   "sparse files in MV archives" "                    " 19
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "130. $at_setup_line: testing $at_desc ..."
+  $as_echo "144. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -29906,6 +35635,7 @@ export TAR_OPTIONS
 rm -rf *
 
 exec <&-
+TAR_OPTIONS=\"\$TAR_OPTIONS --hole-detection=raw\"
 genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
 echo \"Pass 1: Split between data blocks\"
 echo \"Create archive\"
@@ -29935,6 +35665,7 @@ export TAR_OPTIONS
 rm -rf *
 
 exec <&-
+TAR_OPTIONS="$TAR_OPTIONS --hole-detection=raw"
 genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
 echo "Pass 1: Split between data blocks"
 echo "Create archive"
@@ -29984,6 +35715,7 @@ export TAR_OPTIONS
 rm -rf *
 
 exec <&-
+TAR_OPTIONS=\"\$TAR_OPTIONS --hole-detection=raw\"
 genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
 echo \"Pass 1: Split between data blocks\"
 echo \"Create archive\"
@@ -30013,6 +35745,7 @@ export TAR_OPTIONS
 rm -rf *
 
 exec <&-
+TAR_OPTIONS="$TAR_OPTIONS --hole-detection=raw"
 genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
 echo "Pass 1: Split between data blocks"
 echo "Create archive"
@@ -30058,14 +35791,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_130
-#AT_START_131
-at_fn_group_banner 131 'spmvp00.at:21' \
+#AT_STOP_144
+#AT_START_145
+at_fn_group_banner 145 'spmvp00.at:21' \
   "sparse files in PAX MV archives, v.0.0" "         " 19
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "131. $at_setup_line: testing $at_desc ..."
+  $as_echo "145. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -30084,6 +35817,7 @@ export TAR_OPTIONS
 rm -rf *
 
 exec <&-
+TAR_OPTIONS=\"\$TAR_OPTIONS --hole-detection=raw\"
 genfile --sparse --file sparsefile 0 ABCDEFGHI 1M ABCDEFGHI || exit 77
 echo \"Pass 1: Split between data blocks\"
 echo \"Create archive\"
@@ -30113,6 +35847,7 @@ export TAR_OPTIONS
 rm -rf *
 
 exec <&-
+TAR_OPTIONS="$TAR_OPTIONS --hole-detection=raw"
 genfile --sparse --file sparsefile 0 ABCDEFGHI 1M ABCDEFGHI || exit 77
 echo "Pass 1: Split between data blocks"
 echo "Create archive"
@@ -30158,14 +35893,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_131
-#AT_START_132
-at_fn_group_banner 132 'spmvp01.at:21' \
+#AT_STOP_145
+#AT_START_146
+at_fn_group_banner 146 'spmvp01.at:21' \
   "sparse files in PAX MV archives, v.0.1" "         " 19
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "132. $at_setup_line: testing $at_desc ..."
+  $as_echo "146. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -30184,6 +35919,7 @@ export TAR_OPTIONS
 rm -rf *
 
 exec <&-
+TAR_OPTIONS=\"\$TAR_OPTIONS --hole-detection=raw\"
 genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
 echo \"Pass 1: Split between data blocks\"
 echo \"Create archive\"
@@ -30213,6 +35949,7 @@ export TAR_OPTIONS
 rm -rf *
 
 exec <&-
+TAR_OPTIONS="$TAR_OPTIONS --hole-detection=raw"
 genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
 echo "Pass 1: Split between data blocks"
 echo "Create archive"
@@ -30258,14 +35995,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_132
-#AT_START_133
-at_fn_group_banner 133 'spmvp10.at:21' \
+#AT_STOP_146
+#AT_START_147
+at_fn_group_banner 147 'spmvp10.at:21' \
   "sparse files in PAX MV archives, v.1.0" "         " 19
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "133. $at_setup_line: testing $at_desc ..."
+  $as_echo "147. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -30284,6 +36021,7 @@ export TAR_OPTIONS
 rm -rf *
 
 exec <&-
+TAR_OPTIONS=\"\$TAR_OPTIONS --hole-detection=raw\"
 genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77
 echo \"Pass 1: Split between data blocks\"
 echo \"Create archive\"
@@ -30313,6 +36051,7 @@ export TAR_OPTIONS
 rm -rf *
 
 exec <&-
+TAR_OPTIONS="$TAR_OPTIONS --hole-detection=raw"
 genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77
 echo "Pass 1: Split between data blocks"
 echo "Create archive"
@@ -30358,14 +36097,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_133
-#AT_START_134
-at_fn_group_banner 134 'update.at:28' \
+#AT_STOP_147
+#AT_START_148
+at_fn_group_banner 148 'update.at:28' \
   "update unchanged directories" "                   " 20
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "134. $at_setup_line: testing $at_desc ..."
+  $as_echo "148. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -30684,14 +36423,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_134
-#AT_START_135
-at_fn_group_banner 135 'update01.at:29' \
+#AT_STOP_148
+#AT_START_149
+at_fn_group_banner 149 'update01.at:29' \
   "update directories" "                             " 20
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "135. $at_setup_line: testing $at_desc ..."
+  $as_echo "149. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -31055,14 +36794,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_135
-#AT_START_136
-at_fn_group_banner 136 'update02.at:26' \
+#AT_STOP_149
+#AT_START_150
+at_fn_group_banner 150 'update02.at:26' \
   "update changed files" "                           " 20
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "136. $at_setup_line: testing $at_desc ..."
+  $as_echo "150. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -31426,14 +37165,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_136
-#AT_START_137
-at_fn_group_banner 137 'verify.at:25' \
+#AT_STOP_150
+#AT_START_151
+at_fn_group_banner 151 'verify.at:25' \
   "verify" "                                         " 21
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "137. $at_setup_line: testing $at_desc ..."
+  $as_echo "151. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -31637,14 +37376,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_137
-#AT_START_138
-at_fn_group_banner 138 'volume.at:23' \
+#AT_STOP_151
+#AT_START_152
+at_fn_group_banner 152 'volume.at:24' \
   "volume" "                                         " 22
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "138. $at_setup_line: testing $at_desc ..."
+  $as_echo "152. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -31652,7 +37391,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/volume.at:26:
+$as_echo "$at_srcdir/volume.at:27:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -31677,7 +37416,7 @@ echo 1>&2 -----
 tar xfV archive babel
 test \$? = 2
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "volume.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "volume.at:27"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -31718,12 +37457,12 @@ tar: Error is not recoverable: exiting now
 " | \
   $at_diff - "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/volume.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/volume.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/volume.at:26:
+$as_echo "$at_srcdir/volume.at:27:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -31748,7 +37487,7 @@ echo 1>&2 -----
 tar xfV archive babel
 test \$? = 2
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "volume.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "volume.at:27"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -31789,7 +37528,7 @@ tar: Error is not recoverable: exiting now
 " | \
   $at_diff - "$at_stderr" || at_failed=:
 at_fn_diff_devnull "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/volume.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/volume.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -31800,14 +37539,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_138
-#AT_START_139
-at_fn_group_banner 139 'volsize.at:29' \
+#AT_STOP_152
+#AT_START_153
+at_fn_group_banner 153 'volsize.at:29' \
   "volume header size" "                             " 22
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "139. $at_setup_line: testing $at_desc ..."
+  $as_echo "153. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -32166,14 +37905,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_139
-#AT_START_140
-at_fn_group_banner 140 'comprec.at:21' \
+#AT_STOP_153
+#AT_START_154
+at_fn_group_banner 154 'comprec.at:22' \
   "compressed format recognition" "                  " 23
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "140. $at_setup_line: testing $at_desc ..."
+  $as_echo "154. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -32182,7 +37921,7 @@ at_xfail=no
 
 
   { set +x
-$as_echo "$at_srcdir/comprec.at:25:
+$as_echo "$at_srcdir/comprec.at:26:
 mkdir v7
 (cd v7
 TEST_TAR_FORMAT=v7
@@ -32202,7 +37941,7 @@ mv file1 orig
 tar xfv archive --warning=no-timestamp
 cmp orig file1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25"
+at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:26"
 ( $at_check_trace;
 mkdir v7
 (cd v7
@@ -32232,12 +37971,12 @@ separator
 file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:25"
+at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:26"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/comprec.at:25:
+$as_echo "$at_srcdir/comprec.at:26:
 mkdir oldgnu
 (cd oldgnu
 TEST_TAR_FORMAT=oldgnu
@@ -32257,7 +37996,7 @@ mv file1 orig
 tar xfv archive --warning=no-timestamp
 cmp orig file1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25"
+at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:26"
 ( $at_check_trace;
 mkdir oldgnu
 (cd oldgnu
@@ -32287,12 +38026,12 @@ separator
 file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:25"
+at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:26"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/comprec.at:25:
+$as_echo "$at_srcdir/comprec.at:26:
 mkdir ustar
 (cd ustar
 TEST_TAR_FORMAT=ustar
@@ -32312,7 +38051,7 @@ mv file1 orig
 tar xfv archive --warning=no-timestamp
 cmp orig file1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25"
+at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:26"
 ( $at_check_trace;
 mkdir ustar
 (cd ustar
@@ -32342,12 +38081,12 @@ separator
 file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:25"
+at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:26"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/comprec.at:25:
+$as_echo "$at_srcdir/comprec.at:26:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -32367,7 +38106,7 @@ mv file1 orig
 tar xfv archive --warning=no-timestamp
 cmp orig file1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25"
+at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:26"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -32397,12 +38136,12 @@ separator
 file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:25"
+at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:26"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/comprec.at:25:
+$as_echo "$at_srcdir/comprec.at:26:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -32422,7 +38161,7 @@ mv file1 orig
 tar xfv archive --warning=no-timestamp
 cmp orig file1
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25"
+at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:26"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -32452,7 +38191,7 @@ separator
 file1
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:25"
+at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:26"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -32463,14 +38202,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_140
-#AT_START_141
-at_fn_group_banner 141 'shortfile.at:26' \
+#AT_STOP_154
+#AT_START_155
+at_fn_group_banner 155 'shortfile.at:26' \
   "short input files" "                              " 23
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "141. $at_setup_line: testing $at_desc ..."
+  $as_echo "155. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -32522,14 +38261,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_141
-#AT_START_142
-at_fn_group_banner 142 'shortupd.at:31' \
+#AT_STOP_155
+#AT_START_156
+at_fn_group_banner 156 'shortupd.at:31' \
   "updating short archives" "                        " 23
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "142. $at_setup_line: testing $at_desc ..."
+  $as_echo "156. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -32718,14 +38457,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_142
-#AT_START_143
-at_fn_group_banner 143 'truncate.at:29' \
+#AT_STOP_156
+#AT_START_157
+at_fn_group_banner 157 'truncate.at:29' \
   "truncate" "                                       " 23
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "143. $at_setup_line: testing $at_desc ..."
+  $as_echo "157. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -33004,14 +38743,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_143
-#AT_START_144
-at_fn_group_banner 144 'grow.at:24' \
+#AT_STOP_157
+#AT_START_158
+at_fn_group_banner 158 'grow.at:24' \
   "grow" "                                           " 23
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "144. $at_setup_line: testing $at_desc ..."
+  $as_echo "158. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -33235,13 +38974,13 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_144
-#AT_START_145
-at_fn_group_banner 145 'sigpipe.at:21' \
+#AT_STOP_158
+#AT_START_159
+at_fn_group_banner 159 'sigpipe.at:21' \
   "sigpipe handling" "                               " 23
 at_xfail=no
 (
-  $as_echo "145. $at_setup_line: testing $at_desc ..."
+  $as_echo "159. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -33300,13 +39039,246 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_145
-#AT_START_146
-at_fn_group_banner 146 'remfiles01.at:28' \
+#AT_STOP_159
+#AT_START_160
+at_fn_group_banner 160 'comperr.at:18' \
+  "compressor program failure" "                     " 23
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "160. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+# Description: If the --use-compress-program fails, then it is unsafe
+# to assume that the created archive is OK.  Tar should fail with a
+# prominent error message.
+# Reported by: Ole Tange <tange@gnu.org>
+# References: <CA+4vN7wLZ-+LK1t7WMkM_b9f3mV9JTnSuPamPn2ciX5PTN=9Xw@mail.gmail.com>,
+#        http://lists.gnu.org/archive/html/bug-tar/2015-03/msg00002.html
+
+
+
+  { set +x
+$as_echo "$at_srcdir/comperr.at:28:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H v7\"
+export TAR_OPTIONS
+rm -rf *
+
+tar --use-compress-program false -cf a.tar . 2>err
+rc=\$?
+sed -n '\$p' err
+exit \$rc
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "comperr.at:28"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
+
+tar --use-compress-program false -cf a.tar . 2>err
+rc=$?
+sed -n '$p' err
+exit $rc
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "tar: Error is not recoverable: exiting now
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/comperr.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/comperr.at:28:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+
+tar --use-compress-program false -cf a.tar . 2>err
+rc=\$?
+sed -n '\$p' err
+exit \$rc
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "comperr.at:28"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
+
+tar --use-compress-program false -cf a.tar . 2>err
+rc=$?
+sed -n '$p' err
+exit $rc
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "tar: Error is not recoverable: exiting now
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/comperr.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/comperr.at:28:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
+
+tar --use-compress-program false -cf a.tar . 2>err
+rc=\$?
+sed -n '\$p' err
+exit \$rc
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "comperr.at:28"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+tar --use-compress-program false -cf a.tar . 2>err
+rc=$?
+sed -n '$p' err
+exit $rc
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "tar: Error is not recoverable: exiting now
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/comperr.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/comperr.at:28:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+tar --use-compress-program false -cf a.tar . 2>err
+rc=\$?
+sed -n '\$p' err
+exit \$rc
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "comperr.at:28"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+tar --use-compress-program false -cf a.tar . 2>err
+rc=$?
+sed -n '$p' err
+exit $rc
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "tar: Error is not recoverable: exiting now
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/comperr.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/comperr.at:28:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H gnu\"
+export TAR_OPTIONS
+rm -rf *
+
+tar --use-compress-program false -cf a.tar . 2>err
+rc=\$?
+sed -n '\$p' err
+exit \$rc
+)"
+at_fn_check_prepare_notrace 'an embedded newline' "comperr.at:28"
+( $at_check_trace;
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H gnu"
+export TAR_OPTIONS
+rm -rf *
+
+tar --use-compress-program false -cf a.tar . 2>err
+rc=$?
+sed -n '$p' err
+exit $rc
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "tar: Error is not recoverable: exiting now
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 2 $at_status "$at_srcdir/comperr.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_160
+#AT_START_161
+at_fn_group_banner 161 'remfiles01.at:28' \
   "remove-files with compression" "                  " 24
 at_xfail=no
 (
-  $as_echo "146. $at_setup_line: testing $at_desc ..."
+  $as_echo "161. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -33426,13 +39398,13 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_146
-#AT_START_147
-at_fn_group_banner 147 'remfiles02.at:28' \
+#AT_STOP_161
+#AT_START_162
+at_fn_group_banner 162 'remfiles02.at:28' \
   "remove-files with compression: grand-child" "     " 24
 at_xfail=no
 (
-  $as_echo "147. $at_setup_line: testing $at_desc ..."
+  $as_echo "162. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -33504,13 +39476,13 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_147
-#AT_START_148
-at_fn_group_banner 148 'remfiles03.at:28' \
+#AT_STOP_162
+#AT_START_163
+at_fn_group_banner 163 'remfiles03.at:28' \
   "remove-files with symbolic links" "               " 24
 at_xfail=no
 (
-  $as_echo "148. $at_setup_line: testing $at_desc ..."
+  $as_echo "163. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -33547,14 +39519,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_148
-#AT_START_149
-at_fn_group_banner 149 'remfiles04a.at:25' \
+#AT_STOP_163
+#AT_START_164
+at_fn_group_banner 164 'remfiles04a.at:25' \
   "remove-files with -C:rel in -c/non-incr. mode" "  " 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "149. $at_setup_line: testing $at_desc ..."
+  $as_echo "164. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -33623,14 +39595,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_149
-#AT_START_150
-at_fn_group_banner 150 'remfiles04b.at:33' \
+#AT_STOP_164
+#AT_START_165
+at_fn_group_banner 165 'remfiles04b.at:33' \
   "remove-files with -C:rel in -c/incr. mode" "      " 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "150. $at_setup_line: testing $at_desc ..."
+  $as_echo "165. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -33699,14 +39671,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_150
-#AT_START_151
-at_fn_group_banner 151 'remfiles04c.at:33' \
+#AT_STOP_165
+#AT_START_166
+at_fn_group_banner 166 'remfiles04c.at:33' \
   "remove-files with -C:rel in -r mode" "            " 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "151. $at_setup_line: testing $at_desc ..."
+  $as_echo "166. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -33787,14 +39759,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_151
-#AT_START_152
-at_fn_group_banner 152 'remfiles05a.at:34' \
+#AT_STOP_166
+#AT_START_167
+at_fn_group_banner 167 'remfiles05a.at:34' \
   "remove-files with -C:rel,rel in -c/non-incr. mode" "" 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "152. $at_setup_line: testing $at_desc ..."
+  $as_echo "167. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -33876,14 +39848,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_152
-#AT_START_153
-at_fn_group_banner 153 'remfiles05b.at:25' \
+#AT_STOP_167
+#AT_START_168
+at_fn_group_banner 168 'remfiles05b.at:25' \
   "remove-files with -C:rel,rel in -c/incr. mode" "  " 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "153. $at_setup_line: testing $at_desc ..."
+  $as_echo "168. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -33965,14 +39937,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_153
-#AT_START_154
-at_fn_group_banner 154 'remfiles05c.at:25' \
+#AT_STOP_168
+#AT_START_169
+at_fn_group_banner 169 'remfiles05c.at:25' \
   "remove-files with -C:rel,rel in -r mode" "        " 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "154. $at_setup_line: testing $at_desc ..."
+  $as_echo "169. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -34069,14 +40041,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_154
-#AT_START_155
-at_fn_group_banner 155 'remfiles06a.at:25' \
+#AT_STOP_169
+#AT_START_170
+at_fn_group_banner 170 'remfiles06a.at:25' \
   "remove-files with -C:rel,abs in -c/non-incr. mode" "" 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "155. $at_setup_line: testing $at_desc ..."
+  $as_echo "170. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -34160,14 +40132,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_155
-#AT_START_156
-at_fn_group_banner 156 'remfiles06b.at:25' \
+#AT_STOP_170
+#AT_START_171
+at_fn_group_banner 171 'remfiles06b.at:25' \
   "remove-files with -C:rel,abs in -c/incr. mode" "  " 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "156. $at_setup_line: testing $at_desc ..."
+  $as_echo "171. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -34251,14 +40223,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_156
-#AT_START_157
-at_fn_group_banner 157 'remfiles06c.at:25' \
+#AT_STOP_171
+#AT_START_172
+at_fn_group_banner 172 'remfiles06c.at:25' \
   "remove-files with -C:rel,abs in -r mode" "        " 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "157. $at_setup_line: testing $at_desc ..."
+  $as_echo "172. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -34357,14 +40329,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_157
-#AT_START_158
-at_fn_group_banner 158 'remfiles07a.at:25' \
+#AT_STOP_172
+#AT_START_173
+at_fn_group_banner 173 'remfiles07a.at:25' \
   "remove-files with -C:abs,rel in -c/non-incr. mode" "" 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "158. $at_setup_line: testing $at_desc ..."
+  $as_echo "173. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -34448,14 +40420,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_158
-#AT_START_159
-at_fn_group_banner 159 'remfiles07b.at:25' \
+#AT_STOP_173
+#AT_START_174
+at_fn_group_banner 174 'remfiles07b.at:25' \
   "remove-files with -C:abs,rel in -c/incr. mode" "  " 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "159. $at_setup_line: testing $at_desc ..."
+  $as_echo "174. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -34539,14 +40511,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_159
-#AT_START_160
-at_fn_group_banner 160 'remfiles07c.at:25' \
+#AT_STOP_174
+#AT_START_175
+at_fn_group_banner 175 'remfiles07c.at:25' \
   "remove-files with -C:abs,rel in -r mode" "        " 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "160. $at_setup_line: testing $at_desc ..."
+  $as_echo "175. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -34645,14 +40617,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_160
-#AT_START_161
-at_fn_group_banner 161 'remfiles08a.at:28' \
+#AT_STOP_175
+#AT_START_176
+at_fn_group_banner 176 'remfiles08a.at:28' \
   "remove-files deleting two subdirs in -c/non-incr. mode" "" 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "161. $at_setup_line: testing $at_desc ..."
+  $as_echo "176. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -34725,24 +40697,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_161
-#AT_START_162
-at_fn_group_banner 162 'remfiles08b.at:31' \
+#AT_STOP_176
+#AT_START_177
+at_fn_group_banner 177 'remfiles08b.at:31' \
   "remove-files deleting two subdirs in -c/incr. mode" "" 24
-at_xfail=yes
+at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "162. $at_setup_line: testing $at_desc ..."
+  $as_echo "177. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
- # we expect to fail in tar 1.27
-
 
 
   { set +x
-$as_echo "$at_srcdir/remfiles08b.at:36:
+$as_echo "$at_srcdir/remfiles08b.at:34:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -34760,7 +40730,7 @@ tar -cvf foo.tar --incremental --remove-files -C foo . -C ../bar .
 decho B
 find .
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "remfiles08b.at:36"
+at_fn_check_prepare_notrace 'an embedded newline' "remfiles08b.at:34"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
 ./foo.tar
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/remfiles08b.at:36"
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles08b.at:34"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -34809,14 +40779,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_162
-#AT_START_163
-at_fn_group_banner 163 'remfiles08c.at:28' \
+#AT_STOP_177
+#AT_START_178
+at_fn_group_banner 178 'remfiles08c.at:28' \
   "remove-files deleting two subdirs in -r mode" "   " 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "163. $at_setup_line: testing $at_desc ..."
+  $as_echo "178. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -34909,14 +40879,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_163
-#AT_START_164
-at_fn_group_banner 164 'remfiles09a.at:25' \
+#AT_STOP_178
+#AT_START_179
+at_fn_group_banner 179 'remfiles09a.at:25' \
   "remove-files on full directory in -c/non-incr. mode" "" 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "164. $at_setup_line: testing $at_desc ..."
+  $as_echo "179. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -34983,24 +40953,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_164
-#AT_START_165
-at_fn_group_banner 165 'remfiles09b.at:29' \
+#AT_STOP_179
+#AT_START_180
+at_fn_group_banner 180 'remfiles09b.at:29' \
   "remove-files on full directory in -c/incr. mode" "" 24
-at_xfail=yes
+at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "165. $at_setup_line: testing $at_desc ..."
+  $as_echo "180. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
 
- # we expect to fail in tar 1.27
-
 
 
   { set +x
-$as_echo "$at_srcdir/remfiles09b.at:34:
+$as_echo "$at_srcdir/remfiles09b.at:32:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -35016,7 +40984,7 @@ tar -cvf foo.tar --incremental --remove-files foo
 decho B
 find .
 )"
-at_fn_check_prepare_notrace 'an embedded newline' "remfiles09b.at:34"
+at_fn_check_prepare_notrace 'an embedded newline' "remfiles09b.at:32"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
 ./foo.tar
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/remfiles09b.at:34"
+at_fn_check_status 0 $at_status "$at_srcdir/remfiles09b.at:32"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -35060,14 +41028,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_165
-#AT_START_166
-at_fn_group_banner 166 'remfiles09c.at:25' \
+#AT_STOP_180
+#AT_START_181
+at_fn_group_banner 181 'remfiles09c.at:25' \
   "remove-files on full directory in -r mode" "      " 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "166. $at_setup_line: testing $at_desc ..."
+  $as_echo "181. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -35152,14 +41120,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_166
-#AT_START_167
-at_fn_group_banner 167 'remfiles10.at:20' \
+#AT_STOP_181
+#AT_START_182
+at_fn_group_banner 182 'remfiles10.at:20' \
   "remove-files" "                                   " 24
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "167. $at_setup_line: testing $at_desc ..."
+  $as_echo "182. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -35231,14 +41199,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_167
-#AT_START_168
-at_fn_group_banner 168 'xattr01.at:25' \
+#AT_STOP_182
+#AT_START_183
+at_fn_group_banner 183 'xattr01.at:25' \
   "xattrs: basic functionality" "                    " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "168. $at_setup_line: testing $at_desc ..."
+  $as_echo "183. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -35792,14 +41760,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_168
-#AT_START_169
-at_fn_group_banner 169 'xattr02.at:25' \
+#AT_STOP_183
+#AT_START_184
+at_fn_group_banner 184 'xattr02.at:25' \
   "xattrs: change directory with -C option" "        " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "169. $at_setup_line: testing $at_desc ..."
+  $as_echo "184. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -36428,14 +42396,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_169
-#AT_START_170
-at_fn_group_banner 170 'xattr03.at:25' \
+#AT_STOP_184
+#AT_START_185
+at_fn_group_banner 185 'xattr03.at:25' \
   "xattrs: trusted.* attributes" "                   " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "170. $at_setup_line: testing $at_desc ..."
+  $as_echo "185. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -37144,14 +43112,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_170
-#AT_START_171
-at_fn_group_banner 171 'xattr04.at:26' \
+#AT_STOP_185
+#AT_START_186
+at_fn_group_banner 186 'xattr04.at:26' \
   "xattrs: s/open/openat/ regression" "              " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "171. $at_setup_line: testing $at_desc ..."
+  $as_echo "186. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -37710,14 +43678,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_171
-#AT_START_172
-at_fn_group_banner 172 'xattr05.at:28' \
+#AT_STOP_186
+#AT_START_187
+at_fn_group_banner 187 'xattr05.at:28' \
   "xattrs: keywords with '=' and '%'" "              " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "172. $at_setup_line: testing $at_desc ..."
+  $as_echo "187. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -38266,14 +44234,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_172
-#AT_START_173
-at_fn_group_banner 173 'acls01.at:25' \
+#AT_STOP_187
+#AT_START_188
+at_fn_group_banner 188 'acls01.at:25' \
   "acls: basic functionality" "                      " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "173. $at_setup_line: testing $at_desc ..."
+  $as_echo "188. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -39032,14 +45000,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_173
-#AT_START_174
-at_fn_group_banner 174 'acls02.at:25' \
+#AT_STOP_188
+#AT_START_189
+at_fn_group_banner 189 'acls02.at:25' \
   "acls: work with -C" "                             " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "174. $at_setup_line: testing $at_desc ..."
+  $as_echo "189. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -39858,14 +45826,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_174
-#AT_START_175
-at_fn_group_banner 175 'acls03.at:30' \
+#AT_STOP_189
+#AT_START_190
+at_fn_group_banner 190 'acls03.at:30' \
   "acls: default ACLs" "                             " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "175. $at_setup_line: testing $at_desc ..."
+  $as_echo "190. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -42108,14 +48076,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_175
-#AT_START_176
-at_fn_group_banner 176 'selnx01.at:25' \
+#AT_STOP_190
+#AT_START_191
+at_fn_group_banner 191 'selnx01.at:25' \
   "selinux: basic store/restore" "                   " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "176. $at_setup_line: testing $at_desc ..."
+  $as_echo "191. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -43284,14 +49252,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_176
-#AT_START_177
-at_fn_group_banner 177 'selacl01.at:25' \
+#AT_STOP_191
+#AT_START_192
+at_fn_group_banner 192 'selacl01.at:25' \
   "acls/selinux: special files & fifos" "            " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "177. $at_setup_line: testing $at_desc ..."
+  $as_echo "192. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -44450,14 +50418,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_177
-#AT_START_178
-at_fn_group_banner 178 'capabs_raw01.at:25' \
+#AT_STOP_192
+#AT_START_193
+at_fn_group_banner 193 'capabs_raw01.at:25' \
   "capabilities: binary store/restore" "             " 25
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "178. $at_setup_line: testing $at_desc ..."
+  $as_echo "193. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -45276,14 +51244,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_178
-#AT_START_179
-at_fn_group_banner 179 'onetop01.at:21' \
+#AT_STOP_193
+#AT_START_194
+at_fn_group_banner 194 'onetop01.at:21' \
   "tar --one-top-level" "                            " 26
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "179. $at_setup_line: testing $at_desc ..."
+  $as_echo "194. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -45587,14 +51555,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_179
-#AT_START_180
-at_fn_group_banner 180 'onetop02.at:21' \
+#AT_STOP_194
+#AT_START_195
+at_fn_group_banner 195 'onetop02.at:21' \
   "tar --one-top-level --show-transformed" "         " 26
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "180. $at_setup_line: testing $at_desc ..."
+  $as_echo "195. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -45913,14 +51881,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_180
-#AT_START_181
-at_fn_group_banner 181 'onetop03.at:21' \
+#AT_STOP_195
+#AT_START_196
+at_fn_group_banner 196 'onetop03.at:21' \
   "tar --one-top-level --transform" "                " 26
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "181. $at_setup_line: testing $at_desc ..."
+  $as_echo "196. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -46224,14 +52192,14 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_181
-#AT_START_182
-at_fn_group_banner 182 'onetop04.at:21' \
+#AT_STOP_196
+#AT_START_197
+at_fn_group_banner 197 'onetop04.at:21' \
   "tar --one-top-level --transform" "                " 26
 at_xfail=no
       test -f $XFAILFILE && at_xfail=yes
 (
-  $as_echo "182. $at_setup_line: testing $at_desc ..."
+  $as_echo "197. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -46342,11 +52310,113 @@ $at_traceon; }
 
               { set +x
 $as_echo "$at_srcdir/onetop04.at:24:
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir a
+genfile --file a/b
+genfile --file c
+tar cf a.tar a c
+tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "onetop04.at:24"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir a
+genfile --file a/b
+genfile --file c
+tar cf a.tar a c
+tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "a/
+a/b
+a/d
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/onetop04.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/onetop04.at:24:
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H posix\"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+
+mkdir a
+genfile --file a/b
+genfile --file c
+tar cf a.tar a c
+tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
+)"
+at_fn_check_prepare_notrace 'a `...` command substitution' "onetop04.at:24"
+( $at_check_trace;
+mkdir posix
+(cd posix
+TEST_TAR_FORMAT=posix
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H posix"
+export TAR_OPTIONS
+rm -rf *
+
+
+test -z "`sort < /dev/null 2>&1`" || exit 77
+
+mkdir a
+genfile --file a/b
+genfile --file c
+tar cf a.tar a c
+tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "a/
+a/b
+a/d
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/onetop04.at:24"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/onetop04.at:24:
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS=\"-H ustar\"
+TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
@@ -46361,11 +52431,11 @@ tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
 )"
 at_fn_check_prepare_notrace 'a `...` command substitution' "onetop04.at:24"
 ( $at_check_trace;
-mkdir ustar
-(cd ustar
-TEST_TAR_FORMAT=ustar
+mkdir gnu
+(cd gnu
+TEST_TAR_FORMAT=gnu
 export TEST_TAR_FORMAT
-TAR_OPTIONS="-H ustar"
+TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
@@ -46391,8 +52461,360 @@ at_fn_check_status 0 $at_status "$at_srcdir/onetop04.at:24"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
+
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_197
+#AT_START_198
+at_fn_group_banner 198 'onetop05.at:21' \
+  "tar --one-top-level restoring permissions" "      " 26
+at_xfail=no
+      test -f $XFAILFILE && at_xfail=yes
+(
+  $as_echo "198. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+# When extracting an archive that contains ./ with the --one-top-level option,
+# the mode and ownership of ./ would be incorrectly applied to the current
+# working directory, instead of the requested top-level directory.
+
+
+
+  { set +x
+$as_echo "$at_srcdir/onetop05.at:28:
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H v7\"
+export TAR_OPTIONS
+rm -rf *
+
+orig_mode=3702
+mkdir d
+chmod \$orig_mode d
+
+mode=\$(genfile --stat=mode.7777 d)
+test \$mode = \$orig_mode || exit 77
+
+genfile --file d/file
+tar -cf d.tar -C d .
+rm -rf d
+
+(mkdir d1
+chmod 700 d1
+cd d1
+tar --one-top-level=top -xpf ../d.tar)
+mode=\$(genfile --stat=mode.777 d1)
+if test 700 = \$mode; then
+    echo \"CWD: OK\"
+else
+    echo \"CWD: mode changed: 700 != \$mode\"
+fi
+
+mkdir d2
+chmod 700 d2
+tar -C d2 --one-top-level=top -xpf d.tar
+mode=\$(genfile --stat=mode.777 d2)
+if test 700 = \$mode; then
+    echo \"DIR: OK\"
+else
+    echo \"DIR: mode changed: 700 != \$mode\"
+fi
+mode=\$(genfile --stat=mode.7777 d2/top)
+if test \$mode = \$orig_mode; then
+    echo \"TOP: OK\"
+else
+    echo \"TOP: mode changed: \$orig_mode != \$mode\"
+fi
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "onetop05.at:28"
+( $at_check_trace;
+mkdir v7
+(cd v7
+TEST_TAR_FORMAT=v7
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H v7"
+export TAR_OPTIONS
+rm -rf *
+
+orig_mode=3702
+mkdir d
+chmod $orig_mode d
+
+mode=$(genfile --stat=mode.7777 d)
+test $mode = $orig_mode || exit 77
+
+genfile --file d/file
+tar -cf d.tar -C d .
+rm -rf d
+
+(mkdir d1
+chmod 700 d1
+cd d1
+tar --one-top-level=top -xpf ../d.tar)
+mode=$(genfile --stat=mode.777 d1)
+if test 700 = $mode; then
+    echo "CWD: OK"
+else
+    echo "CWD: mode changed: 700 != $mode"
+fi
+
+mkdir d2
+chmod 700 d2
+tar -C d2 --one-top-level=top -xpf d.tar
+mode=$(genfile --stat=mode.777 d2)
+if test 700 = $mode; then
+    echo "DIR: OK"
+else
+    echo "DIR: mode changed: 700 != $mode"
+fi
+mode=$(genfile --stat=mode.7777 d2/top)
+if test $mode = $orig_mode; then
+    echo "TOP: OK"
+else
+    echo "TOP: mode changed: $orig_mode != $mode"
+fi
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "CWD: OK
+DIR: OK
+TOP: OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/onetop05.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
               { set +x
-$as_echo "$at_srcdir/onetop04.at:24:
+$as_echo "$at_srcdir/onetop05.at:28:
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H oldgnu\"
+export TAR_OPTIONS
+rm -rf *
+
+orig_mode=3702
+mkdir d
+chmod \$orig_mode d
+
+mode=\$(genfile --stat=mode.7777 d)
+test \$mode = \$orig_mode || exit 77
+
+genfile --file d/file
+tar -cf d.tar -C d .
+rm -rf d
+
+(mkdir d1
+chmod 700 d1
+cd d1
+tar --one-top-level=top -xpf ../d.tar)
+mode=\$(genfile --stat=mode.777 d1)
+if test 700 = \$mode; then
+    echo \"CWD: OK\"
+else
+    echo \"CWD: mode changed: 700 != \$mode\"
+fi
+
+mkdir d2
+chmod 700 d2
+tar -C d2 --one-top-level=top -xpf d.tar
+mode=\$(genfile --stat=mode.777 d2)
+if test 700 = \$mode; then
+    echo \"DIR: OK\"
+else
+    echo \"DIR: mode changed: 700 != \$mode\"
+fi
+mode=\$(genfile --stat=mode.7777 d2/top)
+if test \$mode = \$orig_mode; then
+    echo \"TOP: OK\"
+else
+    echo \"TOP: mode changed: \$orig_mode != \$mode\"
+fi
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "onetop05.at:28"
+( $at_check_trace;
+mkdir oldgnu
+(cd oldgnu
+TEST_TAR_FORMAT=oldgnu
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H oldgnu"
+export TAR_OPTIONS
+rm -rf *
+
+orig_mode=3702
+mkdir d
+chmod $orig_mode d
+
+mode=$(genfile --stat=mode.7777 d)
+test $mode = $orig_mode || exit 77
+
+genfile --file d/file
+tar -cf d.tar -C d .
+rm -rf d
+
+(mkdir d1
+chmod 700 d1
+cd d1
+tar --one-top-level=top -xpf ../d.tar)
+mode=$(genfile --stat=mode.777 d1)
+if test 700 = $mode; then
+    echo "CWD: OK"
+else
+    echo "CWD: mode changed: 700 != $mode"
+fi
+
+mkdir d2
+chmod 700 d2
+tar -C d2 --one-top-level=top -xpf d.tar
+mode=$(genfile --stat=mode.777 d2)
+if test 700 = $mode; then
+    echo "DIR: OK"
+else
+    echo "DIR: mode changed: 700 != $mode"
+fi
+mode=$(genfile --stat=mode.7777 d2/top)
+if test $mode = $orig_mode; then
+    echo "TOP: OK"
+else
+    echo "TOP: mode changed: $orig_mode != $mode"
+fi
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "CWD: OK
+DIR: OK
+TOP: OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/onetop05.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/onetop05.at:28:
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS=\"-H ustar\"
+export TAR_OPTIONS
+rm -rf *
+
+orig_mode=3702
+mkdir d
+chmod \$orig_mode d
+
+mode=\$(genfile --stat=mode.7777 d)
+test \$mode = \$orig_mode || exit 77
+
+genfile --file d/file
+tar -cf d.tar -C d .
+rm -rf d
+
+(mkdir d1
+chmod 700 d1
+cd d1
+tar --one-top-level=top -xpf ../d.tar)
+mode=\$(genfile --stat=mode.777 d1)
+if test 700 = \$mode; then
+    echo \"CWD: OK\"
+else
+    echo \"CWD: mode changed: 700 != \$mode\"
+fi
+
+mkdir d2
+chmod 700 d2
+tar -C d2 --one-top-level=top -xpf d.tar
+mode=\$(genfile --stat=mode.777 d2)
+if test 700 = \$mode; then
+    echo \"DIR: OK\"
+else
+    echo \"DIR: mode changed: 700 != \$mode\"
+fi
+mode=\$(genfile --stat=mode.7777 d2/top)
+if test \$mode = \$orig_mode; then
+    echo \"TOP: OK\"
+else
+    echo \"TOP: mode changed: \$orig_mode != \$mode\"
+fi
+)"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "onetop05.at:28"
+( $at_check_trace;
+mkdir ustar
+(cd ustar
+TEST_TAR_FORMAT=ustar
+export TEST_TAR_FORMAT
+TAR_OPTIONS="-H ustar"
+export TAR_OPTIONS
+rm -rf *
+
+orig_mode=3702
+mkdir d
+chmod $orig_mode d
+
+mode=$(genfile --stat=mode.7777 d)
+test $mode = $orig_mode || exit 77
+
+genfile --file d/file
+tar -cf d.tar -C d .
+rm -rf d
+
+(mkdir d1
+chmod 700 d1
+cd d1
+tar --one-top-level=top -xpf ../d.tar)
+mode=$(genfile --stat=mode.777 d1)
+if test 700 = $mode; then
+    echo "CWD: OK"
+else
+    echo "CWD: mode changed: 700 != $mode"
+fi
+
+mkdir d2
+chmod 700 d2
+tar -C d2 --one-top-level=top -xpf d.tar
+mode=$(genfile --stat=mode.777 d2)
+if test 700 = $mode; then
+    echo "DIR: OK"
+else
+    echo "DIR: mode changed: 700 != $mode"
+fi
+mode=$(genfile --stat=mode.7777 d2/top)
+if test $mode = $orig_mode; then
+    echo "TOP: OK"
+else
+    echo "TOP: mode changed: $orig_mode != $mode"
+fi
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "CWD: OK
+DIR: OK
+TOP: OK
+" | \
+  $at_diff - "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/onetop05.at:28"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+              { set +x
+$as_echo "$at_srcdir/onetop05.at:28:
 mkdir posix
 (cd posix
 TEST_TAR_FORMAT=posix
@@ -46401,16 +52823,45 @@ TAR_OPTIONS=\"-H posix\"
 export TAR_OPTIONS
 rm -rf *
 
+orig_mode=3702
+mkdir d
+chmod \$orig_mode d
 
-test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+mode=\$(genfile --stat=mode.7777 d)
+test \$mode = \$orig_mode || exit 77
 
-mkdir a
-genfile --file a/b
-genfile --file c
-tar cf a.tar a c
-tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
+genfile --file d/file
+tar -cf d.tar -C d .
+rm -rf d
+
+(mkdir d1
+chmod 700 d1
+cd d1
+tar --one-top-level=top -xpf ../d.tar)
+mode=\$(genfile --stat=mode.777 d1)
+if test 700 = \$mode; then
+    echo \"CWD: OK\"
+else
+    echo \"CWD: mode changed: 700 != \$mode\"
+fi
+
+mkdir d2
+chmod 700 d2
+tar -C d2 --one-top-level=top -xpf d.tar
+mode=\$(genfile --stat=mode.777 d2)
+if test 700 = \$mode; then
+    echo \"DIR: OK\"
+else
+    echo \"DIR: mode changed: 700 != \$mode\"
+fi
+mode=\$(genfile --stat=mode.7777 d2/top)
+if test \$mode = \$orig_mode; then
+    echo \"TOP: OK\"
+else
+    echo \"TOP: mode changed: \$orig_mode != \$mode\"
+fi
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "onetop04.at:24"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "onetop05.at:28"
 ( $at_check_trace;
 mkdir posix
 (cd posix
@@ -46420,30 +52871,59 @@ TAR_OPTIONS="-H posix"
 export TAR_OPTIONS
 rm -rf *
 
+orig_mode=3702
+mkdir d
+chmod $orig_mode d
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+mode=$(genfile --stat=mode.7777 d)
+test $mode = $orig_mode || exit 77
 
-mkdir a
-genfile --file a/b
-genfile --file c
-tar cf a.tar a c
-tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
+genfile --file d/file
+tar -cf d.tar -C d .
+rm -rf d
+
+(mkdir d1
+chmod 700 d1
+cd d1
+tar --one-top-level=top -xpf ../d.tar)
+mode=$(genfile --stat=mode.777 d1)
+if test 700 = $mode; then
+    echo "CWD: OK"
+else
+    echo "CWD: mode changed: 700 != $mode"
+fi
+
+mkdir d2
+chmod 700 d2
+tar -C d2 --one-top-level=top -xpf d.tar
+mode=$(genfile --stat=mode.777 d2)
+if test 700 = $mode; then
+    echo "DIR: OK"
+else
+    echo "DIR: mode changed: 700 != $mode"
+fi
+mode=$(genfile --stat=mode.7777 d2/top)
+if test $mode = $orig_mode; then
+    echo "TOP: OK"
+else
+    echo "TOP: mode changed: $orig_mode != $mode"
+fi
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "a/
-a/b
-a/d
+echo >>"$at_stdout"; $as_echo "CWD: OK
+DIR: OK
+TOP: OK
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/onetop04.at:24"
+at_fn_check_status 0 $at_status "$at_srcdir/onetop05.at:28"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
               { set +x
-$as_echo "$at_srcdir/onetop04.at:24:
+$as_echo "$at_srcdir/onetop05.at:28:
 mkdir gnu
 (cd gnu
 TEST_TAR_FORMAT=gnu
@@ -46452,16 +52932,45 @@ TAR_OPTIONS=\"-H gnu\"
 export TAR_OPTIONS
 rm -rf *
 
+orig_mode=3702
+mkdir d
+chmod \$orig_mode d
 
-test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
+mode=\$(genfile --stat=mode.7777 d)
+test \$mode = \$orig_mode || exit 77
 
-mkdir a
-genfile --file a/b
-genfile --file c
-tar cf a.tar a c
-tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
+genfile --file d/file
+tar -cf d.tar -C d .
+rm -rf d
+
+(mkdir d1
+chmod 700 d1
+cd d1
+tar --one-top-level=top -xpf ../d.tar)
+mode=\$(genfile --stat=mode.777 d1)
+if test 700 = \$mode; then
+    echo \"CWD: OK\"
+else
+    echo \"CWD: mode changed: 700 != \$mode\"
+fi
+
+mkdir d2
+chmod 700 d2
+tar -C d2 --one-top-level=top -xpf d.tar
+mode=\$(genfile --stat=mode.777 d2)
+if test 700 = \$mode; then
+    echo \"DIR: OK\"
+else
+    echo \"DIR: mode changed: 700 != \$mode\"
+fi
+mode=\$(genfile --stat=mode.7777 d2/top)
+if test \$mode = \$orig_mode; then
+    echo \"TOP: OK\"
+else
+    echo \"TOP: mode changed: \$orig_mode != \$mode\"
+fi
 )"
-at_fn_check_prepare_notrace 'a `...` command substitution' "onetop04.at:24"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "onetop05.at:28"
 ( $at_check_trace;
 mkdir gnu
 (cd gnu
@@ -46471,25 +52980,54 @@ TAR_OPTIONS="-H gnu"
 export TAR_OPTIONS
 rm -rf *
 
+orig_mode=3702
+mkdir d
+chmod $orig_mode d
 
-test -z "`sort < /dev/null 2>&1`" || exit 77
+mode=$(genfile --stat=mode.7777 d)
+test $mode = $orig_mode || exit 77
 
-mkdir a
-genfile --file a/b
-genfile --file c
-tar cf a.tar a c
-tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
+genfile --file d/file
+tar -cf d.tar -C d .
+rm -rf d
+
+(mkdir d1
+chmod 700 d1
+cd d1
+tar --one-top-level=top -xpf ../d.tar)
+mode=$(genfile --stat=mode.777 d1)
+if test 700 = $mode; then
+    echo "CWD: OK"
+else
+    echo "CWD: mode changed: 700 != $mode"
+fi
+
+mkdir d2
+chmod 700 d2
+tar -C d2 --one-top-level=top -xpf d.tar
+mode=$(genfile --stat=mode.777 d2)
+if test 700 = $mode; then
+    echo "DIR: OK"
+else
+    echo "DIR: mode changed: 700 != $mode"
+fi
+mode=$(genfile --stat=mode.7777 d2/top)
+if test $mode = $orig_mode; then
+    echo "TOP: OK"
+else
+    echo "TOP: mode changed: $orig_mode != $mode"
+fi
 )
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
 at_fn_diff_devnull "$at_stderr" || at_failed=:
-echo >>"$at_stdout"; $as_echo "a/
-a/b
-a/d
+echo >>"$at_stdout"; $as_echo "CWD: OK
+DIR: OK
+TOP: OK
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/onetop04.at:24"
+at_fn_check_status 0 $at_status "$at_srcdir/onetop05.at:28"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -46500,13 +53038,13 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_182
-#AT_START_183
-at_fn_group_banner 183 'gtarfail.at:21' \
+#AT_STOP_198
+#AT_START_199
+at_fn_group_banner 199 'gtarfail.at:22' \
   "gtarfail" "                                       " 27
 at_xfail=no
 (
-  $as_echo "183. $at_setup_line: testing $at_desc ..."
+  $as_echo "199. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -46514,7 +53052,7 @@ at_xfail=no
 unset TAR_OPTIONS
 
 { set +x
-$as_echo "$at_srcdir/gtarfail.at:26:
+$as_echo "$at_srcdir/gtarfail.at:27:
 
 test -z \"\$STAR_TESTSCRIPTS\" && exit 77
 tarball_prereq gtarfail.tar bf7612e401aaa679edbb07ae1183811b \$STAR_TESTSCRIPTS \$STAR_DATA_URL || exit 77
@@ -46522,7 +53060,7 @@ tarball_prereq gtarfail.tar bf7612e401aaa679edbb07ae1183811b \$STAR_TESTSCRIPTS
 
 tar --utc -tvf \$STAR_TESTSCRIPTS/gtarfail.tar
 "
-at_fn_check_prepare_notrace 'an embedded newline' "gtarfail.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "gtarfail.at:27"
 ( $at_check_trace;
 
 test -z "$STAR_TESTSCRIPTS" && exit 77
@@ -46543,7 +53081,7 @@ echo >>"$at_stdout"; $as_echo "-rw-r--r-- jes/glone       518 2001-05-25 14:41 v
 -rw-rw-rw- jes/glone    148753 1998-09-15 13:08 billyboy.jpg
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/gtarfail.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/gtarfail.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -46552,13 +53090,13 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_183
-#AT_START_184
-at_fn_group_banner 184 'gtarfail2.at:21' \
+#AT_STOP_199
+#AT_START_200
+at_fn_group_banner 200 'gtarfail2.at:22' \
   "gtarfail2" "                                      " 27
 at_xfail=no
 (
-  $as_echo "184. $at_setup_line: testing $at_desc ..."
+  $as_echo "200. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -46566,14 +53104,14 @@ at_xfail=no
 unset TAR_OPTIONS
 
 { set +x
-$as_echo "$at_srcdir/gtarfail2.at:26:
+$as_echo "$at_srcdir/gtarfail2.at:27:
 
 test -z \"\$STAR_TESTSCRIPTS\" && exit 77
 tarball_prereq gtarfail2.tar 6b607d1faec14b82f69525d9c5b66e53 \$STAR_TESTSCRIPTS \$STAR_DATA_URL || exit 77
 
 tar --utc -tvf \$STAR_TESTSCRIPTS/gtarfail2.tar
 "
-at_fn_check_prepare_notrace 'an embedded newline' "gtarfail2.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "gtarfail2.at:27"
 ( $at_check_trace;
 
 test -z "$STAR_TESTSCRIPTS" && exit 77
@@ -46597,7 +53135,7 @@ lrwxrwxrwx jes/glone         0 2001-08-29 10:53 build/psmake/archconf.c -> ../ar
 lrwxrwxrwx jes/glone         0 2001-08-29 10:54 build/psmake/astoi.c -> ../../lib/astoi.c
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/gtarfail2.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/gtarfail2.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -46606,13 +53144,13 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_184
-#AT_START_185
-at_fn_group_banner 185 'multi-fail.at:21' \
+#AT_STOP_200
+#AT_START_201
+at_fn_group_banner 201 'multi-fail.at:22' \
   "multi-fail" "                                     " 27
 at_xfail=no
 (
-  $as_echo "185. $at_setup_line: testing $at_desc ..."
+  $as_echo "201. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -46620,7 +53158,7 @@ at_xfail=no
 unset TAR_OPTIONS
 
 { set +x
-$as_echo "$at_srcdir/multi-fail.at:26:
+$as_echo "$at_srcdir/multi-fail.at:27:
 
 test -z \"\$STAR_TESTSCRIPTS\" && exit 77
 tarball_prereq gnu-multi-fail-volume1.gtar 7c28663dd98b0bd91ceb4be7af55254e \$STAR_TESTSCRIPTS \$STAR_DATA_URL || exit 77
@@ -46633,7 +53171,7 @@ tarball_prereq gnu-multi-fail-volume2.gtar b5d41c4c3ec440687d4a44957b5079a8 \$ST
 tar --utc -tvM -f \$STAR_TESTSCRIPTS/gnu-multi-fail-volume1.gtar \\
                -f \$STAR_TESTSCRIPTS/gnu-multi-fail-volume2.gtar <&-
 "
-at_fn_check_prepare_notrace 'an embedded newline' "multi-fail.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "multi-fail.at:27"
 ( $at_check_trace;
 
 test -z "$STAR_TESTSCRIPTS" && exit 77
@@ -46705,7 +53243,7 @@ echo >>"$at_stdout"; $as_echo "drwxrwsr-x joerg/bs          0 2003-10-11 14:32 O
 -rw-r--r-- joerg/bs       2756 2003-10-07 17:53 OBJ/i386-sunos5-gcc/table.o
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/multi-fail.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/multi-fail.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -46714,13 +53252,13 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_185
-#AT_START_186
-at_fn_group_banner 186 'ustar-big-2g.at:21' \
+#AT_STOP_201
+#AT_START_202
+at_fn_group_banner 202 'ustar-big-2g.at:22' \
   "ustar-big-2g" "                                   " 27
 at_xfail=no
 (
-  $as_echo "186. $at_setup_line: testing $at_desc ..."
+  $as_echo "202. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -46728,7 +53266,7 @@ at_xfail=no
 unset TAR_OPTIONS
 
 { set +x
-$as_echo "$at_srcdir/ustar-big-2g.at:26:
+$as_echo "$at_srcdir/ustar-big-2g.at:27:
 
 cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
 
@@ -46739,7 +53277,7 @@ tarball_prereq ustar-big-2g.tar.bz2 b63979733629c8fcdf40b60065422767 \$STAR_TEST
 
 tar --utc -tvjf \$STAR_TESTSCRIPTS/ustar-big-2g.tar.bz2
 "
-at_fn_check_prepare_notrace 'an embedded newline' "ustar-big-2g.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "ustar-big-2g.at:27"
 ( $at_check_trace;
 
 cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
@@ -46759,7 +53297,7 @@ echo >>"$at_stdout"; $as_echo "-rw------- jes/glone 2147483647 2002-06-15 14:53
 -rw-r--r-- jes/glone          0 2002-06-15 14:53 file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/ustar-big-2g.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/ustar-big-2g.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -46781,13 +53319,13 @@ done
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_186
-#AT_START_187
-at_fn_group_banner 187 'ustar-big-8g.at:21' \
+#AT_STOP_202
+#AT_START_203
+at_fn_group_banner 203 'ustar-big-8g.at:22' \
   "ustar-big-8g" "                                   " 27
 at_xfail=no
 (
-  $as_echo "187. $at_setup_line: testing $at_desc ..."
+  $as_echo "203. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -46795,7 +53333,7 @@ at_xfail=no
 unset TAR_OPTIONS
 
 { set +x
-$as_echo "$at_srcdir/ustar-big-8g.at:26:
+$as_echo "$at_srcdir/ustar-big-8g.at:27:
 
 cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
 
@@ -46806,7 +53344,7 @@ tarball_prereq ustar-big-8g.tar.bz2 60ff503fa4b8288bef7ada89e9c91b0f \$STAR_TEST
 
 tar --utc -tvjf \$STAR_TESTSCRIPTS/ustar-big-8g.tar.bz2
 "
-at_fn_check_prepare_notrace 'an embedded newline' "ustar-big-8g.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "ustar-big-8g.at:27"
 ( $at_check_trace;
 
 cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
@@ -46826,7 +53364,7 @@ echo >>"$at_stdout"; $as_echo "-rw------- jes/glone 8589934591 2002-06-15 15:08
 -rw-r--r-- jes/glone          0 2002-06-15 14:53 file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/ustar-big-8g.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/ustar-big-8g.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -46848,13 +53386,13 @@ done
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_187
-#AT_START_188
-at_fn_group_banner 188 'pax-big-10g.at:21' \
+#AT_STOP_203
+#AT_START_204
+at_fn_group_banner 204 'pax-big-10g.at:22' \
   "pax-big-10g" "                                    " 27
 at_xfail=no
 (
-  $as_echo "188. $at_setup_line: testing $at_desc ..."
+  $as_echo "204. $at_setup_line: testing $at_desc ..."
   $at_traceon
 
 
@@ -46862,7 +53400,7 @@ at_xfail=no
 unset TAR_OPTIONS
 
 { set +x
-$as_echo "$at_srcdir/pax-big-10g.at:26:
+$as_echo "$at_srcdir/pax-big-10g.at:27:
 
 cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
 
@@ -46873,7 +53411,7 @@ tarball_prereq pax-big-10g.tar.bz2 ca15c23acc8d8bb1f27e60113a5f8bff \$STAR_TESTS
 
 tar --utc -tvjf \$STAR_TESTSCRIPTS/pax-big-10g.tar.bz2
 "
-at_fn_check_prepare_notrace 'an embedded newline' "pax-big-10g.at:26"
+at_fn_check_prepare_notrace 'an embedded newline' "pax-big-10g.at:27"
 ( $at_check_trace;
 
 cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
@@ -46893,7 +53431,7 @@ echo >>"$at_stdout"; $as_echo "-rw------- jes/glone 10737418240 2002-06-15 21:18
 -rw-r--r-- jes/glone           0 2002-06-15 14:53 file
 " | \
   $at_diff - "$at_stdout" || at_failed=:
-at_fn_check_status 0 $at_status "$at_srcdir/pax-big-10g.at:26"
+at_fn_check_status 0 $at_status "$at_srcdir/pax-big-10g.at:27"
 $at_failed && at_fn_log_failure
 $at_traceon; }
 
@@ -46915,4 +53453,4 @@ done
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
-#AT_STOP_188
+#AT_STOP_204