int main(int ac, char **av) { t_env env; int j; int i; ft_bzero(&env, sizeof(env)); if (ac == 1) ft_nm(&env, "a.out", 0); else if (ac > 1) { i = run_parse_arguments(&env.params, ac, av); j = i; if (!i) return (EXIT_FAILURE); if (i >= ac) ft_nm(&env, "a.out", 0); else { while (i < ac) { ft_nm(&env, av[i], ac - j > 1); i++; } } } }
void arch_loop(t_env *e, t_ranlib *ran, t_arch_hdr *hdr, int s) { int i; unsigned int check_ran_off; t_arch_hdr *hdr_name; void *start; i = 0; check_ran_off = -1; start = (void*)e->mem; while (i < s) { if (ran[i].ran_off != check_ran_off) { hdr_name = (void*)start + ran[i].ran_off; e->mem = (void*)hdr_name + sizeof(t_arch_hdr) + get_size_arch(hdr->ar_name); ft_putstr("\n"); ft_putstr(e->filename); ft_putstr("("); ft_putstr(get_name_arch(hdr_name->ar_name)); ft_putendl("):"); ft_nm(e); } check_ran_off = ran[i].ran_off; i++; } }
int main(int ac, char **av) { char *path; char *file; struct stat buf; if ((ac = ft_options(&av, NM_OPTIONS, 0))) { while (*av) { path = *av; file = 0; if (ac == 1) path = "a.out"; if (ac > 2) ft_printf("\n%s:\n", path); if (mmap_file(path, &buf, &file) == SUCCESS) { ft_nm(file, path); munmap_file(file, &buf); } av++; } } return (FT_EXIT); }