1 //  This may look like C code, but it is really -*- C++ -*-
2 
3 //  ------------------------------------------------------------------
4 //  The Goldware Library
5 //  Copyright (C) 1990-1999 Odinn Sorensen
6 //  ------------------------------------------------------------------
7 //  This library is free software; you can redistribute it and/or
8 //  modify it under the terms of the GNU Library General Public
9 //  License as published by the Free Software Foundation; either
10 //  version 2 of the License, or (at your option) any later version.
11 //
12 //  This library is distributed in the hope that it will be useful,
13 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
14 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 //  Library General Public License for more details.
16 //
17 //  You should have received a copy of the GNU Library General Public
18 //  License along with this program; if not, write to the Free
19 //  Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20 //  MA 02111-1307, USA
21 //  ------------------------------------------------------------------
22 //  $Id: gs_fm092.h,v 1.2 2005/10/21 02:31:39 ssianky Exp $
23 //  ------------------------------------------------------------------
24 //  Structures for FMail 0.92
25 //  ------------------------------------------------------------------
26 
27 #ifndef __gs_fm092_h
28 #define __gs_fm092_h
29 
30 
31 //  ------------------------------------------------------------------
32 
33 #include <gftnall.h>
34 
35 
36 //  ------------------------------------------------------------------
37 
38 #if defined(GOLD_CANPACK)
39 #pragma pack(1)
40 #endif
41 
42 
43 //  ------------------------------------------------------------------
44 
45 #define MAX_AKAS 11
46 
47 typedef struct {
48   ftn_addr    nodeNum;
49   word        fakeNet;
50 } nodeFakeType;
51 
52 typedef char pathType[48];
53 typedef char tempStrType[128];
54 typedef nodeFakeType akaListType[MAX_AKAS];
55 typedef char archiverInfo[48];
56 
57 typedef struct {
58   word useEMS       :  1; /* BIT 0 */
59   word              :  1;
60   word swap         :  1; /* BIT 2 */
61   word swapEMS      :  1; /* BIT 3 */
62   word swapXMS      :  1; /* BIT 4 */
63   word              :  1;
64   word monochrome   :  1; /* BIT 6 */
65   word commentFFD   :  1; /* BIT 7 */
66   word PTAreasBBS   :  1; /* BIT 8 */
67   word commentFRA   :  1; /* BIT 9 */
68   word keepReceipt  :  1; /* BIT 10 */
69   word              :  1;
70   word              :  1;
71   word              :  1;
72   word              :  1;
73   word extraHandles :  1; /* BIT 15 */
74 } genOptionsType;
75 
76 typedef struct {
77   word removeNetKludges : 1; /* Bit 0 */
78   word                  : 1;
79   word checkPktDest     : 1; /* Bit 2 */
80   word areaMgrPwdChange : 1; /* Bit 3 */
81   word packetPwdChange  : 1; /* Bit 4 */
82   word                  : 1;
83   word                  : 1;
84   word                  : 1;
85   word dupDetection     : 1; /* Bit 8 */
86   word /*strictGroups*/ : 1; /* Bit 9 */
87   word                  : 1; /* Bit 10 */
88   word                  : 1;
89   word persNetmail      : 1; /* Bit 12 */
90   word                  : 1;
91   word                  : 1;
92   word                  : 1; /* Bit 15 */
93 } mailOptionsType;
94 
95 typedef struct {
96   word sortNew      : 1; /* bit  0   */
97   word sortSubject  : 1; /* bit  1   */
98   word updateChains : 1; /* bit  2   */
99   word              : 1; /* bit  3   */
100   word _importSeenBy: 1; /* bit  4   */
101   word _removePID   : 1; /* bit  5 not USED */
102   word removeRe     : 1; /* bit  6   */
103   word removeLfSr   : 1; /* bit  7   */
104   word scanAlways   : 1; /* bit  8   */
105   word scanUpdate   : 1; /* bit  9   */
106   word multiLine    : 1; /* bit 10   */
107   word              : 1; /* bit 11   */
108   word quickToss    : 1; /* bit 12   */
109   word              : 1; /* bit 13-14 */
110   word              : 1; /* bit 13-14 */
111   word sysopImport  : 1; /* bit 15   */
112 } mbOptionsType;
113 
114 typedef struct {
115   word active      : 1; /* Bit  0 */
116   word tinySeenBy  : 1; /* Bit  1 */
117   word security    : 1; /* Bit  2 */
118   word             : 1; /* Bit  3 */
119   word Private     : 1; /* Bit  4 */
120   word impSeenBy   : 1; /* Bit  5 */
121   word checkSeenBy : 1; /* Bit  6 */
122   word /*compChar*/: 1; /* Bit  7 */
123   word local       : 1; /* Bit  8 */
124   word             : 1; /* Bit  9 */
125   word passThrough : 1; /* Bit 10 */
126   word             : 1; /* Bit 11-13 */
127   word             : 1; /* Bit 11-13 */
128   word             : 1; /* Bit 11-13 */
129   word arrivalDate : 1; /* Bit 14 */
130   word sysopRead   : 1; /* Bit 15 */
131 } defaultOptionsType;
132 
133 typedef struct {
134   char            versionMajor;
135   char            versionMinor;
136   long            creationDate;
137   uint32_t        key;
138   uint32_t        reservedKey;
139   char            sysopNameOld[32];
140   akaListType     akaList;
141   nodeFakeType    reservedAka[16-MAX_AKAS];
142   word            netmailBoard[MAX_AKAS];
143   word            reservedNet[16-MAX_AKAS];
144   genOptionsType  genOptions;
145   mbOptionsType   mbOptions;
146   mailOptionsType mailOptions;
147   word            maxPktSize;
148   word            logLevel;
149   word            mailer;
150   word            bbsProgram;
151   char            reserved1[86];
152   char            sysopName[36];
153   word            defaultArc;
154   char            reserved2[98];
155   word            recBoard;
156   word            badBoard;
157   word            dupBoard;
158   char            topic1[16];
159   char            topic2[16];
160   pathType        bbsPath;
161   pathType        netPath;
162   pathType        sentPath;
163   pathType        rcvdPath;
164   pathType        inPath;
165   pathType        outPath;
166   pathType        securePath;
167   pathType        logName;
168   pathType        swapPath;
169   pathType        semaphorePath;
170   pathType        pmailPath;
171   pathType        areaMgrLogName;
172   pathType        autoRAPath;
173   pathType        autoFolderFdPath;
174   pathType        autoAreasBBSPath;
175   pathType        autoGoldEdAreasPath;
176   archiverInfo    unArc;
177   archiverInfo    unZip;
178   archiverInfo    unLzh;
179   archiverInfo    unPak;
180   archiverInfo    unZoo;
181   archiverInfo    unArj;
182   archiverInfo    reservedArc1;
183   archiverInfo    reservedArc2;
184   archiverInfo    arc;
185   archiverInfo    zip;
186   archiverInfo    lzh;
187   archiverInfo    pak;
188   archiverInfo    zoo;
189   archiverInfo    arj;
190   archiverInfo    reservedArc3;
191   archiverInfo    reservedArc4;
192   char            defaultOriginLine[59];
193   defaultOptionsType
194                   defaultOptions;
195   word            defaultDays;
196   word            defaultMsgs;
197   word            defaultReadSecRA;
198   char            defaultReadFlagsRA[4];
199   word            defaultWriteSecRA;
200   char            defaultWriteFlagsRA[4];
201   word            defaultSysopSecRA;
202   char            defaultSysopFlagsRA[4];
203   char            defaultAttrRA;
204   char            reserved3[428];
205   char            groupDescr[26][27];
206   char            reserved4[20];
207   char            attrRA[11];
208   word            readSecRA[11];
209   char            readFlagsRA[11][4];
210   word            writeSecRA[11];
211   char            writeFlagsRA[11][4];
212   word            sysopSecRA[11];
213   char            sysopFlagsRA[11][4];
214   word            daysAKA[11];
215   word            msgsAKA[11];
216   char            descrAKA[11][51];
217 } configType;
218 
219 #define ECHONAME_LEN_OLD  25
220 #define ECHONAME_LEN      51
221 #define COMMENT_LEN   51
222 #define ORGLINE_LEN   59
223 #define MAX_FORWARD   64
224 
225 typedef struct {
226   word active      : 1; /* Bit  0 */
227   word tinySeenBy  : 1; /* Bit  1 */
228   word security    : 1; /* Bit  2 */
229   word             : 1; /* Bit  3 */
230   word Private     : 1; /* Bit  4 */
231   word impSeenBy   : 1; /* Bit  5 */
232   word checkSeenBy : 1; /* Bit  6 */
233   word /*compChar*/: 1; /* Bit  7 */
234   word local       : 1; /* Bit  8 */
235   word             : 1; /* Bit  9 */
236   word reserved    : 1; /* Bit 10 */ /* default pass-thru bit */
237   word             : 1; /* Bit 11-13 */
238   word             : 1; /* Bit 11-13 */
239   word             : 1; /* Bit 11-13 */
240   word arrivalDate : 1; /* Bit 14 */
241   word sysopRead   : 1; /* Bit 15 */
242 } areaOptionsType;
243 
244 typedef struct {
245   char            areaNameOld[ECHONAME_LEN_OLD];
246   char            comment[COMMENT_LEN];
247   long            group;
248   word            board;
249   word            address;
250   word            alsoSeenBy;
251   char            reserved1[8];
252   areaOptionsType options;
253   word            outStatus;
254   word            days;
255   word            msgs;
256   char            reserved2[4];
257   word            readSecRA;
258   char            flagsRdRA[4];
259   word            writeSecRA;
260   char            flagsWrRA[4];
261   word            sysopSecRA;
262   char            flagsSysRA[4];
263   char            attrRA;
264   char            msgKindsRA;
265   word            attrSBBS;
266   char            replyStatSBBS;
267   char            areaName[ECHONAME_LEN];
268   char            reserved3[17];
269   char            originLine[ORGLINE_LEN];
270   ftn_addr        exp[MAX_FORWARD];
271 } rawEchoType;
272 
273 
274 //  ------------------------------------------------------------------
275 
276 #if defined(GOLD_CANPACK)
277 #pragma pack()
278 #endif
279 
280 
281 //  ------------------------------------------------------------------
282 
283 #endif
284 
285 //  ------------------------------------------------------------------
286