rendered paste bodyIndex: 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); }