/* ************************************************************************** */ /* LE - / */ /* / */ /* ft_printf_get_flags.c .:: .:/ . .:: */ /* +:+:+ +: +: +:+:+ */ /* By: rbousset +:+ +: +: +:+ */ /* #+# #+ #+ #+# */ /* Created: 2019/12/31 14:40:22 by rbousset #+# ## ## #+# */ /* Updated: 2019/12/31 14:40:23 by rbousset ### #+. /#+ ###.fr */ /* / */ /* / */ /* ************************************************************************** */ #include #include #include /* ** Copies everything between '%' and any ** FT_PRINTF_CONV_CHARSET "cspdiuxX%" ** into the fullflag string and returns it. ** Also puts actual conv into pflist->actconv */ char *ft_printf_get_flags(const char *format, int pos, t_printflist *pflist) { int i; char *nstr; char *fullflag; i = 0; while (!ft_ischarset(FT_PRINTF_CONV_CHARSET, *(format + pos + i + 1)) && *(format + pos + i + 1)) i++; if (!(fullflag = (char*)malloc((i + 1) * sizeof(char)))) return (NULL); ft_memcpy(fullflag, nstr = ft_substr(format, pos + 1, i), i); ft_memdel(nstr); fullflag[i] = '\0'; pflist->actconv = *(format + pos + i + 1); return (fullflag); }