Sergey Poznyakoff
ab6dd4948d
Keep a detailed map of archive members stored in the record buffer.
A separate map (bufmap) provides information for creating
multi-volume continuation headers.
* src/buffer.c (bufmap): New struct.
(bufmap_head, bufmap_tail, inhibit_map): New variables.
(mv_begin_write): New function.
(mv_begin): Rename to mv_begin_read. Rewrite using mv_begin_write.
All callers changed.
(mv_total_size): Remove.
(bufmap_locate, bufmap_free, bufmap_reset): New functions.
(_flush_write): Update bufmap.
(close_archive): Free bufmap.
(add_chunk_header): Take a bufmap argument.
(gnu_add_multi_volume_header): Likewise.
(add_multi_volume_header): Likewise.
(_gnu_flush_write): Rewrite using bufmap.
(real_s_name, real_s_totsize)
(real_s_sizeleft)
(save_name, save_totsize, save_sizeleft): Removed. All
uses updated.
(mv_size_left): Update bufmap_head.
(mv_end): Rewrite.
(multi_volume_sync): Remove.
* src/common.h (mv_begin_write): New prototype.
(mv_begin): Rename to mv_begin_read.
* src/create.c: Use mv_begin_write instead of mv_begin.
Remove calls to mv_size_left and mv_end.
* src/sparse.c: Likewise.
* tests/multiv07.at: Close stdin.
* tests/spmvp00.at: Update AT_KEYWORDS.
* tests/spmvp10.at: Likewise.
* tests/multiv08.at: New testcase.
* tests/Makefile.am, tests/testsuite.at: Add multiv08.at.
2010-07-11 22:57:17 +03:00
..
2008-03-06 08:17:33 +00:00
2009-03-07 16:30:44 +02:00
2007-06-27 13:30:12 +00:00
2009-10-04 23:38:34 +03:00
2007-06-27 13:30:12 +00:00
2008-07-31 07:12:50 +00:00
2009-08-05 10:38:50 +03:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2008-06-26 06:32:25 +00:00
2009-08-12 19:25:29 +03:00
2009-08-12 19:25:29 +03:00
2009-08-12 19:25:29 +03:00
2009-08-12 19:25:29 +03:00
2010-03-02 18:39:40 +02:00
2010-06-28 16:56:54 +03:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2010-03-08 12:31:59 +02:00
2007-06-27 13:30:12 +00:00
2010-03-27 22:46:18 +02:00
2009-08-27 20:12:14 +03:00
2009-08-08 22:33:16 +03:00
2009-08-08 19:53:54 +03:00
2009-08-08 19:53:54 +03:00
2010-04-01 00:03:51 +03:00
2008-06-26 06:32:25 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2009-08-07 14:52:55 +03:00
2009-08-07 14:52:55 +03:00
2009-08-13 16:45:49 +03:00
2009-08-13 16:45:49 +03:00
2008-07-31 07:12:50 +00:00
2007-06-27 13:30:12 +00:00
2010-01-24 15:52:22 +02:00
2010-01-24 15:52:22 +02:00
2010-03-11 17:41:23 +02:00
2010-03-11 17:41:23 +02:00
2010-03-11 17:41:23 +02:00
2009-07-30 23:49:32 +03:00
2010-03-27 22:46:18 +02:00
2010-03-27 22:46:18 +02:00
2009-08-07 14:52:55 +03:00
2009-08-07 14:52:55 +03:00
2007-06-27 13:30:12 +00:00
2008-06-26 06:32:25 +00:00
2008-06-26 06:32:25 +00:00
2008-06-26 06:32:25 +00:00
2007-06-27 13:30:12 +00:00
2010-07-11 22:57:17 +03:00
2009-08-07 14:52:55 +03:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2008-06-14 10:17:14 +00:00
2008-07-31 07:12:50 +00:00
2010-07-11 22:57:17 +03:00
2010-07-11 22:57:17 +03:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2009-05-25 10:18:59 +03:00
2007-06-27 13:30:12 +00:00
2010-03-20 13:20:30 +02:00
2009-10-14 17:55:15 +03:00
2010-03-17 11:52:40 +02:00
2009-08-07 14:52:55 +03:00
2009-08-07 14:52:55 +03:00
2009-08-07 14:52:55 +03:00
2008-07-31 07:12:50 +00:00
2008-07-31 07:12:50 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2008-06-26 06:32:25 +00:00
2009-05-25 10:18:59 +03:00
2008-02-08 10:32:15 +00:00
2010-03-20 13:20:30 +02:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2008-10-22 20:55:35 +00:00
2009-05-25 10:18:59 +03:00
2010-07-11 22:57:17 +03:00
2007-06-27 13:30:12 +00:00
2010-07-11 22:57:17 +03:00
2007-06-27 13:30:12 +00:00
2007-10-04 07:16:39 +00:00
2010-07-11 22:57:17 +03:00
2009-08-08 19:53:54 +03:00
2009-10-14 23:26:52 +03:00
2009-10-14 23:26:52 +03:00
2009-10-14 23:26:52 +03:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2009-05-25 10:18:59 +03:00
2007-06-27 13:30:12 +00:00
2009-08-27 20:12:14 +03:00