diff options
Diffstat (limited to 'src/ft_get_tex.c')
-rw-r--r-- | src/ft_get_tex.c | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/src/ft_get_tex.c b/src/ft_get_tex.c index 6bd2b7c..652f4af 100644 --- a/src/ft_get_tex.c +++ b/src/ft_get_tex.c @@ -41,7 +41,7 @@ ft_get_tex_so(int fd, t_win *wlist) if (!(*words) || ft_strcmp(*words, "SO") || !(*(words + 1)) || (*(words + 2))) { - /* ft_free_words(words); */ + ft_free_words(words); return (ft_map_error(3, wlist)); } ft_memdel(wlist->clist->so_tex_path); @@ -66,7 +66,10 @@ ft_get_tex_we(int fd, t_win *wlist) return (ft_exit(5, wlist)); if (!(*words) || ft_strcmp(*words, "WE") || !(*(words + 1)) || (*(words + 2))) + { + ft_free_words(words); 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)))) @@ -77,12 +80,39 @@ ft_get_tex_we(int fd, t_win *wlist) return (0); } +static int +ft_get_tex_ea(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, "EA") + || !(*(words + 1)) || (*(words + 2))) + { + ft_free_words(words); + return (ft_map_error(5, wlist)); + } + ft_memdel(wlist->clist->ea_tex_path); + len = ft_strlen(*(words + 1)); + if (!(wlist->clist->ea_tex_path = (char*)malloc((len + 1) * sizeof(char)))) + return (-1); + ft_strlcpy(wlist->clist->ea_tex_path, *(words + 1), len + 1); + ft_free_words(words); + ft_memdel(line); + return (0); +} + int 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) + ft_get_tex_we(fd, wlist) < 0 || + ft_get_tex_ea(fd, wlist) < 0) return (-1); return (0); } |