1 #ifndef _RAR_OPTIONS_
2 #define _RAR_OPTIONS_
3 
4 #define DEFAULT_RECOVERY    -1
5 
6 #define DEFAULT_RECVOLUMES  -10
7 
8 enum PathExclMode {
9   EXCL_NONE,EXCL_BASEPATH,EXCL_SKIPWHOLEPATH,EXCL_SAVEFULLPATH,
10   EXCL_SKIPABSPATH,EXCL_ABSPATH
11 };
12 enum {SOLID_NONE=0,SOLID_NORMAL=1,SOLID_COUNT=2,SOLID_FILEEXT=4,
13       SOLID_VOLUME_DEPENDENT=8,SOLID_VOLUME_INDEPENDENT=16};
14 enum {ARCTIME_NONE,ARCTIME_KEEP,ARCTIME_LATEST};
15 enum EXTTIME_MODE {
16   EXTTIME_NONE,EXTTIME_1S,EXTTIME_HIGH1,EXTTIME_HIGH2,EXTTIME_HIGH3
17 };
18 enum {NAMES_ORIGINALCASE,NAMES_UPPERCASE,NAMES_LOWERCASE};
19 enum MESSAGE_TYPE {MSG_STDOUT,MSG_STDERR,MSG_ERRONLY,MSG_NULL};
20 enum OVERWRITE_MODE { OVERWRITE_ASK,OVERWRITE_ALL,OVERWRITE_NONE};
21 
22 #define     MAX_FILTERS           16
23 enum FilterState {FILTER_DEFAULT=0,FILTER_AUTO,FILTER_FORCE,FILTER_DISABLE};
24 
25 
26 struct FilterMode
27 {
28   FilterState State;
29   int Param1;
30   int Param2;
31 };
32 
33 
34 class RAROptions
35 {
36   public:
37     RAROptions();
38     ~RAROptions();
39     void Init();
40 
41     uint ExclFileAttr;
42     uint InclFileAttr;
43     bool InclAttrSet;
44     uint WinSize;
45     char TempPath[NM];
46     char SFXModule[NM];
47     char ExtrPath[NM];
48     wchar ExtrPathW[NM];
49     char CommentFile[NM];
50     char ArcPath[NM];
51     char Password[MAXPASSWORD];
52     bool EncryptHeaders;
53     char LogName[NM];
54     MESSAGE_TYPE MsgStream;
55     bool Sound;
56     OVERWRITE_MODE Overwrite;
57     int Method;
58     int Recovery;
59     int RecVolNumber;
60     bool DisablePercentage;
61     bool DisableCopyright;
62     bool DisableDone;
63     int Solid;
64     int SolidCount;
65     bool ClearArc;
66     bool AddArcOnly;
67     bool AV;
68     bool DisableComment;
69     bool FreshFiles;
70     bool UpdateFiles;
71     PathExclMode ExclPath;
72     int Recurse;
73     Int64 VolSize;
74     Array<Int64> NextVolSizes;
75     int CurVolNum;
76     bool AllYes;
77     bool DisableViewAV;
78     bool DisableSortSolid;
79     int ArcTime;
80     int ConvertNames;
81     bool ProcessOwners;
82     bool SaveLinks;
83     int Priority;
84     int SleepTime;
85     bool KeepBroken;
86     bool EraseDisk;
87     bool OpenShared;
88     bool ExclEmptyDir;
89     bool DeleteFiles;
90     bool SyncFiles;
91     bool GenerateArcName;
92     char GenerateMask[80];
93     bool ProcessEA;
94     bool SaveStreams;
95     bool SetCompressedAttr;
96     uint FileTimeOlder;
97     uint FileTimeNewer;
98     RarTime FileTimeBefore;
99     RarTime FileTimeAfter;
100     bool OldNumbering;
101     bool Lock;
102     bool Test;
103     bool VolumePause;
104     FilterMode FilterModes[MAX_FILTERS];
105     char EmailTo[NM];
106     int VersionControl;
107     bool NoEndBlock;
108     bool AppendArcNameToPath;
109     bool Shutdown;
110     EXTTIME_MODE xmtime;
111     EXTTIME_MODE xctime;
112     EXTTIME_MODE xatime;
113     EXTTIME_MODE xarctime;
114     char CompressStdin[NM];
115 
116 
117 
118 #ifdef RARDLL
119     char DllDestName[NM];
120     wchar DllDestNameW[NM];
121     int DllOpMode;
122     int DllError;
123     LONG UserData;
124     UNRARCALLBACK Callback;
125     CHANGEVOLPROC ChangeVolProc;
126     PROCESSDATAPROC ProcessDataProc;
127 #endif
128 };
129 #endif
130