- header_copy = xmalloc (size + 1);
-
- if (header->header.typeflag == GNUTYPE_LONGNAME)
- {
- if (next_long_name)
- free (next_long_name);
- next_long_name = header_copy;
- next_long_name_blocks = size / BLOCKSIZE;
- }
- else
- {
- if (next_long_link)
- free (next_long_link);
- next_long_link = header_copy;
- next_long_link_blocks = size / BLOCKSIZE;
- }
-
- set_next_block_after (header);
- *header_copy = *header;
- bp = header_copy->buffer + BLOCKSIZE;
-
- for (size -= BLOCKSIZE; size > 0; size -= written)
- {
- data_block = find_next_block ();
- if (! data_block)