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