libunarchive: stop using static data in archivers - archive_handle_t
 can trivially provide space for that.
rpm: code shrink
tar: simplify autodetection of bz2/.gz


function                                             old     new   delta
static.not_first                                       1       -      -1
static.end                                             1       -      -1
bb_makedev                                            51      49      -2
static.saved_hardlinks_created                         4       -      -4
static.saved_hardlinks                                 4       -      -4
longname                                               4       -      -4
linkname                                               4       -      -4
hash_file                                            251     247      -4
get_header_tar                                      1528    1521      -7
rpm_main                                            1711    1697     -14
get_header_cpio                                      965     944     -21
------------------------------------------------------------------------------
(add/remove: 0/6 grow/shrink: 0/5 up/down: 0/-66)             Total: -66 bytes
   text    data     bss     dec     hex filename
 804926     611    6868  812405   c6575 busybox_old
 804878     611    6852  812341   c6535 busybox_unstripped

diff --git a/include/unarchive.h b/include/unarchive.h
index 721f879..1fab570 100644
--- a/include/unarchive.h
+++ b/include/unarchive.h
@@ -30,7 +30,7 @@
 } file_header_t;
 
 typedef struct archive_handle_t {
-	/* define if the header and data component should be processed */
+	/* Define if the header and data component should be processed */
 	char FAST_FUNC (*filter)(struct archive_handle_t *);
 	llist_t *accept;
 	/* List of files that have been rejected */
@@ -41,10 +41,10 @@
 	/* Contains the processed header entry */
 	file_header_t *file_header;
 
-	/* process the header component, e.g. tar -t */
+	/* Process the header component, e.g. tar -t */
 	void FAST_FUNC (*action_header)(const file_header_t *);
 
-	/* process the data component, e.g. extract to filesystem */
+	/* Process the data component, e.g. extract to filesystem */
 	void FAST_FUNC (*action_data)(struct archive_handle_t *);
 
 	/* How to process any sub archive, e.g. get_header_tar_gz */
@@ -66,7 +66,11 @@
 	char *buffer;
 
 	/* Flags and misc. stuff */
-	unsigned char flags;
+	unsigned char ah_flags;
+
+	/* "Private" storage for archivers */
+//	unsigned char ah_priv_inited;
+	void *ah_priv[8];
 
 } archive_handle_t;