Lines Matching full:arch

1 /*	$NetBSD: arch.c,v 1.223 2025/06/28 22:39:27 rillig Exp $	*/
149 /* "@(#)arch.c 8.2 (Berkeley) 1/2/94" */
150 MAKE_RCSID("$NetBSD: arch.c,v 1.223 2025/06/28 22:39:27 rillig Exp $");
157 typedef struct Arch { struct
163 } Arch; argument
169 static int ArchSVR4Entry(Arch *, char *, size_t, FILE *);
193 # define ARMAG "!<arch>\n"
202 ArchFree(Arch *a) in ArchFree()
419 FILE *arch; in ArchStatMember() local
423 Arch *ar; in ArchStatMember()
431 const Arch *a = ln->datum; in ArchStatMember()
464 arch = ArchFindMember(archive, member, &sarh, "r"); in ArchStatMember()
465 if (arch == NULL) in ArchStatMember()
468 fclose(arch); in ArchStatMember()
472 arch = fopen(archive, "r"); in ArchStatMember()
473 if (arch == NULL) in ArchStatMember()
476 if (fread(magic, SARMAG, 1, arch) != 1 || in ArchStatMember()
478 (void)fclose(arch); in ArchStatMember()
489 while (fread(&arh, sizeof arh, 1, arch) == 1) { in ArchStatMember()
511 switch (ArchSVR4Entry(ar, memName, size, arch)) { in ArchStatMember()
538 if (fread(memName, elen, 1, arch) != 1) in ArchStatMember()
541 if (fseek(arch, -(long)elen, SEEK_CUR) != 0) in ArchStatMember()
543 if (DEBUG(ARCH) || DEBUG(MAKE)) in ArchStatMember()
559 if (fseek(arch, ((long)size + 1) & ~1, SEEK_CUR) != 0) in ArchStatMember()
563 fclose(arch); in ArchStatMember()
570 fclose(arch); in ArchStatMember()
592 ArchSVR4Entry(Arch *ar, char *inout_name, size_t size, FILE *arch) in ArchSVR4Entry() argument
603 DEBUG0(ARCH, in ArchSVR4Entry()
615 if (fread(ar->fnametab, size, 1, arch) != 1) { in ArchSVR4Entry()
616 DEBUG0(ARCH, "Reading an SVR4 name table failed\n"); in ArchSVR4Entry()
625 DEBUG1(ARCH, in ArchSVR4Entry()
636 DEBUG1(ARCH, "Could not parse SVR4 name %s\n", inout_name); in ArchSVR4Entry()
640 DEBUG2(ARCH, "SVR4 entry offset %s is greater than %lu\n", in ArchSVR4Entry()
645 DEBUG2(ARCH, "Replaced %s with %s\n", inout_name, &ar->fnametab[entry]); in ArchSVR4Entry()
694 FILE *arch; in ArchFindMember() local
699 arch = fopen(archive, mode); in ArchFindMember()
700 if (arch == NULL) in ArchFindMember()
703 if (fread(magic, SARMAG, 1, arch) != 1 || in ArchFindMember()
705 fclose(arch); in ArchFindMember()
713 while (fread(out_arh, sizeof *out_arh, 1, arch) == 1) { in ArchFindMember()
717 fclose(arch); in ArchFindMember()
721 DEBUG5(ARCH, "Reading archive %s member %.*s mtime %.*s\n", in ArchFindMember()
727 if (fseek(arch, -(long)sizeof *out_arh, SEEK_CUR) != in ArchFindMember()
729 fclose(arch); in ArchFindMember()
732 return arch; in ArchFindMember()
748 fclose(arch); in ArchFindMember()
751 if (fread(ename, elen, 1, arch) != 1) { in ArchFindMember()
752 fclose(arch); in ArchFindMember()
756 if (DEBUG(ARCH) || DEBUG(MAKE)) in ArchFindMember()
763 if (fseek(arch, in ArchFindMember()
766 fclose(arch); in ArchFindMember()
769 return arch; in ArchFindMember()
771 if (fseek(arch, -(long)elen, SEEK_CUR) != 0) { in ArchFindMember()
772 fclose(arch); in ArchFindMember()
782 if (fseek(arch, (size + 1) & ~1L, SEEK_CUR) != 0) { in ArchFindMember()
783 fclose(arch); in ArchFindMember()
788 fclose(arch); in ArchFindMember()
931 if (DEBUG(ARCH) || DEBUG(MAKE)) in RanlibOODate()
938 if (DEBUG(ARCH) || DEBUG(MAKE)) in RanlibOODate()
1022 && memcmp(buf, "!<arch>\n", sizeof buf) == 0; in Arch_IsLib()