blob: 16dd84798907e37f8182db40871f11b6e1a1af67 [file] [log] [blame]
Bram Moolenaaredf3f972016-08-29 22:49:24 +02001/* vi:set ts=8 sw=8 noet:
Bram Moolenaar071d4272004-06-13 20:20:40 +00002 *
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
Bram Moolenaar8c8de832008-06-24 22:58:06 +000026#define nbdebug(a) nbdbg a
Bram Moolenaar071d4272004-06-13 20:20:40 +000027
28#define NB_TRACE 0x00000001
29#define NB_TRACE_VERBOSE 0x00000002
30#define NB_TRACE_COLONCMD 0x00000004
Bram Moolenaar009b2592004-10-24 19:18:58 +000031#define NB_PRINT 0x00000008
Bram Moolenaar071d4272004-06-13 20:20:40 +000032#define NB_DEBUG_ALL 0xffffffff
33
34#define NBDLEVEL(flags) (nb_debug != NULL && (nb_dlevel & (flags)))
35
36#define NBDEBUG_TRACE 1
Bram Moolenaar071d4272004-06-13 20:20:40 +000037
38typedef 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
Bram Moolenaarc85c8fc2019-02-17 19:12:21 +010045void nbdbg(char *, ...)
46#ifdef USE_PRINTF_FORMAT_ATTRIBUTE
47 __attribute__((format(printf, 1, 2)))
48#endif
49;
Bram Moolenaar071d4272004-06-13 20:20:40 +000050
Bram Moolenaard99df422016-01-29 23:20:40 +010051void nbdebug_wait(u_int wait_flags, char *wait_var, u_int wait_secs);
52void nbdebug_log_init(char *log_var, char *level_var);
Bram Moolenaar071d4272004-06-13 20:20:40 +000053
54extern FILE *nb_debug;
55extern u_int nb_dlevel; /* nb_debug verbosity level */
56
57# else /* not NBDEBUG */
58
59#ifndef ASSERT
60# define ASSERT(c)
61#endif
62
63/*
Bram Moolenaar009b2592004-10-24 19:18:58 +000064 * The following 3 stubs are needed because a macro cannot be used because of
Bram Moolenaar071d4272004-06-13 20:20:40 +000065 * the variable number of arguments.
66 */
67
68void
69nbdbg(
70 char *fmt,
71 ...)
72{
73}
74
Bram Moolenaar071d4272004-06-13 20:20:40 +000075#endif /* NBDEBUG */
76#endif /* NBDEBUG_H */