1 #include "rar.hpp"
2 
3 
4 static wchar LogName[NM];
5 static RAR_CHARSET LogCharset=RCH_DEFAULT;
6 
InitLogOptions(const wchar * LogFileName,RAR_CHARSET CSet)7 void InitLogOptions(const wchar *LogFileName,RAR_CHARSET CSet)
8 {
9   wcsncpyz(LogName,LogFileName,ASIZE(LogName));
10   LogCharset=CSet;
11 }
12 
13 
14 #ifndef SILENT
Log(const wchar * ArcName,const wchar * fmt,...)15 void Log(const wchar *ArcName,const wchar *fmt,...)
16 {
17   // Preserve the error code for possible following system error message.
18   int Code=ErrHandler.GetSystemErrorCode();
19 
20   uiAlarm(UIALARM_ERROR);
21 
22   // This buffer is for format string only, not for entire output,
23   // so it can be short enough.
24   wchar fmtw[1024];
25   PrintfPrepareFmt(fmt,fmtw,ASIZE(fmtw));
26 
27   safebuf wchar Msg[2*NM+1024];
28   va_list arglist;
29   va_start(arglist,fmt);
30   vswprintf(Msg,ASIZE(Msg),fmtw,arglist);
31   va_end(arglist);
32   eprintf(L"%ls",Msg);
33   ErrHandler.SetSystemErrorCode(Code);
34 }
35 #endif
36 
37 
38