Global message base editor

This commit is contained in:
mysticbbs 2012-11-18 12:04:59 -05:00
parent 8a6800bba7
commit f0a7e470e1
7 changed files with 230 additions and 49 deletions

View File

@ -4921,3 +4921,9 @@
+ Added a message base packer and renumber option to mUtil. This replaces + Added a message base packer and renumber option to mUtil. This replaces
MYSTPACK with the bonus that it also works with Squish (and appears to not MYSTPACK with the bonus that it also works with Squish (and appears to not
be as buggy as MYSTPACK was). be as buggy as MYSTPACK was).
+ Added Global Message Base editor into the Message base editor. Use the
TAB key when in the Message base list to tag areas that you'd like to set
global values for. Then use /G to open the editor. Set the options you'd
like to change to "Yes" and then set the value for that option. Press
CTRL-U when ready to update all tagged bases with the selected values.

View File

@ -10,7 +10,7 @@ Uses
bbs_Common; bbs_Common;
Const Const
FormMaxItems = 50; FormMaxItems = 60;
Const Const
YesNoStr : Array[False..True] of String[03] = ('No', 'Yes'); YesNoStr : Array[False..True] of String[03] = ('No', 'Yes');
@ -109,7 +109,7 @@ Type
Destructor Destroy; Override; Destructor Destroy; Override;
Procedure Clear; Procedure Clear;
Procedure AddNone (HK: Char; D: String; X, Y, DS: Byte; H: String); Procedure AddNone (HK: Char; D: String; X, Y, FX, FY, DS: Byte; H: String);
Procedure AddStr (HK: Char; D: String; X, Y, FX, FY, DS, FS, MX: Byte; P: Pointer; H: String); Procedure AddStr (HK: Char; D: String; X, Y, FX, FY, DS, FS, MX: Byte; P: Pointer; H: String);
Procedure AddPipe (HK: Char; D: String; X, Y, FX, FY, DS, FS, MX: Byte; P: Pointer; H: String); Procedure AddPipe (HK: Char; D: String; X, Y, FX, FY, DS, FS, MX: Byte; P: Pointer; H: String);
Procedure AddPath (HK: Char; D: String; X, Y, FX, FY, DS, FS, MX: Byte; P: Pointer; H: String); Procedure AddPath (HK: Char; D: String; X, Y, FX, FY, DS, FS, MX: Byte; P: Pointer; H: String);
@ -367,11 +367,11 @@ Begin
End; End;
End; End;
Procedure TAnsiMenuForm.AddNone (HK: Char; D: String; X, Y, DS: Byte; H: String); Procedure TAnsiMenuForm.AddNone (HK: Char; D: String; X, Y, FX, FY, DS: Byte; H: String);
Begin Begin
If Items = FormMaxItems Then Exit; If Items = FormMaxItems Then Exit;
AddBasic (HK, D, X, Y, 0, 0, DS, 0, 0, ItemNone, NIL, H); AddBasic (HK, D, X, Y, FX, FY, DS, 0, 0, ItemNone, NIL, H);
End; End;
Procedure TAnsiMenuForm.AddChar (HK: Char; D: String; X, Y, FX, FY, DS, MN, MX: Byte; P: Pointer; H: String); Procedure TAnsiMenuForm.AddChar (HK: Char; D: String; X, Y, FX, FY, DS, MN, MX: Byte; P: Pointer; H: String);
@ -629,6 +629,7 @@ Var
Ch : Char; Ch : Char;
NewPos : Word; NewPos : Word;
NewXPos : Word; NewXPos : Word;
NewYPos : Word;
Begin Begin
Session.io.AllowArrow := True; Session.io.AllowArrow := True;
@ -659,6 +660,36 @@ Begin
End; End;
Case Ch of Case Ch of
#72 : Begin
NewPos := 0;
NewYPos := 0;
For Count := 1 to Items Do
If (ItemData[Count]^.FieldX = ItemData[ItemPos]^.FieldX) and
(ItemData[Count]^.FieldY < ItemData[ItemPos]^.FieldY) and
(ItemData[Count]^.FieldY > NewYPos) Then Begin
NewPos := Count;
NewYPos := ItemData[Count]^.FieldY;
End;
If NewPos > 0 Then Begin
BarOFF(ItemPos);
ItemPos := NewPos;
BarON;
End Else
If ItemPos > 1 Then Begin
BarOFF(ItemPos);
Dec(ItemPos);
BarON;
End Else
If ExitOnFirst Then Begin
WasFirstExit := True;
Result := Ch;
Break;
End;
End;
(*
#72 : If ItemPos > 1 Then Begin #72 : If ItemPos > 1 Then Begin
BarOFF(ItemPos); BarOFF(ItemPos);
Dec(ItemPos); Dec(ItemPos);
@ -669,6 +700,7 @@ Begin
Result := Ch; Result := Ch;
Break; Break;
End; End;
*)
#75 : Begin #75 : Begin
NewPos := 0; NewPos := 0;
NewXPos := 0; NewXPos := 0;
@ -705,6 +737,33 @@ Begin
BarON; BarON;
End; End;
End; End;
#80 : Begin
NewPos := 0;
For Count := 1 to Items Do
If (ItemData[Count]^.FieldX = ItemData[ItemPos]^.FieldX) and
(ItemData[Count]^.FieldY > ItemData[ItemPos]^.FieldY) Then Begin
NewPos := Count;
Break;
End;
If NewPos > 0 Then Begin
BarOFF(ItemPos);
ItemPos := NewPos;
BarON;
End Else
If ItemPos < Items Then Begin
BarOFF(ItemPos);
Inc(ItemPos);
BarON;
End Else
If ExitOnLast Then Begin
WasLastExit := True;
Result := Ch;
Break;
End;
End;
(*
#80 : If ItemPos < Items Then Begin #80 : If ItemPos < Items Then Begin
BarOFF(ItemPos); BarOFF(ItemPos);
Inc(ItemPos); Inc(ItemPos);
@ -715,6 +774,7 @@ Begin
Result := Ch; Result := Ch;
Break; Break;
End; End;
*)
End; End;
End Else Begin End Else Begin
Case Ch of Case Ch of

