1 /***************************************************************************
3 TextEditor.mcc - Textediting MUI Custom Class
4 Copyright (C) 1997-2000 Allan Odgaard
5 Copyright (C) 2005 by TextEditor.mcc Open Source Team
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 2.1 of the License, or (at your option) any later version.
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
17 TextEditor class Support Site: http://www.sf.net/projects/texteditor-mcc
21 ***************************************************************************/
26 // first we make sure all previously defined symbols are undefined now so
27 // that no other debug system interferes with ours.
47 #include <exec/types.h>
50 #if defined(__amigaos4__)
51 #include <proto/exec.h>
58 #define kprintf(format, args...) ((struct ExecIFace *)((*(struct ExecBase **)4)->MainInterface))->DebugPrintF(format, ## args)
60 #elif defined(__MORPHOS__)
61 #include <exec/rawfmt.h>
62 #include <proto/exec.h>
63 #define KPutFmt(format, args) VNewRawDoFmt(format, (APTR)RAWFMTFUNC_SERIAL, NULL, args)
64 void kprintf(const char *formatString
,...);
66 void kprintf(const char *formatString
,...);
70 #define DBC_CTRACE (1<<0) // call tracing (ENTER/LEAVE etc.)
71 #define DBC_REPORT (1<<1) // reports (SHOWVALUE/SHOWSTRING etc.)
72 #define DBC_ASSERT (1<<2) // asserts (ASSERT)
73 #define DBC_TIMEVAL (1<<3) // time evaluations (STARTCLOCK/STOPCLOCK)
74 #define DBC_DEBUG (1<<4) // debugging output D()
75 #define DBC_ERROR (1<<5) // error output E()
76 #define DBC_WARNING (1<<6) // warning output W()
77 #define DBC_ALL 0xffffffff
80 #define DBF_ALWAYS (1<<0)
81 #define DBF_STARTUP (1<<1) // for startup/shutdown events (YAM.c)
82 #define DBF_DRAW (1<<2) // drawing operations
83 #define DBF_GETSET (1<<3) // getting/setting attributes
84 #define DBF_MEMORY (1<<4) // memory handling
85 #define DBF_LISTTREE (1<<5) // modifications to the listtree
86 #define DBF_SETUP (1<<6) // MUIM_Setup/Cleanup
87 #define DBF_INPUT (1<<7) // input handling
88 #define DBF_DRAGDROP (1<<8) // drag'n'drop handling
89 #define DBF_IMAGES (1<<9) // image handling
90 #define DBF_NOTIFY (1<<10) // notification handling
91 #define DBF_CLIPBOARD (1<<11) // clipboard handling
92 #define DBF_ALL 0xffffffff
94 void SetupDebug(void);
95 void CleanupDebug(void);
97 void _ENTER(unsigned long dclass
, const char *file
, int line
, const char *function
);
98 void _LEAVE(unsigned long dclass
, const char *file
, int line
, const char *function
);
99 void _RETURN(unsigned long dclass
, const char *file
, int line
, const char *function
, unsigned long result
);
100 void _SHOWVALUE(unsigned long dclass
, unsigned long dflags
, unsigned long value
, int size
, const char *name
, const char *file
, int line
);
101 void _SHOWPOINTER(unsigned long dclass
, unsigned long dflags
, const void *p
, const char *name
, const char *file
, int line
);
102 void _SHOWSTRING(unsigned long dclass
, unsigned long dflags
, const char *string
, const char *name
, const char *file
, int line
);
103 void _SHOWMSG(unsigned long dclass
, unsigned long dflags
, const char *msg
, const char *file
, int line
);
104 void _DPRINTF(unsigned long dclass
, unsigned long dflags
, const char *file
, int line
, const char *format
, ...);
106 // Core class information class messages
107 #define ENTER() _ENTER(DBC_CTRACE, __FILE__, __LINE__, __FUNCTION__)
108 #define LEAVE() _LEAVE(DBC_CTRACE, __FILE__, __LINE__, __FUNCTION__)
109 #define RETURN(r) _RETURN(DBC_CTRACE, __FILE__, __LINE__, __FUNCTION__, (long)r)
110 #define SHOWVALUE(f, v) _SHOWVALUE(DBC_REPORT, f, (long)v, sizeof(v), #v, __FILE__, __LINE__)
111 #define SHOWPOINTER(f, p) _SHOWPOINTER(DBC_REPORT, f, p, #p, __FILE__, __LINE__)
112 #define SHOWSTRING(f, s) _SHOWSTRING(DBC_REPORT, f, s, #s, __FILE__, __LINE__)
113 #define SHOWMSG(f, m) _SHOWMSG(DBC_REPORT, f, m, __FILE__, __LINE__)
114 #define D(f, s, vargs...) _DPRINTF(DBC_DEBUG, f, __FILE__, __LINE__, s, ## vargs)
115 #define E(f, s, vargs...) _DPRINTF(DBC_ERROR, f, __FILE__, __LINE__, s, ## vargs)
116 #define W(f, s, vargs...) _DPRINTF(DBC_WARNING, f, __FILE__, __LINE__, s, ## vargs)
117 #define ASSERT(expression) \
119 ((expression) ? 0 : \
121 _DPRINTF(DBC_ASSERT, \
125 "failed assertion '%s'", \
127 assert(#expression), \
135 #define ENTER() ((void)0)
136 #define LEAVE() ((void)0)
137 #define RETURN(r) ((void)0)
138 #define SHOWVALUE(f, v) ((void)0)
139 #define SHOWPOINTER(f, p) ((void)0)
140 #define SHOWSTRING(f, s) ((void)0)
141 #define SHOWMSG(f, m) ((void)0)
142 #define D(f, s, vargs...) ((void)0)
143 #define E(f, s, vargs...) ((void)0)
144 #define W(f, s, vargs...) ((void)0)
145 #define ASSERT(expression) ((void)0)