@@ -45,29 +45,13 @@ void logoutf(const char *fmt, ...)
4545 va_end (args);
4646}
4747
48- static void writelog (FILE *file, const char *buf_ )
48+ static void writelog (FILE *file, const char *buf )
4949{
50- const uchar *buf = (const uchar *)buf_;
51- static uchar ubuf[512 ];
52- size_t len = strlen (buf_);
53- int j = 0 ;
54- loopi (min (size_t (512 ), len))
55- {
56- // strip colors and control codes
57- if (buf[i] <= 0x09 || buf[i] == 0x0B || buf[i] == 0x0C || (buf[i] >= 0x0E && buf[i] <= 0x1F ) || buf[i] == 0x7F )
58- {
59- if (buf[i] == ' \f ' ) ++i;
60- continue ;
61- }
62- if (buf[i] == 0xC2 && buf[i+1 ] >= 0x80 && buf[i+1 ] <= 0x9F ) // control codes: U+80 - U+9F
63- {
64- ++i;
65- continue ;
66- }
67- ubuf[j++] = buf[i];
68- }
69- ubuf[j++] = ' \n ' ;
70- fwrite (ubuf, 1 , min (512 , j), file);
50+ static char ubuf[512 ];
51+ filteruni (ubuf, buf, 511 );
52+ const size_t len = min ((size_t )511 , strlen (ubuf));
53+ ubuf[len] = ' \n ' ;
54+ fwrite (ubuf, 1 , len+1 , file);
7155}
7256
7357static void writelogv (FILE *file, const char *fmt, va_list args)
@@ -822,28 +806,11 @@ static BOOL WINAPI consolehandler(DWORD dwCtrlType)
822806
823807static void writeline (logline &line)
824808{
825- static uchar buf[512 ];
826- size_t len = strlen (line.buf );
827- int j = 0 ;
828- loopi (min (size_t (512 -1 ), len))
829- {
830- // strip colors and control codes
831- if (buf[i] <= 0x09 || buf[i] == 0x0B || buf[i] == 0x0C || (buf[i] >= 0x0E && buf[i] <= 0x1F ) || buf[i] == 0x7F )
832- {
833- if (buf[i] == ' \f ' ) ++i;
834- continue ;
835- }
836- if (buf[i] == 0xC2 && buf[i+1 ] >= 0x80 && buf[i+1 ] <= 0x9F ) // control codes: U+80 - U+9F
837- {
838- ++i;
839- continue ;
840- }
841- ubuf[j++] = buf[i];
842- }
843- ubuf[j++] = ' \r ' ;
844- ubuf[j++] = ' \n ' ;
845- DWORD written = 0 ;
846- WriteConsole (outhandle, ubuf, j, &written, NULL );
809+ static char ubuf[512 ];
810+ filteruni (ubuf, line.buf , 511 );
811+ const size_t len = min ((size_t )511 , strlen (ubuf));
812+ DWORD written;
813+ WriteConsole (outhandle, ubuf, len, &written, NULL );
847814}
848815
849816static void setupconsole ()
0 commit comments