char *printf_s(char *f, char type, void *s) { if (type == 'p') return (printf_hexa(f, type, ft_atoi(s))); else if (type == 'S') return (printf_wstring(f, (wchar_t *)s)); else if (type == 's') return (printf_string(f, (char *)s, type)); return (f); }
static int printf_type(t_printf *p, const int flag) { if (flag & C_WCHAR) return (printf_wchar(p)); if (flag & C_WSTRING) return (printf_wstring(p)); if (flag & C_STRING) return (printf_string(p)); if (flag & C_CHAR) return (printf_char(p)); if (flag & (C_INT | C_LONG)) return (printf_long(p, p->arg)); if (flag & C_UINT) return (printf_ulong_base(p, p->arg, 10)); if (flag & C_ULONG) return (printf_ulong_base(p, p->arg, 10)); if (flag & (C_HEXA | C_MHEXA)) return (printf_ulong_base(p, p->arg, 16)); if (flag & (C_LOCTAL | C_OCTAL)) return (printf_ulong_base(p, p->arg, 8)); if (flag & C_BIN) return (printf_ulong_base(p, p->arg, 2)); return (1); }