cpio: support some long options; document GNU options

diff --git a/archival/libunarchive/get_header_cpio.c b/archival/libunarchive/get_header_cpio.c
index 96be4b5..95d36cc 100644
--- a/archival/libunarchive/get_header_cpio.c
+++ b/archival/libunarchive/get_header_cpio.c
@@ -7,8 +7,8 @@
 #include "libbb.h"
 #include "unarchive.h"
 
-typedef struct hardlinks_s {
-	struct hardlinks_s *next;
+typedef struct hardlinks_t {
+	struct hardlinks_t *next;
 	int inode; /* TODO: must match maj/min too! */
 	int mode ;
 	int mtime; /* These three are useful only in corner case */
@@ -149,6 +149,7 @@
 				free(make_me);
 				goto next_link;
 			}
+			cur = cur->next;
 		}
 		/* Oops... no file with such inode was created... do it now
 		 * (happens when hardlinked files are empty (zero length)) */