A29
This commit is contained in:
parent
8848692e9e
commit
bce753be2b
|
@ -735,12 +735,10 @@ Var
|
||||||
|
|
||||||
Procedure DrawItem;
|
Procedure DrawItem;
|
||||||
Begin
|
Begin
|
||||||
If ItemY >= Session.User.ThisUser.ScreenSize {24} Then Begin
|
If ItemY >= Session.User.ThisUser.ScreenSize Then Begin
|
||||||
Session.io.OutRawLn('');
|
Session.io.OutRawLn('');
|
||||||
|
|
||||||
//ItemY := Session.User.ThisUser.ScreenSize - 1;
|
ItemY := Session.User.ThisUser.ScreenSize - 1;
|
||||||
|
|
||||||
Dec (ItemY);
|
|
||||||
End;
|
End;
|
||||||
|
|
||||||
If Data.Item[CurItem]^.TextLo <> '' Then Begin
|
If Data.Item[CurItem]^.TextLo <> '' Then Begin
|
||||||
|
|
|
@ -1613,6 +1613,8 @@ Var
|
||||||
Var
|
Var
|
||||||
NetAddr : RecEchoMailAddr;
|
NetAddr : RecEchoMailAddr;
|
||||||
Begin
|
Begin
|
||||||
|
FillChar (Session.io.PromptInfo, SizeOf(Session.io.PromptInfo), 0);
|
||||||
|
|
||||||
Session.io.PromptInfo[1] := MsgBase^.GetFrom;
|
Session.io.PromptInfo[1] := MsgBase^.GetFrom;
|
||||||
|
|
||||||
If MBase.NetType = 3 Then Begin
|
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^.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^.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, ',');
|
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;
|
End;
|
||||||
|
|
||||||
Procedure Send_Msg_Text (Str : String);
|
Procedure Send_Msg_Text (Str : String);
|
||||||
|
@ -1869,7 +1873,11 @@ Var
|
||||||
'H' : Begin
|
'H' : Begin
|
||||||
LastRead := CurMsg - 1;
|
LastRead := CurMsg - 1;
|
||||||
|
|
||||||
|
Session.io.PromptInfo[1] := strI2S(LastRead);
|
||||||
|
|
||||||
Session.io.OutFullLn(Session.GetPrompt(504));
|
Session.io.OutFullLn(Session.GetPrompt(504));
|
||||||
|
|
||||||
|
Break;
|
||||||
End;
|
End;
|
||||||
'I' : Begin
|
'I' : Begin
|
||||||
LastRead := MsgBase^.GetHighMsgNum;
|
LastRead := MsgBase^.GetHighMsgNum;
|
||||||
|
@ -2235,6 +2243,7 @@ Var
|
||||||
Inc (PagePos)
|
Inc (PagePos)
|
||||||
Else Begin
|
Else Begin
|
||||||
MsgBase^.SeekFirst(MsgInfo[PageTotal].Num);
|
MsgBase^.SeekFirst(MsgInfo[PageTotal].Num);
|
||||||
|
|
||||||
If Read_Page(False, False, False) Then PagePos := 1;
|
If Read_Page(False, False, False) Then PagePos := 1;
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
@ -2338,9 +2347,15 @@ Var
|
||||||
|
|
||||||
If Session.io.NoFile Then Begin
|
If Session.io.NoFile Then Begin
|
||||||
Session.io.OutFullLn ('|CL|03From : |14|$R40|&1 |03Msg # : |14|&5 |03of |14|&6');
|
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 ('|03To : |10|$R40|&2 |03Refer to : |10|&7');
|
||||||
Session.io.OutFullLn ('|03Subj : |12|$R40|&3 |03See Also : |12|&8');
|
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');
|
Session.io.OutFullLn ('|03Base : |14|MB|CR');
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
@ -2438,6 +2453,8 @@ Var
|
||||||
'H' : Begin
|
'H' : Begin
|
||||||
LastRead := MsgBase^.GetMsgNum - 1;
|
LastRead := MsgBase^.GetMsgNum - 1;
|
||||||
|
|
||||||
|
Session.io.PromptInfo[1] := strI2S(LastRead);
|
||||||
|
|
||||||
Session.io.OutFullLn(Session.GetPrompt(505));
|
Session.io.OutFullLn(Session.GetPrompt(505));
|
||||||
|
|
||||||
Break;
|
Break;
|
||||||
|
|
|
@ -317,6 +317,7 @@ Begin
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
(*
|
||||||
Procedure TMsgBaseAnsi.ProcessChar (Ch: Char);
|
Procedure TMsgBaseAnsi.ProcessChar (Ch: Char);
|
||||||
Begin
|
Begin
|
||||||
If GotPipe Then Begin
|
If GotPipe Then Begin
|
||||||
|
@ -353,9 +354,9 @@ Begin
|
||||||
#13 : CurX := 1;
|
#13 : CurX := 1;
|
||||||
#27 : Escape := 1;
|
#27 : Escape := 1;
|
||||||
Else
|
Else
|
||||||
// If Ch = '|' Then
|
If Ch = '|' Then
|
||||||
// GotPipe := True
|
GotPipe := True
|
||||||
// Else
|
Else
|
||||||
AddChar (Ch);
|
AddChar (Ch);
|
||||||
|
|
||||||
ResetControlCode;
|
ResetControlCode;
|
||||||
|
@ -375,6 +376,72 @@ Begin
|
||||||
|
|
||||||
LastChar := Ch;
|
LastChar := Ch;
|
||||||
End;
|
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;
|
Function TMsgBaseAnsi.ProcessBuf (Var Buf; BufLen: Word) : Boolean;
|
||||||
Var
|
Var
|
||||||
|
|
|
@ -351,6 +351,7 @@ End;
|
||||||
Function TBBSUser.GetMatrixUser : Boolean;
|
Function TBBSUser.GetMatrixUser : Boolean;
|
||||||
Var
|
Var
|
||||||
SavedNum : LongInt;
|
SavedNum : LongInt;
|
||||||
|
Str : String;
|
||||||
Begin
|
Begin
|
||||||
Result := False;
|
Result := False;
|
||||||
|
|
||||||
|
@ -361,9 +362,9 @@ Begin
|
||||||
|
|
||||||
Session.io.OutFull (Session.GetPrompt(273));
|
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;
|
SavedNum := UserNum;
|
||||||
UserNum := -1;
|
UserNum := -1;
|
||||||
|
@ -1177,6 +1178,7 @@ Procedure TBBSUser.UserLogon1 (Var MPE: String);
|
||||||
Var
|
Var
|
||||||
A : Integer;
|
A : Integer;
|
||||||
Count : Byte;
|
Count : Byte;
|
||||||
|
Str : String;
|
||||||
Begin
|
Begin
|
||||||
{$IFDEF LOGGING} Session.SystemLog('Logon1'); {$ENDIF}
|
{$IFDEF LOGGING} Session.SystemLog('Logon1'); {$ENDIF}
|
||||||
|
|
||||||
|
@ -1254,13 +1256,13 @@ Begin
|
||||||
|
|
||||||
Session.io.OutFull (Session.GetPrompt(0));
|
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);
|
Session.io.OutFile ('newuser', True, 0);
|
||||||
|
|
||||||
If Session.io.GetYN(Session.GetPrompt(1), False) Then Begin
|
If Session.io.GetYN(Session.GetPrompt(1), False) Then Begin
|
||||||
CreateNewUser(ThisUser.Handle);
|
CreateNewUser(Str);
|
||||||
UserLogon2;
|
UserLogon2;
|
||||||
UserLogon3;
|
UserLogon3;
|
||||||
Exit;
|
Exit;
|
||||||
|
|
|
@ -297,6 +297,7 @@ Begin
|
||||||
AddProc ({$IFDEF MPLPARSER} 'msgeditor', {$ENDIF} 'iIiiosS', iBool); // 544
|
AddProc ({$IFDEF MPLPARSER} 'msgeditor', {$ENDIF} 'iIiiosS', iBool); // 544
|
||||||
AddProc ({$IFDEF MPLPARSER} 'msgeditget', {$ENDIF} 'i', iString); // 545
|
AddProc ({$IFDEF MPLPARSER} 'msgeditget', {$ENDIF} 'i', iString); // 545
|
||||||
AddProc ({$IFDEF MPLPARSER} 'msgeditset', {$ENDIF} 'is', iNone); // 546
|
AddProc ({$IFDEF MPLPARSER} 'msgeditset', {$ENDIF} 'is', iNone); // 546
|
||||||
|
AddProc ({$IFDEF MPLPARSER} 'onekeyrange', {$ENDIF} 'sll', iChar); // 547
|
||||||
|
|
||||||
{ END OF PROCEDURE DEFINITIONS }
|
{ 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} '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} '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} '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}
|
{$IFNDEF MPLPARSER} TInterpEngine(S).IdxVarDir := X + 1; {$ENDIF}
|
||||||
|
|
||||||
|
|
|
@ -1928,6 +1928,11 @@ Begin
|
||||||
End;
|
End;
|
||||||
546 : If (Param[1].I > 0) and (Param[1].I <= mysMaxMsgLines) Then
|
546 : If (Param[1].I > 0) and (Param[1].I <= mysMaxMsgLines) Then
|
||||||
Session.Msgs.MsgText[Param[1].I] := Param[2].S;
|
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;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
@ -2074,6 +2079,7 @@ Begin
|
||||||
|
|
||||||
Repeat
|
Repeat
|
||||||
MoveToPos (StartPos);
|
MoveToPos (StartPos);
|
||||||
|
|
||||||
If ExecuteBlock (CurVarNum) = 1 Then Begin
|
If ExecuteBlock (CurVarNum) = 1 Then Begin
|
||||||
EvaluateBoolean;
|
EvaluateBoolean;
|
||||||
Break;
|
Break;
|
||||||
|
@ -2136,6 +2142,7 @@ Begin
|
||||||
Else
|
Else
|
||||||
Repeat
|
Repeat
|
||||||
Inc (NumberPos);
|
Inc (NumberPos);
|
||||||
|
|
||||||
Numbers[NumberPos].Num := EvaluateNumber;
|
Numbers[NumberPos].Num := EvaluateNumber;
|
||||||
|
|
||||||
NextChar;
|
NextChar;
|
||||||
|
@ -2417,12 +2424,17 @@ End;
|
||||||
Function ExecuteMPL (Owner: Pointer; Str: String) : Byte;
|
Function ExecuteMPL (Owner: Pointer; Str: String) : Byte;
|
||||||
Var
|
Var
|
||||||
Script : TInterpEngine;
|
Script : TInterpEngine;
|
||||||
|
ErrStr : String;
|
||||||
Begin
|
Begin
|
||||||
Script := TInterpEngine.Create(Owner);
|
Script := TInterpEngine.Create(Owner);
|
||||||
Result := Script.Execute(Str);
|
Result := Script.Execute(Str);
|
||||||
|
|
||||||
If Script.ErrNum > 0 Then
|
If Script.ErrNum > 0 Then Begin
|
||||||
Session.io.OutFullLn ('|CR|12MPX ERROR: ' + Script.GetErrorMsg);
|
ErrStr := 'MPX ERROR: ' + Script.GetErrorMsg;
|
||||||
|
|
||||||
|
Session.SystemLog(ErrStr + '(' + Str + ')');
|
||||||
|
Session.io.OutFullLn ('|CR|12' + ErrStr);
|
||||||
|
End;
|
||||||
|
|
||||||
Script.Free;
|
Script.Free;
|
||||||
End;
|
End;
|
||||||
|
|
|
@ -8,7 +8,6 @@ design elements/issues.
|
||||||
BUGS AND POSSIBLE ISSUES
|
BUGS AND POSSIBLE ISSUES
|
||||||
========================
|
========================
|
||||||
|
|
||||||
! Posting echomail via NNTP is not setting ECHO flag
|
|
||||||
! LBP menus arent scrolling correctly in Linux
|
! LBP menus arent scrolling correctly in Linux
|
||||||
! MUTIL FILESBBS import is not skipping FILES.BBS?
|
! MUTIL FILESBBS import is not skipping FILES.BBS?
|
||||||
! Make sure MIS in Linux works with DOSEMU
|
! Make sure MIS in Linux works with DOSEMU
|
||||||
|
@ -242,3 +241,30 @@ InsertChar (XPOS, Ch, Attr)
|
||||||
ReplaceChar (XPOS, Ch, Attr
|
ReplaceChar (XPOS, Ch, Attr
|
||||||
ReplaceLine
|
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
|
; Msg header flags text one word each separated by a comma
|
||||||
; 1=Local 2=Echo 3=Private 4=Sent 5=Delete, 6=Received
|
; 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.
|
! Echo flag was not displaying correctly in the message headers.
|
||||||
|
|
||||||
! Fixed a bug in the ANSI file viewer which was causing garbled ANSIs
|
! Fixed a bug in the ANSI file viewer which was causing garbled ANSIs
|
||||||
in the gallery and the viewer.
|
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
|
+ Pressing the SPACE bar in the ANSI viewer now displays the file
|
||||||
"normally" with a screenpause at the end.
|
"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
|
+ 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
|
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
|
standard), Mystic will now add the carrage return. This is an attempt to
|
||||||
any existing ANSIs it will be changed back.
|
auto-correct ANSI files that are incorrectly saved in Unix.
|
||||||
|
|
||||||
! Fixed a bug with pipe color code parsing in the ANSI viewer (GV)
|
! 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
|
+ Mystic will now perform text wrapping in the message editors based on
|
||||||
the select theme's column size.
|
the select theme's column size.
|
||||||
|
|
||||||
+ Abbreviated Mystic's copyright notice upon connect to be friendly to
|
+ Abbreviated Mystic's copyright notice upon connect to display within a
|
||||||
40 column connections.
|
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>
|
<ALPHA 29 RELEASED>
|
||||||
|
|
Loading…
Reference in New Issue