A36
This commit is contained in:
parent
41316ef5a6
commit
791d404b38
|
@ -513,7 +513,7 @@ Begin
|
|||
|
||||
Form.AddBol ('A', ' Allow New Users', 22, 7, 41, 7, 17, 3, @Config.AllowNewUsers, Topic);
|
||||
Form.AddByte ('S', ' Security', 29, 8, 41, 8, 10, 3, 1, 255, @Config.NewUserSec, Topic);
|
||||
Form.AddStr ('P', ' Password', 29, 9, 41, 9, 10, 15, 15, @Config.NewUserPW, Topic);
|
||||
Form.AddPass ('P', ' Password', 29, 9, 41, 9, 10, 15, 15, @Config.NewUserPW, Topic);
|
||||
Form.AddBol ('N', ' New User Feedback', 20, 10, 41, 10, 19, 3, @Config.NewUserEmail, Topic);
|
||||
Form.AddBol ('U', ' Use USA Phone', 24, 11, 41, 11, 15, 3, @Config.UseUSAPhone, Topic);
|
||||
Form.AddTog ('E', ' User Name Format', 21, 12, 41, 12, 18, 8, 0, 3, 'As_Typed Upper Lower Proper', @Config.UserNameFormat, Topic);
|
||||
|
|
|
@ -387,7 +387,7 @@ Begin
|
|||
Session.io.AnsiColor (Session.io.ScreenInfo[3].A);
|
||||
Session.io.AnsiGotoXY (Session.io.ScreenInfo[3].X, Session.io.ScreenInfo[3].Y);
|
||||
|
||||
If InsertMode Then Session.io.BufAddStr('INS') else Session.io.BufAddStr('OVR'); { ++lang }
|
||||
If InsertMode Then Session.io.BufAddStr('INS') else Session.io.BufAddStr('OVR'); { ++lang++ }
|
||||
End;
|
||||
|
||||
Procedure TEditorANSI.ReDrawTemplate (Reset: Boolean);
|
||||
|
|
|
@ -1395,9 +1395,11 @@ Begin
|
|||
SavedP2 := Session.io.PromptInfo[2];
|
||||
Result := Session.User.ThisUser.Protocol;
|
||||
|
||||
If Result = 'Q' Then Result := #0;
|
||||
|
||||
//Session.SystemLog('DEBUG: In SelectProtocol');
|
||||
|
||||
If Not LoadByKey(Result) Then Begin
|
||||
If Not LoadByKey(Result) Or Not UseDefault Then Begin
|
||||
Keys := 'Q';
|
||||
|
||||
Session.io.OutFullLn(Session.GetPrompt(359));
|
||||
|
|
|
@ -1800,6 +1800,7 @@ Var
|
|||
Res := True;
|
||||
1 : Res := Session.User.IsThisUser(MsgBase^.GetTo);
|
||||
2 : Res := Session.User.IsThisUser(MsgBase^.GetTo) or Session.User.IsThisUser(MsgBase^.GetFrom);
|
||||
(*
|
||||
3 : Begin
|
||||
Res := (Pos(SearchStr, strUpper(MsgBase^.GetTo)) > 0) or (Pos(SearchStr, strUpper(MsgBase^.GetFrom)) > 0) or
|
||||
(Pos(SearchStr, strUpper(MsgBase^.GetSubj)) > 0);
|
||||
|
@ -1813,9 +1814,24 @@ Var
|
|||
End;
|
||||
End;
|
||||
End;
|
||||
*)
|
||||
4 : Res := Session.User.IsThisUser(MsgBase^.GetFrom);
|
||||
End;
|
||||
|
||||
If (SearchStr <> '') And (((ScanMode = 2) And Res) Or (ScanMode = 3)) Then Begin
|
||||
Res := (Pos(SearchStr, strUpper(MsgBase^.GetTo)) > 0) or (Pos(SearchStr, strUpper(MsgBase^.GetFrom)) > 0) or
|
||||
(Pos(SearchStr, strUpper(MsgBase^.GetSubj)) > 0);
|
||||
|
||||
If Not Res Then Begin
|
||||
MsgBase^.MsgTxtStartUp;
|
||||
|
||||
While Not Res And Not MsgBase^.EOM Do Begin
|
||||
Str := strUpper(MsgBase^.GetString(79));
|
||||
Res := Pos(SearchStr, Str) > 0;
|
||||
End;
|
||||
End;
|
||||
End;
|
||||
|
||||
If NoFrom And Session.User.IsThisUser(MsgBase^.GetFrom) Then
|
||||
Res := False;
|
||||
|
||||
|
@ -2869,7 +2885,7 @@ Begin
|
|||
|
||||
Case MBase.BaseType of
|
||||
0 : MsgBase := New(PMsgBaseJAM, Init);
|
||||
1 : MsgBase := New(PMsgbaseSquish, Init);
|
||||
1 : MsgBase := New(PMsgBaseSquish, Init);
|
||||
End;
|
||||
|
||||
MsgBase^.SetMsgPath (MBase.Path + MBase.FileName);
|
||||
|
@ -2902,6 +2918,9 @@ Begin
|
|||
Else
|
||||
ScanMode := 0;
|
||||
|
||||
// session.io.outfull('read ' + mbase.filename + ' ' + mode + ' ' + searchstr + ' ' + stri2s(scanmode) + '|PN');
|
||||
// session.io.bufflush;
|
||||
|
||||
LastRead := MsgBase^.GetLastRead(Session.User.UserNum);
|
||||
MsgNum := 1;
|
||||
|
||||
|
@ -2937,9 +2956,11 @@ Begin
|
|||
|
||||
If (Session.User.ThisUser.MReadType = 1) and (Session.io.Graphics > 0) Then Begin
|
||||
ListMode := 1;
|
||||
|
||||
Ansi_Read_Messages;
|
||||
End Else Begin
|
||||
ListMode := 0;
|
||||
|
||||
Ascii_Read_Messages;
|
||||
End;
|
||||
|
||||
|
@ -3403,8 +3424,9 @@ Procedure TMsgBase.GlobalMessageSearch (Mode : Char);
|
|||
{ G = all areas in group }
|
||||
{ A = all areas in all groups }
|
||||
Var
|
||||
SearchStr : String;
|
||||
Old : RecMessageBase;
|
||||
SearchStr : String;
|
||||
SavedIgnore : Boolean;
|
||||
Old : RecMessageBase;
|
||||
Begin
|
||||
If Not (Mode in ['A', 'C', 'G']) Then Mode := 'G';
|
||||
|
||||
|
@ -3416,6 +3438,8 @@ Begin
|
|||
|
||||
OLD := MBase;
|
||||
WereMsgs := False;
|
||||
SavedIgnore := Session.User.IgnoreGroup;
|
||||
|
||||
Session.User.IgnoreGroup := Mode = 'A';
|
||||
|
||||
If Mode = 'C' Then
|
||||
|
@ -3435,6 +3459,7 @@ Begin
|
|||
If MScan.NewScan > 0 Then Begin
|
||||
If Not ReadMessages('T', '', SearchStr) Then Begin
|
||||
Session.io.OutRawLn('');
|
||||
|
||||
Break;
|
||||
End;
|
||||
|
||||
|
@ -3448,7 +3473,7 @@ Begin
|
|||
Close (MBaseFile);
|
||||
End;
|
||||
|
||||
Session.User.IgnoreGroup := False;
|
||||
Session.User.IgnoreGroup := SavedIgnore;
|
||||
MBase := OLD;
|
||||
End;
|
||||
|
||||
|
|
|
@ -107,7 +107,7 @@ Begin
|
|||
ThisUser.LastFGroup := Config.StartFGroup;
|
||||
ThisUser.LastMGroup := Config.StartMGroup;
|
||||
ThisUser.UseLBQuote := True;
|
||||
ThisUser.UseFulLChat := True;
|
||||
ThisUser.UseFullChat := True;
|
||||
ThisUser.CodePage := Config.StartCodePage;
|
||||
|
||||
IgnoreGroup := False;
|
||||
|
@ -946,9 +946,9 @@ Begin
|
|||
If AskBirthdate Then GetBirthdate(False);
|
||||
If AskEmail Then GetEmail(False);
|
||||
If AskUserNote Then GetUserNote(False);
|
||||
If OptionalField[1].Ask Then GetOption1(False);
|
||||
If OptionalField[2].Ask Then GetOption2(False);
|
||||
If OptionalField[3].Ask Then GetOption3(False);
|
||||
If OptionalField[1].Ask Then GetOption1(False);
|
||||
If OptionalField[2].Ask Then GetOption2(False);
|
||||
If OptionalField[3].Ask Then GetOption3(False);
|
||||
If UserEditorType = 2 Then GetEditor(False) Else ThisUser.EditType := UserEditorType;
|
||||
|
||||
If UserQuoteWin = 2 Then
|
||||
|
|
|
@ -49,7 +49,7 @@ Type
|
|||
Destructor Destroy; Override;
|
||||
|
||||
Function OpenDataSession : Boolean;
|
||||
Procedure CloseDataSession;
|
||||
Procedure CloseDataSession;
|
||||
Procedure ResetSession;
|
||||
Procedure UpdateUserStats (TFBase: RecFileBase; FDir: RecFileList; DirPos: LongInt);
|
||||
Function CheckFileLimits (TempFBase: RecFileBase; FDir: RecFileList) : Byte;
|
||||
|
@ -411,7 +411,9 @@ End;
|
|||
Procedure TFTPServer.cmdREIN;
|
||||
Begin
|
||||
ResetSession;
|
||||
Client.WriteLine(re_Greeting);
|
||||
|
||||
If Not Client.WriteFile('220', bbsConfig.DataPath + 'ftpbanner.txt') Then
|
||||
Client.WriteLine (re_Greeting);
|
||||
End;
|
||||
|
||||
Procedure TFTPServer.cmdPORT;
|
||||
|
@ -866,9 +868,11 @@ Begin
|
|||
|
||||
If Cmd = 'CDUP' Then cmdCDUP Else
|
||||
If Cmd = 'CWD' Then cmdCWD Else
|
||||
// If Cmd = 'DELE' Then Client.WriteLine(re_NoAccess) Else
|
||||
If Cmd = 'EPRT' Then cmdEPRT Else
|
||||
If Cmd = 'EPSV' Then cmdEPSV Else
|
||||
If Cmd = 'LIST' Then cmdLIST Else
|
||||
// If Cmd = 'MKD' Then Client.WriteLine(re_NoAccess) Else
|
||||
If Cmd = 'MODE' Then cmdMODE Else
|
||||
If Cmd = 'NLST' Then cmdNLST Else
|
||||
If Cmd = 'NOOP' Then Client.WriteLine(re_CommandOK) Else
|
||||
|
@ -878,6 +882,7 @@ Begin
|
|||
If Cmd = 'PWD' Then cmdPWD Else
|
||||
If Cmd = 'REIN' Then cmdREIN Else
|
||||
If Cmd = 'RETR' Then cmdRETR Else
|
||||
// If Cmd = 'RMD' Then Client.WriteLine(re_NoAccess) Else
|
||||
If Cmd = 'SIZE' Then cmdSIZE Else
|
||||
If Cmd = 'STOR' Then cmdSTOR Else
|
||||
If Cmd = 'STRU' Then cmdSTRU Else
|
||||
|
|
|
@ -220,7 +220,7 @@ Begin
|
|||
|
||||
Status ('BUSY: ' + NewClient.PeerIP + ' (' + NewClient.PeerName + ')');
|
||||
|
||||
If Not NewClient.WriteFile(TextPath + 'busy.txt') Then
|
||||
If Not NewClient.WriteFile('', TextPath + 'busy.txt') Then
|
||||
NewClient.WriteLine('BUSY');
|
||||
|
||||
WaitMS(3000);
|
||||
|
@ -232,7 +232,7 @@ Begin
|
|||
|
||||
Status('BLOCK: ' + NewClient.PeerIP + ' (' + NewClient.PeerName + ')');
|
||||
|
||||
If Not NewClient.WriteFile(TextPath + 'blocked.txt') Then
|
||||
If Not NewClient.WriteFile('', TextPath + 'blocked.txt') Then
|
||||
NewClient.WriteLine('BLOCKED');
|
||||
|
||||
WaitMS(3000);
|
||||
|
@ -244,7 +244,7 @@ Begin
|
|||
|
||||
Status('MULTI: ' + NewClient.PeerIP + ' (' + NewClient.PeerName + ')');
|
||||
|
||||
If Not NewClient.WriteFile(TextPath + 'dupeip.txt') Then
|
||||
If Not NewClient.WriteFile('', TextPath + 'dupeip.txt') Then
|
||||
NewClient.WriteLine('Only ' + strI2S(ClientMaxIPs) + ' connection(s) per user');
|
||||
|
||||
WaitMS(3000);
|
||||
|
|
|
@ -322,7 +322,9 @@ Begin
|
|||
AddProc ({$IFDEF MPLPARSER} 'inputoptions', {$ENDIF} 'lbbcss', iNone); // 555
|
||||
AddProc ({$IFDEF MPLPARSER} 'inputexit', {$ENDIF} 'l', iChar); // 556
|
||||
AddProc ({$IFDEF MPLPARSER} 'inputnumber', {$ENDIF} 'lbbbblll', iLongInt); // 557
|
||||
AddProc ({$IFDEF MPLPARSER} 'inputenter', {$ENDIF} 'lbbbs', iBool);
|
||||
AddProc ({$IFDEF MPLPARSER} 'inputenter', {$ENDIF} 'lbbbs', iBool); // 558
|
||||
AddProc ({$IFDEF MPLPARSER} 'imageget', {$ENDIF} 'lbbbb', iNone); // 559
|
||||
AddProc ({$IFDEF MPLPARSER} 'imageput', {$ENDIF} 'l', iNone); // 560
|
||||
|
||||
{ END OF PROCEDURE DEFINITIONS }
|
||||
|
||||
|
@ -370,6 +372,18 @@ Begin
|
|||
AddVar ({$IFDEF MPLPARSER} 'usermbase', {$ENDIF} iLongInt);
|
||||
AddVar ({$IFDEF MPLPARSER} 'usermgroup', {$ENDIF} iLongInt);
|
||||
AddVar ({$IFDEF MPLPARSER} 'userbirthday', {$ENDIF} iLongInt);
|
||||
AddStr ({$IFDEF MPLPARSER} 'usercity', {$ENDIF} iString, 25);
|
||||
AddStr ({$IFDEF MPLPARSER} 'useremail', {$ENDIF} iString, 60);
|
||||
AddStr ({$IFDEF MPLPARSER} 'userinfo', {$ENDIF} iString, 30);
|
||||
|
||||
AddStr ({$IFDEF MPLPARSER} 'useropts', {$ENDIF} iString, 10 * 60 - 1);
|
||||
CV[X]^.ArrPos := 1;
|
||||
{$IFNDEF MPLPARSER}
|
||||
CV[X]^.VarSize := 61;
|
||||
CV[X]^.ArrDim[1] := 10;
|
||||
{$ENDIF}
|
||||
|
||||
AddVar ({$IFDEF MPLPARSER} 'userfsreader', {$ENDIF} iBool);
|
||||
End;
|
||||
2 : Begin
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgsyspath', {$ENDIF} iString, mysMaxPathSize, {$IFNDEF MPLPARSER} @Config.SystemPath {$ELSE} NIL {$ENDIF});
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// remove token label
|
||||
// remove extra parse block?
|
||||
|
||||
Unit MPL_Compile;
|
||||
|
||||
{$I M_OPS.PAS}
|
||||
|
|
|
@ -18,6 +18,7 @@ Const
|
|||
Const
|
||||
mplClass_Box = 1;
|
||||
mplClass_Input = 2;
|
||||
mplClass_Image = 3;
|
||||
|
||||
Type
|
||||
TClassStack = Record
|
||||
|
@ -190,6 +191,11 @@ Begin
|
|||
Move (U.LastMBase, VarData[IdxVarUser + 14]^.Data^, SizeOf(U.LastMBase));
|
||||
Move (U.LastMGroup, VarData[IdxVarUser + 15]^.Data^, SizeOf(U.LastMGroup));
|
||||
Move (U.Birthday, VarData[IdxVarUser + 16]^.Data^, SizeOf(U.Birthday));
|
||||
Move (U.City, VarData[IdxVarUser + 17]^.Data^, SizeOf(U.City));
|
||||
Move (U.Email, VarData[IdxVarUser + 18]^.Data^, SizeOf(U.Email));
|
||||
Move (U.UserInfo, VarData[IdxVarUser + 19]^.Data^, SizeOf(U.UserInfo));
|
||||
Move (U.OptionData, VarData[IdxVarUser + 20]^.Data^, SizeOf(U.OptionData));
|
||||
Move (U.MReadType, VarData[IdxVarUser + 21]^.Data^, SizeOf(U.MReadType));
|
||||
End;
|
||||
|
||||
Procedure TInterpEngine.PutUserVars (Var U: RecUser);
|
||||
|
@ -211,6 +217,11 @@ Begin
|
|||
Move (VarData[IdxVarUser + 14]^.Data^, U.LastMBase, SizeOf(U.LastMBase));
|
||||
Move (VarData[IdxVarUser + 15]^.Data^, U.LastMGroup, SizeOf(U.LastMGroup));
|
||||
Move (VarData[IdxVarUser + 16]^.Data^, U.Birthday, SizeOf(U.Birthday));
|
||||
Move (VarData[IdxVarUser + 17]^.Data^, U.City, SizeOf(U.City));
|
||||
Move (VarData[IdxVarUser + 18]^.Data^, U.Email, SizeOf(U.Email));
|
||||
Move (VarData[IdxVarUser + 19]^.Data^, U.UserInfo, SizeOf(U.UserInfo));
|
||||
Move (VarData[IdxVarUser + 20]^.Data^, U.OptionData, SizeOf(U.OptionData));
|
||||
Move (VarData[IdxVarUser + 21]^.Data^, U.MReadType, SizeOf(U.MReadType));
|
||||
End;
|
||||
|
||||
Function TInterpEngine.GetUserRecord (Num: LongInt) : Boolean;
|
||||
|
@ -393,9 +404,7 @@ Begin
|
|||
|
||||
For Count := 1 to mplMaxClassStack Do
|
||||
If Assigned(ClassData[Count].ClassPtr) Then
|
||||
Case ClassData[Count].ClassType of
|
||||
mplClass_Box : TAnsiMenuBox(ClassData[Count].ClassPtr).Free;
|
||||
End;
|
||||
ClassFree(Count);
|
||||
|
||||
Inherited Destroy;
|
||||
End;
|
||||
|
@ -1266,6 +1275,11 @@ Begin
|
|||
If Str = 'INPUT' Then Begin
|
||||
ClassData[Num].ClassPtr := TAnsiMenuInput.Create;
|
||||
ClassData[Num].ClassType := mplClass_Input;
|
||||
End Else
|
||||
If Str = 'IMAGE' Then Begin
|
||||
GetMem (ClassData[Num].ClassPtr, SizeOf(TConsoleImageRec));
|
||||
|
||||
ClassData[Num].ClassType := mplClass_Image;
|
||||
End Else
|
||||
Error(mpxInvalidClass, Str);
|
||||
End;
|
||||
|
@ -1277,6 +1291,7 @@ Begin
|
|||
Case ClassData[Num].ClassType of
|
||||
mplClass_Box : TAnsiMenuBox(ClassData[Num].ClassPtr).Free;
|
||||
mplClass_Input : TAnsiMenuInput(ClassData[Num].ClassPtr).Free;
|
||||
mplClass_Image : FreeMem(ClassData[Num].ClassPtr);
|
||||
End;
|
||||
|
||||
ClassData[Num].ClassPtr := NIL;
|
||||
|
@ -2076,6 +2091,10 @@ Begin
|
|||
TempBool := TAnsiMenuInput(ClassData[Param[1].L].ClassPtr).GetEnter(Param[2].B, Param[3].B, Param[4].B, Param[5].S);
|
||||
Store (TempBool, 1);
|
||||
End;
|
||||
559 : If ClassValid(Param[1].L, mplClass_Image) Then
|
||||
Screen.GetScreenImage (Param[2].B, Param[3].B, Param[4].B, Param[5].B, TConsoleImageRec(ClassData[Param[1].L].ClassPtr^));
|
||||
560 : If ClassValid(Param[1].L, mplClass_Image) Then
|
||||
Session.io.RemoteRestore(TConsoleImageRec(ClassData[Param[1].L].ClassPtr^));
|
||||
End;
|
||||
End;
|
||||
|
||||
|
|
|
@ -32,6 +32,9 @@ BUGS AND POSSIBLE ISSUES
|
|||
FUTURE / IDEAS / WORK IN PROGRESS / NOTES
|
||||
=========================================
|
||||
|
||||
- global user editor for user flags, def protocol, etc etc
|
||||
- ability to configure auto signatures (2 of them) one for handle and one
|
||||
for real names
|
||||
- ability to download ANSIs while actually viewing them in the gallery
|
||||
- optional Menu scroller during input?
|
||||
- Menu type: Lightbar/Form OR just change standard lightbar to work that
|
||||
|
@ -254,6 +257,8 @@ ReplaceLine
|
|||
|
||||
1.11
|
||||
====
|
||||
- MUTIL option to create bases to (msgbase path + domainname) directory.
|
||||
- MUTIL option to scan recursively when creatign bases by data files
|
||||
- Rewrite user login functions and MATRIX
|
||||
- Change temp directories. Add MIS/MUTIL/FTN/NODE
|
||||
- User directories (research disk performance with a zillion dirs)
|
||||
|
|
|
@ -3509,4 +3509,12 @@
|
|||
|
||||
See TESTINPUT.MPS for an example.
|
||||
|
||||
+ MIS FTP server now will display 'ftpbanner.txt' from the DATA directory
|
||||
if it exists when a user connects via FTP.
|
||||
|
||||
! Once a default protocol was selected, the GE command (option 22) to change
|
||||
the default was not working.
|
||||
|
||||
+ MPL now supports ANSI screen class. NEED TO DOCUMENT AND SHOW EXAMPLE
|
||||
|
||||
<ALPHA 36 RELEASED>
|
||||
|
|
Loading…
Reference in New Issue