ar: add archive creation support

function                                             old     new   delta
ar_main                                              184     542    +358
output_ar_header                                       -     166    +166
copy_data                                              -      54     +54
filter_replaceable                                     -      19     +19
get_header_ar                                        409     414      +5
header_verbose_list_ar                                85      88      +3
static.msg_unsupported_err                            28       -     -28
------------------------------------------------------------------------------
(add/remove: 3/1 grow/shrink: 3/0 up/down: 605/-28)           Total: 577 bytes

Signed-off-by: Alexander Shishkin <virtuoso@slind.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Alexander Shishkin
2010-03-15 15:38:09 +01:00
committed by Denys Vlasenko
parent 814da220a5
commit 535584c750
7 changed files with 263 additions and 42 deletions

26
include/ar.h Normal file
View File

@ -0,0 +1,26 @@
/*
* busybox ar archive data structures
* Licensed under the GPL v2 or later, see the file LICENSE in this source tree.
*/
#ifndef AR_H
#define AR_H
PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
struct ar_header {
char name[16];
char date[12];
char uid[6];
char gid[6];
char mode[8];
char size[10];
char magic[2];
};
#define AR_HEADER_LEN sizeof(struct ar_header)
#define AR_MAGIC "!<arch>"
#define AR_MAGIC_LEN 7
POP_SAVED_FUNCTION_VISIBILITY
#endif

View File

@ -73,6 +73,10 @@ typedef struct archive_handle_t {
/* Contains the handle to a sub archive */
struct archive_handle_t *dpkg__sub_archive;
#endif
#if ENABLE_FEATURE_AR_CREATE
const char *ar__name;
struct archive_handle_t *ar__out;
#endif
} archive_handle_t;
/* bits in ah_flags */
#define ARCHIVE_RESTORE_DATE (1 << 0)