A33 final

This commit is contained in:
mysticbbs 2013-05-09 04:38:41 -04:00
parent 4ef405c6d6
commit 3d5bef88b1
9 changed files with 90 additions and 51 deletions

View File

@ -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');

View File

@ -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];

View File

@ -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]);

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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"

View File

@ -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>