void ft_printf_do_pointer(t_printf_parse_env *env, va_list args, int caps) { char *s; unsigned long l; l = va_arg(args, unsigned long); env->ret += ft_putstr_fd("0x", env->fd); s = ft_ntoa(l >> 16, 16); env->ret += ft_putstr_fd(caps ? ft_strtoupper(s) : s, env->fd); s = ft_ntoa(l & 0xffff, 16); env->ret += ft_putstr_fd(caps ? ft_strtoupper(s) : s, env->fd); }
int ft_printf_ldtoa(t_ldbl val, int prec, char *buff, char spe) { t_uldbl dbl; int expn; int base; char *bstr; dbl.val = val; bstr = BASE_DENARY; if (spe == 'a' || spe == 'A') bstr = spe == 'A' ? BASE_HEXA_UP : BASE_HEXA; base = (int)ft_strlen(bstr); if (dbl.bits.expn == 2047) { ft_strcat(buff, dbl.bits.mant ? "nan" : "\0"); if (!dbl.bits.mant) ft_strcat(buff, dbl.bits.sign ? "-inf" : "inf"); buff = ft_isupper(spe) ? ft_strtoupper(buff) : buff; return (0); } buff[0] = dbl.bits.sign ? '-' : buff[0]; dbl.bits.sign = 0; expn = getint(&dbl, &prec, buff + 1, spe); dbl.val *= base; dtoa_base(&dbl.val, buff + 1, prec, bstr); buff = !buff[0] ? ft_strcpy(buff, buff + 1) : buff; return (expn); }
char *ft_con_xx(char *format, int d, va_list ap, char *(*f_tab[S_TAB_FLAG])(char *, int, char *)) { char *str; str = ft_con_x(format, d, ap, f_tab); str = ft_strtoupper(str); return (str); }
static void get_data(t_dt *data, t_av *av, size_t *len, char **ptr) { av->ui = get_modifier(data, len); ft_itoa_base2(av->ui, 16, av->s); av->len = ft_strlen(av->s); *ptr = (av->len >= *len) ? &av->s[av->len - *len] : av->s; av->len = ft_strlen(*ptr); if (data->flag.point && av->ui == 0) av->len = 1; if (*data->tail == 'X') ft_strtoupper(*ptr); }
int ft_check_setenv_ag(char **arg, char **varn, char **varvalue, int *ow) { if (arg[1] && arg[2] && arg[3]) { *varn = ft_strtoupper(ft_strdup(arg[1])); *varvalue = ft_strdup(arg[2]); *ow = ft_atoi(arg[3]); } else { FP("Setenv error.\n"); FP("Usage : setenv (char*)name (char*)value (int)overwrite\n"); return (-1); } return (0); }
static void padded_print(t_padd *padd, size_t width, int *counter) { char *s; char *ntoa; ntoa = ft_ntoa(padd->num, padd->base); ntoa = padd->caps ? ft_strtoupper(ntoa) : ntoa; if (!width) s = ft_strdup(ntoa); else s = ft_strndup(ntoa, width); if (ft_strlen(s) < width) { width -= ft_strlen(s); while (--width) *counter += ft_putchar_fd('0', padd->fd); } *counter += ft_putstr_fd(s, padd->fd); ft_strdel(&s); }