do not do utime() on links, it acts on link targets, and we don't want that.
rename link_name to link_target, less confusing this way.
diff --git a/include/unarchive.h b/include/unarchive.h
index c4e875f..bea0558 100644
--- a/include/unarchive.h
+++ b/include/unarchive.h
@@ -10,11 +10,9 @@
#define ARCHIVE_NOPRESERVE_OWN 32
#define ARCHIVE_NOPRESERVE_PERM 64
-//#include "libbb.h"
-
-typedef struct file_headers_s {
+typedef struct file_header_t {
char *name;
- char *link_name;
+ char *link_target;
off_t size;
uid_t uid;
gid_t gid;
@@ -23,9 +21,9 @@
dev_t device;
} file_header_t;
-typedef struct archive_handle_s {
+typedef struct archive_handle_t {
/* define if the header and data component should be processed */
- char (*filter)(struct archive_handle_s *);
+ char (*filter)(struct archive_handle_t *);
llist_t *accept;
/* List of files that have been rejected */
llist_t *reject;
@@ -39,13 +37,13 @@
void (*action_header)(const file_header_t *);
/* process the data component, e.g. extract to filesystem */
- void (*action_data)(struct archive_handle_s *);
+ void (*action_data)(struct archive_handle_t *);
/* How to process any sub archive, e.g. get_header_tar_gz */
- char (*action_data_subarchive)(struct archive_handle_s *);
+ char (*action_data_subarchive)(struct archive_handle_t *);
/* Contains the handle to a sub archive */
- struct archive_handle_s *sub_archive;
+ struct archive_handle_t *sub_archive;
/* The raw stream as read from disk or stdin */
int src_fd;
@@ -54,7 +52,7 @@
off_t offset;
/* Function that skips data: read_by_char or read_by_skip */
- void (*seek)(const struct archive_handle_s *archive_handle, const unsigned int amount);
+ void (*seek)(const struct archive_handle_t *archive_handle, const unsigned amount);
/* Temporary storage */
char *buffer;
@@ -92,8 +90,8 @@
extern char get_header_tar_lzma(archive_handle_t *archive_handle);
extern char get_header_tar_gz(archive_handle_t *archive_handle);
-extern void seek_by_jump(const archive_handle_t *archive_handle, const unsigned int amount);
-extern void seek_by_read(const archive_handle_t *archive_handle, const unsigned int amount);
+extern void seek_by_jump(const archive_handle_t *archive_handle, const unsigned amount);
+extern void seek_by_read(const archive_handle_t *archive_handle, const unsigned amount);
extern ssize_t archive_xread_all_eof(archive_handle_t *archive_handle, unsigned char *buf, size_t count);