/* **Retrieve a list of t_format corresponding to **the format chain passed in parameter */ t_list *get_formats(char *s) { char **args; int i; t_list *list; char *old; char *tmp; init(&list, &i, &old, s); args = pf_str_sep(s, "%"); while (args && args[i]) { tmp = old; while (args[i] - tmp > 1) { list = add_rest("%", list); tmp += 2; } tmp = args[i] + pf_strlen(args[i]); if ((args[i++] - old) % 2) list = treat_arg(list, args[i - 1]); list = (args[i - 1][0]) ? (add_rest(args[i - 1], list)) : (list); old = tmp; } free(args); return (list); }
void treat_cmd(char *cmd, t_group *all, int line) { int i; int tw; i = -1; while (++i < 16) { if (!ft_strcmp(g_hextab[i].cmd, ft_strsub(cmd, 0, count(cmd)))) { tw = g_hextab[i].hex & 0xFF; write(all->fd, &tw, 1); treat_arg(cmd, all, line); return ; } } }