Tree @a6d80bbc-ed64-4b90-a9af-a4ea211328ac/main (Download .tar.gz)
- debian
- acknow.txt
- arccmt.cpp
- archive.cpp
- archive.hpp
- arcread.cpp
- array.hpp
- blake2s.cpp
- blake2s.hpp
- blake2s_sse.cpp
- blake2sp.cpp
- cmddata.cpp
- cmddata.hpp
- cmdfilter.cpp
- cmdmix.cpp
- coder.cpp
- coder.hpp
- compress.hpp
- consio.cpp
- consio.hpp
- crc.cpp
- crc.hpp
- crypt.cpp
- crypt.hpp
- crypt1.cpp
- crypt2.cpp
- crypt3.cpp
- crypt5.cpp
- dll.cpp
- dll.def
- dll.hpp
- dll.rc
- dll_nocrypt.def
- encname.cpp
- encname.hpp
- errhnd.cpp
- errhnd.hpp
- extinfo.cpp
- extinfo.hpp
- extract.cpp
- extract.hpp
- filcreat.cpp
- filcreat.hpp
- file.cpp
- file.hpp
- filefn.cpp
- filefn.hpp
- filestr.cpp
- filestr.hpp
- find.cpp
- find.hpp
- getbits.cpp
- getbits.hpp
- global.cpp
- global.hpp
- hardlinks.cpp
- hash.cpp
- hash.hpp
- headers.cpp
- headers.hpp
- headers5.hpp
- isnt.cpp
- isnt.hpp
- license.txt
- list.cpp
- list.hpp
- loclang.hpp
- log.cpp
- log.hpp
- makefile
- match.cpp
- match.hpp
- model.cpp
- model.hpp
- options.cpp
- options.hpp
- os.hpp
- pathfn.cpp
- pathfn.hpp
- qopen.cpp
- qopen.hpp
- rar.cpp
- rar.hpp
- rardefs.hpp
- rarlang.hpp
- raros.hpp
- rarpch.cpp
- rartypes.hpp
- rarvm.cpp
- rarvm.hpp
- rawint.hpp
- rawread.cpp
- rawread.hpp
- rdwrfn.cpp
- rdwrfn.hpp
- readme.txt
- recvol.cpp
- recvol.hpp
- recvol3.cpp
- recvol5.cpp
- resource.cpp
- resource.hpp
- rijndael.cpp
- rijndael.hpp
- rs.cpp
- rs.hpp
- rs16.cpp
- rs16.hpp
- scantree.cpp
- scantree.hpp
- secpassword.cpp
- secpassword.hpp
- sha1.cpp
- sha1.hpp
- sha256.cpp
- sha256.hpp
- smallfn.cpp
- smallfn.hpp
- strfn.cpp
- strfn.hpp
- strlist.cpp
- strlist.hpp
- suballoc.cpp
- suballoc.hpp
- system.cpp
- system.hpp
- threadmisc.cpp
- threadpool.cpp
- threadpool.hpp
- timefn.cpp
- timefn.hpp
- ui.cpp
- ui.hpp
- uicommon.cpp
- uiconsole.cpp
- uisilent.cpp
- ulinks.cpp
- unicode.cpp
- unicode.hpp
- unpack.cpp
- unpack.hpp
- unpack15.cpp
- unpack20.cpp
- unpack30.cpp
- unpack50.cpp
- unpack50frag.cpp
- unpack50mt.cpp
- unpackinline.cpp
- UnRAR.vcxproj
- UnRARDll.vcxproj
- uowners.cpp
- version.hpp
- volume.cpp
- volume.hpp
- win32acl.cpp
- win32lnk.cpp
- win32stm.cpp
rar.cpp @a6d80bbc-ed64-4b90-a9af-a4ea211328ac/main — raw · history · blame
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | #include "rar.hpp" #if !defined(RARDLL) int main(int argc, char *argv[]) { #ifdef _UNIX setlocale(LC_ALL,""); #endif InitConsole(); ErrHandler.SetSignalHandlers(true); #ifdef SFX_MODULE wchar ModuleName[NM]; #ifdef _WIN_ALL GetModuleFileName(NULL,ModuleName,ASIZE(ModuleName)); #else CharToWide(argv[0],ModuleName,ASIZE(ModuleName)); #endif #endif #ifdef _WIN_ALL SetErrorMode(SEM_NOALIGNMENTFAULTEXCEPT|SEM_FAILCRITICALERRORS|SEM_NOOPENFILEERRORBOX); #endif #if defined(_WIN_ALL) && !defined(SFX_MODULE) // Must be initialized, normal initialization can be skipped in case of // exception. POWER_MODE ShutdownOnClose=POWERMODE_KEEP; #endif try { CommandData *Cmd=new CommandData; #ifdef SFX_MODULE wcsncpyz(Cmd->Command,L"X",ASIZE(Cmd->Command)); char *Switch=argc>1 ? argv[1]:NULL; if (Switch!=NULL && Cmd->IsSwitch(Switch[0])) { int UpperCmd=etoupper(Switch[1]); switch(UpperCmd) { case 'T': case 'V': Cmd->Command[0]=UpperCmd; break; case '?': Cmd->OutHelp(RARX_SUCCESS); break; } } Cmd->AddArcName(ModuleName); Cmd->ParseDone(); Cmd->AbsoluteLinks=true; // If users runs SFX, he trusts an archive source. #else // !SFX_MODULE Cmd->ParseCommandLine(true,argc,argv); if (!Cmd->ConfigDisabled) { Cmd->ReadConfig(); Cmd->ParseEnvVar(); } Cmd->ParseCommandLine(false,argc,argv); #endif #if defined(_WIN_ALL) && !defined(SFX_MODULE) ShutdownOnClose=Cmd->Shutdown; if (ShutdownOnClose) ShutdownCheckAnother(true); #endif uiInit(Cmd->Sound); InitLogOptions(Cmd->LogName,Cmd->ErrlogCharset); ErrHandler.SetSilent(Cmd->AllYes || Cmd->MsgStream==MSG_NULL); Cmd->OutTitle(); Cmd->ProcessCommand(); delete Cmd; } catch (RAR_EXIT ErrCode) { ErrHandler.SetErrorCode(ErrCode); } catch (std::bad_alloc&) { ErrHandler.MemoryErrorMsg(); ErrHandler.SetErrorCode(RARX_MEMORY); } catch (...) { ErrHandler.SetErrorCode(RARX_FATAL); } #if defined(_WIN_ALL) && !defined(SFX_MODULE) if (ShutdownOnClose!=POWERMODE_KEEP && ErrHandler.IsShutdownEnabled() && !ShutdownCheckAnother(false)) Shutdown(ShutdownOnClose); #endif ErrHandler.MainExit=true; return ErrHandler.GetErrorCode(); } #endif |