]> git.proxmox.com Git - libgit2.git/blobdiff - src/trace.h
New upstream version 1.4.3+dfsg.1
[libgit2.git] / src / trace.h
index 4d4e3bf533f56538d3bdf072de4aed487530f2ec..239928dcbce69cfc94e3667d34698acd1c084232 100644 (file)
@@ -7,48 +7,45 @@
 #ifndef INCLUDE_trace_h__
 #define INCLUDE_trace_h__
 
-#include <git2/trace.h>
-#include "buffer.h"
+#include "common.h"
 
-#ifdef GIT_TRACE
+#include <git2/trace.h>
+#include "str.h"
 
 struct git_trace_data {
        git_trace_level_t level;
-       git_trace_callback callback;
+       git_trace_cb callback;
 };
 
 extern struct git_trace_data git_trace__data;
 
 GIT_INLINE(void) git_trace__write_fmt(
        git_trace_level_t level,
-       const char *fmt, ...)
+       const char *fmt,
+       va_list ap)
 {
-       git_trace_callback callback = git_trace__data.callback;
-       git_buf message = GIT_BUF_INIT;
-       va_list ap;
+       git_trace_cb callback = git_trace__data.callback;
+       git_str message = GIT_STR_INIT;
 
-       va_start(ap, fmt);
-       git_buf_vprintf(&message, fmt, ap);
-       va_end(ap);
+       git_str_vprintf(&message, fmt, ap);
 
-       callback(level, git_buf_cstr(&message));
+       callback(level, git_str_cstr(&message));
 
-       git_buf_free(&message);
+       git_str_dispose(&message);
 }
 
-#define git_trace_level()              (git_trace__data.level)
-#define git_trace(l, ...)              { \
-                                                                       if (git_trace__data.level >= l && \
-                                                                               git_trace__data.callback != NULL) { \
-                                                                               git_trace__write_fmt(l, __VA_ARGS__); \
-                                                                       } \
-                                                               }
-
-#else
-
-#define git_trace_level()              ((void)0)
-#define git_trace(lvl, ...)            ((void)0)
+#define git_trace_level()      (git_trace__data.level)
 
-#endif
+GIT_INLINE(void) git_trace(git_trace_level_t level, const char *fmt, ...)
+{
+       if (git_trace__data.level >= level &&
+           git_trace__data.callback != NULL) {
+               va_list ap;
+
+               va_start(ap, fmt);
+               git_trace__write_fmt(level, fmt, ap);
+               va_end(ap);
+       }
+}
 
 #endif