📄 rar.cpp
字号:
#include "rar.hpp"#include "smallfn.cpp"#ifdef _DJGPPextern "C" char **__crt0_glob_function (char *arg) { return 0; }extern "C" void __crt0_load_environment_file (char *progname) { }#endif#if !defined(GUI) && !defined(RARDLL)int main(int argc, char *argv[]){#ifdef _UNIX setlocale(LC_ALL,"");#endif#ifndef SFX_MODULE setbuf(stdout,NULL); #ifdef _EMX EnumConfigPaths(argv[0],-1); #endif#endif ErrHandler.SetSignalHandlers(true); RARInitData();#ifdef SFX_MODULE char ModuleName[NM];#ifdef _WIN_32 GetModuleFileName(NULL,ModuleName,sizeof(ModuleName));#else strcpy(ModuleName,argv[0]);#endif#endif#ifdef _WIN_32 SetErrorMode(SEM_FAILCRITICALERRORS|SEM_NOOPENFILEERRORBOX);#endif bool ShutdownOnClose;#ifdef ALLOW_EXCEPTIONS try #endif { CommandData Cmd;#ifdef SFX_MODULE strcpy(Cmd.Command,"X"); char *Switch=NULL;#ifdef _SFX_RTL_ char *CmdLine=GetCommandLine(); if (CmdLine!=NULL && *CmdLine=='\"') CmdLine=strchr(CmdLine+1,'\"'); if (CmdLine!=NULL && (CmdLine=strpbrk(CmdLine," /"))!=NULL) { while (isspace(*CmdLine)) CmdLine++; Switch=CmdLine; }#else Switch=argc>1 ? argv[1]:NULL;#endif if (Switch!=NULL && Cmd.IsSwitch(Switch[0])) { int UpperCmd=toupper(Switch[1]); switch(UpperCmd) { case 'T': case 'V': Cmd.Command[0]=UpperCmd; break; case '?': Cmd.OutHelp(); break; } } Cmd.AddArcName(ModuleName,NULL);#else if (Cmd.IsConfigEnabled(argc,argv)) { Cmd.ReadConfig(argc,argv); Cmd.ParseEnvVar(); } for (int I=1;I<argc;I++) Cmd.ParseArg(argv[I],NULL);#endif Cmd.ParseDone(); InitConsoleOptions(Cmd.MsgStream,Cmd.Sound); InitSystemOptions(Cmd.SleepTime); InitLogOptions(Cmd.LogName); ErrHandler.SetSilent(Cmd.AllYes || Cmd.MsgStream==MSG_NULL); ErrHandler.SetShutdown(Cmd.Shutdown); Cmd.OutTitle(); Cmd.ProcessCommand(); }#ifdef ALLOW_EXCEPTIONS catch (int ErrCode) { ErrHandler.SetErrorCode(ErrCode); }#ifdef ENABLE_BAD_ALLOC catch (bad_alloc) { ErrHandler.SetErrorCode(MEMORY_ERROR); }#endif catch (...) { ErrHandler.SetErrorCode(FATAL_ERROR); }#endif File::RemoveCreated();#if defined(SFX_MODULE) && defined(_DJGPP) _chmod(ModuleName,1,0x20);#endif return(ErrHandler.GetErrorCode());}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -