X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=elf%2Felftype.c;h=d9b253a2249458208fb82e642d489610eb82a285;hb=ada8405d470a7b13eba173bcacfd660e13dfed0d;hp=94e68b9306f17bff1bce062c8d2c4a8972d666d5;hpb=6cacaf0ab8b08aef3976a56936f4473039aaa0b7;p=zpackage diff --git a/elf/elftype.c b/elf/elftype.c index 94e68b9..d9b253a 100644 --- a/elf/elftype.c +++ b/elf/elftype.c @@ -7,7 +7,7 @@ #include #include -#include +#include "elf.h" #define RELOCATABLE 0x1 #define EXECUTABLE 0x2 @@ -48,7 +48,6 @@ int main(int ac, char **av) { case '0': zeroterm = 1; break; case 'f': if (optarg[0] == '-' && optarg[1] == 0) { - fprintf(stderr, "opening stdin\n"); list = stdin; } else { list = fopen(optarg, "r"); @@ -63,11 +62,25 @@ int main(int ac, char **av) { if (!want) want = (RELOCATABLE|EXECUTABLE|DYNAMIC|CORE); if (list) { + int type; quiet = 2; perr = 0; while (readline(list, fn)) { - fprintf(stderr, "checking %s\n", fn); - if (checkfile(fn, want,perr,quiet)) { + if ((type = checkfile(fn, want,perr,quiet)) & want) { + if (printtype) { + switch (type) { + case RELOCATABLE: + printf("relocatable "); break; + case EXECUTABLE: + printf("executable "); break; + case DYNAMIC: + printf("dynamic "); break; + case CORE: + printf("core "); break; + default: + printf("notelf "); break; + } + } printf("%s\n", fn); } }