| #include "rar.hpp" |
| |
| namespace third_party_unrar { |
| |
| static wchar LogName[NM]; |
| static RAR_CHARSET LogCharset=RCH_DEFAULT; |
| |
| void InitLogOptions(const wchar *LogFileName,RAR_CHARSET CSet) |
| { |
| wcsncpyz(LogName,LogFileName,ASIZE(LogName)); |
| LogCharset=CSet; |
| } |
| |
| |
| #ifndef SILENT |
| void Log(const wchar *ArcName,const wchar *fmt,...) |
| { |
| // Preserve the error code for possible following system error message. |
| int Code=ErrHandler.GetSystemErrorCode(); |
| |
| uiAlarm(UIALARM_ERROR); |
| |
| // This buffer is for format string only, not for entire output, |
| // so it can be short enough. |
| wchar fmtw[1024]; |
| PrintfPrepareFmt(fmt,fmtw,ASIZE(fmtw)); |
| |
| safebuf wchar Msg[2*NM+1024]; |
| va_list arglist; |
| va_start(arglist,fmt); |
| vswprintf(Msg,ASIZE(Msg),fmtw,arglist); |
| va_end(arglist); |
| eprintf(L"%ls",Msg); |
| ErrHandler.SetSystemErrorCode(Code); |
| } |
| #endif |
| |
| } // namespace third_party_unrar |
| |