A29
This commit is contained in:
parent
8848692e9e
commit
bce753be2b
|
@ -735,12 +735,10 @@ Var
|
|||
|
||||
Procedure DrawItem;
|
||||
Begin
|
||||
If ItemY >= Session.User.ThisUser.ScreenSize {24} Then Begin
|
||||
If ItemY >= Session.User.ThisUser.ScreenSize Then Begin
|
||||
Session.io.OutRawLn('');
|
||||
|
||||
//ItemY := Session.User.ThisUser.ScreenSize - 1;
|
||||
|
||||
Dec (ItemY);
|
||||
ItemY := Session.User.ThisUser.ScreenSize - 1;
|
||||
End;
|
||||
|
||||
If Data.Item[CurItem]^.TextLo <> '' Then Begin
|
||||
|
|
|
@ -1613,6 +1613,8 @@ Var
|
|||
Var
|
||||
NetAddr : RecEchoMailAddr;
|
||||
Begin
|
||||
FillChar (Session.io.PromptInfo, SizeOf(Session.io.PromptInfo), 0);
|
||||
|
||||
Session.io.PromptInfo[1] := MsgBase^.GetFrom;
|
||||
|
||||
If MBase.NetType = 3 Then Begin
|
||||
|
@ -1644,6 +1646,8 @@ Var
|
|||
If MsgBase^.IsSent Then Session.io.PromptInfo[9] := Session.io.PromptInfo[9] + ' ' + strWordGet(4, TempStr, ',');
|
||||
If MsgBase^.IsRcvd Then Session.io.PromptInfo[9] := Session.io.PromptInfo[9] + ' ' + strWordGet(6, TempStr, ',');
|
||||
If MsgBase^.IsDeleted Then Session.io.PromptInfo[9] := Session.io.PromptInfo[9] + ' ' + strWordGet(5, TempStr, ',');
|
||||
|
||||
Session.io.PromptInfo[9] := strStripB(Session.io.PromptInfo[9], ' ');
|
||||
End;
|
||||
|
||||
Procedure Send_Msg_Text (Str : String);
|
||||
|
@ -1869,7 +1873,11 @@ Var
|
|||
'H' : Begin
|
||||
LastRead := CurMsg - 1;
|
||||
|
||||
Session.io.PromptInfo[1] := strI2S(LastRead);
|
||||
|
||||
Session.io.OutFullLn(Session.GetPrompt(504));
|
||||
|
||||
Break;
|
||||
End;
|
||||
'I' : Begin
|
||||
LastRead := MsgBase^.GetHighMsgNum;
|
||||
|
@ -2235,6 +2243,7 @@ Var
|
|||
Inc (PagePos)
|
||||
Else Begin
|
||||
MsgBase^.SeekFirst(MsgInfo[PageTotal].Num);
|
||||
|
||||
If Read_Page(False, False, False) Then PagePos := 1;
|
||||
End;
|
||||
End;
|
||||
|
@ -2338,9 +2347,15 @@ Var
|
|||
|
||||
If Session.io.NoFile Then Begin
|
||||
Session.io.OutFullLn ('|CL|03From : |14|$R40|&1 |03Msg # : |14|&5 |03of |14|&6');
|
||||
Session.io.OutFullLn ('|03To : |10|$R40|&2 |03Date : |11|&4 |&0');
|
||||
Session.io.OutFullLn ('|03Subj : |12|$R40|&3 |03Refer to : |10|&7');
|
||||
Session.io.OutFullLn ('|03Stat : |13|$R40|&9 |03See Also : |12|&8');
|
||||
|
||||
(*
|
||||
Session.io.OutFullLn ('|03To : |10|$R40|&2 |03Refer to : |10|&7');
|
||||
Session.io.OutFullLn ('|03Subj : |12|$R40|&3 |03See Also : |12|&8');
|
||||
Session.io.OutFullLn ('|03Date : |11|&4 |$R31|&0 |03Status : |13|&9');
|
||||
Session.io.OutFullLn ('|03Stat : |13|$R40|&9 |03Date : |11|&4 |&0');
|
||||
*)
|
||||
Session.io.OutFullLn ('|03Base : |14|MB|CR');
|
||||
End;
|
||||
|
||||
|
@ -2438,6 +2453,8 @@ Var
|
|||
'H' : Begin
|
||||
LastRead := MsgBase^.GetMsgNum - 1;
|
||||
|
||||
Session.io.PromptInfo[1] := strI2S(LastRead);
|
||||
|
||||
Session.io.OutFullLn(Session.GetPrompt(505));
|
||||
|
||||
Break;
|
||||
|
|
|
@ -317,6 +317,7 @@ Begin
|
|||
End;
|
||||
End;
|
||||
|
||||
(*
|
||||
Procedure TMsgBaseAnsi.ProcessChar (Ch: Char);
|
||||
Begin
|
||||
If GotPipe Then Begin
|
||||
|
@ -353,9 +354,9 @@ Begin
|
|||
#13 : CurX := 1;
|
||||
#27 : Escape := 1;
|
||||
Else
|
||||
// If Ch = '|' Then
|
||||
// GotPipe := True
|
||||
// Else
|
||||
If Ch = '|' Then
|
||||
GotPipe := True
|
||||
Else
|
||||
AddChar (Ch);
|
||||
|
||||
ResetControlCode;
|
||||
|
@ -375,6 +376,72 @@ Begin
|
|||
|
||||
LastChar := Ch;
|
||||
End;
|
||||
*)
|
||||
|
||||
Procedure TMsgBaseAnsi.ProcessChar (Ch: Char);
|
||||
|
||||
Procedure OneChar (C: Char);
|
||||
Begin
|
||||
Case Escape of
|
||||
0 : Begin
|
||||
Case C of
|
||||
#0 : ;
|
||||
#9 : MoveXY (CurX + 8, CurY);
|
||||
#12 : GotClear := True;
|
||||
#13 : CurX := 1;
|
||||
#27 : Escape := 1;
|
||||
Else
|
||||
If C = '|' Then
|
||||
GotPipe := True
|
||||
Else
|
||||
AddChar (C);
|
||||
|
||||
ResetControlCode;
|
||||
End;
|
||||
End;
|
||||
1 : If C = '[' Then Begin
|
||||
Escape := 2;
|
||||
Code := '';
|
||||
GotAnsi := True;
|
||||
End Else
|
||||
Escape := 0;
|
||||
|
||||
2 : CheckCode(C);
|
||||
Else
|
||||
ResetControlCode;
|
||||
End;
|
||||
|
||||
LastChar := C;
|
||||
End;
|
||||
|
||||
Begin
|
||||
If GotPipe Then Begin
|
||||
PipeCode := PipeCode + Ch;
|
||||
|
||||
If Length(PipeCode) = 2 Then Begin
|
||||
If PipeCode = '00' Then
|
||||
SetFore(0)
|
||||
Else
|
||||
Case strS2I(PipeCode) of
|
||||
01..
|
||||
15 : SetFore(strS2I(PipeCode));
|
||||
16..
|
||||
23 : SetBack(strS2I(PipeCode) - 16);
|
||||
Else
|
||||
AddChar('|');
|
||||
OneChar(PipeCode[1]);
|
||||
OneChar(PipeCode[2]);
|
||||
End;
|
||||
|
||||
GotPipe := False;
|
||||
PipeCode := '';
|
||||
End;
|
||||
|
||||
Exit;
|
||||
End;
|
||||
|
||||
OneChar (Ch);
|
||||
End;
|
||||
|
||||
Function TMsgBaseAnsi.ProcessBuf (Var Buf; BufLen: Word) : Boolean;
|
||||
Var
|
||||
|
|
|
@ -351,6 +351,7 @@ End;
|
|||
Function TBBSUser.GetMatrixUser : Boolean;
|
||||
Var
|
||||
SavedNum : LongInt;
|
||||
Str : String;
|
||||
Begin
|
||||
Result := False;
|
||||
|
||||
|
@ -361,9 +362,9 @@ Begin
|
|||
|
||||
Session.io.OutFull (Session.GetPrompt(273));
|
||||
|
||||
ThisUser.Handle := Session.io.GetInput(30, 30, 18, '');
|
||||
Str := Session.io.GetInput(30, 30, 18, '');
|
||||
|
||||
If Not FindUser(ThisUser.Handle, True) Then Exit;
|
||||
If Not FindUser(Str, True) Then Exit;
|
||||
|
||||
SavedNum := UserNum;
|
||||
UserNum := -1;
|
||||
|
@ -1177,6 +1178,7 @@ Procedure TBBSUser.UserLogon1 (Var MPE: String);
|
|||
Var
|
||||
A : Integer;
|
||||
Count : Byte;
|
||||
Str : String;
|
||||
Begin
|
||||
{$IFDEF LOGGING} Session.SystemLog('Logon1'); {$ENDIF}
|
||||
|
||||
|
@ -1254,13 +1256,13 @@ Begin
|
|||
|
||||
Session.io.OutFull (Session.GetPrompt(0));
|
||||
|
||||
ThisUser.Handle := strStripB(Session.io.GetInput(30, 30, 18, ''), ' ');
|
||||
Str := strStripB(Session.io.GetInput(30, 30, 18, ''), ' ');
|
||||
|
||||
If Not FindUser(ThisUser.Handle, True) Then Begin
|
||||
If Not FindUser(Str, True) Then Begin
|
||||
Session.io.OutFile ('newuser', True, 0);
|
||||
|
||||
If Session.io.GetYN(Session.GetPrompt(1), False) Then Begin
|
||||
CreateNewUser(ThisUser.Handle);
|
||||
CreateNewUser(Str);
|
||||
UserLogon2;
|
||||
UserLogon3;
|
||||
Exit;
|
||||
|
|
|
@ -297,6 +297,7 @@ Begin
|
|||
AddProc ({$IFDEF MPLPARSER} 'msgeditor', {$ENDIF} 'iIiiosS', iBool); // 544
|
||||
AddProc ({$IFDEF MPLPARSER} 'msgeditget', {$ENDIF} 'i', iString); // 545
|
||||
AddProc ({$IFDEF MPLPARSER} 'msgeditset', {$ENDIF} 'is', iNone); // 546
|
||||
AddProc ({$IFDEF MPLPARSER} 'onekeyrange', {$ENDIF} 'sll', iChar); // 547
|
||||
|
||||
{ END OF PROCEDURE DEFINITIONS }
|
||||
|
||||
|
@ -314,6 +315,7 @@ Begin
|
|||
AddPointer ({$IFDEF MPLPARSER} 'allowmci', {$ENDIF} iBool, 1, {$IFNDEF MPLPARSER} @Session.io.PausePtr {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'userloginname',{$ENDIF} iString, 31, {$IFNDEF MPLPARSER} @Session.UserLoginName {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'userloginpw', {$ENDIF} iString, 16, {$IFNDEF MPLPARSER} @Session.UserLoginPW {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'rangevalue', {$ENDIF} iLongInt, 4, {$IFNDEF MPLPARSER} @Session.io.RangeValue {$ELSE} NIL {$ENDIF});
|
||||
|
||||
{$IFNDEF MPLPARSER} TInterpEngine(S).IdxVarDir := X + 1; {$ENDIF}
|
||||
|
||||
|
|
|
@ -1928,6 +1928,11 @@ Begin
|
|||
End;
|
||||
546 : If (Param[1].I > 0) and (Param[1].I <= mysMaxMsgLines) Then
|
||||
Session.Msgs.MsgText[Param[1].I] := Param[2].S;
|
||||
547 : Begin
|
||||
TempStr[1] := Session.io.OneKeyRange(Param[1].S, Param[2].L, Param[3].L);
|
||||
|
||||
Store (TempStr[1], 1);
|
||||
End;
|
||||
End;
|
||||
End;
|
||||
|
||||
|
@ -2074,6 +2079,7 @@ Begin
|
|||
|
||||
Repeat
|
||||
MoveToPos (StartPos);
|
||||
|
||||
If ExecuteBlock (CurVarNum) = 1 Then Begin
|
||||
EvaluateBoolean;
|
||||
Break;
|
||||
|
@ -2136,6 +2142,7 @@ Begin
|
|||
Else
|
||||
Repeat
|
||||
Inc (NumberPos);
|
||||
|
||||
Numbers[NumberPos].Num := EvaluateNumber;
|
||||
|
||||
NextChar;
|
||||
|
@ -2417,12 +2424,17 @@ End;
|
|||
Function ExecuteMPL (Owner: Pointer; Str: String) : Byte;
|
||||
Var
|
||||
Script : TInterpEngine;
|
||||
ErrStr : String;
|
||||
Begin
|
||||
Script := TInterpEngine.Create(Owner);
|
||||
Result := Script.Execute(Str);
|
||||
|
||||
If Script.ErrNum > 0 Then
|
||||
Session.io.OutFullLn ('|CR|12MPX ERROR: ' + Script.GetErrorMsg);
|
||||
If Script.ErrNum > 0 Then Begin
|
||||
ErrStr := 'MPX ERROR: ' + Script.GetErrorMsg;
|
||||
|
||||
Session.SystemLog(ErrStr + '(' + Str + ')');
|
||||
Session.io.OutFullLn ('|CR|12' + ErrStr);
|
||||
End;
|
||||
|
||||
Script.Free;
|
||||
End;
|
||||
|
|
|
@ -8,7 +8,6 @@ design elements/issues.
|
|||
BUGS AND POSSIBLE ISSUES
|
||||
========================
|
||||
|
||||
! Posting echomail via NNTP is not setting ECHO flag
|
||||
! LBP menus arent scrolling correctly in Linux
|
||||
! MUTIL FILESBBS import is not skipping FILES.BBS?
|
||||
! Make sure MIS in Linux works with DOSEMU
|
||||
|
@ -242,3 +241,30 @@ InsertChar (XPOS, Ch, Attr)
|
|||
ReplaceChar (XPOS, Ch, Attr
|
||||
ReplaceLine
|
||||
|
||||
|
||||
1.11
|
||||
====
|
||||
- Rewrite user login functions and MATRIX
|
||||
- Change temp directories. Add MIS/MUTIL/FTN/NODE
|
||||
- User directories (research disk performance with a zillion dirs)
|
||||
1. Ability to save file batch queues between sessions
|
||||
2. Ability to save "draft" message posts between sessions
|
||||
3. Accessible via /home in FTP (virtual dir) allows QWK/REP
|
||||
- New FS editor with DRAW MODE w/ inline ANSI/pipe editing
|
||||
- Option to send QWK packet by e-mail OR download it
|
||||
- Option to "upload" REP packet by sending email to BBS (qwk@yourbbs.com)?
|
||||
- Needs additional research
|
||||
! POSSIBLE removal of local console in Windows and STDIO usage in Linux
|
||||
^ Massive performance increase possible here as well as:
|
||||
! POSSIBLE FTN tosser.
|
||||
! POSSIBLE FTN mailer (transx, FTP, binkP)
|
||||
! MIS event system (possible 1.10)
|
||||
! Password reset via email (possible 1.10)
|
||||
! Email verification system (for access upgrades) (possible 1.10)
|
||||
- New message reader functions allows inline ANSI
|
||||
- Msg editor can "post process" ANSIs to be 79 columns max in stored line
|
||||
length (bbs friendly)
|
||||
- Rewrite of MBBSWEB or integrated HTML server? still need a good designer
|
||||
that actually will put a lot of time into it
|
||||
- Rewrite of ANSI template system (.ini files or mystic2 format?)
|
||||
! Revamp logging system and add additional logging to MIS
|
||||
|
|
|
@ -2823,13 +2823,16 @@
|
|||
|
||||
; Msg header flags text one word each separated by a comma
|
||||
; 1=Local 2=Echo 3=Private 4=Sent 5=Delete, 6=Received
|
||||
490 Local,Echo,Priv,Sent,Del,Read
|
||||
490 Local,Echo,Private,Sent,Deleted,Read
|
||||
|
||||
! Echo flag was not displaying correctly in the message headers.
|
||||
|
||||
! Fixed a bug in the ANSI file viewer which was causing garbled ANSIs
|
||||
in the gallery and the viewer.
|
||||
|
||||
! Fixed a bug in the ANSI file viewer that could be caused by falsely
|
||||
recognizing pipe codes when they were not.
|
||||
|
||||
+ Pressing the SPACE bar in the ANSI viewer now displays the file
|
||||
"normally" with a screenpause at the end.
|
||||
|
||||
|
@ -2848,8 +2851,8 @@
|
|||
|
||||
+ Added a different type of line check into the ANSI parsers. If a line
|
||||
ends with a linefeed but didn't have carrage return before it (as is
|
||||
standard), Mystic will now add the carrage return. If this blows up
|
||||
any existing ANSIs it will be changed back.
|
||||
standard), Mystic will now add the carrage return. This is an attempt to
|
||||
auto-correct ANSI files that are incorrectly saved in Unix.
|
||||
|
||||
! Fixed a bug with pipe color code parsing in the ANSI viewer (GV)
|
||||
|
||||
|
@ -2862,7 +2865,35 @@
|
|||
+ Mystic will now perform text wrapping in the message editors based on
|
||||
the select theme's column size.
|
||||
|
||||
+ Abbreviated Mystic's copyright notice upon connect to be friendly to
|
||||
40 column connections.
|
||||
+ Abbreviated Mystic's copyright notice upon connect to display within a
|
||||
40 column terminal.
|
||||
|
||||
+ Rearranged the built in message header a little bit to allow more space
|
||||
for message flags. Moved the date to the right side and the status
|
||||
flags to the left side.
|
||||
|
||||
! Fixed a random weird bug in the Matrix login that I don't feel like
|
||||
explaining. :)
|
||||
|
||||
+ Added a new MPL function called OneKeyRange. This function works similar
|
||||
to OneKey, except that it will also allow for a number input within a
|
||||
certain range. The number value is stored in a variable called
|
||||
RangeValue and the function returns a #0 if a number was entered. For
|
||||
example:
|
||||
|
||||
Var
|
||||
Ch : Char;
|
||||
Begin
|
||||
Write ('Enter letters A-G or a number between 1-50: ');
|
||||
|
||||
Ch := OneKeyRange('ABCDEFG', 1, 50);
|
||||
|
||||
If Ch = #0 Then
|
||||
WriteLn ('You entered a number: ' + Int2Str(RangeValue))
|
||||
Else
|
||||
WriteLn ('You entered character: ' + Ch);
|
||||
End.
|
||||
|
||||
+ MPL errors when executing a MPX module are now logged in the SYSOP logs
|
||||
|
||||
<ALPHA 29 RELEASED>
|
||||
|
|
Loading…
Reference in New Issue