diff options
Diffstat (limited to 'src/nbdebug.h')
-rw-r--r-- | src/nbdebug.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/src/nbdebug.h b/src/nbdebug.h new file mode 100644 index 0000000..e1bb171 --- /dev/null +++ b/src/nbdebug.h @@ -0,0 +1,76 @@ +/* vi:set ts=8 sw=8 noet: + * + * VIM - Vi IMproved by Bram Moolenaar + * Visual Workshop integration by Gordon Prieur + * + * Do ":help uganda" in Vim to read copying and usage conditions. + * Do ":help credits" in Vim to see a list of people who contributed. + */ + + +#ifndef NBDEBUG_H +#define NBDEBUG_H + +#ifdef NBDEBUG + +# ifndef ASSERT +# define ASSERT(c) \ + if (!(c)) { \ + fprintf(stderr, "Assertion failed: line %d, file %s\n", \ + __LINE__, __FILE__); \ + fflush(stderr); \ + abort(); \ + } +# endif + +# define nbdebug(a) nbdbg a + +# define NB_TRACE 0x00000001 +# define NB_TRACE_VERBOSE 0x00000002 +# define NB_TRACE_COLONCMD 0x00000004 +# define NB_PRINT 0x00000008 +# define NB_DEBUG_ALL 0xffffffff + +# define NBDLEVEL(flags) (nb_debug != NULL && (nb_dlevel & (flags))) + +# define NBDEBUG_TRACE 1 + +typedef enum { + WT_ENV = 1, // look for env var if set + WT_WAIT, // look for ~/.gvimwait if set + WT_STOP // look for ~/.gvimstop if set +} WtWait; + + +void nbdbg(char *, ...) +# ifdef USE_PRINTF_FORMAT_ATTRIBUTE + __attribute__((format(printf, 1, 2))) +# endif +; + +void nbdebug_wait(u_int wait_flags, char *wait_var, u_int wait_secs); +void nbdebug_log_init(char *log_var, char *level_var); + +extern FILE *nb_debug; +extern u_int nb_dlevel; // nb_debug verbosity level + +#else // not NBDEBUG + +# ifndef ASSERT +# define ASSERT(c) +# endif + +/* + * The following 3 stubs are needed because a macro cannot be used because of + * the variable number of arguments. + */ + +void +nbdbg( + char *fmt, + ...) +{ +} + +#endif // NBDEBUG +#endif // NBDEBUG_H |