summaryrefslogtreecommitdiff
path: root/libbb/seek_ared_file.c
diff options
context:
space:
mode:
authorGlenn L McGrath2001-04-11 16:31:20 +0000
committerGlenn L McGrath2001-04-11 16:31:20 +0000
commitb3f23d4c6a34b190d3fe0b73ed3c25e4af611749 (patch)
tree9966ebb52afc74d1cf85c4b7f5c670545b137007 /libbb/seek_ared_file.c
parent988be100e246cd4b78c60082ce74a77894a903b7 (diff)
downloadbusybox-b3f23d4c6a34b190d3fe0b73ed3c25e4af611749.zip
busybox-b3f23d4c6a34b190d3fe0b73ed3c25e4af611749.tar.gz
Seek to start of an entry inside an ar file
Diffstat (limited to 'libbb/seek_ared_file.c')
-rw-r--r--libbb/seek_ared_file.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/libbb/seek_ared_file.c b/libbb/seek_ared_file.c
new file mode 100644
index 0000000..67c789d
--- /dev/null
+++ b/libbb/seek_ared_file.c
@@ -0,0 +1,17 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include "libbb.h"
+
+extern int seek_ared_file(FILE *in_file, ar_headers_t *headers, const char *tar_gz_file)
+{
+ /* find the headers for the specified .tar.gz file */
+ while (headers->next != NULL) {
+ if (strcmp(headers->name, tar_gz_file) == 0) {
+ fseek(in_file, headers->offset, SEEK_SET);
+ return(EXIT_SUCCESS);
+ }
+ headers = headers->next;
+ }
+
+ return(EXIT_FAILURE);
+} \ No newline at end of file