View File

@ -45,7 +45,7 @@ Begin
Box.Open (30, StartY, 51, StartY + Cmds + 1); Box.Open (30, StartY, 51, StartY + Cmds + 1);
For Count := 1 to Cmds Do For Count := 1 to Cmds Do
Form.AddNone (CmdData[Count].Key, ' ' + CmdData[Count].Key + ' ' + CmdData[Count].Desc, 31, StartY + Count, 20, ''); Form.AddNone (CmdData[Count].Key, ' ' + CmdData[Count].Key + ' ' + CmdData[Count].Desc, 31, StartY + Count, 31, StartY + Count, 20, '');
Result := Form.Execute; Result := Form.Execute;

View File

@ -153,11 +153,11 @@ Begin
Case MenuPtr of Case MenuPtr of
0 : Begin 0 : Begin
Form.AddNone('C', ' Configuration ', 5, 2, 15, 'BBS configuration settings'); Form.AddNone('C', ' Configuration ', 5, 2, 5, 2, 15, 'BBS configuration settings');
Form.AddNone('S', ' Servers ', 26, 2, 9, 'Mystic Internet Server (MIS) settings'); Form.AddNone('S', ' Servers ', 26, 2, 26, 2, 9, 'Mystic Internet Server (MIS) settings');
Form.AddNone('E', ' Editors ', 41, 2, 9, 'BBS configuration editors'); Form.AddNone('E', ' Editors ', 41, 2, 41, 2, 9, 'BBS configuration editors');
Form.AddNone('I', ' Info ', 56, 2, 6, 'BBS Information and Monitors'); Form.AddNone('I', ' Info ', 56, 2, 56, 2, 6, 'BBS Information and Monitors');
Form.AddNone('X', ' Exit ' , 69, 2, 6, 'Exit configuration'); Form.AddNone('X', ' Exit ' , 69, 2, 69, 2, 6, 'Exit configuration');
Res := Form.Execute; Res := Form.Execute;
@ -180,17 +180,17 @@ Begin
BoxOpen (4, 4, 33, 16); BoxOpen (4, 4, 33, 16);
CoolBoxOpen (3, 'Configuration'); CoolBoxOpen (3, 'Configuration');
Form.AddNone ('S', ' S System Paths', 5, 5, 28, ''); Form.AddNone ('S', ' S System Paths', 5, 5, 5, 5, 28, '');
Form.AddNone ('G', ' G General Settings', 5, 6, 28, ''); Form.AddNone ('G', ' G General Settings', 5, 6, 5, 6, 28, '');
Form.AddNone ('L', ' L Login/Matrix Settings', 5, 7, 28, ''); Form.AddNone ('L', ' L Login/Matrix Settings', 5, 7, 5, 7, 28, '');
Form.AddNone ('1', ' 1 New User Settings 1', 5, 8, 28, ''); Form.AddNone ('1', ' 1 New User Settings 1', 5, 8, 5, 8, 28, '');
Form.AddNone ('2', ' 2 New User Settings 2', 5, 9, 28, ''); Form.AddNone ('2', ' 2 New User Settings 2', 5, 9, 5, 9, 28, '');
Form.AddNone ('3', ' 3 New User Optional Fields', 5, 10, 28, ''); Form.AddNone ('3', ' 3 New User Optional Fields', 5, 10, 5, 10, 28, '');
Form.AddNone ('F', ' F File Base Settings', 5, 11, 28, ''); Form.AddNone ('F', ' F File Base Settings', 5, 11, 5, 11, 28, '');
Form.AddNone ('M', ' M Message Base Settings', 5, 12, 28, ''); Form.AddNone ('M', ' M Message Base Settings', 5, 12, 5, 12, 28, '');
Form.AddNone ('E', ' E Echomail Networks', 5, 13, 28, ''); Form.AddNone ('E', ' E Echomail Networks', 5, 13, 5, 13, 28, '');
Form.AddNone ('O', ' O Offline Mail Settings', 5, 14, 28, ''); Form.AddNone ('O', ' O Offline Mail Settings', 5, 14, 5, 14, 28, '');
Form.AddNone ('C', ' C Console Settings', 5, 15, 28, ''); Form.AddNone ('C', ' C Console Settings', 5, 15, 5, 15, 28, '');
Res := Form.Execute; Res := Form.Execute;
MenuPos[1] := Form.ItemPos; MenuPos[1] := Form.ItemPos;
@ -224,12 +224,12 @@ Begin
BoxOpen (25, 4, 53, 11); BoxOpen (25, 4, 53, 11);
CoolBoxOpen (24, 'Servers'); CoolBoxOpen (24, 'Servers');
Form.AddNone ('I', ' I Internet Server Options', 26, 5, 27, ''); Form.AddNone ('I', ' I Internet Server Options', 26, 5, 26, 5, 27, '');
Form.AddNone ('1', ' 1 Telnet Server Options', 26, 6, 27, ''); Form.AddNone ('1', ' 1 Telnet Server Options', 26, 6, 26, 6, 27, '');
Form.AddNone ('2', ' 2 FTP Server Options', 26, 7, 27, ''); Form.AddNone ('2', ' 2 FTP Server Options', 26, 7, 26, 7, 27, '');
Form.AddNone ('3', ' 3 POP3 Server Options', 26, 8, 27, ''); Form.AddNone ('3', ' 3 POP3 Server Options', 26, 8, 26, 8, 27, '');
Form.AddNone ('4', ' 4 SMTP Server Options', 26, 9, 27, ''); Form.AddNone ('4', ' 4 SMTP Server Options', 26, 9, 26, 9, 27, '');
Form.AddNone ('5', ' 5 NNTP Server Options', 26, 10, 27, ''); Form.AddNone ('5', ' 5 NNTP Server Options', 26, 10, 26, 10, 27, '');
Res := Form.Execute; Res := Form.Execute;
MenuPos[2] := Form.ItemPos; MenuPos[2] := Form.ItemPos;
@ -258,19 +258,19 @@ Begin
BoxOpen (38, 4, 64, 18); BoxOpen (38, 4, 64, 18);
CoolBoxOpen (39, 'Editors'); CoolBoxOpen (39, 'Editors');
Form.AddNone ('U', ' U User Editor', 39, 5, 25, ''); Form.AddNone ('U', ' U User Editor', 39, 5, 39, 5, 25, '');
Form.AddNone ('M', ' M Menu Editor', 39, 6, 25, ''); Form.AddNone ('M', ' M Menu Editor', 39, 6, 39, 6, 25, '');
Form.AddNone ('T', ' T Theme/Prompt Editor', 39, 7, 25, ''); Form.AddNone ('T', ' T Theme/Prompt Editor', 39, 7, 39, 7, 25, '');
Form.AddNone ('B', ' B Message Base Editor', 39, 8, 25, ''); Form.AddNone ('B', ' B Message Base Editor', 39, 8, 39, 8, 25, '');
Form.AddNone ('G', ' G Message Group Editor', 39, 9, 25, ''); Form.AddNone ('G', ' G Message Group Editor', 39, 9, 39, 9, 25, '');
Form.AddNone ('F', ' F File Base Editor', 39, 10, 25, ''); Form.AddNone ('F', ' F File Base Editor', 39, 10, 39, 10, 25, '');
Form.AddNone ('R', ' R File Group Editor', 39, 11, 25, ''); Form.AddNone ('R', ' R File Group Editor', 39, 11, 39, 11, 25, '');
Form.AddNone ('S', ' S Security Level Editor', 39, 12, 25, ''); Form.AddNone ('S', ' S Security Level Editor', 39, 12, 39, 12, 25, '');
Form.AddNone ('A', ' A Archive Editor', 39, 13, 25, ''); Form.AddNone ('A', ' A Archive Editor', 39, 13, 39, 13, 25, '');
Form.AddNone ('P', ' P Protocol Editor', 39, 14, 25, ''); Form.AddNone ('P', ' P Protocol Editor', 39, 14, 39, 14, 25, '');
Form.AddNone ('E', ' E Event Editor', 39, 15, 25, ''); Form.AddNone ('E', ' E Event Editor', 39, 15, 39, 15, 25, '');
Form.AddNone ('V', ' V Voting Editor', 39, 16, 25, ''); Form.AddNone ('V', ' V Voting Editor', 39, 16, 39, 16, 25, '');
Form.AddNone ('L', ' L BBS List Editor', 39, 17, 25, ''); Form.AddNone ('L', ' L BBS List Editor', 39, 17, 39, 17, 25, '');
Res := Form.Execute; Res := Form.Execute;
MenuPos[3] := Form.ItemPos; MenuPos[3] := Form.ItemPos;
@ -306,7 +306,7 @@ Begin
BoxOpen (54, 4, 64, 6); BoxOpen (54, 4, 64, 6);
CoolBoxOpen (54, 'Info'); CoolBoxOpen (54, 'Info');
Form.AddNone ('A', ' A About', 55, 5, 9, ''); Form.AddNone ('A', ' A About', 55, 5, 55, 5, 9, '');
Res := Form.Execute; Res := Form.Execute;
MenuPos[4] := Form.ItemPos; MenuPos[4] := Form.ItemPos;

