Mercurial > hg > th-libs
changeset 410:04cb03baf114
Improve printf implementation debugging.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 09 Mar 2016 12:07:10 +0200 |
parents | 9b1b21954952 |
children | 371567cf0a38 |
files | th_string.c |
diffstat | 1 files changed, 11 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/th_string.c Wed Mar 09 12:06:45 2016 +0200 +++ b/th_string.c Wed Mar 09 12:07:10 2016 +0200 @@ -191,6 +191,10 @@ return buf; } + +#define PP_PRINTF(...) fprintf(stdout, __VA_ARGS__) +#else +#define PP_PRINTF(...) /* stub */ #endif @@ -214,11 +218,6 @@ f_radix, f_flags & TH_PF_UPCASE, f_unsig, &f_neg); } -#ifdef TH_PRINTF_DEBUG - printf("W1: vret=%3d, f_flags=[%s], f_width=%3d, f_prec=%3d, f_unsig=%d, f_neg=%d\n", - vret, get_flags(f_flags), f_width, f_prec, f_unsig, f_neg); -#endif - if (vret == EOF) return ret; @@ -253,12 +252,9 @@ if (f_flags & TH_PF_LEFT) f_flags &= ~TH_PF_ZERO; -#ifdef TH_PRINTF_DEBUG - printf("W2: vret=%3d, f_flags=[%s], f_width=%3d, f_prec=%3d, f_sign='%c', nwidth=%d\n", - vret, get_flags(f_flags), f_width, f_prec, f_unsig, f_neg, f_sign, nwidth); -#endif if (f_flags & TH_PF_POINTER && vret == 0) { + PP_PRINTF("^"); qlen = f_len + nlen; nwidth = f_width > qlen ? f_width - qlen : 0; nprec = 0; @@ -266,15 +262,20 @@ else if ((f_flags & TH_PF_ZERO) && f_prec < 0 && f_width > 0) { + PP_PRINTF("#"); nprec = f_width - qlen; nwidth = 0; } else { + PP_PRINTF("$"); nprec = (f_prec >= 0) ? f_prec - f_len : 0; nwidth = (f_width >= 0) ? f_width - qlen : 0; } + PP_PRINTF(": vret=%3d, f_flags=[%s], f_unsig=%d, f_sign='%c', f_len=%3d, f_width=%3d, f_prec=%3d, nwidth=%3d, nprec=%3d, qlen=%3d\n", + vret, get_flags(f_flags), f_unsig, f_sign ? f_sign : '?', f_len, f_width, f_prec, nwidth, nprec, qlen); + // Prefix padding if ((ret = th_printf_pad_pre(ctx, vputch, nwidth, f_flags)) == EOF) return ret; @@ -357,6 +358,7 @@ { (void) vret; (void) flags; + PP_PRINTF("BUF='%s', '%c'\n", buf, buf[len - 1]); return (buf[len - 1] != '0') ? "0" : ""; }