void ft_loop(t_env *env) { char *line; char **cmds; char **args; int status; status = 1; ft_getenv("USER", &env->username, &env); ft_printf("\033c"); while (status) { ft_printf("[%s]$>", env->username); get_next_line(0, &line); cmds = ft_splitcommands(line); while (*cmds) { args = ft_split(*cmds); status = ft_execute(args, &env); if (status == 0) break ; cmds++; } } free(env->username); }
static int parse_polygon_components( const char **tokens, t_polygon *new_polygon) { int i; int nt; char **ctokens; i = 0; if (!tokens_are_enough(tokens, 3)) parser_die("A face must declare at least three vertices."); while (tokens[i]) { nt = 0; if (strstr(tokens[i], "//")) nt = 1; ctokens = ft_split(tokens[i], "/\n"); if (!add_vertex((const char **)ctokens, nt, new_polygon->vertices)) { ft_free_tab(ctokens); return (0); } ++i; ft_free_tab(ctokens); } return (1); }
void ft_cd(char *buf, t_params *p) { char **av; char *new_dir; int ret; int size; ret = 0; av = ft_split(buf); new_dir = NULL; size = av_size(av); if (size > 2) ft_putendl("cd: syntax error"); else if (size == 1 || (size == 2 && !ft_strcmp(av[1], "~"))) new_dir = ft_strdup(p->home); else new_dir = get_newdir(p, av[1]); if (new_dir && !(ret = check_path(new_dir)) && !chdir(new_dir)) update_env(p, new_dir); else if (new_dir && !(ret = check_path(new_dir)) && chdir(new_dir) == -1) ft_print_error("cd: not a directory: ", av[1]); if (new_dir && ret && av[1]) improper_path(ret, av[1]); ft_strdel(&new_dir); del_av(av); }
int main(int ac, char **av) { char **tab; if(ac == 2) { tab = ft_split(av[1]); tab = ft_sorttab(tab, av[1]); ft_showtab(tab, av[1]); } write(1, "\n", 1); return (0); }
void rostring(char *str) { int i; char **dest; i = 1; dest = ft_split(str); while (dest[i]) { ft_putstr(dest[i++]); ft_putchar(' '); } ft_putstr(dest[0]); while (*dest) free(*dest++); }
int parse_line(char *line) { char **tokens; int (*parse_function)(const char **); if (!(tokens = ft_split(line, " \t\n"))) return (0); parse_function = get_parse_func(tokens[0]); if (!parse_function) { puts(tokens[0]); ft_free_tab(tokens); parser_die("Unknown data type."); } (*parse_function)((const char **)(tokens + 1)); ft_free_tab(tokens); return (1); }
int main(void) { char str[99] = "abcDDdefgDD"; char charset[99] = "DD"; int i; char **mat; // printf("%d\n", ft_check(str, charset, 9)); // printf("%d\n", ft_strlen_tw(str, charset)); i = 0; mat = ft_split(str, charset); while (mat[i]) { printf("%s\n", mat[i]); i++; } return (0); }
t_pipe *ft_make_pipelst(char *str) { char *s; char **arr; t_pipe *start; int i; i = 0; start = NULL; s = ft_strtrim(str); free(str); arr = ft_split(s); free(s); while (arr[i] != '\0') { make_list_item(arr[i], &start); free(arr[i]); i++; } free(arr[i]); free(arr); return (start); }