Change #262017
| Category | gtar |
| Changed by | Paul Eggert <eggert@cs.ucla.edu> |
| Changed at | Sun 22 Mar 2026 20:23:55 |
| Repository | git://git.savannah.gnu.org/tar.git |
| Project | gtar |
| Branch | master |
| Revision | b8d8a61b25588caca4efaf9bdd2e3f1a49da77e3 |
Comments
Fix more -t/-x discrepancies Problem reported by Guillermo de Angel in: https://lists.gnu.org/r/bug-tar/2026-03/msg00007.html * THANKS: Add him, and sort. * src/extract.c (extract_dir, extract_file): * src/incremen.c (purge_directory): Do not call skip_member, as the caller now does that, and does it more reliably. * src/extract.c (extract_file): Mark file as skipped when we’ve read it. (extract_archive): Always call skip_member after extracting, as it suppresses the skip as needed. * src/incremen.c (try_purge_directory): Remove; no longer needed. Move internals to purge_directory. * src/list.c (read_header): Do not treat LNKTYPE header as having size zero, as it can be nonzero (e.g., ‘pax -o linkdata’). Set info->skipped field according to how the header was read. (member_is_dir): Remove; no longer needed. (skim_member): Skip directory data too, unless it’s already been skipped (i.e., read). * tests/extrac32.at: New file. * tests/Makefile.am (TESTSUITE_AT): * tests/testsuite.at: Add it. * tests/skipdir.at (skip directory members): Fix test to match the correct behavior. This fixes a bug introduced in commit b009124ffde415515081db844d7a104e1d1c6c58 dated 2025-05-12 17:17:21 +0300.
Changed files
- THANKS
- src/extract.c
- src/incremen.c
- src/list.c
- tests/Makefile.am
- tests/extrac32.at
- tests/skipdir.at
- tests/testsuite.at