int ft_printf(char const *format, ...) { int tab[2]; va_list ap; char *c; t_specs opt; init_tab2(tab); c = ft_strdup(format); va_start(ap, format); while (c[tab[0]]) { if (c[tab[0]] == '{' && verif_colour(c, tab[0])) c = treat_colours(c, &tab[0]); else if (c[tab[0]] == '%') { opt = check_options(ap, format, &tab[0]); if (c[tab[0]] == 'n') treat_n(ap, &tab[0], tab[1]); else tab[1] += ft_option_printf(ap, c, &tab[0], opt); } else ft_printf2(c, &tab[0], &tab[1]); } va_end(ap); return (tab[1]); }
t_pars *my_echo_check(t_pars *pars, t_struct *struc, char **env, int pid) { char **tab2; if ((my_strncmp(pars->tab[0], "echo", 4) == 0) && (struc->operateur != 5)) return (echo_write(pars, env)); else if ((my_strncmp(pars->tab[0], "echo", 4) == 0) && (struc->operateur == 5)) { tab2 = init_tab2(struc, pars); pid = fork(); if (pid == 0) { setpgrp(); execve(pars->path, tab2, env); exit(0); } else wait(&pid); return (echo_write_in_file(pars, struc)); } return (pars); }