*
*/
#include <fcntl.h>
+#include <string.h>
+#include <stdlib.h>
+#include <getopt.h>
+#include <unistd.h>
#include "busybox.h"
typedef struct ar_headers_s {
/*
* return the headerL_t struct for the filename descriptor
*/
-static ar_headers_t get_headers(int srcFd)
+extern ar_headers_t get_headers(int srcFd)
{
typedef struct raw_ar_header_s { /* Byte Offset */
char name[16]; /* 0-15 */
/* check ar magic */
if (full_read(srcFd, ar_magic, 8) != 8)
- error_msg_and_die("cannot read magic\n");
+ error_msg_and_die("cannot read magic");
if (strncmp(ar_magic,"!<arch>",7) != 0)
- error_msg_and_die("invalid magic\n");
+ error_msg_and_die("invalid magic");
while (full_read(srcFd, (char *) &raw_ar_header, 60)==60) {
/* check the end of header markers are valid */
usage(ar_usage);
if ( (srcFd = open(argv[optind], O_RDONLY)) < 0)
- error_msg_and_die("Cannot read %s\n", argv[optind]);
+ error_msg_and_die("Cannot read %s", argv[optind]);
optind++;
head = get_headers(srcFd);