int ft_print_wstr(va_list *list_args, t_args *arg) { wchar_t *wstr; int ret; wstr = ft_wstrdup(va_arg(*list_args, wchar_t *)); (wstr == NULL) ? wstr = ft_wstrdup(L"(null)") : 0; ret = ft_wstrlen(wstr); if (ret < arg->precis || arg->val_prec == 0) { if (ret > arg->precis || ret < arg->field) { if (arg->val_field && !arg->val_minus && arg->val_z) ft_printnchar(arg->field - ret, '0'); if (arg->val_field && !arg->val_minus && !arg->val_z) ft_printnchar(arg->field - ret, ' '); } ft_putwstr(wstr); if (arg->val_field == 1 && arg->val_minus == 1) ft_printnchar(arg->field - ret, ' '); } else ret = ft_ret_wstr(arg, wstr); free(wstr); return (ft_retfield(arg, ret)); }
size_t wstr_conv(va_list *ap, int *i, t_opt *data) { wchar_t *str; long ret; int minus; minus = 0; ret = 0; if (data) str = NULL; str = va_arg(*ap, wchar_t*); if (!str) { ret += write(1, "(null)", 6); *i = *i + 1; return (ret); } ret += ft_wstrlen(str); minus = apply_wminus(data, &ret, str); if (minus == 0) { apply_wminsize(data, &ret); ft_putwstr(str); } *i = *i + 1; return (ret); }
static int ft_printbigs(t_param *ptr, int ret) { if (ft_findflag(ptr, '-') != -1) ret += ft_putwstr(ptr->wstring); while (ptr->width-- > ft_wstrlen(ptr->wstring)) { if (ft_findflag(ptr, '0') != -1 || ft_findflag(ptr, 'O') != -1) ft_putchar('0'); else ft_putchar(' '); ret++; } if (ft_findflag(ptr, '-') == -1) ret += ft_putwstr(ptr->wstring); return (ret); }
int putoptswstr(t_opts *opts, wchar_t *wstr) { int len; len = ft_wstrlen(wstr); ft_putwstr(wstr); freewstr(wstr); if (len == 0 && opts->type == 'C') { ft_putwchar(0); return (1); } return (len); }
static int precision_handling_minus_ls(t_env *env, wchar_t *s, int precision) { int size; size = 0; if (precision >= 0 && precision < (int)ft_strwlen(s)) { size += ft_putwstr_part(s, precision); size += print_width_s(env->width->value - precision, env); } else { size += ft_putwstr(s); size += print_width_s(env->width->value - ft_strwlen(s), env); } return (size); }
void ftpf_convert_s(va_list *ap, t_ftpf_env *e) { ftpf_manage_lenmod_s(ap, e); ftpf_process_flags(e); e->precision = 0; ftpf_process_output_rules(e); if (!e->neg) ftpf_manage_field_width(e); if ((!ft_strcmp(e->mod, "l") || e->conversion == 'S') && !(e->isnull)) { ft_putwstr(e->param->ws); ft_memdel((void**)&e->param->ws); } else { ft_putstr(e->param->s); ft_memdel((void**)&e->param->s); } if (e->neg) ftpf_manage_field_width(e); }
int ft_putwstr_pf(va_list ap, int nbb) { size_t i; wchar_t *str; i = 0; str = va_arg(ap, wchar_t *); printf("\n%S\n\n", str); exit(-1); while (i++ < nbb - ft_wcslen(str)) ft_putchar(' '); if (str) { ft_putwstr(str); return (ft_wcslen(str) + i); } else { ft_putstr("(null)"); return (6 + i); } }
int ft_checkbs1a2b(t_numb *e) { int cnt; cnt = 0; while ((e->w - e->g) > 0) { cnt++; ft_putchar('0'); (e->w)--; } if (e->ss) { cnt = cnt + ft_putwstr(e->ss); } else { ft_putstr("(null)"); cnt = cnt + 6; } return (cnt); }