diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/debug.c | 86 | 
1 files changed, 59 insertions, 27 deletions
| diff --git a/src/debug.c b/src/debug.c index a861b416..d5d11bd9 100644 --- a/src/debug.c +++ b/src/debug.c @@ -403,33 +403,65 @@ _gpgme_debug_buffer (int lvl, const char *const fmt,    if (!buffer)      return; -  while (idx < len) +  if (lvl > 9)      { -      char str[51]; -      char *strp = str; -      char *strp2 = &str[34]; - -      for (j = 0; j < 16; j++) -	{ -	  unsigned char val; -	  if (idx < len) -	    { -	      val = buffer[idx++]; -	      *(strp++) = TOHEX (val >> 4); -	      *(strp++) = TOHEX (val % 16); -	      *(strp2++) = isprint (val) ? val : '.'; -	    } -	  else -	    { -	      *(strp++) = ' '; -	      *(strp++) = ' '; -	    } -	  if (j == 7) -	    *(strp++) = ' '; -	} -      *(strp++) = ' '; -      *(strp2) = '\0'; - -      _gpgme_debug (NULL, lvl, -1, NULL, NULL, NULL, fmt, func, str); +      while (idx < len) +        { +          char str[51]; +          char *strp = str; +          char *strp2 = &str[34]; + +          for (j = 0; j < 16; j++) +            { +              unsigned char val; +              if (idx < len) +                { +                  val = buffer[idx++]; +                  *(strp++) = TOHEX (val >> 4); +                  *(strp++) = TOHEX (val % 16); +                  *(strp2++) = isprint (val)? val : '.'; +                } +              else +                { +                  *(strp++) = ' '; +                  *(strp++) = ' '; +                } +              if (j == 7) +                *(strp++) = ' '; +            } +          *(strp++) = ' '; +          *(strp2) = '\0'; + +          _gpgme_debug (NULL, lvl, -1, NULL, NULL, NULL, fmt, func, str); +        } +    } +  else +    { +      while (idx < len) +        { +          char str[48+4+1]; +          char *strp = str; + +          for (j = 0; j < 48; j++) +            { +              unsigned char val; +              if (idx < len) +                { +                  val = buffer[idx++]; +                  if (val == '\n') +                    { +                      *strp++ = '<'; +                      *strp++ = 'L'; +                      *strp++ = 'F'; +                      *strp++ = '>'; +                      break; +                    } +                  *strp++ = (val > 31 && val < 127)? val : '.'; +                } +            } +          *strp = 0; + +          _gpgme_debug (NULL, lvl, -1, NULL, NULL, NULL, fmt, func, str); +        }      }  } | 
