From 6776a1f3491663c85480326e0d01f9a6c5455bbd Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Fri, 24 Jan 2020 17:57:20 +0100 Subject: Tons of changes --- src/ft_get_tex.c | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) (limited to 'src/ft_get_tex.c') diff --git a/src/ft_get_tex.c b/src/ft_get_tex.c index d38e494..5bd7a4f 100644 --- a/src/ft_get_tex.c +++ b/src/ft_get_tex.c @@ -1,7 +1,82 @@ #include #include +#include + +static int +ft_get_tex_no(int fd, t_win *wlist) +{ + char *line; + char **words; + size_t len; + + get_next_line(fd, &line); + if (!(words = ft_split(line, ' '))) + return (ft_exit(5, wlist)); + if (!(*words) || ft_strcmp(*words, "NO") + || !(*(words + 1)) || (*(words + 2))) + return (ft_map_error(2, wlist)); + ft_memdel(wlist->clist->no_tex_path); + len = ft_strlen(*(words + 1)); + if (!(wlist->clist->no_tex_path = (char*)malloc((len + 1) * sizeof(char)))) + return (-1); + ft_strlcpy(wlist->clist->no_tex_path, *(words + 1), len + 1); + ft_free_words(words); + ft_memdel(line); + return (0); +} + +static int +ft_get_tex_so(int fd, t_win *wlist) +{ + char *line; + char **words; + size_t len; + + get_next_line(fd, &line); + if (!(words = ft_split(line, ' '))) + return (ft_exit(5, wlist)); + if (!(*words) || ft_strcmp(*words, "SO") + || !(*(words + 1)) || (*(words + 2))) + return (ft_map_error(3, wlist)); + ft_memdel(wlist->clist->so_tex_path); + len = ft_strlen(*(words + 1)); + if (!(wlist->clist->so_tex_path = (char*)malloc((len + 1) * sizeof(char)))) + return (-1); + ft_strlcpy(wlist->clist->so_tex_path, *(words + 1), len + 1); + ft_free_words(words); + ft_memdel(line); + return (0); +} + +static int +ft_get_tex_we(int fd, t_win *wlist) +{ + char *line; + char **words; + size_t len; + + get_next_line(fd, &line); + if (!(words = ft_split(line, ' '))) + return (ft_exit(5, wlist)); + if (!(*words) || ft_strcmp(*words, "WE") + || !(*(words + 1)) || (*(words + 2))) + return (ft_map_error(4, wlist)); + ft_memdel(wlist->clist->we_tex_path); + len = ft_strlen(*(words + 1)); + if (!(wlist->clist->we_tex_path = (char*)malloc((len + 1) * sizeof(char)))) + return (-1); + ft_strlcpy(wlist->clist->we_tex_path, *(words + 1), len + 1); + ft_free_words(words); + ft_memdel(line); + return (0); +} int -ft_get_tex(int fd, t_cub *clist) +ft_get_tex(int fd, t_win *wlist) { + if (ft_get_tex_no(fd, wlist) < 0 || + ft_get_tex_so(fd, wlist) < 0 || + ft_get_tex_we(fd, wlist) < 0) + return (-1); + return (0); } -- cgit v1.2.3