View File

@ -275,7 +275,7 @@ Begin
VerticalLine (24, 11, 14); VerticalLine (24, 11, 14);
Form.AddNone ('C', ' Command ', 15, 11, 9, Topic + 'Menu command function'); Form.AddNone ('C', ' Command ', 15, 11, 26, 11, 9, Topic + 'Menu command function');
Form.AddStr ('D', ' Data ' , 18, 12, 26, 12, 6, 40, 160, @Menu.Item[Num]^.CmdData[CmdNum]^.Data, Topic + 'Menu command optional data'); Form.AddStr ('D', ' Data ' , 18, 12, 26, 12, 6, 40, 160, @Menu.Item[Num]^.CmdData[CmdNum]^.Data, Topic + 'Menu command optional data');
Form.AddStr ('A', ' Access ' , 16, 13, 26, 13, 8, 30, 30, @Menu.Item[Num]^.CmdData[CmdNum]^.Access, Topic + 'Access level to run this command'); Form.AddStr ('A', ' Access ' , 16, 13, 26, 13, 8, 30, 30, @Menu.Item[Num]^.CmdData[CmdNum]^.Access, Topic + 'Access level to run this command');
Form.AddTog ('G', ' Execute ', 15, 14, 26, 14, 9, 6, 0, 10, 'Selected Up Down Left Right Tab Escape PgUp PgDn Home End', @Menu.Item[Num]^.CmdData[CmdNum]^.JumpID, Topic + '(Grid) Execute command on what Grid event?'); Form.AddTog ('G', ' Execute ', 15, 14, 26, 14, 9, 6, 0, 10, 'Selected Up Down Left Right Tab Escape PgUp PgDn Home End', @Menu.Item[Num]^.CmdData[CmdNum]^.JumpID, Topic + '(Grid) Execute command on what Grid event?');

