diff options
| -rw-r--r-- | src/debug.c | 16 | ||||
| -rw-r--r-- | src/debug.h | 9 | 
2 files changed, 20 insertions, 5 deletions
| diff --git a/src/debug.c b/src/debug.c index 2cdeebf..b194b0d 100644 --- a/src/debug.c +++ b/src/debug.c @@ -3,6 +3,7 @@   * contains utilitary functions for debugging   *   * Copyright (c) 2008 Jonathan Beck All Rights Reserved. + * Copyright (c) 2010 Martin S. All Rights Reserved.   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public @@ -56,10 +57,12 @@ static void debug_print_line(const char *func, const char *file, int line, const  	(void)asprintf(&header, "%s %s:%d %s()", str_time, file, line, func);  	free (str_time); -	/* always in light green */ +	/* trim ending newlines */ + +	/* print header */  	printf ("%s: ", header); -	/* different colors according to the severity */ +	/* print actual debug content */  	printf ("%s\n", buffer);  	/* flush this output, as we need to debug */ @@ -135,7 +138,7 @@ inline void debug_buffer_to_file(const char *file, const char *data, const int l  #endif  } -inline void debug_plist(plist_t plist) +inline void debug_plist_real(const char *func, const char *file, int line, plist_t plist)  {  #ifndef STRIP_DEBUG_CODE  	if (!plist) @@ -144,7 +147,12 @@ inline void debug_plist(plist_t plist)  	char *buffer = NULL;  	uint32_t length = 0;  	plist_to_xml(plist, &buffer, &length); -	debug_info("plist size: %i\nbuffer :\n%s", length, buffer); + +	/* get rid of ending newline as one is already added in the debug line */ +	if (buffer[length-1] == '\n') +		buffer[length-1] = '\0'; + +	debug_info_real(func, file, line, "printing %i bytes plist:\n%s", length, buffer);  	free(buffer);  #endif  } diff --git a/src/debug.h b/src/debug.h index 0a29be3..2fd0960 100644 --- a/src/debug.h +++ b/src/debug.h @@ -3,6 +3,7 @@   * contains utilitary functions for debugging   *   * Copyright (c) 2008 Jonathan Beck All Rights Reserved. + * Copyright (c) 2010 Martin S. All Rights Reserved.   *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public @@ -27,10 +28,13 @@  #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L && !defined(STRIP_DEBUG_CODE)  #define debug_info(...) debug_info_real (__func__, __FILE__, __LINE__, __VA_ARGS__) +#define debug_plist(a) debug_plist_real (__func__, __FILE__, __LINE__, a)  #elif defined(__GNUC__) && __GNUC__ >= 3 && !defined(STRIP_DEBUG_CODE)  #define debug_info(...) debug_info_real (__FUNCTION__, __FILE__, __LINE__, __VA_ARGS__) +#define debug_plist(a) debug_plist_real (__FUNCTION__, __FILE__, __LINE__, a)  #else  #define debug_info(...) +#define debug_plist(a)  #endif  G_GNUC_INTERNAL inline void debug_info_real(const char *func, @@ -40,6 +44,9 @@ G_GNUC_INTERNAL inline void debug_info_real(const char *func,  G_GNUC_INTERNAL inline void debug_buffer(const char *data, const int length);  G_GNUC_INTERNAL inline void debug_buffer_to_file(const char *file, const char *data, const int length); -G_GNUC_INTERNAL inline void debug_plist(plist_t plist); +G_GNUC_INTERNAL inline void debug_plist_real(const char *func, +											const char *file, +											int	line, +											plist_t plist);  #endif | 
