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" : "";
 }