Lines Matching refs:archive

31  * actually needs to write an archive.  Optional pieces have been, as
57 #include "archive.h"
62 static int _archive_filter_code(struct archive *, int);
63 static const char *_archive_filter_name(struct archive *, int);
64 static int64_t _archive_filter_bytes(struct archive *, int);
65 static int _archive_write_filter_count(struct archive *);
66 static int _archive_write_close(struct archive *);
67 static int _archive_write_free(struct archive *);
68 static int _archive_write_header(struct archive *, struct archive_entry *);
69 static int _archive_write_finish_entry(struct archive *);
70 static ssize_t _archive_write_data(struct archive *, const void *, size_t);
93 * Allocate, initialize and return an archive object.
95 struct archive *
104 a->archive.magic = ARCHIVE_WRITE_MAGIC;
105 a->archive.state = ARCHIVE_STATE_NEW;
106 a->archive.vtable = &archive_write_vtable;
123 return (&a->archive);
130 archive_write_set_bytes_per_block(struct archive *_a, int bytes_per_block)
133 archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
143 archive_write_get_bytes_per_block(struct archive *_a)
146 archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
156 archive_write_set_bytes_in_last_block(struct archive *_a, int bytes)
159 archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
169 archive_write_get_bytes_in_last_block(struct archive *_a)
172 archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
179 * an archive to itself recursively.
182 archive_write_set_skip_file(struct archive *_a, la_int64_t d, la_int64_t i)
185 archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
197 __archive_write_allocate_filter(struct archive *_a)
207 f->archive = _a;
350 struct archive_write *a = (struct archive_write *)f->archive;
356 f->bytes_per_block = archive_write_get_bytes_per_block(f->archive);
358 archive_write_get_bytes_in_last_block(f->archive);
366 archive_set_error(f->archive, ENOMEM,
379 ret = a->client_opener(f->archive, a->client_data);
392 struct archive_write *a = (struct archive_write *)f->archive;
408 bytes_written = (a->client_writer)(&a->archive,
434 bytes_written = (a->client_writer)(&a->archive,
439 archive_set_error(&(a->archive),
453 bytes_written = (a->client_writer)(&a->archive,
473 struct archive_write *a = (struct archive_write *)f->archive;
476 (*a->client_freer)(&a->archive, a->client_data);
492 struct archive_write *a = (struct archive_write *)f->archive;
524 bytes_written = (a->client_writer)(&a->archive,
531 archive_set_error(&(a->archive),
541 (*a->client_closer)(&a->archive, a->client_data);
551 * Open the archive using the current settings.
554 archive_write_open2(struct archive *_a, void *client_data,
562 archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
564 archive_clear_error(&a->archive);
589 a->archive.state = ARCHIVE_STATE_HEADER;
596 archive_write_open(struct archive *_a, void *client_data,
605 * Close out the archive.
608 _archive_write_close(struct archive *_a)
613 archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
616 if (a->archive.state == ARCHIVE_STATE_NEW
617 || a->archive.state == ARCHIVE_STATE_CLOSED)
620 archive_clear_error(&a->archive);
623 if (a->archive.state == ARCHIVE_STATE_DATA
627 /* Finish off the archive. */
640 if (a->archive.state != ARCHIVE_STATE_FATAL)
641 a->archive.state = ARCHIVE_STATE_CLOSED;
646 _archive_write_filter_count(struct archive *_a)
659 __archive_write_filters_free(struct archive *_a)
679 * Destroy the archive structure.
686 _archive_write_free(struct archive *_a)
694 archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
696 if (a->archive.state != ARCHIVE_STATE_FATAL)
697 r = archive_write_close(&a->archive);
710 archive_string_free(&a->archive.error_string);
716 a->archive.magic = 0;
717 __archive_clean(&a->archive);
726 _archive_write_header(struct archive *_a, struct archive_entry *entry)
731 archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
733 archive_clear_error(&a->archive);
736 archive_set_error(&(a->archive), -1,
737 "Format must be set before you can write to an archive.");
738 a->archive.state = ARCHIVE_STATE_FATAL;
743 ret = archive_write_finish_entry(&a->archive);
745 a->archive.state = ARCHIVE_STATE_FATAL;
756 archive_set_error(&a->archive, 0,
757 "Can't add archive to itself");
767 a->archive.state = ARCHIVE_STATE_FATAL;
779 a->archive.state = ARCHIVE_STATE_FATAL;
785 a->archive.state = ARCHIVE_STATE_DATA;
790 _archive_write_finish_entry(struct archive *_a)
795 archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
798 if (a->archive.state & ARCHIVE_STATE_DATA
801 a->archive.state = ARCHIVE_STATE_HEADER;
809 _archive_write_data(struct archive *_a, const void *buff, size_t s)
814 archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
819 archive_clear_error(&a->archive);
824 filter_lookup(struct archive *_a, int n)
840 _archive_filter_code(struct archive *_a, int n)
847 _archive_filter_name(struct archive *_a, int n)
854 _archive_filter_bytes(struct archive *_a, int n)