Annotation of libwww/Library/src/HTTrace.c, revision 2.5
2.1 frystyk 1: /* HTTrace.c
2: ** TRACE AND DATA LOGGING UTILITIES
3: **
4: ** (c) COPYRIGHT MIT 1996.
5: ** Please first read the full copyright statement in the file COPYRIGH.
2.5 ! frystyk 6: ** @(#) $Id: HTTrace.c,v 2.4 1997/01/03 01:03:40 eric Exp $
2.1 frystyk 7: **
8: ** 26 Nov 96 (EGP) moved HTTrace stuff here from HTString.c and
9: ** added HTTrace_data
10: */
11:
12: /* Library include files */
13: #include "sysdep.h"
14: /*
15: ** All the tracing facilities are prototyped in
16: ** HTUtils.h because they are needed everywhere.
17: */
18: #include "HTUtils.h"
19:
20: #if WWWTRACE_MODE == WWWTRACE_FILE
21: PUBLIC FILE *WWWTrace = NULL;
22: #endif
23:
24: #ifndef WWW_WIN_DLL
25: PUBLIC int WWW_TraceFlag = 0; /* Global trace flag for ALL W3 code */
26: #endif
27:
28: PRIVATE HTTraceCallback * PHTTraceCallback = NULL;
29:
30: PUBLIC void HTTrace_setCallback (HTTraceCallback * pCall)
31: {
32: PHTTraceCallback = pCall;
33: }
34:
35: PUBLIC HTTraceCallback * HTTrace_getCallback (void)
36: {
37: return PHTTraceCallback;
38: }
39:
40: PUBLIC int HTTrace (const char * fmt, ...)
41: {
42: va_list pArgs;
43: va_start(pArgs, fmt);
44: if (PHTTraceCallback)
45: return (*PHTTraceCallback)(fmt, pArgs);
2.4 eric 46: #ifdef WWW_WIN_WINDOW
2.1 frystyk 47: return (0);
48: #else
49: return (vfprintf(stderr, fmt, pArgs));
50: #endif
51: }
52:
53: PRIVATE HTTraceDataCallback * PHTTraceDataCallback = NULL;
54:
55: PUBLIC void HTTraceData_setCallback (HTTraceDataCallback * pCall)
56: {
57: PHTTraceDataCallback = pCall;
58: }
59:
60: PUBLIC HTTraceDataCallback * HTTraceData_getCallback (void)
61: {
62: return PHTTraceDataCallback;
63: }
64:
2.3 eric 65: PUBLIC int HTTraceData (char * data, size_t len, char * fmt, ...)
2.1 frystyk 66: {
67: va_list pArgs;
68: va_start(pArgs, fmt);
69: if (PHTTraceDataCallback)
70: return (*PHTTraceDataCallback)(data, len, fmt, pArgs);
71: return (0);
72: }
73:
2.5 ! frystyk 74: PUBLIC void HTDebugBreak (char * file, unsigned long line, const char * fmt, ...)
2.1 frystyk 75: {
2.5 ! frystyk 76: va_list pArgs;
! 77: va_start(pArgs, fmt);
! 78: HTTrace("%s:%ld ", file ? file : "", line);
! 79: HTTrace(fmt, pArgs);
2.2 eric 80: #ifdef WWW_MSWINDOWS
81: DebugBreak();
82: #else /* WWW_MSWINDOWS */
2.5 ! frystyk 83: abort();
2.2 eric 84: #endif /* !WWW_MSWINDOWS */
2.1 frystyk 85: return;
86: }
87:
Webmaster