View File

@ -11,6 +11,7 @@ Implementation
Uses Uses
m_Strings, m_Strings,
m_FileIO, m_FileIO,
m_Bits,
bbs_Ansi_MenuBox, bbs_Ansi_MenuBox,
bbs_Ansi_MenuForm, bbs_Ansi_MenuForm,
bbs_Cfg_Common, bbs_Cfg_Common,
@ -43,7 +44,7 @@ Begin
Form.AddStr ('R', ' Read ACS' , 7, 12, 19, 12, 10, 30, 30, @MBase.ReadACS, Topic + 'Access required to read messages'); Form.AddStr ('R', ' Read ACS' , 7, 12, 19, 12, 10, 30, 30, @MBase.ReadACS, Topic + 'Access required to read messages');
Form.AddStr ('P', ' Post ACS' , 7, 13, 19, 13, 10, 30, 30, @MBase.PostACS, Topic + 'Access required to post messages'); Form.AddStr ('P', ' Post ACS' , 7, 13, 19, 13, 10, 30, 30, @MBase.PostACS, Topic + 'Access required to post messages');
Form.AddStr ('Y', ' Sysop ACS' , 6, 14, 19, 14, 11, 30, 30, @MBase.SysopACS, Topic + 'Access required for Sysop access'); Form.AddStr ('Y', ' Sysop ACS' , 6, 14, 19, 14, 11, 30, 30, @MBase.SysopACS, Topic + 'Access required for Sysop access');
Form.AddNone ('D', ' Net Address' , 4, 15, 13, Topic + 'NetMail Address'); Form.AddNone ('D', ' Net Address' , 4, 15, 19, 15, 13, Topic + 'NetMail Address');
Form.AddStr ('I', ' Origin' , 9, 16, 19, 16, 8, 30, 50, @MBase.Origin, Topic + 'Message base origin line'); Form.AddStr ('I', ' Origin' , 9, 16, 19, 16, 8, 30, 50, @MBase.Origin, Topic + 'Message base origin line');
Form.AddStr ('S', ' Sponsor' , 8, 17, 19, 17, 9, 30, 30, @MBase.Sponsor, Topic + 'User name of base''s sponser'); Form.AddStr ('S', ' Sponsor' , 8, 17, 19, 17, 9, 30, 30, @MBase.Sponsor, Topic + 'User name of base''s sponser');
Form.AddStr ('H', ' Header' , 9, 18, 19, 18, 8, 20, 20, @MBase.Header, Topic + 'Display file name of msg header'); Form.AddStr ('H', ' Header' , 9, 18, 19, 18, 8, 20, 20, @MBase.Header, Topic + 'Display file name of msg header');
@ -93,8 +94,116 @@ Var
MBaseFile : TBufFile; MBaseFile : TBufFile;
MBase : RecMessageBase; MBase : RecMessageBase;
Procedure GlobalEdit; Procedure GlobalEdit (Global: RecMessageBase);
Const
ChangeStr = 'Change this value for all tagged bases?';
Var
GBox : TAnsiMenuBox;
Form : TAnsiMenuForm;
Active : Array[1..26] of Boolean;
Count : LongInt;
Topic : String;
Begin Begin
FillChar (Active, SizeOf(Active), 0);
Topic := '|03(|09Global MsgBase Edit|03) |01-|09> |15';
GBox := TAnsiMenuBox.Create;
Form := TAnsiMenuForm.Create;
GBox.Header := ' CTRL-U/Update ESC/Abort ';
GBox.Open (6, 5, 75, 21);
VerticalLine (26, 7, 19);
VerticalLine (64, 7, 19);
For Count := 1 to 13 Do
Form.AddBol ('!', '> ', 8, 6 + Count, 10, 6 + Count, 2, 3, @Active[Count], Topic + ChangeStr);
Form.AddPath ('!', ' Path' , 20, 7, 28, 7, 6, 16, 80, @Global.Path, Topic + 'Message base storage path');
Form.AddStr ('L', ' List ACS' , 16, 8, 28, 8, 10, 16, 30, @Global.ListACS, Topic + 'Access required to see in base list');
Form.AddStr ('R', ' Read ACS' , 16, 9, 28, 9, 10, 16, 30, @Global.ReadACS, Topic + 'Access required to read messages');
Form.AddStr ('P', ' Post ACS' , 16, 10, 28, 10, 10, 16, 30, @Global.PostACS, Topic + 'Access required to post messages');
Form.AddStr ('Y', ' Sysop ACS' , 15, 11, 28, 11, 11, 16, 30, @Global.SysopACS, Topic + 'Access required for Sysop access');
Form.AddNone ('D', ' Net Address' , 13, 12, 28, 12, 13, Topic + 'NetMail Address');
Form.AddStr ('I', ' Origin' , 18, 13, 28, 13, 8, 16, 50, @Global.Origin, Topic + 'Message base origin line');
Form.AddStr ('S', ' Sponsor' , 17, 14, 28, 14, 9, 16, 30, @Global.Sponsor, Topic + 'User name of base''s sponser');
Form.AddStr ('H', ' Header' , 18, 15, 28, 15, 8, 16, 20, @Global.Header, Topic + 'Display file name of msg header');
Form.AddStr ('T', ' R Template' , 14, 16, 28, 16, 12, 16, 20, @Global.RTemplate, Topic + 'Template for full screen reader');
Form.AddStr ('M', ' L Template' , 14, 17, 28, 17, 12, 16, 20, @Global.ITemplate, Topic + 'Template for lightbar message list');
Form.AddTog ('A', ' Base Type' , 15, 18, 28, 18, 11, 9, 0, 3, 'Local EchoMail Newsgroup Netmail', @Global.NetType, Topic + 'Message base type');
Form.AddTog ('B', ' Base Format' , 13, 19, 28, 19, 13, 6, 0, 1, 'JAM Squish', @Global.BaseType, Topic + 'Message base storage format');
For Count := 1 to 13 Do
Form.AddBol ('!', '> ', 45, 6 + Count, 47, 6 + Count, 2, 3, @Active[Count + 13], Topic + ChangeStr);
Form.AddAttr ('Q', ' Quote Color' , 51, 7, 66, 7, 13, @Global.ColQuote, Topic + 'Color for quoted text');
Form.AddAttr ('X', ' Text Color' , 52, 8, 66, 8, 12, @Global.ColText, Topic + 'Color for message text');
Form.AddAttr ('E', ' Tear Color' , 52, 9, 66, 9, 12, @Global.ColTear, Topic + 'Color for tear line');
Form.AddAttr ('G', ' Origin Color', 50, 10, 66, 10, 14, @Global.ColOrigin, Topic + 'Color for origin line');
Form.AddAttr ('K', ' Kludge Color', 50, 11, 66, 11, 14, @Global.ColKludge, Topic + 'Color for kludge line');
Form.AddWord ('M', ' Max Msgs' , 54, 12, 66, 12, 10, 5, 0, 65535, @Global.MaxMsgs, Topic + 'Maximum number of message in base');
Form.AddWord ('1', ' Max Msg Age' , 51, 13, 66, 13, 13, 5, 0, 65535, @Global.MaxAge, Topic + 'Maximum age (days) to keep messages');
Form.AddTog ('2', ' New Scan' , 54, 14, 66, 14, 10, 6, 0, 2, 'No Yes Forced', @Global.DefNScan, Topic + 'Newscan default for users');
Form.AddTog ('3', ' QWK Scan' , 54, 15, 66, 15, 10, 6, 0, 2, 'No Yes Forced', @Global.DefQScan, Topic + 'QWKscan default for users');
Form.AddBits ('4', ' Real Names' , 52, 16, 66, 16, 12, MBRealNames, @Global.Flags, Topic + 'Use real names in this base?');
Form.AddBits ('5', ' Autosigs' , 54, 17, 66, 17, 10, MBAutoSigs, @Global.Flags, Topic + 'Allow auto signatures in this base?');
Form.AddBits ('6', ' Kill Kludge' , 51, 18, 66, 18, 13, MBKillKludge, @Global.Flags, Topic + 'Filter out kludge lines');
Form.AddBits ('V', ' Private' , 55, 19, 66, 19, 9, MBPrivate, @Global.Flags, Topic + 'Is this a private base?');
Form.LoExitChars := #21#27;
Repeat
Case Form.Execute of
'D' : Global.NetAddr := Configuration_EchoMailAddress(False);
#21 : If ShowMsgBox(1, 'Update with these settings?') Then Begin
For Count := 1 to List.ListMax Do
If List.List[Count]^.Tagged = 1 Then Begin
MBaseFile.Seek (Count - 1);
MBaseFile.Read (MBase);
If Active[01] Then MBase.Path := Global.Path;
If Active[02] Then MBase.ListACS := Global.ListACS;
If Active[03] Then MBase.ReadACS := Global.ReadACS;
If Active[04] Then MBase.PostACS := Global.PostACS;
If Active[05] Then MBase.SysopACS := Global.SysopACS;
If Active[06] Then MBase.NetAddr := Global.NetAddr;
If Active[07] Then MBase.Origin := Global.Origin;
If Active[08] Then MBase.Sponsor := Global.Sponsor;
If Active[09] Then MBase.Header := Global.Header;
If Active[10] Then MBase.RTemplate := Global.RTemplate;
If Active[11] Then MBase.ITemplate := Global.ITemplate;
If Active[12] Then MBase.NetType := Global.NetType;
If Active[13] Then MBase.BaseType := Global.BaseType;
If Active[14] Then MBase.ColQuote := Global.ColQuote;
If Active[15] Then MBase.ColText := Global.ColText;
If Active[16] Then MBase.ColTear := Global.ColTear;
If Active[17] Then MBase.ColOrigin := Global.ColOrigin;
If Active[18] Then MBase.ColKludge := Global.ColKludge;
If Active[19] Then MBase.MaxMsgs := Global.MaxMsgs;
If Active[20] Then MBase.MaxAge := Global.MaxAge;
If Active[21] Then MBase.DefNScan := Global.DefNScan;
If Active[22] Then MBase.DefQScan := Global.DefQScan;
If Active[23] Then BitSet(MBRealNames, SizeOf(MBase.Flags), MBase.Flags, (Global.Flags AND MBRealNames <> 0));
If Active[24] Then BitSet(MBAutoSigs, SizeOf(MBase.Flags), MBase.Flags, (Global.Flags AND MBAutoSigs <> 0));
If Active[25] Then BitSet(MBKillKludge, SizeOf(MBase.Flags), MBase.Flags, (Global.Flags AND MBKillKludge <> 0));
If Active[26] Then BitSet(MBPrivate, SizeOf(MBase.Flags), MBase.Flags, (Global.Flags AND MBPrivate <> 0));
MBaseFile.Seek (Count - 1);
MBaseFile.Write (MBase);
End;
Break;
End;
#27 : Break;
End;
Until False;
Form.Free;
GBox.Close;
GBox.Free;
End; End;
Procedure MakeList; Procedure MakeList;
@ -240,8 +349,14 @@ Begin
End; End;
'G' : If List.Marked = 0 Then 'G' : If List.Marked = 0 Then
ShowMsgBox(0, 'You must tag areas for global edit') ShowMsgBox(0, 'You must tag areas for global edit')
Else Else Begin
GlobalEdit; If List.Picked > 1 Then Begin
MBaseFile.Seek (List.Picked - 1);
MBaseFile.Read (MBase);
End;
GlobalEdit (MBase);
End;
End; End;
#13 : If List.Picked < List.ListMax Then Begin #13 : If List.Picked < List.ListMax Then Begin
MBaseFile.Seek (List.Picked - 1); MBaseFile.Seek (List.Picked - 1);

