/* -*-c-*-
*
- * $Id: trace.h,v 1.4 1999/10/22 22:39:52 mdw Exp $
+ * $Id: trace.h,v 1.6 2001/02/03 16:23:55 mdw Exp $
*
* Tracing functions for debugging
*
/*----- Revision history --------------------------------------------------*
*
* $Log: trace.h,v $
+ * Revision 1.6 2001/02/03 16:23:55 mdw
+ * New custom trace output interface.
+ *
+ * Revision 1.5 1999/12/10 23:42:04 mdw
+ * Change header file guard names.
+ *
* Revision 1.4 1999/10/22 22:39:52 mdw
* New documented interface for tracing.
*
*
*/
-#ifndef TRACE_H
-#define TRACE_H
+#ifndef MLIB_TRACE_H
+#define MLIB_TRACE_H
#ifdef __cplusplus
extern "C" {
extern void trace_on(FILE */*fp*/, unsigned /*l*/);
+/* --- @trace_custom@ --- *
+ *
+ * Arguments: @void (*func)(const char *buf, size_t sz, void *v)@ =
+ * output function
+ * @void *v@ = magic handle to give to function
+ *
+ * Returns: ---
+ *
+ * Use: Sets up a custom trace handler.
+ */
+
+extern void trace_custom(void (*/*func*/)(const char */*buf*/,
+ size_t /*sz*/, void */*v*/),
+ void */*v*/);
+
/* --- @trace_level@ --- *
*
* Arguments: @unsigned l@ = trace level to set
/* --- @traceopt@ --- *
*
- * Arguments: @trace_opt *t@ = pointer to trace options table
+ * Arguments: @const trace_opt *t@ = pointer to trace options table
* @const char *p@ = option string supplied by user
* @unsigned f@ = initial tracing flags
* @unsigned bad@ = forbidden tracing flags
* `?' character, a help message is displayed.
*/
-extern unsigned traceopt(trace_opt */*t*/, const char */*p*/,
+extern unsigned traceopt(const trace_opt */*t*/, const char */*p*/,
unsigned /*f*/, unsigned /*bad*/);
/*----- Tracing macros ----------------------------------------------------*/