New file base editor, restructure of File Base records, ANSI template for file lists are now configurable per file base. ACS max length increased. Base flags are now bitmapped and not booleans
This commit is contained in:
parent
26d2da196e
commit
de10a9193d
|
@ -13,6 +13,25 @@ Uses
|
|||
{$I RECORDS.PAS}
|
||||
|
||||
Type
|
||||
OldFBaseRec = Record { FBASES.DAT }
|
||||
Name : String[40]; { File base name }
|
||||
FtpName : String[60]; { FTP directory name }
|
||||
Filename : String[40]; { File name }
|
||||
DispFile : String[20]; { Pre-list display file name }
|
||||
Template : String[20]; { ansi file list template }
|
||||
ListACS, { ACS required to see this base }
|
||||
FtpACS, { ACS to see in FTP directory }
|
||||
SysopACS, { ACS required for SysOp functions}
|
||||
ULACS, { ACS required to upload files }
|
||||
DLACS : String[mysMaxAcsSize]; { ACS required to download files }
|
||||
Path : String[120]; { Path where files are stored }
|
||||
Password : String[20]; { Password to access this base }
|
||||
DefScan : Byte; { Default New Scan Setting }
|
||||
ShowUL : Boolean;
|
||||
IsCDROM : Boolean;
|
||||
IsFREE : Boolean;
|
||||
End;
|
||||
|
||||
OldFDirRec = Record { *.DIR }
|
||||
FileName : String[70]; { File name }
|
||||
Size : LongInt; { File size (in bytes) }
|
||||
|
@ -1021,21 +1040,74 @@ Begin
|
|||
FindClose(DirInfo);
|
||||
End;
|
||||
|
||||
Procedure ConvertFileBases;
|
||||
Var
|
||||
FBase : RecFileBase;
|
||||
FBaseFile : File of RecFileBase;
|
||||
OldFBase : OldFBaseRec;
|
||||
OldFBaseFile : File of OldFBaseRec;
|
||||
Begin
|
||||
WriteLn ('[-] Updating file bases...');
|
||||
|
||||
If Not ReNameFile(Config.DataPath + 'fbases.dat', Config.DataPath + 'fbases.old') Then Begin
|
||||
WriteLn('[!] UNABLE TO FIND: ' + Config.DataPath + 'fbases.dat');
|
||||
Exit;
|
||||
End;
|
||||
|
||||
Assign (OldFBaseFile, Config.DataPath + 'fbases.old');
|
||||
Reset (OldFBaseFile);
|
||||
|
||||
Assign (FBaseFile, Config.DataPath + 'fbases.dat');
|
||||
ReWrite (FBaseFile);
|
||||
|
||||
While Not Eof(OldFBaseFile) Do Begin
|
||||
Read (OldFBaseFile, OldFBase);
|
||||
|
||||
FBase.Name := OldFBase.Name;
|
||||
FBase.FtpName := OldFBase.FtpName;
|
||||
FBase.FileName := OldFBase.FileName;
|
||||
FBase.DispFile := OldFBase.DispFile;
|
||||
FBase.Template := 'ansiflst';
|
||||
FBase.ListACS := OldFBase.ListACS;
|
||||
FBase.FtpACS := OldFBase.FtpACS;
|
||||
FBase.DLACS := OldFBase.DLACS;
|
||||
FBase.ULACS := OldFBase.ULACS;
|
||||
FBase.SysopACS := OldFBase.SysopACS;
|
||||
FBase.Path := OldFBase.Path;
|
||||
FBase.Password := OldFBase.Password;
|
||||
FBase.DefScan := OldFBase.DefScan;
|
||||
FBase.CommentACS := 's20';
|
||||
FBase.Flags := 0;
|
||||
|
||||
If OldFBase.ShowUL Then FBase.Flags := FBase.Flags OR FBShowUpload;
|
||||
If OldFBase.IsCDROM Then FBase.Flags := FBase.Flags OR FBSlowMedia;
|
||||
If OldFBase.IsFREE Then FBase.Flags := FBase.Flags OR FBFreeFiles;
|
||||
|
||||
Write (FBaseFile, FBase);
|
||||
End;
|
||||
|
||||
Close (FBaseFile);
|
||||
Close (OldFBaseFile);
|
||||
|
||||
DeleteFile (Config.DataPath + 'fbases.old');
|
||||
End;
|
||||
|
||||
Var
|
||||
ConfigFile : File of RecConfig;
|
||||
Begin
|
||||
WarningDisplay;
|
||||
|
||||
//COMMENT this out if mystic.dat is being converted:
|
||||
// Assign (ConfigFile, 'mystic.dat');
|
||||
// Reset (ConfigFile);
|
||||
// Read (ConfigFile, Config);
|
||||
// Close (ConfigFile);
|
||||
Assign (ConfigFile, 'mystic.dat');
|
||||
Reset (ConfigFile);
|
||||
Read (ConfigFile, Config);
|
||||
Close (ConfigFile);
|
||||
|
||||
ConvertConfig; //1.10a11
|
||||
// ConvertConfig; //1.10a11
|
||||
// ConvertUsers; //1.10a11
|
||||
//ConvertSecurity; //1.10a11
|
||||
//ConvertFileLists; //1.10a11
|
||||
ConvertFileBases; //1.10a11
|
||||
|
||||
// ConvertArchives; //1.10a1
|
||||
// ConvertGroups; //1.10a1
|
||||
|
|
|
@ -3857,3 +3857,19 @@
|
|||
+ The END key now functions in the lightbar file listing. It is kind of a
|
||||
half-assed implementation though, since doing it "the right way" will
|
||||
involve some extra coding in the future.
|
||||
|
||||
+ File Base settings for all ACS strings has been increased from 20 to 30
|
||||
characters.
|
||||
|
||||
+ File base "lightbar" list templates are now defined per file base in
|
||||
the file base editor. The upgrade utility will set existing bases to
|
||||
'ansiflst' but any newly created bases will need to have this value set
|
||||
per base now.
|
||||
|
||||
+ Updated file base record structures and added options for the possible
|
||||
future "Comment and Rating" system for file bases. In addition, some
|
||||
boolean data has been changed into a bitmapped flag variable.
|
||||
|
||||
+ Added new ANSI file base editor into the System Configuration.
|
||||
|
||||
+ Added Copy/Paste functions into all new ANSI internal editors.
|
||||
|
|
|
@ -418,6 +418,8 @@ Begin
|
|||
If (A < 0) or (Picked = 1) Then A := 0;
|
||||
WriteXY (X1 + Width + 1, Y1 + 1 + A, Box.BoxAttr2, #178);
|
||||
End;
|
||||
|
||||
Session.io.BufFlush;
|
||||
End;
|
||||
|
||||
Procedure TAnsiMenuList.Open (BX1, BY1, BX2, BY2 : Byte);
|
||||
|
@ -515,6 +517,7 @@ Begin
|
|||
End;
|
||||
If Picked < ListMax Then Inc (Picked);
|
||||
If Picked > TopPage + WinSize - 1 Then Inc (TopPage);
|
||||
Update;
|
||||
End Else
|
||||
If Pos(Ch, LoChars) > 0 Then Begin
|
||||
ExitCode := Ch;
|
||||
|
|
|
@ -4,164 +4,191 @@ Unit bbs_cfg_FileBase;
|
|||
|
||||
Interface
|
||||
|
||||
Procedure File_Base_Editor;
|
||||
Procedure Configuration_FileBaseEditor;
|
||||
|
||||
Implementation
|
||||
|
||||
Uses
|
||||
m_FileIO,
|
||||
m_Strings,
|
||||
m_FileIO,
|
||||
bbs_Ansi_MenuBox,
|
||||
bbs_Ansi_MenuForm,
|
||||
bbs_Common,
|
||||
bbs_Core,
|
||||
bbs_User;
|
||||
bbs_cfg_Common;
|
||||
|
||||
Procedure File_Base_Editor;
|
||||
Const
|
||||
ST : Array[0..2] of String[6] = ('No', 'Yes', 'Always');
|
||||
Var
|
||||
A,
|
||||
B : LongInt;
|
||||
FBaseFile : TBufFile;
|
||||
FBase : RecFileBase;
|
||||
|
||||
Procedure EditFileBase;
|
||||
Var
|
||||
Box : TAnsiMenuBox;
|
||||
Form : TAnsiMenuForm;
|
||||
Topic : String;
|
||||
Count : Byte;
|
||||
Begin
|
||||
Session.SystemLog ('*FBASE EDITOR*');
|
||||
Reset(Session.FileBase.FBaseFile);
|
||||
Topic := '|03(|09File Base Edit|03) |01-|09> |15';
|
||||
Box := TAnsiMenuBox.Create;
|
||||
Form := TAnsiMenuForm.Create;
|
||||
|
||||
Box.Open (6, 5, 75, 21);
|
||||
|
||||
VerticalLine (22, 7, 19);
|
||||
VerticalLine (69, 7, 9);
|
||||
|
||||
Form.AddStr ('N', ' Base Name' , 11, 7, 24, 7, 11, 30, 40, @FBase.Name, Topic + 'File base name');
|
||||
Form.AddStr ('F', ' FTP Name' , 12, 8, 24, 8, 10, 30, 60, @FBase.FTPName, Topic + 'Base name in FTP directory list');
|
||||
Form.AddStr ('D', ' Display File' , 8, 9, 24, 9, 14, 20, 20, @FBase.DispFile, Topic + 'Display file shown before listing');
|
||||
Form.AddStr ('T', ' Template' , 12, 10, 24, 10, 10, 20, 20, @FBase.Template, Topic + 'Lightbar list template');
|
||||
Form.AddStr ('L', ' List ACS ' , 12, 11, 24, 11, 10, 30, 30, @FBase.ListACS, Topic + 'ACS to list files');
|
||||
Form.AddStr ('U', ' Upload ACS ' , 10, 12, 24, 12, 12, 30, 30, @FBase.ULACS, Topic + 'ACS to upload files');
|
||||
Form.AddStr ('D', ' Download ACS ', 8, 13, 24, 13, 14, 30, 30, @FBase.DLACS, Topic + 'ACS to download files');
|
||||
Form.AddStr ('C', ' Comment ACS ' , 9, 14, 24, 14, 13, 30, 30, @FBase.CommentACS, Topic + 'ACS to comment and rate files');
|
||||
Form.AddStr ('P', ' FTP ACS' , 13, 15, 24, 15, 9, 30, 30, @FBase.FTPACS, Topic + 'ACS to access via FTP');
|
||||
Form.AddStr ('S', ' Sysop ACS ' , 11, 16, 24, 16, 11, 30, 30, @FBase.SysopACS, Topic + 'ACS for Sysop access');
|
||||
Form.AddTog ('E', ' Default Scan' , 8, 17, 24, 17, 14, 6, 0, 2, 'No Yes Forced', @FBase.DefScan, Topic + 'Default scan setting');
|
||||
Form.AddPass ('A', ' Password' , 12, 18, 24, 18, 10, 20, 20, @FBase.Password, Topic + 'Base password (Blank/Disable)');
|
||||
Form.AddPath ('I', ' File Path' , 11, 19, 24, 19, 11, 30, 120, @FBase.Path, Topic + 'Directory where files are stored');
|
||||
|
||||
Form.AddBits ('R', ' Free Files' , 57, 7, 71, 7, 12, FBFreeFiles, @FBase.Flags, Topic + 'Files in base are free?');
|
||||
Form.AddBits ('M', ' Slow Media' , 57, 8, 71, 8, 12, FBSlowMedia, @FBase.Flags, Topic + 'Files stored on slow media device?');
|
||||
Form.AddBits (#01, ' Uploader' , 59, 9, 71, 9, 10, FBShowUpload, @FBase.Flags, Topic + 'Show upload in listing');
|
||||
|
||||
Repeat
|
||||
Session.io.AllowPause := True;
|
||||
|
||||
Session.io.OutFullLn ('|CL|14File Base Editor|CR|CR|09### Name|CR--- |$D40-');
|
||||
|
||||
Reset (Session.FileBase.FBaseFile);
|
||||
While Not Eof(Session.FileBase.FBaseFile) Do Begin
|
||||
Read (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||||
Session.io.OutFullLn ('|15' + strPadR(strI2S(FilePos(Session.FileBase.FBaseFile)), 3, ' ') + ' |14|FB');
|
||||
|
||||
If (Session.io.PausePtr = Session.User.ThisUser.ScreenSize) and (Session.io.AllowPause) Then
|
||||
Case Session.io.MorePrompt of
|
||||
'N' : Break;
|
||||
'C' : Session.io.AllowPause := False;
|
||||
End;
|
||||
End;
|
||||
|
||||
Session.io.OutFull ('|CR|09(I)nsert, (D)elete, (E)dit, (M)ove, (Q)uit? ');
|
||||
Case Session.io.OneKey (#13'DEIMQ', True) of
|
||||
'D' : begin
|
||||
Session.io.OutRaw ('Delete which base? ');
|
||||
a := strS2I(Session.io.GetInput(3, 3, 11, ''));
|
||||
If (A > 0) and (A <= FileSize(Session.FileBase.FBaseFile)) Then Begin
|
||||
Seek (Session.FileBase.FBaseFile, A - 1);
|
||||
Read (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||||
FileErase (config.datapath + Session.FileBase.FBase.filename + '.dir');
|
||||
FileErase (config.datapath + Session.FileBase.FBase.filename + '.des');
|
||||
FileErase (config.datapath + Session.FileBase.FBase.filename + '.scn');
|
||||
KillRecord (Session.FileBase.FBaseFile, A, SizeOf(FBaseRec));
|
||||
End;
|
||||
End;
|
||||
'I' : begin
|
||||
Session.io.OutRaw ('Insert before which? (1-' + strI2S(filesize(Session.FileBase.FBaseFile)+1) + '): ');
|
||||
a := strS2I(Session.io.GetInput(3, 3, 11, ''));
|
||||
if (a > 0) and (a <= filesize(Session.FileBase.FBaseFile)+1) then begin
|
||||
AddRecord (Session.FileBase.FBaseFile, A, SizeOf(Session.FileBase.FBaseFile));
|
||||
|
||||
Session.FileBase.FBase.Name := 'New File Base';
|
||||
Session.FileBase.FBase.FtpName := 'New_File_Base';
|
||||
Session.FileBase.FBase.Filename := 'NEW';
|
||||
Session.FileBase.FBase.Dispfile := '';
|
||||
Session.FileBase.FBase.ListACS := 's255';
|
||||
Session.FileBase.FBase.FtpACS := 's255';
|
||||
Session.FileBase.FBase.SysopACS := 's255';
|
||||
Session.FileBase.FBase.UlACS := 's255';
|
||||
Session.FileBase.FBase.DlACS := 's255';
|
||||
Session.FileBase.FBase.Path := '';
|
||||
Session.FileBase.FBase.Password := '';
|
||||
Session.FileBase.FBase.ShowUL := True;
|
||||
Session.FileBase.FBase.IsCDROM := False;
|
||||
Session.FileBase.FBase.DefScan := 1;
|
||||
|
||||
Write (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||||
end;
|
||||
end;
|
||||
'E' : begin
|
||||
Session.io.OutRaw ('Edit which? ');
|
||||
a := strS2I(Session.io.GetInput(3, 3, 11, ''));
|
||||
if (a > 0) and (a <= filesize(Session.FileBase.FBaseFile)) then begin
|
||||
seek (Session.FileBase.FBaseFile, a-1);
|
||||
read (Session.FileBase.FBaseFile, Session.FileBase.fbase);
|
||||
repeat
|
||||
Session.io.OutFullLn ('|CL|14File Base ' + strI2S(FilePos(Session.FileBase.FBaseFile)) + ' of ' + strI2S(FileSize(Session.FileBase.FBaseFile)) + '|CR|03');
|
||||
Session.io.OutRawln ('A. Name : ' + Session.FileBase.FBase.name);
|
||||
Session.io.OutRawln ('B. Filename : ' + Session.FileBase.FBase.filename);
|
||||
Session.io.OutRawln ('C. Display File : ' + Session.FileBase.FBase.dispfile);
|
||||
Session.io.OutRawln ('D. List ACS : ' + Session.FileBase.FBase.Listacs);
|
||||
Session.io.OutRawln ('E. Sysop ACS : ' + Session.FileBase.FBase.SysopACS);
|
||||
Session.io.OutRawln ('F. Upload ACS : ' + Session.FileBase.FBase.ulacs);
|
||||
Session.io.OutRawln ('G. Download ACS : ' + Session.FileBase.FBase.dlacs);
|
||||
Session.io.OutRawln ('H. Storage Path : ' + Session.FileBase.FBase.path);
|
||||
Session.io.OutRawln ('I. Password : ' + Session.FileBase.FBase.password);
|
||||
Session.io.OutRawln ('J. Show Uploader : ' + Session.io.OutYN(Session.FileBase.FBase.ShowUL));
|
||||
Session.io.OutRawLn ('K. Default New Scan : ' + ST[Session.FileBase.FBase.DefScan]);
|
||||
Session.io.OutRawLn ('L. CD-ROM Area : ' + Session.io.OutYN(Session.FileBase.FBase.IsCDROM));
|
||||
Session.io.OutRawLn ('M. All Files Free : ' + Session.io.OutYN(Session.FileBase.FBase.IsFREE));
|
||||
Session.io.OutRawLn ('N. FTP Base Name : ' + Session.FileBase.FBase.FTPName);
|
||||
Session.io.OutRawLn ('O. FTP List ACS : ' + Session.FileBase.FBase.FTPACS);
|
||||
Session.io.OutFull ('|CR|09([) Prev, (]) Next, (Q)uit: ');
|
||||
case Session.io.OneKey('[]ABCDEFGHIJKLMNOQ', True) of
|
||||
'[' : If FilePos(Session.FileBase.FBaseFile) > 1 Then Begin
|
||||
Seek (Session.FileBase.FBaseFile, FilePos(Session.FileBase.FBaseFile)-1);
|
||||
Write (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||||
Seek (Session.FileBase.FBaseFile, FilePos(Session.FileBase.FBaseFile)-2);
|
||||
Read (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||||
End;
|
||||
']' : If FilePos(Session.FileBase.FBaseFile) < FileSize(Session.FileBase.FBaseFile) Then Begin
|
||||
Seek (Session.FileBase.FBaseFile, FilePos(Session.FileBase.FBaseFile)-1);
|
||||
Write (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||||
Read (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||||
End;
|
||||
'A' : Session.FileBase.FBase.Name := Session.io.InXY(23, 3, 40, 40, 11, Session.FileBase.FBase.Name);
|
||||
'B' : Session.FileBase.FBase.FileName := Session.io.InXY(23, 4, 40, 40, 11, Session.FileBase.FBase.FileName);
|
||||
'C' : Session.FileBase.FBase.DispFile := Session.io.InXY(23, 5, 8, 8, 11, Session.FileBase.FBase.DispFile);
|
||||
'D' : Session.FileBase.FBase.ListACS := Session.io.InXY(23, 6, 20, 20, 11, Session.FileBase.FBase.ListACS);
|
||||
'E' : Session.FileBase.FBase.SysopACS := Session.io.InXY(23, 7, 20, 20, 11, Session.FileBase.FBase.SysopACS);
|
||||
'F' : Session.FileBase.FBase.ULacs := Session.io.InXY(23, 8, 20, 20, 11, Session.FileBase.FBase.ULacs);
|
||||
'G' : Session.FileBase.FBase.DLacs := Session.io.InXY(23, 9, 20, 20, 11, Session.FileBase.FBase.DLacs);
|
||||
'H' : Session.FileBase.FBase.Path := CheckPath(Session.io.InXY(23, 10, 39, 39, 11, Session.FileBase.FBase.Path));
|
||||
'I' : Session.FileBase.FBase.Password := Session.io.InXY(23, 11, 15, 15, 12, Session.FileBase.FBase.Password);
|
||||
'J' : Session.FileBase.FBase.ShowUL := Not Session.FileBase.FBase.ShowUL;
|
||||
'K' : If Session.FileBase.FBase.DefScan > 1 Then Session.FileBase.FBase.DefScan := 0 Else Inc(Session.FileBase.FBase.DefScan);
|
||||
'L' : Session.FileBase.FBase.IsCDROM := Not Session.FileBase.FBase.IsCDROM;
|
||||
'M' : Session.FileBase.FBase.IsFREE := Not Session.FileBase.FBase.IsFREE;
|
||||
'N' : Session.FileBase.FBase.FtpName := Session.io.InXY(23, 16, 40, 60, 11, Session.FileBase.FBase.FtpName);
|
||||
'O' : Session.FileBase.FBase.FtpACS := Session.io.InXY(23, 17, 30, 30, 11, Session.FileBase.FBase.FtpACS);
|
||||
'Q' : Break;
|
||||
Case Form.Execute of
|
||||
#27 : Break;
|
||||
End;
|
||||
Until False;
|
||||
Seek (Session.FileBase.FBaseFile, FilePos(Session.FileBase.FBaseFile) - 1);
|
||||
Write (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||||
End;
|
||||
|
||||
Box.Close;
|
||||
|
||||
Form.Free;
|
||||
Box.Free;
|
||||
End;
|
||||
|
||||
'M' : Begin
|
||||
Session.io.OutRaw ('Move which? ');
|
||||
A := strS2I(Session.io.GetInput(3, 3, 12, ''));
|
||||
Procedure Configuration_FileBaseEditor;
|
||||
Var
|
||||
Box : TAnsiMenuBox;
|
||||
List : TAnsiMenuList;
|
||||
Copied : RecFileBase;
|
||||
HasCopy : Boolean = False;
|
||||
|
||||
Session.io.OutRaw ('Move before? (1-' + strI2S(FileSize(Session.FileBase.FBaseFile) + 1) + '): ');
|
||||
B := strS2I(Session.io.GetInput(3, 3, 12, ''));
|
||||
Procedure MakeList;
|
||||
Begin
|
||||
List.Clear;
|
||||
|
||||
If (A > 0) and (A <= FileSize(Session.FileBase.FBaseFile)) and (B > 0) and (B <= FileSize(Session.FileBase.FBaseFile) + 1) Then Begin
|
||||
Seek (Session.FileBase.FBaseFile, A - 1);
|
||||
Read (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||||
FBaseFile.Reset;
|
||||
|
||||
AddRecord (Session.FileBase.FBaseFile, B, SizeOf(FBaseRec));
|
||||
Write (Session.FileBase.FBaseFile, Session.FileBase.FBase);
|
||||
While Not FBaseFile.EOF Do Begin
|
||||
FBaseFile.Read (FBase);
|
||||
|
||||
If A > B Then Inc(A);
|
||||
List.Add(strPadR(strI2S(FBaseFile.FilePos), 5, ' ') + ' ' + strStripPipe(FBase.Name), 0);
|
||||
End;
|
||||
|
||||
KillRecord (Session.FileBase.FBaseFile, A, SizeOf(FBaseRec));
|
||||
List.Add('', 2);
|
||||
End;
|
||||
|
||||
Procedure InsertRecord;
|
||||
Begin
|
||||
FBaseFile.RecordInsert (List.Picked);
|
||||
|
||||
FillChar (FBase, SizeOf(RecFileBase), 0);
|
||||
|
||||
With FBase Do Begin
|
||||
FileName := 'new';
|
||||
Path := Config.SystemPath + 'xfers' + PathChar + 'new' + PathChar;
|
||||
Name := 'New File Base';
|
||||
FtpName := Name;
|
||||
DefScan := 1;
|
||||
SysopACS := 's255';
|
||||
Flags := FBShowUpload;
|
||||
End;
|
||||
|
||||
FBaseFile.Write(FBase);
|
||||
End;
|
||||
|
||||
Begin
|
||||
FBaseFile := TBufFile.Create(4096);
|
||||
|
||||
If Not FBaseFile.Open(Config.DataPath + 'fbases.dat', fmOpenCreate, fmReadWrite + fmDenyNone, SizeOf(RecFileBase)) Then Begin
|
||||
FBaseFile.Free;
|
||||
Exit;
|
||||
End;
|
||||
|
||||
Box := TAnsiMenuBox.Create;
|
||||
List := TAnsiMenuList.Create;
|
||||
|
||||
List.NoWindow := True;
|
||||
List.LoChars := #13#27#47;
|
||||
List.AllowTag := True;
|
||||
|
||||
// If FBaseFile.FileSize = 0 Then InsertRecord;
|
||||
|
||||
Box.Open (15, 5, 65, 21);
|
||||
|
||||
WriteXY (17, 6, 112, '##### File Base Description');
|
||||
WriteXY (16, 7, 112, strRep(#196, 49));
|
||||
WriteXY (16, 19, 112, strRep(#196, 49));
|
||||
WriteXY (29, 20, 112, 'Press / for command list');
|
||||
|
||||
Repeat
|
||||
MakeList;
|
||||
|
||||
List.Open (15, 7, 65, 19);
|
||||
List.Close;
|
||||
|
||||
Case List.ExitCode of
|
||||
'/' : Case GetCommandOption(10, 'I-Insert|D-Delete|C-Copy|P-Paste|') of
|
||||
'I' : If List.Picked > 1 Then Begin
|
||||
InsertRecord;
|
||||
MakeList;
|
||||
End;
|
||||
'D' : If (List.Picked < List.ListMax) Then
|
||||
If ShowMsgBox(1, 'Delete this entry?') Then Begin
|
||||
FBaseFile.Seek (List.Picked - 1);
|
||||
FBaseFile.Read (FBase);
|
||||
|
||||
FBaseFile.RecordDelete (List.Picked);
|
||||
|
||||
If ShowMsgBox(1, 'Delete data files?') Then Begin
|
||||
FileErase (Config.DataPath + FBase.FileName + '.dir');
|
||||
FileErase (Config.DataPath + FBase.FileName + '.dat');
|
||||
FileErase (Config.DataPath + FBase.FileName + '.scn');
|
||||
End;
|
||||
|
||||
MakeList;
|
||||
End;
|
||||
'C' : If List.Picked <> List.ListMax Then Begin
|
||||
FBaseFile.Seek (List.Picked - 1);
|
||||
FBaseFile.Read (Copied);
|
||||
|
||||
HasCopy := True;
|
||||
End;
|
||||
'P' : If HasCopy Then Begin
|
||||
FBaseFile.RecordInsert (List.Picked);
|
||||
FBaseFile.Write (Copied);
|
||||
|
||||
MakeList;
|
||||
End;
|
||||
End;
|
||||
'Q' : Break;
|
||||
#13 : If List.Picked < List.ListMax Then Begin
|
||||
FBaseFile.Seek (List.Picked - 1);
|
||||
FBaseFile.Read (FBase);
|
||||
|
||||
EditFileBase;
|
||||
|
||||
FBaseFile.Seek (List.Picked - 1);
|
||||
FBaseFile.Write (FBase);
|
||||
End;
|
||||
#27 : Break;
|
||||
End;
|
||||
Until False;
|
||||
Close (Session.FileBase.FBaseFile);
|
||||
|
||||
Box.Close;
|
||||
|
||||
FBaseFile.Free;
|
||||
List.Free;
|
||||
Box.Free;
|
||||
End;
|
||||
|
||||
End.
|
||||
|
|
|
@ -40,6 +40,7 @@ Begin
|
|||
|
||||
Case Mode of
|
||||
'A' : Configuration_ArchiveEditor;
|
||||
'F' : Configuration_FileBaseEditor;
|
||||
'P' : Configuration_ProtocolEditor;
|
||||
End;
|
||||
|
||||
|
@ -122,7 +123,6 @@ Var
|
|||
'B' : Message_Base_Editor;
|
||||
'G',
|
||||
'R' : Group_Editor;
|
||||
'F' : File_Base_Editor;
|
||||
'S' : Levels_Editor;
|
||||
'E' : Event_Editor;
|
||||
'V' : Vote_Editor;
|
||||
|
@ -278,6 +278,7 @@ Begin
|
|||
End Else
|
||||
Case Res of
|
||||
'A' : Configuration_ArchiveEditor;
|
||||
'F' : Configuration_FileBaseEditor;
|
||||
'P' : Configuration_ProtocolEditor;
|
||||
'U',
|
||||
'M',
|
||||
|
@ -285,7 +286,6 @@ Begin
|
|||
'B',
|
||||
'G',
|
||||
'R',
|
||||
'F',
|
||||
'S',
|
||||
'E',
|
||||
'V' : ExecuteOldConfiguration(Res);
|
||||
|
|
|
@ -23,13 +23,13 @@ Type
|
|||
End;
|
||||
|
||||
TFileBase = Class
|
||||
FBaseFile : File of FBaseRec;
|
||||
FBaseFile : File of RecFileBase;
|
||||
FDirFile : File of RecFileList;
|
||||
FScanFile : File of FScanRec;
|
||||
ProtocolFile : File of RecProtocol;
|
||||
FGroupFile : File of RecGroup;
|
||||
ArcFile : File of RecArchive;
|
||||
FBase : FBaseRec;
|
||||
FBase : RecFileBase;
|
||||
FGroup : RecGroup;
|
||||
FScan : FScanRec;
|
||||
FDir : RecFileList;
|
||||
|
@ -355,7 +355,7 @@ End;
|
|||
Procedure TFileBase.SetFileScanDate;
|
||||
Var
|
||||
L : LongInt;
|
||||
Old : FBaseRec;
|
||||
Old : RecFileBase;
|
||||
Str : String;
|
||||
Begin
|
||||
Session.io.OutFull (Session.GetPrompt(255));
|
||||
|
@ -662,7 +662,7 @@ Begin
|
|||
If (FDir.Flags And FDirInvalid <> 0) And Not Session.User.Access(Config.AcsDLUnvalid) Then Exit;
|
||||
If (FDir.Flags And FDirFailed <> 0) And Not Session.User.Access(Config.AcsDLFailed) Then Exit;
|
||||
|
||||
If (FDir.Flags And FDirFree <> 0) or (Session.User.ThisUser.Flags and UserNoRatio <> 0) or (FBase.IsFREE) Then Begin
|
||||
If (FDir.Flags And FDirFree <> 0) or (Session.User.ThisUser.Flags and UserNoRatio <> 0) or (FBase.Flags and FBFreeFiles <> 0) Then Begin
|
||||
Result := 0;
|
||||
Exit;
|
||||
End;
|
||||
|
@ -836,7 +836,7 @@ Var
|
|||
End;
|
||||
|
||||
Var
|
||||
Old : FBaseRec;
|
||||
Old : RecFileBase;
|
||||
Temp : String[11];
|
||||
A : Word;
|
||||
N1 : Word;
|
||||
|
@ -1042,7 +1042,7 @@ End;
|
|||
Procedure TFileBase.ViewFile;
|
||||
Var
|
||||
FName : String[70];
|
||||
Old : FBaseRec;
|
||||
Old : RecFileBase;
|
||||
Begin
|
||||
Session.io.OutFull (Session.GetPrompt(353));
|
||||
|
||||
|
@ -1121,7 +1121,7 @@ Procedure TFileBase.BatchAdd;
|
|||
Var
|
||||
FName : String[70];
|
||||
A : Byte;
|
||||
Old : FBaseRec;
|
||||
Old : RecFileBase;
|
||||
OkSave : Boolean;
|
||||
Begin
|
||||
If BatchNum = mysMaxBatchQueue Then Begin
|
||||
|
@ -1223,7 +1223,7 @@ Var
|
|||
A : Word;
|
||||
Total : Word;
|
||||
tGroup : recGroup;
|
||||
tFBase : FBaseRec;
|
||||
tFBase : RecFileBase;
|
||||
tLast : Word;
|
||||
Areas : Word;
|
||||
Data : Word;
|
||||
|
@ -1431,7 +1431,7 @@ Procedure TFileBase.ChangeFileArea (Data: String);
|
|||
Var
|
||||
A : Word;
|
||||
Total : Word;
|
||||
Old : FBaseRec;
|
||||
Old : RecFileBase;
|
||||
Str : String[5];
|
||||
Compress : Boolean;
|
||||
|
||||
|
@ -1730,7 +1730,7 @@ Var
|
|||
TopDesc := 0;
|
||||
End Else Begin
|
||||
Inc (Count, FDir.DescLines + 1);
|
||||
If FBase.ShowUL Then Inc(Count);
|
||||
If FBase.Flags And FBShowUpload <> 0 Then Inc(Count);
|
||||
End;
|
||||
End;
|
||||
|
||||
|
@ -1772,7 +1772,7 @@ Var
|
|||
Session.io.ScreenInfo[5].Y := 0;
|
||||
Session.io.ScreenInfo[6].Y := 0;
|
||||
|
||||
Session.io.OutFile ('ansiflst', True, 0);
|
||||
Session.io.OutFile (FBase.Template, True, 0);
|
||||
|
||||
PageSize := Session.io.ScreenInfo[2].Y - Session.io.ScreenInfo[1].Y + 1;
|
||||
|
||||
|
@ -1925,7 +1925,7 @@ Var
|
|||
End;
|
||||
|
||||
If BotDesc > FDir.DescLines Then Begin
|
||||
If FBase.ShowUL Then Begin
|
||||
If FBase.Flags and FBShowUpload <> 0 Then Begin
|
||||
OK := ShowText(strUploader);
|
||||
If OK Then
|
||||
BotDesc := 0
|
||||
|
@ -2383,7 +2383,7 @@ End;
|
|||
Function TFileBase.IsDupeFile (FileName : String; Global : Boolean) : Boolean;
|
||||
Var
|
||||
Res : Boolean;
|
||||
OLD : FBaseRec;
|
||||
OLD : RecFileBase;
|
||||
|
||||
Procedure Check_Area;
|
||||
Var
|
||||
|
@ -2462,7 +2462,7 @@ Var
|
|||
D : DirStr;
|
||||
N : NameStr;
|
||||
E : ExtStr;
|
||||
OLD : FBaseRec;
|
||||
OLD : RecFileBase;
|
||||
Blind : Boolean;
|
||||
Temp : String;
|
||||
FullName : String;
|
||||
|
@ -2502,7 +2502,7 @@ Begin
|
|||
Exit;
|
||||
End;
|
||||
|
||||
If FBase.IsCDROM Then Begin
|
||||
If FBase.Flags And FBSlowMedia <> 0 Then Begin
|
||||
Session.io.OutFullLn (Session.GetPrompt(80));
|
||||
FBase := OLD;
|
||||
Exit;
|
||||
|
@ -2715,7 +2715,7 @@ Var
|
|||
Begin
|
||||
Copied := False;
|
||||
|
||||
If FBase.IsCDROM Then Begin
|
||||
If FBase.Flags And FBSlowMedia <> 0 Then Begin
|
||||
|
||||
Copied := True;
|
||||
|
||||
|
@ -2829,7 +2829,7 @@ Var
|
|||
K : LongInt;
|
||||
M : Integer;
|
||||
Dir : String[40];
|
||||
Old : FBaseRec;
|
||||
Old : RecFileBase;
|
||||
FL : Text;
|
||||
Begin
|
||||
K := 0;
|
||||
|
@ -2943,7 +2943,7 @@ Var
|
|||
End;
|
||||
|
||||
Var
|
||||
Old : FBaseRec;
|
||||
Old : RecFileBase;
|
||||
Begin
|
||||
Old := FBase;
|
||||
Found := False;
|
||||
|
@ -2992,7 +2992,7 @@ End;
|
|||
|
||||
Procedure TFileBase.NewFileScan (Mode: Char);
|
||||
Var
|
||||
TempFBase : FBaseRec;
|
||||
TempFBase : RecFileBase;
|
||||
Found : Boolean;
|
||||
Done : Boolean;
|
||||
NewFiles : Boolean;
|
||||
|
@ -3113,7 +3113,7 @@ Var
|
|||
A : Integer;
|
||||
B : Integer;
|
||||
Temp : String;
|
||||
Old : FBaseRec;
|
||||
Old : RecFileBase;
|
||||
TF : Text;
|
||||
Begin
|
||||
If FBase.FileName = '' Then Begin
|
||||
|
@ -3206,7 +3206,8 @@ Begin
|
|||
Case Session.io.OneKey('123456[]DEIMQUV!', True) of
|
||||
'1' : Begin
|
||||
Temp := Session.io.InXY (4, 3, 70, 70, 11, FDir.FileName);
|
||||
If Not FBase.IsCDROM Then
|
||||
|
||||
If FBase.Flags And FBSlowMedia = 0 Then
|
||||
If (Temp <> FDir.FileName) and (Temp <> '') Then Begin
|
||||
If Not FileExist(FBase.Path + Temp) or (strUpper(Temp) = strUpper(FDir.FileName)) Then Begin
|
||||
Assign(TF, FBase.Path + FDir.FileName);
|
||||
|
@ -3518,7 +3519,7 @@ Var
|
|||
End;
|
||||
|
||||
Var
|
||||
Old : FBaseRec;
|
||||
Old : RecFileBase;
|
||||
Pos : LongInt;
|
||||
Begin
|
||||
Session.SystemLog ('Mass upload');
|
||||
|
|
|
@ -317,7 +317,7 @@ Begin
|
|||
End;
|
||||
'A' : Configuration_ExecuteEditor('A');
|
||||
'E' : Event_Editor;
|
||||
'F' : File_Base_Editor;
|
||||
'F' : Configuration_ExecuteEditor('F');
|
||||
'G' : Group_Editor;
|
||||
'L' : Levels_Editor;
|
||||
'M' : Message_Base_Editor;
|
||||
|
|
|
@ -769,13 +769,13 @@ End;
|
|||
|
||||
Procedure TMsgBase.ReplyMessage (Email: Boolean; ListMode : Byte; ReplyID : String);
|
||||
Var
|
||||
ToWho : String[30]; {to field}
|
||||
Subj : String[60]; {subject field}
|
||||
Addr : RecEchomailAddr; {netmail to addr}
|
||||
ToWho : String[30];
|
||||
Subj : String[60];
|
||||
Addr : RecEchomailAddr;
|
||||
MsgNew : PMsgBaseABS;
|
||||
Temp1 : String; {quote text}
|
||||
Temp2 : String[2]; {Initials}
|
||||
Temp3 : String[80]; {Text}
|
||||
Temp1 : String;
|
||||
Temp2 : String[2];
|
||||
Temp3 : String[80];
|
||||
tFile : Text;
|
||||
Lines : SmallInt;
|
||||
Begin
|
||||
|
@ -1019,10 +1019,10 @@ End;
|
|||
|
||||
Procedure TMsgBase.MessageUpload (Var CurLine: SmallInt);
|
||||
Var
|
||||
FN : String[100]; {was string}
|
||||
FN : String[100];
|
||||
TF : Text;
|
||||
T1 : String[30]; { Saved TO: }
|
||||
T2 : String[60]; { Saved SUBJ: }
|
||||
T1 : String[30];
|
||||
T2 : String[60];
|
||||
OK : Boolean;
|
||||
Begin
|
||||
OK := False;
|
||||
|
@ -1500,6 +1500,7 @@ Var
|
|||
'D' : Begin
|
||||
If Session.io.GetYN(Session.GetPrompt(402), True) Then Begin
|
||||
MsgBase^.DeleteMsg;
|
||||
|
||||
If Not SeekNextMsg(False, False) Then Begin
|
||||
Ansi_View_Message := True;
|
||||
Exit;
|
||||
|
@ -1529,7 +1530,9 @@ Var
|
|||
Session.io.PromptInfo[2] := strI2S(MsgBase^.GetHighMsgNum);
|
||||
|
||||
Session.io.OutFull (Session.GetPrompt(403));
|
||||
|
||||
A := strS2I(Session.io.GetInput(9, 9, 12, ''));
|
||||
|
||||
If (A > 0) and (A <= MsgBase^.GetHighMsgNum) Then Begin
|
||||
MsgBase^.SeekFirst(A);
|
||||
If Not SeekNextMsg(True, False) Then Begin
|
||||
|
@ -1546,6 +1549,7 @@ Var
|
|||
Ansi_View_Message := True;
|
||||
Exit;
|
||||
End;
|
||||
|
||||
Break;
|
||||
End;
|
||||
#13 : If (Lines > PageSize) and (PageEnd <= Lines) Then Begin
|
||||
|
@ -1578,21 +1582,26 @@ Var
|
|||
#27,
|
||||
'Q' : Begin
|
||||
GetMessageScan;
|
||||
|
||||
If MScan.NewScan = 2 Then
|
||||
Session.io.OutFullLn(Session.GetPrompt(406))
|
||||
Else Begin
|
||||
ReadRes := False;
|
||||
Ansi_View_Message := True;
|
||||
|
||||
Exit;
|
||||
End;
|
||||
End;
|
||||
'R' : Begin
|
||||
ReplyMessage (Mode = 'E', ListMode, ReplyID);
|
||||
|
||||
Break;
|
||||
End;
|
||||
'T' : Begin
|
||||
Session.io.PromptInfo[1] := MBase.Name;
|
||||
|
||||
GetMessageScan;
|
||||
|
||||
Case MScan.NewScan of
|
||||
0 : Begin
|
||||
MScan.NewScan := 1;
|
||||
|
@ -1606,20 +1615,24 @@ Var
|
|||
End;
|
||||
|
||||
SetMessageScan;
|
||||
|
||||
Break;
|
||||
End;
|
||||
'X' : Begin
|
||||
Export_Message;
|
||||
|
||||
Break;
|
||||
End;
|
||||
'[' : If MsgBase^.GetRefer > 0 Then Begin
|
||||
MsgBase^.SeekFirst(MsgBase^.GetRefer);
|
||||
MsgBase^.MsgStartUp;
|
||||
|
||||
Break;
|
||||
End;
|
||||
']' : If MsgBase^.GetSeeAlso > 0 Then Begin
|
||||
MsgBase^.SeekFirst(MsgBase^.GetSeeAlso);
|
||||
MsgBase^.MsgStartUp;
|
||||
|
||||
Break;
|
||||
End;
|
||||
'?' : Begin
|
||||
|
@ -1671,6 +1684,7 @@ Var
|
|||
Session.io.PromptInfo[2] := Subj;
|
||||
Session.io.PromptInfo[3] := MsgFrom;
|
||||
Session.io.PromptInfo[4] := MsgTo;
|
||||
|
||||
If NewMsgs Then
|
||||
Session.io.PromptInfo[5] := Session.Lang.NewMsgChar
|
||||
Else
|
||||
|
@ -1711,17 +1725,16 @@ Var
|
|||
CurPage := 0;
|
||||
End;
|
||||
|
||||
{ add scanning prompt here }
|
||||
(*
|
||||
if (scanmode=3) then begin
|
||||
Session.io.AnsiGotoXY(32, 11);
|
||||
Session.io.OutFull ('|08.---------------.');
|
||||
Session.io.AnsiGotoXY(32, 12);
|
||||
Session.io.OutFull ('| |07searching ... |08|');
|
||||
Session.io.AnsiGotoXY(32, 13);
|
||||
Session.io.OutFull ('`---------------''');
|
||||
end;
|
||||
*)
|
||||
// add scanning prompt here
|
||||
//if (scanmode=3) then begin
|
||||
// Session.io.AnsiGotoXY(32, 11);
|
||||
// Session.io.OutFull ('|08.---------------.');
|
||||
// Session.io.AnsiGotoXY(32, 12);
|
||||
// Session.io.OutFull ('| |07searching ... |08|');
|
||||
// Session.io.AnsiGotoXY(32, 13);
|
||||
// Session.io.OutFull ('`---------------''');
|
||||
//end;
|
||||
|
||||
PageTotal := 0;
|
||||
Read_Page := True;
|
||||
|
||||
|
|
|
@ -69,12 +69,14 @@ Begin
|
|||
If Session.io.ScreenInfo[9].X <> 0 Then Begin
|
||||
Session.io.AnsiGotoXY (Session.io.ScreenInfo[9].X, Session.io.ScreenInfo[9].Y);
|
||||
Session.io.AnsiColor (Session.io.ScreenInfo[9].A);
|
||||
|
||||
Session.io.OutFull ('|$L04|TL');
|
||||
End;
|
||||
|
||||
If Session.io.ScreenInfo[0].X <> 0 Then Begin
|
||||
Session.io.AnsiGotoXY (Session.io.ScreenInfo[0].X, Session.io.ScreenInfo[0].Y);
|
||||
Session.io.AnsiColor (Session.io.ScreenInfo[0].A);
|
||||
|
||||
Session.io.OutFull ('|TI');
|
||||
End;
|
||||
|
||||
|
@ -89,11 +91,13 @@ Begin
|
|||
If Not Session.io.LocalInput and Not LastUser Then Begin
|
||||
Session.io.AnsiGotoXY (UserX, UserY);
|
||||
Session.io.AnsiColor (Session.io.ScreenInfo[1].A);
|
||||
|
||||
LastUser := True;
|
||||
End Else
|
||||
If Session.io.LocalInput and LastUser Then Begin
|
||||
Session.io.AnsiGotoXY (SysopX, SysopY);
|
||||
Session.io.AnsiColor (Session.io.ScreenInfo[5].A);
|
||||
|
||||
LastUser := False;
|
||||
End;
|
||||
|
||||
|
@ -103,12 +107,14 @@ Begin
|
|||
#08 : If Session.io.LocalInput Then Begin
|
||||
If SysopX > Session.io.ScreenInfo[7].X Then Begin
|
||||
Session.io.OutBS (1, True);
|
||||
|
||||
Dec (SysopX);
|
||||
Dec (SysopStr[0]);
|
||||
End;
|
||||
End Else Begin
|
||||
If UserX > Session.io.ScreenInfo[3].X Then Begin
|
||||
Session.io.OutBS (1, True);
|
||||
|
||||
Dec (UserX);
|
||||
Dec (UserStr[0]);
|
||||
End;
|
||||
|
@ -259,6 +265,7 @@ Begin
|
|||
If Config.ChatLogging Then Begin
|
||||
Assign (tFile, Config.LogsPath + 'chat.log');
|
||||
{$I-} Append (tFile); {$I+}
|
||||
|
||||
If IoResult <> 0 Then ReWrite (tFile);
|
||||
|
||||
WriteLn (tFile, '');
|
||||
|
|
|
@ -109,6 +109,7 @@ Var
|
|||
Str : String;
|
||||
Begin
|
||||
ResetSession;
|
||||
|
||||
Client.WriteLine(re_Greeting);
|
||||
|
||||
Repeat
|
||||
|
|
|
@ -90,7 +90,7 @@ Type
|
|||
Function GetMBaseRecord (Num: LongInt) : Boolean;
|
||||
Procedure GetMGroupVars (Var G: RecGroup);
|
||||
Function GetMGroupRecord (Num: LongInt) : Boolean;
|
||||
Procedure GetFBaseVars (Var F: FBaseRec);
|
||||
Procedure GetFBaseVars (Var F: RecFileBase);
|
||||
Function GetFBaseRecord (Num: LongInt) : Boolean;
|
||||
Procedure GetFGroupVars (Var G: RecGroup);
|
||||
Function GetFGroupRecord (Num: LongInt) : Boolean;
|
||||
|
@ -203,7 +203,7 @@ Begin
|
|||
Close (F);
|
||||
End;
|
||||
|
||||
Procedure TInterpEngine.GetFBaseVars (Var F: FBaseRec);
|
||||
Procedure TInterpEngine.GetFBaseVars (Var F: RecFileBase);
|
||||
Begin
|
||||
Move (F.Name, VarData[IdxVarFBase ]^.Data^, SizeOf(F.Name));
|
||||
Move (F.ListACS, VarData[IdxVarFBase + 1 ]^.Data^, SizeOf(F.ListACS));
|
||||
|
@ -212,12 +212,12 @@ End;
|
|||
Function TInterpEngine.GetFBaseRecord (Num: LongInt) : Boolean;
|
||||
Var
|
||||
F : File;
|
||||
FB : FBaseRec;
|
||||
FB : RecFileBase;
|
||||
Begin
|
||||
Result := False;
|
||||
|
||||
Assign (F, Config.DataPath + 'fbases.dat');
|
||||
If Not ioReset(F, SizeOf(FBaseRec), fmRWDN) Then Exit;
|
||||
If Not ioReset(F, SizeOf(RecFileBase), fmRWDN) Then Exit;
|
||||
|
||||
If ioSeek(F, Pred(Num)) And (ioRead(F, FB)) Then Begin
|
||||
GetFBaseVars(FB);
|
||||
|
|
|
@ -344,6 +344,7 @@ Begin
|
|||
{$I-} Reset (Session.User.SecurityFile); {$I+}
|
||||
If IoResult <> 0 Then Begin
|
||||
ReWrite(Session.User.SecurityFile);
|
||||
|
||||
For Count := 1 to 255 Do
|
||||
Write (Session.User.SecurityFile, Session.User.Security);
|
||||
End;
|
||||
|
|
|
@ -244,17 +244,15 @@ Type
|
|||
End;
|
||||
|
||||
Const
|
||||
UserLockedOut = $01;
|
||||
UserNoRatio = $02;
|
||||
UserDeleted = $04;
|
||||
UserNoKill = $08;
|
||||
UserNoCaller = $10;
|
||||
UserNoPWChange = $20;
|
||||
UserLockedOut = $00000001;
|
||||
UserNoRatio = $00000002;
|
||||
UserDeleted = $00000004;
|
||||
UserNoKill = $00000008;
|
||||
UserNoCaller = $00000010;
|
||||
UserNoPWChange = $00000020;
|
||||
|
||||
//FUTURE DATA FILE UPDATES NEEDED
|
||||
//LASTON needs optional1-10 compare to Mystic2
|
||||
//FBASE
|
||||
// ACS to comment on file
|
||||
//MBASES
|
||||
// expand header filename[20]
|
||||
// add template[20]
|
||||
|
@ -282,13 +280,11 @@ Const
|
|||
// compare to mystic 2 for fallback stuff?
|
||||
// rename to THEME
|
||||
// horizontal/vertical percent bars
|
||||
// default prot into users
|
||||
// default prot into new user options
|
||||
|
||||
Type
|
||||
RecUser = Record { USERS.DAT }
|
||||
PermIdx : LongInt; // permanent user number
|
||||
Flags : Byte; { User Flags }
|
||||
Flags : LongInt; { User Flags }
|
||||
Handle : String[30]; { Handle }
|
||||
RealName : String[30]; { Real Name }
|
||||
Password : String[15]; { Password }
|
||||
|
@ -351,7 +347,7 @@ Type
|
|||
UseFullChat : Boolean; { use full screen teleconference }
|
||||
Credits : LongInt;
|
||||
Protocol : Char;
|
||||
Reserved : Array[1..392] of Byte;
|
||||
Reserved : Array[1..389] of Byte;
|
||||
End;
|
||||
|
||||
EventRec = Record { EVENTS.DAT }
|
||||
|
@ -445,25 +441,29 @@ Type
|
|||
LastNew : LongInt; { Last file scan (packed datetime)}
|
||||
End;
|
||||
|
||||
FBaseRec = Record { FBASES.DAT }
|
||||
Name : String[40]; { File base name }
|
||||
FtpName : String[60]; { FTP directory name }
|
||||
Filename : String[40]; { File name }
|
||||
DispFile : String[20]; { Pre-list display file name }
|
||||
Template : String[20]; { ansi file list template }
|
||||
ListACS, { ACS required to see this base }
|
||||
FtpACS, { ACS to see in FTP directory }
|
||||
SysopACS, { ACS required for SysOp functions}
|
||||
ULACS, { ACS required to upload files }
|
||||
DLACS : String[mysMaxAcsSize]; { ACS required to download files }
|
||||
Path : String[120]; { Path where files are stored }
|
||||
Password : String[20]; { Password to access this base }
|
||||
DefScan : Byte; { Default New Scan Setting }
|
||||
ShowUL : Boolean;
|
||||
IsCDROM : Boolean;
|
||||
IsFREE : Boolean;
|
||||
Const
|
||||
FBShowUpload = $00000001;
|
||||
FBSlowMedia = $00000002;
|
||||
FBFreeFiles = $00000004;
|
||||
|
||||
Type
|
||||
RecFileBase = Record
|
||||
Name : String[40];
|
||||
FtpName : String[60];
|
||||
FileName : String[40];
|
||||
DispFile : String[20];
|
||||
Template : String[20];
|
||||
ListACS : String[30];
|
||||
FtpACS : String[30];
|
||||
DLACS : String[30];
|
||||
ULACS : String[30];
|
||||
CommentACS : String[30];
|
||||
SysOpACS : String[30];
|
||||
Path : String[120];
|
||||
Password : String[20];
|
||||
DefScan : Byte;
|
||||
Flags : LongInt;
|
||||
End;
|
||||
// make flags and merge in shouul, iscdrom,isfree, etc
|
||||
|
||||
(* The file directory listing are stored as <FBaseRec.FileName>.DIR in *)
|
||||
(* the data directory. Each record stores the info on one file. File *)
|
||||
|
|
Loading…
Reference in New Issue