commit c176afa115cb4c2cec647e688c75af1757666953
parent ab0795328ffc1aedf215c20a1bd97d2eba943548
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date: Fri, 23 Aug 2019 18:50:43 +0100
[libmach] Move armember() into formember()
Armember() is not used out of formember() and it is not going
to happen, so it is better to remove this interface.
Diffstat:
3 files changed, 43 insertions(+), 48 deletions(-)
diff --git a/include/scc/scc/mach.h b/include/scc/scc/mach.h
@@ -69,6 +69,7 @@ struct obj {
void *data;
};
+extern int archive(FILE *fp);
extern int formember(FILE *fp,
int (*fn)(FILE *, char *, void *),
void *data);
@@ -77,8 +78,6 @@ extern int objtype(FILE *fp, char **name);
extern Obj *objnew(int type);
extern Objsym *objlookup(Obj *obj, char *name, int install);
extern int objpos(Obj *obj, FILE *fp, long pos);
-extern int archive(FILE *fp);
-extern long armember(FILE *fp, char *member);
/* TODO */
diff --git a/src/libmach/armember.c b/src/libmach/armember.c
@@ -1,46 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <scc/ar.h>
-#include <scc/mach.h>
-
-static char *
-getfname(struct ar_hdr *hdr, char *dst)
-{
- char *p;
- int i;
-
- memcpy(dst, hdr->ar_name, SARNAM);
- dst[SARNAM] = '\0';
-
- for (i = SARNAM-1; i > 0; i--) {
- if (dst[i] != ' ' && dst[i] != '/')
- break;
- dst[i] = '\0';
- }
- return dst;
-}
-
-long
-armember(FILE *fp, char *member)
-{
- struct ar_hdr hdr;
- long siz;
-
- if (fread(&hdr, sizeof(hdr), 1, fp) != 1)
- return (feof(fp)) ? 0 : -1;
-
- if (strncmp(hdr.ar_fmag, ARFMAG, sizeof(hdr.ar_fmag)))
- return -1;
-
- siz = strtol(hdr.ar_size, NULL, 0);
- if (siz & 1)
- siz++;
- if (siz == 0)
- return -1;
-
- getfname(&hdr, member);
-
- return sizeof(hdr) + siz;
-}
diff --git a/src/libmach/formember.c b/src/libmach/formember.c
@@ -1,8 +1,50 @@
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
#include <scc/ar.h>
#include <scc/mach.h>
+static char *
+getfname(struct ar_hdr *hdr, char *dst)
+{
+ char *p;
+ int i;
+
+ memcpy(dst, hdr->ar_name, SARNAM);
+ dst[SARNAM] = '\0';
+
+ for (i = SARNAM-1; i > 0; i--) {
+ if (dst[i] != ' ' && dst[i] != '/')
+ break;
+ dst[i] = '\0';
+ }
+ return dst;
+}
+
+static long
+armember(FILE *fp, char *member)
+{
+ struct ar_hdr hdr;
+ long siz;
+
+ if (fread(&hdr, sizeof(hdr), 1, fp) != 1)
+ return (feof(fp)) ? 0 : -1;
+
+ if (strncmp(hdr.ar_fmag, ARFMAG, sizeof(hdr.ar_fmag)))
+ return -1;
+
+ siz = strtol(hdr.ar_size, NULL, 0);
+ if (siz & 1)
+ siz++;
+ if (siz == 0)
+ return -1;
+
+ getfname(&hdr, member);
+
+ return sizeof(hdr) + siz;
+}
+
int
formember(FILE *fp, int (*fn)(FILE *, char *, void *), void *data)
{