int pf_unsignedint(t_printf *p) { char *s; char *tmp; char pad; int s_len; if (!(s = (PID->precision == 0 && PID->base != 10 && PID->fmt->uim == 0 ? ft_strnew(0) : ft_uintmax_to_ascii(PID->fmt->uim, PID->base, PID->xbase)))) return (-1); pad = (PID->f_zero != -1 ? '0' : ' '); s_len = ft_strlen(s); if (PID->precision > s_len || PID->f_alt == 8) if ((s_len = add_prec(&s, PID->precision - s_len, PID->f_alt)) == -1) return (-1); if (PID->f_alt != -1 && (PID->base == 16 || PID->base == 2)) if ((s_len = add_alt(&s, PID->xbase, PID->f_alt, p->type)) == -1) return (-1); if (PID->field_width > s_len && (tmp = ft_strofchars(pad, p->pid->field_width - s_len))) if ((s_len = add_fieldwidth(&s, &tmp, p)) == -1) return (-1); ft_putstr(s); free(s); return (s_len); }
int convert_unsigned(va_list arg, t_infos *infos) { unsigned long int u; char *ret; u = va_arg(arg, unsigned long int); if (infos->modif[0] == 'h' && infos->conv == 'u') { if (infos->modif[1] == 'h' && infos->conv == 'u') u = (unsigned char)u; else u = (unsigned short)u; } if (infos->conv == 'u' && is_modif(infos->modif[0]) == 0) ret = ft_uitoa((unsigned int)u); else ret = ft_uitoa_long(u); if (u == 0) ret = "0"; if (infos->prec > 0 && (size_t)infos->prec > ft_strlen(ret)) ret = add_prec(ret, infos->prec); if (infos->width > 0 && (size_t)infos->width > ft_strlen(ret)) ret = add_width(ret, infos->width, infos->flag); if (u == 0 && (infos->prec == -2 || infos->prec == -3)) ret = ""; ft_putstr(ret); return (ft_strlen(ret)); }
//-------------------------set_next_exception---------------------------------- void SafePointNode::set_next_exception(SafePointNode* n) { assert(!n || n->Opcode() == Op_SafePoint, "correct value for next_exception"); if (len() == req()) { if (n != NULL) add_prec(n); } else { set_prec(req(), n); } }
char *add_octal_conv(t_infos *infos, char *ret, unsigned long int o) { if (o == 0) ret = "0"; if (infos->flag[0] == '#' && o != 0) ret = add_sharp_octal(ret); if (infos->prec > 0 && (size_t)infos->prec > ft_strlen(ret)) ret = add_prec(ret, infos->prec); if (infos->width > 0 && (size_t)infos->width > ft_strlen(ret)) ret = add_width(ret, infos->width, infos->flag); if (o == 0 && (infos->prec == -2 || infos->prec == -3) && infos->flag[0] != '#') ret = ""; return (ret); }
int convert_int(va_list arg, t_infos *infos) { long long int integer; char *ret; integer = va_arg(arg, long long int); if (integer == 0) ret = "0"; ret = define_modif_int(infos, integer); ret = add_flag_integer(infos->flag, ret); if (infos->prec > 0 && (size_t)infos->prec > ft_strlen(ret)) ret = add_prec(ret, infos->prec); if (infos->width > 0 && (size_t)infos->width > ft_strlen(ret)) ret = add_width(ret, infos->width, infos->flag); if (integer == 0 && (infos->prec == -2 || infos->prec == -3)) ret = ""; ft_putstr(ret); return (ft_strlen(ret)); }