# HG changeset patch # User Matti Hamalainen # Date 1457518030 -7200 # Node ID 04cb03baf114dfaa11b1b8eb5a9d8f7fa18abeae # Parent 9b1b21954952d3bce8b35eba6f33d1143eb35b26 Improve printf implementation debugging. diff -r 9b1b21954952 -r 04cb03baf114 th_string.c --- 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" : ""; }