All pastes #173343 Raw Edit

Diff

public text v1 · immutable
·published 2006-09-16 20:55 UTC
rendered paste body
Index: include/output.h===================================================================RCS file: /cvsroot/xanadux/haret/haret-gnu/include/output.h,vretrieving revision 1.1diff -u -r1.1 output.h--- include/output.h	22 Mar 2006 21:14:51 -0000	1.1+++ include/output.h	11 Jul 2006 16:29:55 -0000@@ -12,6 +12,10 @@ #define C_WARN(s)	L"<3>" L##s #define C_ERROR(s)	L"<0>" L##s +#include <stdio.h>++extern FILE *outputLogfile;+ /* Log something to the on-screen log. */ extern void Log (const wchar_t *format, ...); /* Complain about something. You can prepend one of the C_XXX macrosIndex: src/script.cpp===================================================================RCS file: /cvsroot/xanadux/haret/haret-gnu/src/script.cpp,vretrieving revision 1.20diff -u -r1.20 script.cpp--- src/script.cpp	9 Jul 2006 16:45:44 -0000	1.20+++ src/script.cpp	11 Jul 2006 16:29:56 -0000@@ -1452,6 +1452,24 @@     else       Output (L"No help on this topic available");   }+  else if (IsToken (tok, "L|OG")) {+    char *vn = strnew (get_token (&x));+    if (!vn)+    {+      Complain (C_ERROR ("line %d: file name expected"), line);+      return true;+    }+    char fn[200];+    fnprepare (vn, fn, sizeof(fn));+    if (outputLogfile)+        fclose(outputLogfile);+    outputLogfile = fopen (fn, "a");+    if (!outputLogfile) {+        Output (L"line %d: Cannot open file `%hs' for writing", line, fn);+        return true;+    }+    delete [] vn;+  }   else if (IsToken (tok, "Q|UIT"))     return false;   elseIndex: src/wince/output.cpp===================================================================RCS file: /cvsroot/xanadux/haret/haret-gnu/src/wince/output.cpp,vretrieving revision 1.1diff -u -r1.1 output.cpp--- src/wince/output.cpp	22 Mar 2006 21:12:54 -0000	1.1+++ src/wince/output.cpp	11 Jul 2006 16:29:56 -0000@@ -25,6 +25,8 @@ // message boxes elsewhere (such as to a socket) void (*output_fn) (wchar_t *msg, wchar_t *title) = NULL; +FILE *outputLogfile = NULL;+ extern HINSTANCE hInst; extern HWND MainWindow; @@ -126,11 +128,16 @@ void Output (const wchar_t *format, ...) {   wchar_t buffer [512];+  char buffer2[512];   va_list args;   va_start (args, format);   _vsnwprintf (buffer, sizeof (buffer) / sizeof (wchar_t), format, args);   va_end (args); +  if (outputLogfile) {+    WideCharToMultiByte(CP_ACP,0,buffer,sizeof(buffer)/sizeof(wchar_t),buffer2,sizeof(buffer2),NULL,NULL);+    fprintf (outputLogfile, "%s\r", buffer2);+  }   if (output_fn)     output_fn (buffer, NULL); }