A33 final
This commit is contained in:
parent
4ef405c6d6
commit
3d5bef88b1
|
@ -471,8 +471,8 @@ Begin
|
|||
Form.AddBol ('B', ' Bases in Group List', 6, 10, 29, 10, 21, 3, @Config.MShowBases, Topic + 'Calculate bases in group list?');
|
||||
Form.AddByte ('X', ' Max AutoSig Lines', 8, 11, 29, 11, 19, 3, 1, 99, @Config.MaxAutoSig, Topic + 'Max autosig lines');
|
||||
Form.AddBol ('S', ' Force NL Match', 11, 12, 29, 12, 16, 3, @Config.ForceNodeList, Topic + 'Force nodelist lookup match when sending netmail?');
|
||||
Form.AddStr ('R', ' Crosspost ACS', 12, 13, 29, 13, 15, 20, 30, @Config.AcsCrossPost, Topic + 'ACS to allow crosspost messages');
|
||||
Form.AddStr ('A', ' Attachment ACS', 11, 14, 29, 14, 16, 20, 30, @Config.AcsFileAttach, Topic + 'ACS to allow file attachments');
|
||||
Form.AddStr ('R', ' Ext Reply ACS', 12, 13, 29, 13, 15, 20, 30, @Config.AcsExtReply, Topic + 'ACS: Allow users to select reply base');
|
||||
Form.AddStr ('A', ' Attachment ACS', 11, 14, 29, 14, 16, 20, 30, @Config.AcsFileAttach, Topic + 'ACS: Allow file attachments');
|
||||
Form.AddBol ('T', ' External FSE', 13, 15, 29, 15, 14, 3, @Config.FSEditor, Topic + 'Use external editor');
|
||||
Form.AddStr ('F', ' FSE Command Line', 9, 16, 29, 16, 18, 40, 60, @Config.FSCommand, Topic + 'FSE command line');
|
||||
Form.AddStr ('D', ' Default Origin', 11, 17, 29, 17, 16, 40, 50, @Config.Origin, Topic + 'Origin line for new bases');
|
||||
|
|
|
@ -44,6 +44,8 @@ Type
|
|||
Done : Boolean;
|
||||
Subject : String;
|
||||
Template : String;
|
||||
MaxMsgLines : Word;
|
||||
MaxMsgCols : Byte;
|
||||
|
||||
Constructor Create (Var O: Pointer; TemplateFile: String);
|
||||
Destructor Destroy; Override;
|
||||
|
@ -118,6 +120,8 @@ Begin
|
|||
CutPasted := False;
|
||||
CutTextPos := 0;
|
||||
Template := TemplateFile;
|
||||
MaxMsgLines := mysMaxMsgLines;
|
||||
MaxMsgCols := 79;
|
||||
|
||||
FillChar (CutText, SizeOf(CutText), 0);
|
||||
End;
|
||||
|
@ -156,7 +160,7 @@ End;
|
|||
|
||||
Procedure TEditorANSI.FindLastLine;
|
||||
Begin
|
||||
LastLine := mysMaxMsgLines;
|
||||
LastLine := MaxMsgLines;
|
||||
|
||||
While (LastLine > 1) And IsBlankLine(ANSI.Data[LastLine], 80) Do
|
||||
Dec(LastLine);
|
||||
|
@ -226,10 +230,10 @@ Procedure TEditorANSI.DeleteLine (Line: LongInt);
|
|||
Var
|
||||
Count : LongInt;
|
||||
Begin
|
||||
For Count := Line to mysMaxMsgLines - 1 Do
|
||||
For Count := Line to MaxMsgLines - 1 Do
|
||||
ANSI.Data[Count] := ANSI.Data[Count + 1];
|
||||
|
||||
FillChar (ANSI.Data[mysMaxMsgLines], SizeOf(RecAnsiBufferLine), #0);
|
||||
FillChar (ANSI.Data[MaxMsgLines], SizeOf(RecAnsiBufferLine), #0);
|
||||
|
||||
If LastLine > 1 Then Dec(LastLine);
|
||||
End;
|
||||
|
@ -238,12 +242,12 @@ Procedure TEditorANSI.InsertLine (Line: LongInt);
|
|||
Var
|
||||
Count : LongInt;
|
||||
Begin
|
||||
For Count := mysMaxMsgLines DownTo Line + 1 Do
|
||||
For Count := MaxMsgLines DownTo Line + 1 Do
|
||||
ANSI.Data[Count] := ANSI.Data[Count - 1];
|
||||
|
||||
FillChar(ANSI.Data[Line], SizeOf(RecAnsiBufferLine), #0);
|
||||
|
||||
If LastLine < mysMaxMsgLines Then Inc(LastLine);
|
||||
If LastLine < MaxMsgLines Then Inc(LastLine);
|
||||
End;
|
||||
|
||||
Function TEditorANSI.GetWrapPos (Var Line; LineSize: Byte; WrapPos: Byte) : Byte;
|
||||
|
@ -305,7 +309,7 @@ Begin
|
|||
StartY := CurY;
|
||||
StartLine := Count;
|
||||
|
||||
While Count <= mysMaxMsgLines Do Begin
|
||||
While Count <= MaxMsgLines Do Begin
|
||||
If Count > LastLine Then LastLine := Count;
|
||||
|
||||
FillChar (TempStr, SizeOf(TempStr), #0);
|
||||
|
@ -315,7 +319,7 @@ Begin
|
|||
If IsBlankLine(TempStr, 255) Then Begin
|
||||
If Count < LastLine Then Begin
|
||||
InsertLine(Count);
|
||||
EndLine := mysMaxMsgLines;
|
||||
EndLine := MaxMsgLines;
|
||||
End Else
|
||||
EndLine := Count;
|
||||
|
||||
|
@ -397,7 +401,7 @@ Begin
|
|||
Session.io.OutFile (Template, True, 0);
|
||||
|
||||
WinX1 := 1;
|
||||
WinX2 := 79;
|
||||
WinX2 := MaxMsgCols; //79
|
||||
// WinX1 := Session.io.ScreenInfo[1].X;
|
||||
// WinX2 := Session.io.ScreenInfo[2].X;
|
||||
WinY1 := Session.io.ScreenInfo[1].Y;
|
||||
|
@ -405,6 +409,7 @@ Begin
|
|||
|
||||
WinSize := WinY2 - WinY1 + 1;
|
||||
RowSize := WinX2 - WinX1 + 1;
|
||||
// if rowsize > msgmaxcols then rowsize := maxmsgcols;
|
||||
ClearEOL := RowSize >= 79;
|
||||
|
||||
If Reset Then Begin
|
||||
|
@ -508,7 +513,7 @@ Var
|
|||
Begin
|
||||
NewTop := TopLine + (WinSize DIV 2) + 1;
|
||||
|
||||
While NewTop >= mysMaxMsgLines Do
|
||||
While NewTop >= MaxMsgLines Do
|
||||
Dec (NewTop, 2);
|
||||
|
||||
CurY := CurLine - NewTop + 1;
|
||||
|
@ -543,7 +548,7 @@ Begin
|
|||
Result := False;
|
||||
|
||||
If CurLine >= LastLine Then Exit;
|
||||
// If CurLine >= mysMaxMsgLines Then Exit;
|
||||
// If CurLine >= MaxMsgLines Then Exit;
|
||||
|
||||
Inc (CurLine);
|
||||
Inc (CurY);
|
||||
|
@ -585,7 +590,8 @@ Begin
|
|||
TBBSCore(Owner).io.AnsiClrEOL;
|
||||
End Else Begin
|
||||
TBBSCore(Owner).io.AnsiColor (7);
|
||||
TBBSCore(Owner).io.BufAddStr (strRep(' ', LineLen - RowSize));
|
||||
TBBSCore(Owner).io.BufAddStr (strRep(' ', RowSize - LineLen));
|
||||
|
||||
End;
|
||||
End;
|
||||
|
||||
|
@ -776,7 +782,7 @@ Procedure TEditorANSI.DoEnter;
|
|||
Var
|
||||
TempLine : RecAnsiBufferLine;
|
||||
Begin
|
||||
If InsertMode and IsBlankLine(ANSI.Data[mysMaxMsgLines], 80) Then Begin
|
||||
If InsertMode and IsBlankLine(ANSI.Data[MaxMsgLines], 80) Then Begin
|
||||
If CurX > CurLength Then Begin
|
||||
InsertLine (CurLine + 1);
|
||||
|
||||
|
@ -855,7 +861,7 @@ Begin
|
|||
If Finish = 0 Then Finish := Start;
|
||||
|
||||
For NumLines := Start to Finish Do Begin
|
||||
If LastLine = mysMaxMsgLines Then Break;
|
||||
If LastLine = MaxMsgLines Then Break;
|
||||
|
||||
If Not IsBlankLine(Ansi.Data[CurLine], 80) Then Begin
|
||||
Inc (CurLine);
|
||||
|
@ -872,7 +878,7 @@ Begin
|
|||
End;
|
||||
End;
|
||||
|
||||
If CurLine < mysMaxMsgLines Then Begin
|
||||
If CurLine < MaxMsgLines Then Begin
|
||||
Inc (CurLine);
|
||||
Inc (CurY);
|
||||
|
||||
|
@ -1071,7 +1077,7 @@ Begin
|
|||
End Else
|
||||
Case Ch of
|
||||
#27 : Break;
|
||||
#13 : If (LastLine < mysMaxMsgLines) and (Not NoMore) Then Begin
|
||||
#13 : If (LastLine < MaxMsgLines) and (Not NoMore) Then Begin
|
||||
|
||||
If QuoteTopPage + QuoteCurLine = QuoteLines Then NoMore := True;
|
||||
|
||||
|
@ -1107,7 +1113,7 @@ Begin
|
|||
|
||||
Session.io.OutFull('|16');
|
||||
|
||||
If CurLine < mysMaxMsgLines Then Begin
|
||||
If CurLine < MaxMsgLines Then Begin
|
||||
Inc (CurLine);
|
||||
Inc (CurY);
|
||||
|
||||
|
@ -1367,7 +1373,7 @@ Begin
|
|||
CutPasted := True;
|
||||
|
||||
For Count := CutTextPos DownTo 1 Do
|
||||
If LastLine < mysMaxMsgLines Then Begin
|
||||
If LastLine < MaxMsgLines Then Begin
|
||||
InsertLine(CurLine);
|
||||
|
||||
ANSI.Data[CurLine] := CutText[Count];
|
||||
|
|
|
@ -60,7 +60,10 @@ Var
|
|||
Begin
|
||||
Editor := TEditorANSI.Create(Pointer(Session), Template);
|
||||
|
||||
Editor.Forced := Forced;
|
||||
Editor.Subject := Subj;
|
||||
Editor.MaxMsgLines := MaxLines;
|
||||
Editor.MaxMsgCols := WrapPos;
|
||||
|
||||
For Count := 1 to Lines Do
|
||||
Editor.SetLineText (Count, Session.Msgs.MsgText[Count]);
|
||||
|
|
|
@ -2144,7 +2144,7 @@ Var
|
|||
FillSize : Byte;
|
||||
Attr : Byte;
|
||||
Begin
|
||||
// Attr := Screen.TextAttr;
|
||||
Attr := Screen.TextAttr;
|
||||
|
||||
Screen.TextAttr := 0; // kludge to force it to return full ansi codes
|
||||
|
||||
|
|
|
@ -1183,7 +1183,7 @@ Var
|
|||
Begin
|
||||
ReplyBase := MBase;
|
||||
|
||||
If Not Email Then Begin
|
||||
If Not Email And Session.User.Access(Config.AcsExtReply) Then Begin
|
||||
Session.io.PromptInfo[1] := MBase.Name;
|
||||
Session.io.PromptInfo[2] := MsgBase^.GetFrom;
|
||||
Session.io.PromptInfo[3] := MsgBase^.GetSubj;
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
; For rootpath, you need to include the directory where the MYSTIC binary
|
||||
; exists.
|
||||
|
||||
rootpath = \dev\code\mystic\
|
||||
username = g00r00
|
||||
password = asdf
|
||||
rootpath = c:\mystic\
|
||||
username = guest
|
||||
password = guest
|
||||
|
||||
|
|
|
@ -240,7 +240,7 @@ Type
|
|||
ColorTear : Byte;
|
||||
ColorOrigin : Byte;
|
||||
ColorKludge : Byte;
|
||||
AcsCrossPost : String[mysMaxAcsSize];
|
||||
AcsExtReply : String[mysMaxAcsSize];
|
||||
AcsFileAttach : String[mysMaxAcsSize];
|
||||
AcsNodeLookup : String[mysMaxAcsSize];
|
||||
FSEditor : Boolean;
|
||||
|
|
|
@ -8,6 +8,7 @@ design elements/issues.
|
|||
BUGS AND POSSIBLE ISSUES
|
||||
========================
|
||||
|
||||
! check forced messages in new fs editor might not be enforced.
|
||||
! Weird console slowdown with test.txt in Win7 use MVIEW to test
|
||||
! GE option 32 (change def protocol) might be broken
|
||||
! Node chat goes haywire at 1000 lines scrollback
|
||||
|
@ -26,6 +27,9 @@ BUGS AND POSSIBLE ISSUES
|
|||
FUTURE / IDEAS / WORK IN PROGRESS / NOTES
|
||||
=========================================
|
||||
|
||||
- redo voting booth externalize user storage and allow unlimited questions
|
||||
plus maybe categories. or at least up it to like 50 questions or
|
||||
something and also add in the "created" date to the voting question itself
|
||||
- Fix up new FS editor to use passed template and editor contraints.
|
||||
- Test with file description editor.
|
||||
- ACS to allow "selecable reply base"
|
||||
|
|
|
@ -3275,8 +3275,10 @@
|
|||
|
||||
+ FTP server now has the option to allow passive data transfers or not, and
|
||||
this has replaced the "Allow Anonymous" which does not exist at this time.
|
||||
Please review your configuration. If you or users have issues with passive
|
||||
turn it off. The default should set it to off now.
|
||||
PLEASE REVIEW YOUR CONFIGURATION. If you or users have issues with passive
|
||||
turn it off or review the network interface setting (see below).
|
||||
|
||||
The default should set it to off now.
|
||||
|
||||
+ When editing a posted message, Mystic now allows the option to set the
|
||||
echomail "sent" flag. Prompt #296 has been updated for this new option. A
|
||||
|
@ -3336,4 +3338,28 @@
|
|||
! Fixed a rare bug that could ocassionally cause some strange behavior
|
||||
during global new scans IF a message was moved.
|
||||
|
||||
! The new FS editor wasn't correctly handling the parameters passed to it
|
||||
via MPL and some other areas (like editing file descriptions). This has
|
||||
been fixed. It can do SO much more than it does now, but its going to
|
||||
require a revamp to the editor template files. More on that later.
|
||||
|
||||
+ The "Crosspost ACS" value in the configuration has been renamed as the
|
||||
"Extended Reply ACS". If this value is met for a user, Mystic will allow
|
||||
the user to select the message base which the reply will go to. ALPHAS:
|
||||
YOU MUST REVIEW THIS SETTING BECAUSE IT WILL BE S255 BY DEFAULT NOW.
|
||||
|
||||
Crossposting is already allowed because once you post a message you can
|
||||
forward it to other message bases if you are the "owner" of that message,
|
||||
which is basically the same outcome. This ACS was unused and useless so
|
||||
its now changed to a more appropriate "Extended Reply ACS".
|
||||
|
||||
+ Mystic has been ported to ARM Linux (aka Raspberry Pi). There is still
|
||||
one issue with MIS and FIDOPOLL so I am not releasing a complete install
|
||||
for A33, but once that is sorted out I will do an installable release.
|
||||
|
||||
In the meantime, you can certainly compile the code now and run it. It
|
||||
runs suprisingly well once you get the console setup correctly. However,
|
||||
until the issue with MIS is solved you will have to use inetxd or similar
|
||||
for your telnet server.
|
||||
|
||||
<ALPHA 33 RELEASED>
|
||||
|
|
Loading…
Reference in New Issue