View File

@ -670,9 +670,9 @@ Begin
Form.AddBits ('C', ' Allow ASCII' , 10, 14, 25, 14, 13, ThmAllowASCII, @Theme.Flags, Topic + 'Allow ASCII users to use this theme?'); Form.AddBits ('C', ' Allow ASCII' , 10, 14, 25, 14, 13, ThmAllowASCII, @Theme.Flags, Topic + 'Allow ASCII users to use this theme?');
Form.AddBits ('N', ' Allow ANSI' , 11, 15, 25, 15, 12, ThmAllowANSI, @Theme.Flags, Topic + 'Allow ANSI users to use this theme?'); Form.AddBits ('N', ' Allow ANSI' , 11, 15, 25, 15, 12, ThmAllowANSI, @Theme.Flags, Topic + 'Allow ANSI users to use this theme?');
Form.AddNone ('1', ' 1: Prompts' , 57, 7, 17, Topic + 'Edit prompts for this theme'); Form.AddNone ('1', ' 1: Prompts' , 57, 7, 57, 7, 17, Topic + 'Edit prompts for this theme');
Form.AddNone ('2', ' 2: Options' , 57, 8, 17, Topic + 'Edit general options for this theme'); Form.AddNone ('2', ' 2: Options' , 57, 8, 57, 8, 17, Topic + 'Edit general options for this theme');
Form.AddNone ('3', ' 3: Percent Bars', 57, 9, 17, Topic + 'Edit percentage bars used in this theme'); Form.AddNone ('3', ' 3: Percent Bars', 57, 9, 57, 9, 17, Topic + 'Edit percentage bars used in this theme');
Repeat Repeat
Case Form.Execute of Case Form.Execute of