| version 1.11, 2004/03/14 23:45:44 | version 1.14, 2004/04/08 13:08:23 | 
| Line 7 | Line 7 | 
 |  |  | 
 | #ifdef TRACE | #ifdef TRACE | 
 |  |  | 
| #define FILEBUFSIZE                     (1 << 20) | // #define FILEBUFSIZE                  (1 << 20) | 
 | // #define FILELASTBUFONLY | // #define FILELASTBUFONLY | 
 |  |  | 
 | #ifdef STRICT | #ifdef STRICT | 
| Line 116  static void View_AddString(const char *l | Line 116  static void View_AddString(const char *l | 
 |  |  | 
 | // ---- | // ---- | 
 |  |  | 
 |  | #if defined(FILEBUFSIZE) | 
 | static  char    filebuf[FILEBUFSIZE]; | static  char    filebuf[FILEBUFSIZE]; | 
 | static  UINT32  filebufpos; | static  UINT32  filebufpos; | 
 |  | #endif | 
 |  |  | 
 | static void trfh_close(void) { | static void trfh_close(void) { | 
 |  |  | 
 | FILEH   fh; | FILEH   fh; | 
 | UINT    size; |  | 
 |  |  | 
 | fh = tracewin.fh; | fh = tracewin.fh; | 
 | tracewin.fh = FILEH_INVALID; | tracewin.fh = FILEH_INVALID; | 
 | if (fh != FILEH_INVALID) { | if (fh != FILEH_INVALID) { | 
| size = filebufpos & (FILEBUFSIZE - 1); | #if defined(FILEBUFSIZE) | 
|  | UINT size = filebufpos & (FILEBUFSIZE - 1); | 
 | #if defined(FILELASTBUFONLY) | #if defined(FILELASTBUFONLY) | 
 | if (filebufpos >= FILEBUFSIZE) { | if (filebufpos >= FILEBUFSIZE) { | 
 | file_write(fh, filebuf + size, FILEBUFSIZE - size); | file_write(fh, filebuf + size, FILEBUFSIZE - size); | 
| Line 136  static void trfh_close(void) { | Line 138  static void trfh_close(void) { | 
 | if (size) { | if (size) { | 
 | file_write(fh, filebuf, size); | file_write(fh, filebuf, size); | 
 | } | } | 
 |  | #endif | 
 | file_close(fh); | file_close(fh); | 
 | } | } | 
 | } | } | 
| Line 144  static void trfh_open(const char *fname) | Line 147  static void trfh_open(const char *fname) | 
 |  |  | 
 | trfh_close(); | trfh_close(); | 
 | tracewin.fh = file_create(fname); | tracewin.fh = file_create(fname); | 
 |  | #if defined(FILEBUFSIZE) | 
 | filebufpos = 0; | filebufpos = 0; | 
 |  | #endif | 
 | } | } | 
 |  |  | 
 | static void trfh_add(const char *buf) { | static void trfh_add(const char *buf) { | 
 |  |  | 
 | UINT    size; | UINT    size; | 
 | UINT    pos; |  | 
 | UINT    rem; |  | 
 |  |  | 
 | size = strlen(buf); | size = strlen(buf); | 
 |  | #if defined(FILEBUFSIZE) | 
 | while(size) { | while(size) { | 
| pos = filebufpos & (FILEBUFSIZE - 1); | UINT pos = filebufpos & (FILEBUFSIZE - 1); | 
| rem = FILEBUFSIZE - pos; | UINT rem = FILEBUFSIZE - pos; | 
 | if (size >= rem) { | if (size >= rem) { | 
 | CopyMemory(filebuf + pos, buf, rem); | CopyMemory(filebuf + pos, buf, rem); | 
 | filebufpos += rem; | filebufpos += rem; | 
 | buf += rem; | buf += rem; | 
 | size -= rem; | size -= rem; | 
 | #if !defined(FILELASTBUFONLY) | #if !defined(FILELASTBUFONLY) | 
| file_write(tracewin.fh, buf, strlen(buf)); | file_write(tracewin.fh, filebuf, FILEBUFSIZE); | 
 | #endif | #endif | 
 | } | } | 
 | else { | else { | 
| Line 172  static void trfh_add(const char *buf) { | Line 176  static void trfh_add(const char *buf) { | 
 | break; | break; | 
 | } | } | 
 | } | } | 
 |  | #else | 
 |  | file_write(tracewin.fh, buf, size); | 
 |  | #endif | 
 | } | } | 
 |  |  | 
 |  |  | 
| Line 198  static LRESULT CALLBACK traceproc(HWND h | Line 205  static LRESULT CALLBACK traceproc(HWND h | 
 | IDM_TRACECL, tracecl); | IDM_TRACECL, tracecl); | 
 | InsertMenu(hmenu, 6, MF_BYPOSITION | MF_SEPARATOR, 0, NULL); | InsertMenu(hmenu, 6, MF_BYPOSITION | MF_SEPARATOR, 0, NULL); | 
 |  |  | 
| CheckMenuItem(hmenu, IDM_TRACEEN, | CheckMenuItem(hmenu, IDM_TRACE1, | 
 | (tracewin.en & 1)?MF_CHECKED:MF_UNCHECKED); | (tracewin.en & 1)?MF_CHECKED:MF_UNCHECKED); | 
 |  | CheckMenuItem(hmenu, IDM_TRACE2, | 
 |  | (tracewin.en & 2)?MF_CHECKED:MF_UNCHECKED); | 
 |  | CheckMenuItem(hmenu, IDM_TRACEEN, | 
 |  | (tracewin.en & 4)?MF_CHECKED:MF_UNCHECKED); | 
 |  |  | 
 | GetClientRect(hWnd, &rc); | GetClientRect(hWnd, &rc); | 
 | hView = CreateWindowEx(WS_EX_CLIENTEDGE, | hView = CreateWindowEx(WS_EX_CLIENTEDGE, | 
| Line 358  void trace_init(void) { | Line 369  void trace_init(void) { | 
 | tracewin.fh = FILEH_INVALID; | tracewin.fh = FILEH_INVALID; | 
 | #else | #else | 
 | tracewin.en = 0; | tracewin.en = 0; | 
| tracewin.fh = trfh_open("traces.txt"); | tracewin.fh = FILEH_INVALID; | 
|  | trfh_open("traces.txt"); | 
 | #endif | #endif | 
 |  |  | 
 | tracecfg.posx = CW_USEDEFAULT; | tracecfg.posx = CW_USEDEFAULT; | 
| Line 437  void trace_fmt2(const char *fmt, ...) { | Line 449  void trace_fmt2(const char *fmt, ...) { | 
 | } | } | 
 | } | } | 
 |  |  | 
 | #if 0 |  | 
 | void trace_fileout(const char *fname) { |  | 
 |  |  | 
 | if (tracewin.fh != FILEH_INVALID) { |  | 
 | file_close(tracewin.fh); |  | 
 | tracewin.fh = FILEH_INVALID; |  | 
 | } |  | 
 | if (fname) { |  | 
 | tracewin.fh = file_create_c(fname); |  | 
 | } |  | 
 | } |  | 
 | #endif |  | 
 |  |  | 
 | #endif | #endif | 
 |  |  |