1 /* vi:set ts=8 sw=8 noet: 2 * 3 * VIM - Vi IMproved by Bram Moolenaar 4 * Visual Workshop integration by Gordon Prieur 5 * 6 * Do ":help uganda" in Vim to read copying and usage conditions. 7 * Do ":help credits" in Vim to see a list of people who contributed. 8 */ 9 10 11 #ifndef NBDEBUG_H 12 #define NBDEBUG_H 13 14 #ifdef NBDEBUG 15 16 # ifndef ASSERT 17 # define ASSERT(c) \ 18 if (!(c)) { \ 19 fprintf(stderr, "Assertion failed: line %d, file %s\n", \ 20 __LINE__, __FILE__); \ 21 fflush(stderr); \ 22 abort(); \ 23 } 24 # endif 25 26 # define nbdebug(a) nbdbg a 27 28 # define NB_TRACE 0x00000001 29 # define NB_TRACE_VERBOSE 0x00000002 30 # define NB_TRACE_COLONCMD 0x00000004 31 # define NB_PRINT 0x00000008 32 # define NB_DEBUG_ALL 0xffffffff 33 34 # define NBDLEVEL(flags) (nb_debug != NULL && (nb_dlevel & (flags))) 35 36 # define NBDEBUG_TRACE 1 37 38 typedef enum { 39 WT_ENV = 1, // look for env var if set 40 WT_WAIT, // look for ~/.gvimwait if set 41 WT_STOP // look for ~/.gvimstop if set 42 } WtWait; 43 44 45 void nbdbg(char *, ...) ATTRIBUTE_FORMAT_PRINTF(1, 2); 46 47 void nbdebug_wait(u_int wait_flags, char *wait_var, u_int wait_secs); 48 void nbdebug_log_init(char *log_var, char *level_var); 49 50 extern FILE *nb_debug; 51 extern u_int nb_dlevel; // nb_debug verbosity level 52 53 #else // not NBDEBUG 54 55 # ifndef ASSERT 56 # define ASSERT(c) 57 # endif 58 59 /* 60 * The following 3 stubs are needed because a macro cannot be used because of 61 * the variable number of arguments. 62 */ 63 64 void 65 nbdbg( 66 char *fmt, 67 ...) 68 { 69 } 70 71 #endif // NBDEBUG 72 #endif // NBDEBUG_H 73