3879 lines
162 KiB
Plaintext
3879 lines
162 KiB
Plaintext
|
||
! Mystic was not exiting with errorlevel 255 when quitting from the WFC
|
||
screen as it did in previous versions.
|
||
|
||
+ Added an "Active" and "OSType" to the archive configuration. You will
|
||
want to verify that these are set correctly for your OS when upgrading.
|
||
|
||
+ Added an "Active" and "OSType" to protocol configuration. You will want
|
||
to verify that these are set correctly for your OS when upgrading.
|
||
|
||
+ Added Protocol configuration to MCFG
|
||
|
||
+ Added Archive configuration to MCFG
|
||
|
||
! The internal editors for message and file groups were not correctly
|
||
displaying the group name during the group listing.
|
||
|
||
+ Pressing enter (entering nothing) during toggle of file and message
|
||
base newscan settings will now exit instead of redisplaying the prompt
|
||
again.
|
||
|
||
+ Did some minor optimization of the ANSI codes which Mystic generated
|
||
when using pipe codes.
|
||
|
||
! Mystic wasn't correctly determining the free space on the disk when
|
||
attempting to copy from a slow media device. This was only happening
|
||
on Linux/OSX.
|
||
|
||
! The right arrow key was not working as PAGEDOWN in the fs editor quote
|
||
window.
|
||
|
||
+ The HOME and END keys now work in the full screen editor quote window.
|
||
|
||
+ File and message groups can now be flagged as "Hidden" which means they
|
||
will not show in the group listings.
|
||
|
||
! Fixed a bug with the HOME and END keys in the lightbar message reader
|
||
which could cause a lock up.
|
||
|
||
! Fixed a bug when drawing percentage bars in the various places where it
|
||
was possible for a divide by zero crash.
|
||
|
||
! When using the -X command line, Mystic was going to the local WFC screen
|
||
if local mode was specified. The -X command line now forces an immediate
|
||
local login as it was intended. This only happened in Windows.
|
||
|
||
+ Fixed RAR internal archive viewing. It broke when we switched compilers.
|
||
Apparently it is still broken if there are comments embedded in the .RAR
|
||
file. Hopefully I will get this cleared up soon too.
|
||
|
||
+ MPL has been completely overhauled and now follows very closely to real
|
||
Pascal syntax. This will require lots of syntax changes, but the good
|
||
news is that the syntax will likely not change again, since we are
|
||
standardizing it. Most changes are in the following areas:
|
||
|
||
- Pend, Wend, Fend all must be changed to END
|
||
- If statements now require a THEN and also a BEGIN/END if it has more
|
||
than one statement. EndIf is now just an End (if required), and
|
||
ElseIf is now two separate statements (Else If)
|
||
|
||
OLD:
|
||
If Ch = 'A'
|
||
ElseIf Ch = 'B'
|
||
EndIf
|
||
|
||
NEW:
|
||
If Ch = 'A' Then
|
||
WriteLn('A');
|
||
Else
|
||
If Ch = 'B' Then
|
||
WriteLn('B');
|
||
Else
|
||
If Ch = 'C' Then Begin
|
||
WriteLn('C');
|
||
WriteLn('Needs a begin and end because there are two statements');
|
||
End;
|
||
|
||
- Variable declartions follow Pascal rules, so:
|
||
|
||
OLD: Var ch char array(1..20)
|
||
NEW: Var ch : Array[1..20] of Char;
|
||
NEW: Var B1, B2, B3 : Byte;
|
||
|
||
- Array elements are now specified with [ and ] instead of ( and )
|
||
|
||
- For and While statements now require "Do" and if there are more than
|
||
one statement in the looped section, it must have open and close
|
||
blocks (ie Begin End). Fend and Wend are changed to "End" now or
|
||
removed depending on if there is more than one statement.
|
||
|
||
OLD:
|
||
For A := 1 to 10
|
||
WriteLn('Hello');
|
||
Fend
|
||
|
||
NEW:
|
||
For A := 1 to 10 Do
|
||
WriteLn('Hello');
|
||
|
||
For A := 1 to 10 Do Begin
|
||
WriteLn('This code');
|
||
WriteLn('Has more than one statement so it needs Begin/End');
|
||
End;
|
||
|
||
- "#" style comments are not supported. Instead most standard language
|
||
comments are supported... //, /* */ and (* *) comments are used.
|
||
|
||
- Include files have been changed to {$include Myfile.mps} since # is
|
||
not a part of MPL comment/directive system anymore.
|
||
|
||
+ New MIDE replaces old MIDE. This version does not yet have syntax
|
||
highlighting, but has a nicer pulldown menu interface. Syntax highlighting
|
||
may or may not be implemented in the future. This updated MPL has multiple
|
||
syntax and block comments which makes it a much larger effort to support.
|
||
|
||
The good news is, MPL (at least the Pascal syntax) is consistant with real
|
||
Pascal compilers, so those editors will properly syntax highlight now!
|
||
|
||
+ New MPLC replaces old MPLC.
|
||
|
||
+ The "OneKey" function now has a boolean arguement which if true causes
|
||
Mystic to echo the character to the user. So:
|
||
|
||
Ch := OneKey('ABCDEFG', True);
|
||
|
||
Would be the same as the old:
|
||
|
||
Ch := OneKey('ABCDEFG');
|
||
|
||
Supplying FALSE it will not echo, which increases its usability.
|
||
|
||
- Removed fOpen, fReadRec and fWriteRec functions.
|
||
|
||
+ Added new File type variable along with fAssign/fReset/fReWrite
|
||
functions which work closer to how Pascal would work. It also makes
|
||
managing files all together much easier and includes the ability to
|
||
specify a "filemode" which in the example below 66 means "Read/Write"
|
||
and "Deny None" access to a file. This would be the most commonly
|
||
used filemode.
|
||
|
||
OLD:
|
||
fOpen (1, Text, Reset, 'myfile.txt');
|
||
NEW:
|
||
Var MyFile : File;
|
||
|
||
fAssign (MyFile, 'myfile.txt' 66);
|
||
fReset (MyFile);
|
||
|
||
FReadRec and FWriteRec can be replaced with FRead/FWrite. There are a few
|
||
considerations. Previously they were designed to work with Pascal records
|
||
now that limitation is removed, but a slight change is needed. Strings
|
||
need to have one more added to their size when you FREAD/FWRITE, and other
|
||
variable types used to not require a size, which they do now.
|
||
|
||
OLD READING OF BBSLIST RECORD:
|
||
|
||
fReadRec (1, bbs_cType)
|
||
fReadRec (1, bbs_Phone, 15)
|
||
fReadRec (1, bbs_Telnet, 40)
|
||
fReadRec (1, bbs_Name, 30)
|
||
fReadRec (1, bbs_Location, 25)
|
||
fReadRec (1, bbs_Sysop, 30)
|
||
fReadRec (1, bbs_Baud, 6)
|
||
fReadRec (1, bbs_Software, 10)
|
||
fReadRec (1, bbs_Deleted)
|
||
fReadRec (1, bbs_AddedBy, 30)
|
||
fReadRec (1, bbs_Verified)
|
||
fReadRec (1, bbs_Extra1)
|
||
fReadRec (1, bbs_Extra2)
|
||
|
||
NEW READING OF BBSLIST RECORD:
|
||
|
||
fRead (ListFile, bbs_cType, 1)
|
||
fRead (ListFile, bbs_Phone, 16)
|
||
fRead (ListFile, bbs_Telnet, 41)
|
||
fRead (ListFile, bbs_Name, 31)
|
||
fRead (ListFile, bbs_Location, 26)
|
||
fRead (ListFile, bbs_Sysop, 31)
|
||
fRead (ListFile, bbs_Baud, 7)
|
||
fRead (ListFile, bbs_Software, 11)
|
||
fRead (ListFile, bbs_Deleted, 1)
|
||
fRead (ListFile, bbs_AddedBy, 31)
|
||
fRead (ListFile, bbs_Verified, 4)
|
||
fRead (ListFile, bbs_Extra1, 4)
|
||
fRead (ListFile, bbs_Extra2, 2)
|
||
|
||
Note the strings have one added to their size, and other variable types
|
||
now also include their size:
|
||
|
||
Byte, Char = 1 byte
|
||
Integer, Word = 2 bytes
|
||
LongInt = 4 bytes
|
||
Strings = String size + 1
|
||
|
||
+ MPL now does not trap File IO errors and stop execution of the MPL
|
||
program. Instead, the result of the last call is now stored in the
|
||
"IoResult" variable. Ex:
|
||
|
||
fAssign (MyFile, 'myfile.txt' 66);
|
||
fReset (MyFile);
|
||
|
||
If IoResult <> 0 Then
|
||
WriteLn('Unable to open file!');
|
||
|
||
+ MPL now supports negative numbers.
|
||
|
||
+ MPL now supports the "Real" variable type which allows floating point
|
||
calculations.
|
||
|
||
+ MPL now supports proper order of operations (PEMDAS) during mathmatical
|
||
equations. It also now supports the ability to use paranthesis to
|
||
override order.
|
||
|
||
+ The "MOD" operator has been changed to a % character. So:
|
||
|
||
OLD: A := 10 MOD 8
|
||
NEW: A := 10 % 8;
|
||
|
||
+ MPL now supports a POWER operator in mathmatical equations:
|
||
|
||
A := 2 ^ 3;
|
||
|
||
+ Support for line comments that begin with a # character has been removed
|
||
and replaced with a more standard // comment.
|
||
|
||
OLD: # My comment here
|
||
NEW: // My comment here
|
||
|
||
+ MPL now supports block comments (* and *) similar to Pascal:
|
||
|
||
(*
|
||
This is a comment
|
||
So is this
|
||
*)
|
||
|
||
+ Strings can now be defined with an actual string length. Supplying no
|
||
string length defaults to the maximum of 255 characters.
|
||
|
||
Ex: Var MyString : String[10];
|
||
|
||
- Removed the GetCFG MPL command. The configuration variables now point
|
||
directory to the configuration record stored in Mystic's memory, so this
|
||
function is no longer needed - the variables are already populated.
|
||
|
||
+ MPL now allows variables to be declared in local blocks (ie anywhere) and
|
||
can default them to a value. IE:
|
||
|
||
Var Ch : Char = 'A';
|
||
|
||
+ MPL now allows functions and procedures to defined inside of other
|
||
functions and procedures.
|
||
|
||
+ MPL now allows procedures to be called recursively.
|
||
|
||
+ MPL now supports GOTO labels
|
||
|
||
+ Added new MPL variables for groups: FGROUPHIDDEN MGROUPHIDDEN
|
||
|
||
+ Added new DIRATTR attribute used with FindFirst/FindNext/FindClose in
|
||
MPL.
|
||
|
||
+ Increased the maximum number of MPL variables from 500 to 2500
|
||
|
||
+ MPL now allows multi-dimensional arrays up to 3 levels deep:
|
||
|
||
Var MyArray : Array[1..10, 1..10, 1..10] of String[30];
|
||
|
||
+ MPL now allows a second type of Syntax which is closer to C but modeled
|
||
after Iniquity's programming language. This can be changed on the fly
|
||
in your code using a compiler directive. See MPLTEST.MPS now included
|
||
with the Mystic distribution for an example.
|
||
|
||
+ MPL now allows the memory location of a variable to be passed to
|
||
functions and procedures using the VAR keyword. It works the same
|
||
syntax as Pascal:
|
||
|
||
Procedure myProc (Var Str: String)
|
||
|
||
+ MPL now handles variable memory differently, as well as does more file
|
||
seeks vs sequential reads to move around the compiled MPL program. In
|
||
some test cases this has increased execution speed by up to 400%, but
|
||
this gain is not consistant. I hope in general it will be an increase.
|
||
|
||
+ MPL now supports CASE statements. This has actually been expanded on
|
||
from the Pascal standard but still follows the same syntax. It has been
|
||
expanded to allow CASE of more variable types, such as strings. See
|
||
the included MPLTEST.MPS for examples.
|
||
|
||
+ Addressing an array element now uses the [ and ] characters instead of
|
||
the ( and ) characters similar to real Pascal.
|
||
|
||
+ MPL now allows characters to be referenced by their ascii number.
|
||
|
||
Ex: If Ch = #32 Then WriteLn('Ch was a space key!');
|
||
|
||
+ MPL strings can now be accessed (in most places) as if they are an array
|
||
of characters, as Pascal allows:
|
||
|
||
Var S : String;
|
||
|
||
S := 'Hello';
|
||
|
||
If S[1] = 'H' Then WriteLn('First letter is H!');
|
||
|
||
+ MPL programs no longer require a "USES DIR" when doing directory stuff.
|
||
|
||
+ Renamed MPL function "fExist" to "FileExist"
|
||
|
||
+ Renamed MPL function fErase to FileErase. The reason I am renaming them
|
||
is because the "f" prefix implies a File IO function, and these are not
|
||
functions that deal with a "File" type variable.
|
||
|
||
+ Renamed MPL user variables USERLAST and USERFIRST to UserLastOn and
|
||
UserFirstOn. LAST and FIRST didnt really make sense.
|
||
|
||
+ MPL now allows functions to be called without a variable being assigned.
|
||
Ex: Function ReadKey normally returns a character, but it can be used
|
||
without one now simply but calling "ReadKey" by itself. This opens up
|
||
a lot of flexibility in the way MPL functions and procedures can work.
|
||
|
||
Ex:
|
||
Write ('Press a key: ');
|
||
ReadKey;
|
||
|
||
- Removed the "IsNoFile" function in MPL due to above change and because
|
||
of below change:
|
||
|
||
+ The DispFile function now optionally returns TRUE or FALSE depending on
|
||
if the file actually displayed. Keep in mind "IsNoFile" was TRUE if the
|
||
file was missing, while this is TRUE if it displayed a file.
|
||
|
||
+ Renamed the file extension of compiled MPL programs to .MPX. This was
|
||
because many operating systems think a MPE file is a video file, and also
|
||
to signify the giant changes in MPL with this version. You can delete
|
||
*.MPE from your scripts directory.
|
||
|
||
+ Renamed the "CLS" MPL function to ClrScr to match Pascal's CRT function.
|
||
|
||
+ Renamed the "fCopy" MPL function to "FileCopy" since the "f" implies a
|
||
file-type variable function.
|
||
|
||
+ Changed "FB" variables to "FBASE". These are the variables that go along
|
||
with USES FBASE. The prefix should match, as it does with the MBASE
|
||
variables. So Ex: FBNAME is now FBASENAME
|
||
|
||
+ Updated BBSLIST.MPS for 1.10 and fixed some potential issues which would
|
||
happen under Unix platforms.
|
||
|
||
+ The FindFirst/FindNext functions due to compiler/OS changes do not quite
|
||
work the same as they once did in DOS. You should assume that you will
|
||
get directories and files and use "DirExists" to determine the difference
|
||
until a better system is in place. Optionally you can check the DIRATTR
|
||
bit set to determine a directory vs a file.
|
||
|
||
+ MPL now supports /* and */ style block comments!
|
||
|
||
/*
|
||
This is a comment block!
|
||
*/
|
||
|
||
+ New ACS code OM returns true if the user has Sysop access to the current
|
||
message base OR is the owner of the current message (if reading messages).
|
||
|
||
! When moving a message, Mystic could crash after listing the message bases.
|
||
If you did not list the message bases, it would work fine.
|
||
|
||
! Mystic was not properly redrawing the screen after moving a message in the
|
||
lightbar message reader.
|
||
|
||
+ New MCI code MT returns the total messages in the current message base.
|
||
|
||
+ New MPL variable AllowArrow (boolean) is used to turn on arrow key
|
||
processing in the readkey function. This is also used outside of MPL so
|
||
change it with caution.
|
||
|
||
+ New MPL variable IgnoreGroups (boolean) is used to cause all group ACS
|
||
evaluations to return true even if they are not in the group. This is
|
||
also used outside of MPL so change it with caution.
|
||
|
||
+ New MPL variable pausepos (byte) gives access to Mystic's internal line
|
||
counter used for screen pauses.
|
||
|
||
+ New MPL variable allowmci (boolean) toggles on/off MCI code parsing. This
|
||
is used outside of MPL so adjust this with caution.
|
||
|
||
+ New MPL function WordCount returns the number of words in a string using
|
||
the final parameter to define the character that determines what separates
|
||
words. Ex:
|
||
|
||
Str := 'Hello this is a test';
|
||
|
||
WriteLn ('Str has ' + Int2Str(WordCount(Str, ' ')) + ' words in it.');
|
||
|
||
+ New MPL function WordGet returns the actual word at a specific word count.
|
||
Ex:
|
||
|
||
Str := 'Hello this is a test';
|
||
|
||
WriteLn('The second word was: ' + WordGet(2, Str, ' '));
|
||
|
||
+ New MPL function WordPos returns the character position in the string where
|
||
s specific word is located. Ex:
|
||
|
||
Str := 'Hello this is a test';
|
||
|
||
WriteLn ('Second word is at: ' + Int2Str(WordPos(2, Str, ' ')));
|
||
|
||
+ New MPL function DayOfWeek returns a number between 0-6 depending on the
|
||
day of the week:
|
||
|
||
0 = Sun, 1 = Mon, 2 = Tue, 3 = Wed, 4 = Thu, 5 = Fri, 6 = Sat
|
||
|
||
+ New MPL function DateJulian returns the longint Julian value of the current
|
||
date.
|
||
|
||
+ New MPL function DaysAgo function takes a Julian date value and returns
|
||
the number of days between the current date and the passed date.
|
||
|
||
+ New MPL function DateStrJulian works just like DateStr but accepts a
|
||
Julian date.
|
||
|
||
+ DateStr no longer accepts 0 as the users current date format. Pass the
|
||
user's actual date format to it if you want that. For example:
|
||
|
||
Str := DateStr(MyDateTime, UserDateType);
|
||
|
||
The other parameters (ie 1 = MM/DD/YY) work as they used to.
|
||
|
||
+ New MPL variable ProgName returns the path and filename of the current
|
||
MPL program.
|
||
|
||
+ New MPL variable ProgParams returns any of the parameters passed to the
|
||
MPL program as a single string.
|
||
|
||
+ New MPL function JustPath takes a string arguement and returns only the
|
||
path (including the trailing backslash). Ex:
|
||
|
||
WriteLn ('This MPX is located in ' + JustPath(ProgName));
|
||
|
||
+ New MPL function JustFile takes a string arguement and returns only the
|
||
filename:
|
||
|
||
WriteLn ('This MPX filename is: ' + JustFile(ProgName));
|
||
|
||
+ New MPL function JustFileName takes a string arguement and returns only
|
||
the base filename (ie, not the extension so it basically just removes
|
||
a file extension). This does not remove a path, JustFile does that.
|
||
|
||
+ New MPL funtion JustFileExt takes a string arguement and returns only the
|
||
file extension.
|
||
|
||
+ New MPL function ReadEnv returns the value of an environment variable of
|
||
the operating system.
|
||
|
||
+ New MPL function DirExist returns true or false if a directory exists.
|
||
|
||
+ New MPL function Replace replaces all occurances of a supplied text and
|
||
returns a string. Ex:
|
||
|
||
Var Str : String = 'Hello Hello Hello';
|
||
|
||
Str := Replace(Str, 'Hello', 'World'); // Str is now World World World
|
||
|
||
+ New MPL function strWrap takes two strings and wraps them after the word
|
||
closest to the maximum supplied length. It optionally returns the actual
|
||
position where it wrapped.
|
||
|
||
Var Str : String = 'This will wrap';
|
||
Var Str2 : String = '';
|
||
Var Where : Byte;
|
||
|
||
Where := strWrap(Str, Str2, 10);
|
||
|
||
WriteLn ('It wrapped at ' + Int2Str(Where));
|
||
WriteLn ('First string: ' + Str);
|
||
WriteLn ('Second string: ' + Str2);
|
||
|
||
+ New MPL function strComma accepts a longint and returns it as a string,
|
||
with commas added where applicable:
|
||
|
||
Ex:
|
||
|
||
WriteLn (strComma(1000000)); // will print 1,000,000
|
||
|
||
+ New MPL Cfg variable CfgTempPath returns the location of the current node
|
||
temporary directory.
|
||
|
||
+ New MPL function TimerMin works just like Timer except returns minutes
|
||
instead of seconds.
|
||
|
||
+ New MPL function Date2Dos takes a MM/DD/YY format date and converts it to
|
||
DOS packed datetime format.
|
||
|
||
+ New MPL function Date2Julian takes a MM/DD/YY format date and converts it
|
||
to a Julian date format.
|
||
|
||
+ New MPL function dateg2j takes a gregorian date format and converts it to
|
||
a Julian format.
|
||
|
||
+ New MPL function datej2g takes a julian date format and converts it to a
|
||
gregorian format.
|
||
|
||
+ New MPL function DateValid takes a MM/DD/YY date and returns true or false
|
||
depending on if the date is valid (ie, month is 01-12, etc).
|
||
|
||
+ New MPL funtion WritePipe works just like Write but only parses Pipe color
|
||
codes instead of all MCI codes.
|
||
|
||
+ New MPL function WritePipeLn is WritePipe with a CRLF at the end.
|
||
|
||
+ New MPL function WriteRaw works just like write except it does not parse
|
||
any pipe color codes OR MCI codes.
|
||
|
||
+ New MPL function WriteRawLn works just like WriteRaw except with a CRLF
|
||
added to the end.
|
||
|
||
! Mystic now properly buffers menu files when loading them.
|
||
|
||
+ New MPL fuction "MorePrompt" displays the system more prompt and returns
|
||
a Char value of either Y N or C depending on what the user selected.
|
||
|
||
+ New MPL function "Pause" displays the system pause prompt, for those that
|
||
don't like doing a "Write('|PA')". Keep in mind if you have a function
|
||
called Pause in your MPL program, you will need to rename it to something
|
||
else.
|
||
|
||
+ The %U code for running doors now replaces spaces in the username with an
|
||
underscore (_).
|
||
|
||
+ New MPL function AddSlash(String) : String takes a directory and appends
|
||
the appropriate ending backslash or forward slash depending on operating
|
||
system. If the slash is already there, it does nothing.
|
||
|
||
! InputNY function now correctly returns TRUE if they user selected YES. It
|
||
was reversing the result. InputYN worked fine, this one did not. MPL
|
||
programs that used a work around for this, will need to change code.
|
||
|
||
+ Mystic now properly parses PAGEUP and PAGEDOWN keys sent by SyncTerm. This
|
||
change is only for Windows as it has yet to be determined if making this
|
||
change in OSX is going to conflict with the F9 and F10 keys. I may end up
|
||
making this change on those sides too and forgetting to update the changes
|
||
file. Be forwarned :)
|
||
|
||
+ Mystic now has an internal ANSI gallery. A new menu command, 2 new
|
||
templates, a new percent bar configuration, and several new prompts come
|
||
along with this.
|
||
|
||
The new menu command is GA and takes a command line option that points to
|
||
the root of where your ANSI files exist. This allows the user to move
|
||
around through the directory structure starting at the root supplied in
|
||
the command option data.
|
||
|
||
The gallery allows for an unlimited "depth" in the directory structure with
|
||
the only limitation being that each directory can have up to 1,000 files
|
||
or folders in it. The gallery supports file downloads, first letter
|
||
filename jumping, and full arrow/pageup/pagedown/home/end manuvering.
|
||
|
||
The gallery will also attempt to import SAUCE tags on the fly while
|
||
presenting the directory structure which will be sorted alphabetically on
|
||
the fly. SAUCE data is available as Prompt Info codes in the prompts
|
||
that go along with it. This stuff is CPU intensive and wasn't really
|
||
viable "back in the day".
|
||
|
||
A new percent bar configuration can be found in the language settings in
|
||
MCFG for the Gallery Bar. This bar in the default template expects a bar
|
||
length of 20. You will need to go set that up how you'd like it, and if
|
||
you do not want to use it you can simply blank out the percent bar prompt.
|
||
|
||
Two new templates go with this:
|
||
|
||
ansigal.ans - Contains the main gallery screen. ScreenInfo codes !1 and
|
||
!2 are used to define the top line and the bottom line in
|
||
the file listing box. The actual content of the box is
|
||
defined using prompts.
|
||
|
||
ansigalh.ans- This is the help screen displayed when the user enters
|
||
a ?.
|
||
|
||
The following new prompts must be added to your language files, and your
|
||
language files must be recompiled using MAKELANG or MCFG:
|
||
|
||
; ansi gallery: Ansi is required to use this prompt
|
||
466 |CRSorry, this gallery requires ANSI graphics|CR|CR|PA
|
||
|
||
; ansi gallery: Deselected file in list (bar OFF)
|
||
; &1=filename &2=filesize &3=filedate &4=sauce author &5=sauce title
|
||
; &6=sauce group &7=filetime
|
||
467 |[X02|07|16 |$R49|&1 |$R12|&6 |$R12|&4 |XX
|
||
|
||
; ansi gallery: Selected file in list (bar ON)
|
||
; &1=filename &2=filesize &3=filedate &4=sauce author &5=sauce title
|
||
; &6=sauce group &7=filetime
|
||
468 |[X02|15|17 |$R49|&1 |$R12|&6 |$R12|&4 |XX
|
||
|
||
; ansi gallery: Deselected DIRECTORY in list (bar OFF)
|
||
; &1=filename &2=filesize &3=filedate &4=sauce author &5=sauce title
|
||
; &6=sauce group &7=filetime
|
||
469 |[X02|07|16 |$R49|&1 |12<DIRECTORY>|$D15 |XX
|
||
|
||
; ansi gallery: Selected DIRECTORY in list (bar ON)
|
||
; &1=filename &2=filesize &3=filedate &4=sauce author &5=sauce title
|
||
; &6=sauce group &7=filetime
|
||
470 |[X02|15|17 |$R49|&1 |12<DIRECTORY>|$D15 |XX
|
||
|
||
; ansi gallery: Current path update prompt (when switching directories)
|
||
; set to blank to not display a path
|
||
; &1 = current path &2 = # of files in path
|
||
471 |[X08|[Y05|15|16|$R70|&1
|
||
|
||
; ansi gallery: Percent bar update (when redrawing page)
|
||
; Set to blank to not display a bar. Bar config is in MCFG lang settings
|
||
; &1 = Percentage bar &2 = Percentage (0-100)
|
||
472 |[X52|[Y23|15|16|$L03|&2|07% |&1
|
||
|
||
; ansi gallery: Default sauce values for no sauce record. 3 words separated
|
||
; by semi-colons: Title;Author;Group IE: Unknown;Unknown;Unknown
|
||
473 Unknown;Unknown;Unknown
|
||
|
||
; ansi gallery: Command prompt for ! (only download for now)
|
||
474 |CR|12Download |&1? |XX
|
||
|
||
Enjoy!
|
||
|
||
+ MPL FOR/WHILE/REPEAT loop statements now have CONTINUE and BREAK commands
|
||
availble to manipulate the loop.
|
||
|
||
+ When MIS creates a new telnet node in Windows, the specific node will have
|
||
its screen updates disabled by default. This will speed up output a bit.
|
||
Switching to the window and pressing ALT-V will toggle the local display on
|
||
and off so you can still "snoop" the user. A message is printed in the
|
||
Window with instructions when the screen is disabled.
|
||
|
||
+ Reworked Mystic's socket buffering in Windows. This combined with the
|
||
above change should give an output speed up in the Windows version when
|
||
not connected locally. Initial feedback from alphas say that these changes
|
||
have GREATLY improved speed in Windows.
|
||
|
||
Linux and OSX will not notice much of a difference because those versions
|
||
had better buffering to begin with.
|
||
|
||
+ Increased OSX and Linux output buffer to 4KB up from 1KB. I am not sure
|
||
this will make much of a difference, but it is now the same as the new
|
||
Windows buffer. I think the "sweet spot" is around 2K actually.
|
||
|
||
+ New MCI code |DI## where ## is a number between 0 and 99. This MCI code
|
||
only works in display files and is used to set a character display rate.
|
||
The ## defines the number of characters displayed between delay, so 00 is
|
||
no delay, 01 is the slowest, 99 is the fastest. This can be useful when
|
||
trying to emulate certain baud rates, or if you have ANSImation and want
|
||
callers to actually see it! :) This code can be used multiple times in
|
||
a single display file to change speeds throughout.
|
||
|
||
+ Mystic no longer sends multiple warnings to a user when their time is
|
||
running out. It now only sends them one warning when they have 5 minutes
|
||
left.
|
||
|
||
+ Rewrote some of the input functions to be more efficient, mostly on the
|
||
Windows platform. Input should be a bit more responsive now on all
|
||
platforms though. Generally, when combined with the other Windows
|
||
changes, overall feel should be "snappier" than in the past.
|
||
|
||
+ The ANSI gallery menu command now accepts a second parameter to define
|
||
the display speed of the files in the gallery. The format for the
|
||
optional data is now:
|
||
|
||
<root gallery path>;<speed>
|
||
c:\mystic\mygallery;0
|
||
|
||
Zero will disable any speed reduction. 1 is the slowest and you can go
|
||
up to 255 for the fastest delay with the speed option.
|
||
|
||
+ Mystic now updates the Window title with the current logged in user and
|
||
their node "action" in each node's window. (Windows only) ie:
|
||
|
||
"Mystic Node 1 - g00r00 - Reading messages"
|
||
|
||
+ New MPL command SetPromptInfo. This allows you to set Mystic's internal
|
||
"changing" PromptInfo MCI codes (the |&X codes). For example:
|
||
|
||
SetPromptInfo(1, 'Hello!');
|
||
WriteLn ('This MCI code would like to say: |&1');
|
||
|
||
As a side note, there is NOT a GetPromptInfo because you can simply use
|
||
MCI2STR:
|
||
|
||
WriteLn('This MCI code would like to say: ' + Mci2Str('&1'));
|
||
|
||
+ New MPL command GetScreenInfo. This allows you to read Mystic's internal
|
||
ScreenInfo codes, used in Templates - so your MPLs can easily have
|
||
templates just like Mystic! These are the |!X codes.
|
||
|
||
Var
|
||
X, Y, Attr : Byte;
|
||
Begin
|
||
GetScreenInfo(1, X, Y, Attr);
|
||
|
||
WriteLn('The value of the !1 MCI code was:');
|
||
WriteLn(' X: ' + Int2Str(X));
|
||
WriteLn(' Y: ' + Int2Str(Y));
|
||
WriteLn('Attr: ' + Int2Str(Attr));
|
||
End;
|
||
|
||
+ New MPL command "BufFlush". This causes Mystic to immediately send
|
||
whatever is in the output buffer to the client. In almost all cases you
|
||
will never need to use this, as Mystic knows most of the time when it
|
||
needs to do that. It is more of a precautionary function.
|
||
|
||
! This isn't really a bug, more of an oversight. When Mystic is saving
|
||
previously entered text, it would also save password input. Input
|
||
history is accessible by pressing the up/down arrows on field input. You
|
||
did know about that, right? Figures! :)
|
||
|
||
+ New MPL function "StripL" strips the left side of a string of any
|
||
specified leading characters.
|
||
|
||
Var S : String = ' Hello';
|
||
S := StripL(S, ' ');
|
||
|
||
+ New MPL function "StripR" strips the right side of a string of any
|
||
specifcied trailing character:
|
||
|
||
Var S : String = 'Hello ';
|
||
S := StripR(S, ' ');
|
||
|
||
+ New MPL function "StripB" strips both sides of the string if a specific
|
||
character.
|
||
|
||
Var S : String = ' Hello ';
|
||
S := StripB(S, ' ');
|
||
|
||
+ New MPL function "StripLow" strips all chracters from a string that are
|
||
less than ascii code #32.
|
||
|
||
Var S : String = #12#12#12#12 + 'Hello';
|
||
S := StripLow(S);
|
||
|
||
+ New MPL function "MCILength" works just like "Length" except it tries to
|
||
ignore MCI codes. It doesn't check for actual validity of MCI codes.
|
||
|
||
Var B : Byte;
|
||
B := MCILength('|15Hello|UH');
|
||
WriteLn ('Length should be 5: ' + Int2Str(B));
|
||
|
||
+ New MPL function "Initials" takes a user name and attempts to return one
|
||
or two character initials.
|
||
|
||
S := Initials('Jack Phlash'); // should return "JP"
|
||
|
||
+ New MPL function "StripPipe" takes a string and strips only pipe color
|
||
codes from it.
|
||
|
||
S := StripPipe('|15Hello there, |UH'); //returns "Hello There, |UH"
|
||
|
||
+ New MPL function "StrMci" takes an entire string and attempts to translate
|
||
any MCI codes found in it, returning the entire result.
|
||
|
||
S := StrMci('Hello |UH');
|
||
|
||
+ New MPL function "BitCheck" accepts a bit position and checks it against
|
||
an integer, returning true or false if the bit is on. So for example in
|
||
the Records, the third bit in UserFlags is UserDeleted:
|
||
|
||
GetThisUser
|
||
If BitCheck(3, UserFlags) Then WriteLn('User is marked deleted');
|
||
|
||
Note that this was implemented before actual bitwise math, which also
|
||
made it into this version. Keep reading! :)
|
||
|
||
+ New MPL function "BitToggle" accepts a bit position and an integer and
|
||
toggles the bit.
|
||
|
||
GetThisUser
|
||
BitToggle(3, UserFlags); // undeletes if they are deleted or deletes if
|
||
// they are not deleted.
|
||
|
||
+ New MPL function "BitSet" accepts a bit position and an integer and sets
|
||
the bit ON/OFF based on a boolean:
|
||
|
||
GetThisUser
|
||
BitSet(3, UserFlags, True); // user is marked as deleted
|
||
|
||
+ MPL now allows hexidecimal values to be used in numeric variable assignment
|
||
numerical evaluation, and in numeric constant variables. A hex value must
|
||
begin with a $ character. Some examples:
|
||
|
||
Const
|
||
MyHexValue = $1F;
|
||
|
||
Value := $10;
|
||
|
||
If Value = $10 Then WriteLn('Value is 16 <in decimal>');
|
||
|
||
+ MPL now fully supports bitwise math and operators! The following are
|
||
implemented:
|
||
|
||
AND - Bitwise AND
|
||
OR - Bitwise OR
|
||
XOR - Bitwise exclusive OR
|
||
SHL - Bitwise shift left
|
||
SHR - Bitwise shift right
|
||
|
||
Example:
|
||
|
||
Const
|
||
UserDeleted = $04; // established bit for userdeleted from records.pas
|
||
// note: this value has changed check records.pas!
|
||
Begin
|
||
GetThisUser
|
||
|
||
If UserFlags AND UserDeleted <> 0 Then
|
||
WriteLn('User is deleted');
|
||
End;
|
||
|
||
+ Mystic now keeps a "virtual terminal" of what the users terminal SHOULD
|
||
look like. This opens up the ability to have "remote" screen saves and
|
||
restores since Mystic thinks it knows what their screen looks like. :)
|
||
|
||
+ New MPL function "GetCharXY" returns the character located on the user's
|
||
screen at the XY location.
|
||
|
||
Var Ch : Char;
|
||
Ch := GetCharXY(1, 1);
|
||
WriteLn('The user has the following character at 1,1: ' + Ch);
|
||
|
||
This kind of stuff could allow you to create MPL-based custom screen
|
||
effects like TheDraw used to have, except for on-the-fly with whatever
|
||
is on the user's screen.
|
||
|
||
+ New MPL function "GetAttrXY" returns the attribute of the character
|
||
at position XY on the user's screen:
|
||
|
||
Var Attr : Byte;
|
||
Attr := GetAttrXY(1, 1);
|
||
WriteLn ('The attribure of the character at 1,1 is: ' + strI2S(Attr));
|
||
|
||
+ New MPL variable "CfgSeeInvis" gives you access to the "See Invisible"
|
||
ACS value from Mystic's configuration.
|
||
|
||
+ New MPL variable "CfgMaxNode" gives you access to the "Max Nodes" setting
|
||
from Mystic's configuration. -- LATER REPLACED IN SAME ALPHA KEEP READING
|
||
|
||
+ Completely reworked the System Configuration data file (MYSTIC.DAT). Some
|
||
variable names were changed for clarity. This also makes room for some new
|
||
features that are on the drawing board. Record formats will probably not
|
||
change again for quite some time. Configuration editors still need to be
|
||
reworked to better support the new format - big changes incoming on that
|
||
front. Ideally, writing a utility for 1.10 will work for many versions to
|
||
come - just as long as I didn't overlook something serious.
|
||
|
||
+ The Allow Multiple login feature is now an ACS setting instead of a simple
|
||
Yes or No. Find in in the configuration somewhere! :)
|
||
|
||
- Removed the "Archiver" directory as it was meaningless. Put the path in
|
||
your archive configurations if you need to, otherwise they are probably
|
||
already in your 'path' to begin with and likely do not need one to begin
|
||
with.
|
||
|
||
+ Added a "Semaphore" directory. This is where the *.now files are now
|
||
created for new network-based message events. Previously they were created
|
||
in the DATA directory and could not be changed.
|
||
|
||
+ ACS strings in the System Configuration now have a maximum of 30 characters
|
||
up from 20.
|
||
|
||
+ System directories have been expanded to 80 characters, up from 40.
|
||
|
||
+ All menu names in the System Configuration now have a maximum filename of
|
||
20 characters, up from 8. You still can't create
|
||
"omgthisismymenunowlolsitsawesome.mnu" but you CAN create "messagemenu.mnu"
|
||
|
||
- Removed the unused "ScreenBlank" setting from Mystic. Screensaver does not
|
||
matter outside of a DOS OS, and DOS is gone, thankfully.
|
||
|
||
+ Increased the maximum number of "EchoMail" networks from 20 to 30.
|
||
|
||
- Removed Node settings and NODEx.DAT files. You can delete node*.dat from
|
||
your data directory. Since Mystic no longer internally supports modems,
|
||
this configuration is not needed. Any MCI codes for doors and related that
|
||
normally put a baud rate or comport will now default to 38400 baud and COM1
|
||
unless it is a local login.
|
||
|
||
- Prompt #315 is no longer used. I can't remember why. :)
|
||
|
||
+ Removed MPL Cfg Variable "CfgMaxNodes" and replaced it with "CfgTNNodes"
|
||
variable, which now contains the number of telnet nodes to allow. These
|
||
are basically interchangable in your MPL code but it is changing to more
|
||
accurately reflect what Mystic is doing.
|
||
|
||
+ Removed the "Max Nodes" from the System Configuration. This is now longer
|
||
needed. The number of telnet connections determines your max nodes, since
|
||
there are not telnet and dialup nodes now. Dialup can still be supported
|
||
using gating software that accepts a dialup connection, and creates a
|
||
telnet connection to Mystic. This may become internal at some point, but
|
||
I do not know of a single dialup Mystic BBS (and there is 3rd party
|
||
software to do this) so it is low in priority.
|
||
|
||
+ Added new "Max Telnet Nodes" in MCFG's Internet Configuration. This needs
|
||
to be set to the maximum number of nodes you wish to allow/listen for under
|
||
all platforms. This replaces the old "Max Nodes" setting.
|
||
|
||
+ Mystic now saves information in the configuration of when it was last
|
||
upgraded. If the data file formats are outdated, Mystic will refuse to run
|
||
and exit with an error. MIS, MBBSUTIL, MCFG, MYSTPACK also check to ensure
|
||
data files are current before executing. If you want to add something
|
||
similar into your utilities (that include records.pas), here is an example:
|
||
|
||
{$I records.pas}
|
||
|
||
Var
|
||
ConfigFile : File of RecConfig;
|
||
Config : RecConfig;
|
||
|
||
Assign (ConfigFile, 'mystic.dat');
|
||
{$I-} Reset (ConfigFile, Config); {$I+}
|
||
|
||
If IoResult <> 0 Then Begin
|
||
WriteLn('Cannot read mystic.dat. Run from root Mystic dir!');
|
||
Halt(1);
|
||
End;
|
||
|
||
Read (ConfigFile, Config);
|
||
Close (ConfigFile);
|
||
|
||
If Config.DataChanged <> mysDataChanged Then Begin
|
||
WriteLn('Your data files are not compatible with this version');
|
||
Halt(1);
|
||
End;
|
||
|
||
// Everything is good and now you have Mystic's configuration loaded
|
||
// in memory for your utility.
|
||
|
||
Now granted, this checks ONLY the base Mystic configuration file,
|
||
but the upgrade utility for each release should update this base, AND
|
||
everything else too. So the assumption is if the base configuration is
|
||
not up to par, then nothing else is either.
|
||
|
||
- The "Wait for call" screen has been removed from the Mystic process
|
||
executable. Instead, a Mystic -L just logs you directly into the BBS as
|
||
it would in Linux. Executing Mystic -CFG will take you to the
|
||
configuration that would normally be accessible from the "WFC" screen.
|
||
You can delete "wfcscrn.ans" from your DATA directory.
|
||
|
||
- Removed -CID command line which was identical to the -TID command line
|
||
option since modems had been removed.
|
||
|
||
+ If MYSTIC.EXE is ran without any parameters, it will default to node 1
|
||
local mode and start the login process in Windows. This change was made
|
||
because that is how the Linux and OSX versions work. Previously you would
|
||
get an error saying you needed to use -L for local mode, which was kind of
|
||
redundant.
|
||
|
||
! Mystic was only drawing 79 characters on the status bar during a Windows
|
||
login before the user logged in. Fixed.
|
||
|
||
- Removed 2-line status bar option in the Windows version. I couldn't find
|
||
anyone that uses it, it complicates codes, and interferes with ANSIs that
|
||
are assumed to support 24-lines by pretty much all terminals.
|
||
|
||
+ When exiting Sysop chat mode on Windows, Mystic now remotely restores the
|
||
user's screen to what it was before chat was started. Small entry to the
|
||
whatsnew, but pretty awesome in what its really doing.
|
||
|
||
+ Mystic now has the option to define the maximum number of password
|
||
attempts. It used to be hard-coded to 3.
|
||
|
||
+ Mystic now has the option to define the maximum number of login attempts
|
||
when a user is first prompted for their user name before the connection
|
||
is terminated. This was previously hard coded to 3.
|
||
|
||
+ Mystic now allows the number of minutes given to an unknown user to be
|
||
defined in the configuration. This is the amount of time they have to
|
||
either login or create a new account.
|
||
|
||
! Mystic was not properly sending the 'hackwarn.txt' e-mail to a user
|
||
when their password was incorrectly entered via the Matrix login.
|
||
|
||
+ Mystic now allows the option for users to send a "password inquiry" email
|
||
to the user defined in the configuration as the "Feedback To" user. This
|
||
option is available when a user fails to enter a valid password from
|
||
either the Matrix login or the standard login. A new prompt goes along
|
||
with this:
|
||
|
||
; Password inquiry prompt
|
||
475 |CR|12Send a password inquiry message to the SysOp? |XX
|
||
|
||
This feature can be turned off or on in the login configuration.
|
||
|
||
! Fixed a bug in split screen chat text wrapping that as introduced in the
|
||
previous version.
|
||
|
||
! Split screen chat now filters out the linefeed character. Some terminals
|
||
that send CRLF when ENTER is pressed were causing some display issues in
|
||
split chat.
|
||
|
||
+ Added account expiration system into Mystic. User accounts now have a
|
||
Expires date (mm/dd/yy) and Expires To (security level) field on each
|
||
record. Accounts set to expire to level 0 will be marked as deleted.
|
||
|
||
Two new MCI codes go along with this:
|
||
|
||
XD - Displays the number of days until expiration (or 0 if none)
|
||
XS - Displays the security level user will expire to.
|
||
|
||
Two new prompts go along with this:
|
||
|
||
; Displayed when account expired down to a security level > 0
|
||
476 |CR|14Your account has expired. Downgrading security to |XS.
|
||
; Displayed when account expired down to level 0 (delete)
|
||
477 |CR|12Your account has expired and is now marked for deletion.
|
||
|
||
+ Mystic can now force the user to change their password after a certain
|
||
number of days. This option is found in the system configuration login
|
||
settings. In addition, users can be individually flagged so that they
|
||
are never required to change their password. If the configuration value
|
||
is set to 0, it will disable this feature.
|
||
|
||
A new MCI code goes along with this
|
||
|
||
PW - Returns the value for password reset days in configuration
|
||
|
||
A new prompt goes along with this:
|
||
|
||
; User required password change
|
||
478 |CR|14This BBS requires a password change every |PW days.
|
||
|
||
For now the password change uses the same prompts as the new user
|
||
configuration. That can be separated in the future if it is needed,
|
||
but for now it is the same.
|
||
|
||
- Removed MCFG from Mystic BBS. It is being replaced with an new internal
|
||
configuration. Read on!
|
||
|
||
+ Mystic now has a complete ANSI-based menu UI system for configuration
|
||
editors and possibly more in the future.
|
||
|
||
+ Executing mystic -cfg now takes you directly to the configuration editors.
|
||
When quitting the editor, Mystic will exit back to the operating system.
|
||
If you are used to using MCFG you can create a MCFG.BAT or MCFG.SH which
|
||
just executes "mystic -cfg" to get a similar effect.
|
||
|
||
The new internal editor uses the new ANSI menu interface which allows both
|
||
hotkey and arrow keys, listboxes, etc. This is also now accessible using
|
||
the *S Sysop menu command, meaning it usable over your telnet connection
|
||
or locally.
|
||
|
||
A new ANSI file "cfgroot.ans" needs to be placed into the DATA directory.
|
||
This serves as a "wallpaper" for the System Configuration.
|
||
|
||
+ Replaced old, outdated Archive editor with a new "popup" lightbar
|
||
Archive editor, using the new ANSI UI system.
|
||
|
||
+ Replaced old, outdated Protocol editor with a new "popup" lightbar
|
||
Protocol editor, using the new ANSI UI system.
|
||
|
||
! Fixed a bug in file search "description" highlighting. Not sure if this
|
||
was in previous versions or introduced in the latest alphas but it should
|
||
be fixed up now.
|
||
|
||
- Removed the ALT+J shell to DOS function from the Windows version. There
|
||
is no reason to have this built into the node process since DOS is no
|
||
longer supported.
|
||
|
||
+ Mystic now accepts a -IP command line which passes the IP. The old
|
||
-UID should pass the hostname.
|
||
|
||
+ Mystic now accepts a -HOST command line which passes the HOST. The UID
|
||
command line is the same as -HOST and remains only for backwards
|
||
compatibility. It might be removed in the future, so if you use the UID
|
||
command line, its best to switch to HOST.
|
||
|
||
+ New MCI code UY returns the IP address (UX returns host)
|
||
|
||
+ %4 when executing doors, now returns the IP address (%5 is host)
|
||
|
||
+ When executing protocols, %4 now returns IP address (%5 is host)
|
||
|
||
+ Mystic now replaces logging of the baud rate in the Sysop log with the
|
||
IP and hostname of the connection.
|
||
|
||
+ MIS now passes both the IP and HOST command lines when creating a telnet
|
||
session.
|
||
|
||
! Mystic should now properly copy Welcome, News, and Goodbye files if they
|
||
exist into QWK packets.
|
||
|
||
+ Mystic now strips out pipe color codes from the headers of the allfiles
|
||
or newfiles exports in the file bases and in QWK packets.
|
||
|
||
+ FTP Server now has minimum and maximum port values for passive and
|
||
extended passive data ports. Defaults should be 60000, and 65535
|
||
|
||
+ FTP Server now has a configurable "per connection" timeout. Recommended
|
||
value is at least 300 seconds.
|
||
|
||
+ FTP server now has a configurable "max connections with same IP" value.
|
||
This should be set to at least 2, for incoming data connections with
|
||
the same IP.
|
||
|
||
+ Added configurable POP3 server options for connection Timeout and for
|
||
Delete Mail on Retrieve.
|
||
|
||
+ TAB key now works in the full screen editor. Tab stop is 5 spaces.
|
||
|
||
+ CTRL-D now functions the same as the right arrow in the full screen
|
||
editor.
|
||
|
||
+ CTRL-E now functions the same as the up arrow in the full screen
|
||
editor.
|
||
|
||
+ CTRL-F now moves the beginning of the current line in the full screen
|
||
editor.
|
||
|
||
+ CTRL-G now moves to the end of the current line (same as end key)
|
||
|
||
+ CTRL-J now erases the current line in the full screen editor. It does
|
||
not completely remove the line as CTRL-Y does, it just erases.
|
||
|
||
+ CTRL-N now does a page down in the full screen editor.
|
||
|
||
+ CTRL-O now displays the full screen editor help screen in the full
|
||
screen editor.
|
||
|
||
+ CTRL-P now does a page up in the full screen editor.
|
||
|
||
+ CTRL-T now moves one word to the left in the full screen editor.
|
||
|
||
+ CTRL-R now moves one word to the right in the full screen editor.
|
||
|
||
+ CTRL-X now moves down one line the same as the down arrow key in the
|
||
full screen editor.
|
||
|
||
+ CTRL-W now deletes the word to the left of the cursor in the full
|
||
screen editor.
|
||
|
||
! SysOp Chat Page in Windows now properly updates the user's terminal
|
||
during the page.
|
||
|
||
+ Sysop Chat Page in Windows now plays the "default beep" sound as
|
||
configured in Windows.
|
||
|
||
+ MBBSUTIL has a new function -FUPLOAD. This goes through every file base
|
||
and looks for new files. If a new file is found it will be added into
|
||
Mystic's file base listing as a new file. FILE_ID.DIZ will be imported
|
||
as well. **This was later moved to MUTIL**
|
||
|
||
! Mystic will no longer shell to the console and get "stuck" when trying
|
||
to execute an archive that has a blank command line in the configuration
|
||
|
||
! MBBSUTIL was sorting BBS Lists and File Lists in reverse alphabetical
|
||
order. This is now fixed to sort as most people would expect.
|
||
|
||
+ The HOME key now functions in the lightbar file listings to move to the
|
||
beginning of the list.
|
||
|
||
+ The END key now functions in the lightbar file listing. It is kind of a
|
||
half-assed implementation though, since doing it "the right way" will
|
||
involve some extra coding in the future.
|
||
|
||
+ File Base settings for all ACS strings has been increased from 20 to 30
|
||
characters.
|
||
|
||
+ File base "lightbar" list templates are now defined per file base in
|
||
the file base editor. The upgrade utility will set existing bases to
|
||
'ansiflst' but any newly created bases will need to have this value set
|
||
per base now.
|
||
|
||
+ Updated file base record structures and added options for the possible
|
||
future "Comment and Rating" system for file bases. In addition, some
|
||
boolean data has been changed into a bitmapped flag variable.
|
||
|
||
+ Added new ANSI file base editor into the System Configuration.
|
||
|
||
+ Added Copy/Paste functions into all new ANSI internal editors.
|
||
|
||
+ Added new ANSI message group and file group editors.
|
||
|
||
- Removed Password protected file and message bases. This is a barely
|
||
used feature and it doesn't integrate well when the bases are available
|
||
via FTP and NTTP, etc. Security around bases needs to be based on the
|
||
ACS system to avoid issues in those situations.
|
||
|
||
Prompts 66, and 67 are no longer used.
|
||
Prompts 103 and 104 are no longer used.
|
||
|
||
+ Ansi message reader template is now configured on a per-base level just
|
||
as the standard reader template is.
|
||
|
||
+ Ansi message reader message index is now configured on a per-base level
|
||
just like the ansi reader template.
|
||
|
||
+ Message base ACS length has been extended to 30 characters.
|
||
|
||
+ Message base standard reader header filename has been expanded to 20
|
||
characters.
|
||
|
||
+ Message base path expanded to 80 characters from 40.
|
||
|
||
+ Added new ANSI message base editor.
|
||
|
||
+ Added new ANSI security level editor.
|
||
|
||
+ SMTP server now has a configurable timeout value per session (in seconds)
|
||
|
||
+ SMTP server now has a configurable number of simultaneous connections
|
||
from the same IP address.
|
||
|
||
+ CTRL-K now cuts a line of text in the full screen editor. If you continue
|
||
to cut more than one time, the text is appended to the cut buffer and will
|
||
contiue to do so until it is pasted. Any cut after a paste resets the cut
|
||
data. This is inspired by the Nano/Pico editors on Unix platforms which
|
||
work the same way (with the same keys!). The cut buffer currently allows
|
||
up to 100 lines to be cut and pasted at once.
|
||
|
||
+ CTRL-U now Uncuts all text that is currently in the cut buffer within the
|
||
full screen editor. You can uncut (paste) as many times as you like with
|
||
the current buffer.
|
||
|
||
+ Mystic now has support for configuring Echomail domains for 5D addresses.
|
||
|
||
+ Mystic now has support to configure an uplink address for each echomail
|
||
address.
|
||
|
||
+ Default language filename can now be up to a 20 character filename
|
||
|
||
+ Default start menu can now be up to a 20 character filename
|
||
|
||
+ All ACS settings in the System configuration have been expanded from 20
|
||
characters to 30 characters max.
|
||
|
||
+ All paths in the System configuration have been expanded to 80 characters
|
||
max.
|
||
|
||
+ MBBSUTIL now has an -AREASOUT option which will export a list of all bases
|
||
flagged as Echomail in the AREAS.BBS format.
|
||
|
||
+ Added a new program called MUTIL. This will eventually become the
|
||
replacement for MBBSUTIL and MYSTPACK. In addition, it will have a ton of
|
||
new features that MBBSUTIL did not have. MUTIL and MUTIL.CFG contain more
|
||
details.
|
||
|
||
+ MUTIL now has the ability to import FIDONET.NA style files into Mystic's
|
||
message bases.
|
||
|
||
+ MUTIL now has the ability to perform an offline "Mass upload" into file
|
||
bases. It will also import File_ID.DIZ (optionally) based on the archive
|
||
configuration.
|
||
|
||
+ "Languages" have been renamed to Themes. LANGUAGE.DAT has been renamed to
|
||
THEME.DAT in the data directory. A ton of new features await with this new
|
||
system. It of course is still possible to use the Theme system to create
|
||
support for different languages as well.
|
||
|
||
Additionally, compiled prompt files that used to have the .LNG file
|
||
extension have been renamed to .THM extension. The upgrade utility should
|
||
take care of all this renaming for you.
|
||
|
||
- MAKELANG has been removed from Mystic BBS distribution.
|
||
|
||
+ MakeTHEME has been added to the Mystic BBS distribution. This utility
|
||
works much like MAKELANG did but it has a few new options:
|
||
|
||
1) The ability to decompile prompt files. Keep in mind, comments are
|
||
not added into compiled prompt files, so when you decompile one you
|
||
will lose that information.
|
||
|
||
2) MakeTheme will now check for the existance of a "mysticbbs"
|
||
environment variable. If it finds this variable, it will look in that
|
||
location for MYSTIC.DAT, allowing MakeTheme to no longer be required to
|
||
be in the root Mystic BBS directory.
|
||
|
||
3) Prompts within a prompt file no longer has to be in numerical order.
|
||
More to come on why this change is being made, but generally this
|
||
allows you to categorize prompts.
|
||
|
||
+ Mystic now saves the last known IP and hostname from each user.
|
||
|
||
+ Revamped last caller information. It now saves the IP, Hostname,
|
||
Gender, and if the user was a new user or not. In addition, it will now
|
||
save all 10 custom user questions (not implemented yet).
|
||
|
||
+ MUTIL can now import FILEBONE.NA format files, creating both file bases
|
||
and their directories (if they do not already exist). See MUTIL.CFG for
|
||
more information.
|
||
|
||
! The MCI parser for |!x MCI codes now checks for validity of the number
|
||
or otherwise does not parse the code.
|
||
|
||
+ MUTIL can now generate top 1-99 callers, posters, downloaders, uploaders
|
||
and post/call ratio all configurable by templates.
|
||
|
||
+ MUTIL now has a -NOSCREEN option which disables the screen output when
|
||
executing. When suppling this on the command line, a .cfg file must be
|
||
supplied as well. IE: mutil mutil.cfg -noscreen This is useful for
|
||
Linux/OSX people that may want to execute MUTIL during a login or
|
||
something but do not want their users to see the MUTIL screen.
|
||
|
||
+ Mystic now has 10 colors definable per theme, with 10 new MCI codes
|
||
|T0 to |T9 to display them.
|
||
|
||
+ Mystic's internal Language editor has now been replaced with a theme
|
||
editor. This editor is full ANSI lightbar-capable like other newer
|
||
configurations. It can also edit all prompts and compile prompt files
|
||
all internally. It support at least the features of the old MCFG editor
|
||
including prompt text search, jumping, copy/paste, undo, etc.
|
||
|
||
+ Mystic now checks for messages between nodes every 3 seconds while waiting
|
||
for input. Previously Mystic would check based on situation (ie, before
|
||
menu prompt, in between messages, etc) but never while idle waiting on
|
||
input as it does now.
|
||
|
||
! Mystic was not allowing node messages within MPL programs. It is not clear
|
||
if this was introduced in the 1.10 alphas or if the problem existed in the
|
||
past.
|
||
|
||
+ Mystic now saves and restores the user's screen before and after showing a
|
||
node message. You can now place a clear screen comfortably in those
|
||
prompts to make a really clean look when users are interrupted with node
|
||
messages.
|
||
|
||
+ MIS Linux can now accept telnet connections and properly redirect STDIO
|
||
while spawning Mystic. This means it can entirely replace a Linux
|
||
telnet daemon if desired such as ddTelnet or xinetd, etc.
|
||
|
||
+ Prompt 000 now has new MCI prompt info codes:
|
||
&1 = Login attempt number
|
||
&2 = Max login attempts
|
||
&3 = Attempts remaining
|
||
|
||
+ The scrollback buffer in node chat has been expanded to the same size as
|
||
the maximum message size (1000 lines up from 200). Its possible this
|
||
will change in the future again.
|
||
|
||
+ MUTIL now has the option to reverse sorting of top lists, meaning you can
|
||
create the "bottom 99" for each of the types of bulletins.
|
||
|
||
+ New formatting MCI code $X##C
|
||
|
||
This works similar to the $D MCI code except that the D version will
|
||
duplicate a character ## amount of times. The X version will only
|
||
duplicate the character until the cursor reaches column ##.
|
||
|
||
So for example:
|
||
|
||
|CLThis is a line of text|$X79!
|
||
|
||
The above example will print the ! character until the 79th column:
|
||
|
||
This is a line of text!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
|
||
+ Mystic now has user to user (node to node) private chat and paging system
|
||
so that users can page each other and chat. Linux and OSX sysops can use
|
||
this to chat with their users if needed. Any user with the Sysop ACS
|
||
level will have the option to force the user into chat and any users in a
|
||
forced chat session cannot leave.
|
||
|
||
A new menu command of NP will now allow a node to page another node for
|
||
a private chat session.
|
||
|
||
The following new prompts go along with this:
|
||
|
||
; User2User chat page which node?
|
||
479 |CR|09Enter node to chat with |01[|10?|01/|10List|01]|09: |XX
|
||
|
||
; User2User node/user is unavailable
|
||
480 |CR|15That user is marked unavailable.|CR|CR|PA
|
||
|
||
; User2User force user into chat?
|
||
481 |CR|12Force user into chat? |XX
|
||
|
||
; User2User sending chat request &1=User &2=Node
|
||
482 |CR|15Sending chat request to |&1...|DE|DE|CR
|
||
|
||
; User2User chat mode starting
|
||
483 |CL|09|17 <20> |15Chat mode engaged.|$X70 ESC/Quit |16|CR
|
||
|
||
; User2User chat mode ended
|
||
484 |CL|09|17 <20> |15Chat mode end.|$X79 |16|DE|DE
|
||
|
||
; User2User accept chat page request? &1=user &2=Node
|
||
485 |CL|15|&1 is requesting private user chat. Accept? |11
|
||
|
||
+ Mystic now has a new User Editor redesigned with the ANSI menu interface.
|
||
|
||
+ The ALT-U local Sysop command has been removed (moved to user editor).
|
||
Alt-E now opens a local user editor for the user which also contains the
|
||
Upgrade option.
|
||
|
||
+ Added CARDINAL (Unsigned 32-bit Integer) type to MPL
|
||
|
||
+ MPLC and MIDE now calculate the error position in the file (line and
|
||
column) after the error has occured. This takes a little bit of time
|
||
but it ensures that the column/line error position is accurate.
|
||
|
||
+ The Node message send menu command (NS) no longer sends the message to
|
||
the current node when it is doing a broadcast to all nodes.
|
||
|
||
+ Mystic now allows arrays of records in MPL.
|
||
|
||
+ Reduced the FTP server directory caching buffer to 4k, but expanded the
|
||
file send buffer from 4K to 32KB. After doing some local network FTP
|
||
transfers of giant files, it seemed like the 4K transfer was pretty
|
||
harsh on disk usage.
|
||
|
||
+ Mystic now allows base record variable types to be assigned to other
|
||
base record variable types.
|
||
|
||
+ When prompted to save an edited message, Mystic now defaults to YES.
|
||
|
||
+ Added SizeOf function to MPL which returns the size of a variable or
|
||
record type.
|
||
|
||
+ Added fWriteRec and fReadRec that can be used to write an entire record
|
||
or array of records to an opened file in MPL
|
||
|
||
Specific elements can be addressed with fWrite/fRead if desired.
|
||
|
||
+ Fixed a screen bleed bug under UNIX platforms.
|
||
|
||
+ Added some more CHATX.DAT checks in UNIX versions, although I am not sure
|
||
it will make any noticable difference in ghost nodes.
|
||
|
||
+ MIS in Linux now has the ability to Snoop telnet nodes if you use the
|
||
MIS console as a telnet server.
|
||
|
||
+ NNTP server is now somewhat functional but does need quite a bit more
|
||
work to make it good. It is now possible to enable it, but it has only
|
||
been briefly tested with XNEWS and does not follow RFC stadards yet.
|
||
|
||
+ New MPL function FillChar similar to Pascal. IE:
|
||
|
||
type
|
||
myuserrecord = record
|
||
username : string[30];
|
||
somevalue : array[1..5] of byte;
|
||
end;
|
||
var
|
||
u : myuserrecord;
|
||
begin
|
||
fillchar(u, sizeof(u), #0);
|
||
end.
|
||
|
||
+ Mystic Internet Server (MIS) can now be started in daemon mode by
|
||
executing MIS with the -d command line option for Unix platforms.
|
||
|
||
+ Added new Message Base "QuickScan" menu command (MQ). This command
|
||
does a scan of message bases and shows you the number of new messages,
|
||
new messages to you, total messages, etc. This is modeled after PCBoard
|
||
scans and only scans bases in the bases flagged for scanning by the
|
||
user. For example:
|
||
|
||
Starting QuickScan
|
||
|
||
Base: General Messages Total: 1,000 New: 24 Yours: 3
|
||
Base: Test Message Base Total: 1,000 New: 24 Yours: 3
|
||
|
||
Quick Scan Complete
|
||
|
||
By default the QuickScan will do a global scan of all message bases in
|
||
all groups. However there are many optional data options:
|
||
|
||
/CURRENT = scan only current message base
|
||
/GROUP = scan only current group's bases
|
||
/NOSCAN = do not show "scanning" prompt
|
||
/NOFOOT = do not show "end of scan" prompt
|
||
/NOHEAD = do not show "starting quickscan" prompt
|
||
|
||
This can be combined with the MN menu command to prompt the user what to
|
||
do next. You could even get creative with the & MCI codes and MPL to
|
||
make logical decisions for the user based on the results of the scan!
|
||
|
||
Four new prompts go along with this:
|
||
|
||
; MsgBase quickscan header prompt
|
||
486 |CR|12Starting Quick Scan|CR
|
||
|
||
; MsgBase quickscan Scanning prompt
|
||
; &1=basename &2=current base# &3=total bases#
|
||
487 Scanning |&1 [|&2 of |&3]...
|
||
|
||
; MsgBase quickscan base list prompt
|
||
; &4=msgs in base &5=new messages &6=your messages &7=global total msg
|
||
; &8=global new msgs &9=global your msgs
|
||
488 |03Base: |14|$R40|&1 |03Total: |09|$L04|&4|03 New: |11|$L04|&5 |03Yours: |12|$L03|&6
|
||
|
||
; MsgBase quickscan footer prompt
|
||
; &7=global total msg &8=global new msgs &9=global your msgs
|
||
489 |CRQuick Scan complete. |CR|CR|PA
|
||
|
||
+ The Full screen editor now does a full redraw of the editor screen and
|
||
text after uploading a .txt file into the editor.
|
||
|
||
+ New MPL procedure "hangup" does exactly what you think it does to the
|
||
caller! :)
|
||
|
||
+ Mystic now allows users to login by the permanent index number as well as
|
||
their user name. Private e-mails and other areas of the BBS also allow
|
||
for usage of the permanent index now as well.
|
||
|
||
+ Mystic now allows for the new user application process to be completely
|
||
replaced by an MPL program. You must at a very minimum set either the
|
||
user real name or handle fields, as well as the password value.
|
||
|
||
If the newuserapp.mpx exists in the scripts directory, it will be
|
||
executed instead of the normal application process.
|
||
|
||
+ New MPL function IsUser takes a string value which can contain either
|
||
a user realname, handle, or user perm index number. If the user exists,
|
||
it will return a TRUE result or FALSE if the user does not exist.
|
||
|
||
+ Enhanced standard menus to allow for HOME/END/PAGEUP/PAGEDOWN hotkeys
|
||
which execute menu commands when those keys are pressed. So the total
|
||
list of special hotkeys are:
|
||
|
||
ESCAPE
|
||
ENTER
|
||
TAB
|
||
HOME
|
||
UP
|
||
PAGEUP
|
||
LEFT
|
||
RIGHT
|
||
END
|
||
DOWN
|
||
PAGEDOWN
|
||
|
||
In addition these are still functional as auto-exec commands:
|
||
|
||
FIRSTCMD - Execute only once when the menu is first loaded
|
||
EVERY - Execute each time a menu is display, before it is displayed
|
||
AFTER - Execute after the menu is displayed but before the prompt
|
||
|
||
And hopefully soon I can get in the TIMER auto-exec from Mystic 2 which
|
||
is by far the most badass of all of them! :)
|
||
|
||
+ Added new prompt #490 to the themes. This prompt defines the message
|
||
base header flags which were previously hard coded. Each flag is one
|
||
word separated by a space:
|
||
|
||
; Msg header flags text one word each separated by a space
|
||
; 1=Local 2=Echo 3=Private 4=Sent 5=Delete
|
||
490 Local Echo Private Sent Deleted
|
||
|
||
+ Mystic will now abbreviate GIGABYTE size files in the file listings. In
|
||
the past it would only do megabytes and kilobytes. Still, the record
|
||
limitation is 4 gigs for the max filesize in the filebases. This needs to
|
||
be changed at some point, but it requires data format change.
|
||
|
||
+ Added new prompt #491 to the themes. This prompt defines the file size
|
||
and flags within the file listings.
|
||
|
||
; File base filesize flags one word separated by a space
|
||
; 1=offline 2=failed 3=unvalidated 4=GB 5=MB 6=KB 7=B
|
||
491 OFFLINE FAILED UNVALID GB MB KB B
|
||
|
||
+ Menu access ACS and each menu command ACS has been expanded to 30
|
||
characters.
|
||
|
||
! Fixed a bug in the Unix ANSI detection routines which caused an unwanted
|
||
extra pause in detection (thanks to Kevin Lamonte)
|
||
|
||
! Fixed a bug which could cause Mystic to sometimes crash when saving a
|
||
message reply if the message content was large (100+ lines or so)
|
||
|
||
+ While reading messages, it is now possible to Forward the message to a
|
||
different messsage base by using the F hotkey. This only works if you
|
||
are a SysOp or message owner. A new prompt goes along with this:
|
||
|
||
; Forward msg: which base
|
||
492 |CR|09Forward message to which base (?/List): |XX
|
||
|
||
+ The Sysop Password prompt has been added to the theme prompt files. A new
|
||
prompt goes with this:
|
||
|
||
; Sysop password prompt
|
||
493 |CR|09Sysop Password: |XX
|
||
|
||
+ MPL identifiers now have a maximum size of 30 characters, up from 20.
|
||
|
||
! Mystic was not properly stripping the path of exported text files when
|
||
doing an export. Functionally it worked fine, but it was printing the
|
||
directory of the node's temp directory to the user.
|
||
|
||
+ New "user flag" in the user editor: No CallStats. If this is set to YES
|
||
the user's calls will not be added to the last caller information, and
|
||
they will also not have their call counted in the BBS history database.
|
||
|
||
+ New "user flag" in the user editor: No PWChange. If this is set to YES
|
||
the user will be exempt from the forced password change after the
|
||
configured time interval (if its enabled).
|
||
|
||
+ New "user flag" in the user editor: No History. If this is set to YES
|
||
the user will be exempt from BBS history tracking. This includes Emails,
|
||
Message posts, download stats, upload stats, new user counts, and call
|
||
counts. NoCallStats simply ignores the lastcaller display, and the system
|
||
caller count numbers. This flag ignores ALL history of the user.
|
||
|
||
+ MakeTheme now only looks at the "mysticbbs" environment variable if
|
||
mystic.dat is not found in the same directory.
|
||
|
||
+ The "Transfer of XXX" file prompt has been enhanced to attempt to
|
||
always strip the filepath from the file, in case of a strange situation
|
||
where it somehow gets into the prompt info code.
|
||
|
||
+ Display files that are not found in a theme directory now have the option
|
||
to "fallback" to the default display file directory, if Theme fallback
|
||
is enabled for the theme.
|
||
|
||
+ Added new ANSI menu editor to replace the old outdated crap. The new
|
||
editor has references to all of the menu commands as well as the special
|
||
functional hotkeys. It still maintains the ability to "simulate" menus
|
||
as well.
|
||
|
||
+ Revamped the entire menu system. Menu files must be converted if you are
|
||
any version pre 1.10 alpha 15 using the CvtMenus program. Simply copy
|
||
this into your folder with all of the *.mnu files are run it one time ONLY
|
||
|
||
After you are done you will want to review your system because the new
|
||
system is not a direct convertion of file format. The method that Mystic
|
||
links menu commands has changed. The conversion program does its best to
|
||
analyze your menu files and create a menu that functions the same, but
|
||
there may be issues - particularly in lightbar grid menus I would guess
|
||
since they can be quite complex.
|
||
|
||
For those of you alpha testing, if you do find a menu that does not
|
||
convert correctly, please send the .mnu file to me so that I can see if
|
||
I can improve the conversion process before 1.10 official release.
|
||
|
||
+ Each menu option on a menu now as its own "execution list" of menu
|
||
commands. This basically replaces the old "kludge" stacking of commands
|
||
to execute back to back with a single hotkey. It is a much more clean
|
||
approach this way, and it allows for more options!
|
||
|
||
+ Each menu command now has the option to redraw the menu or not after its
|
||
command list executes. This defaults to on to mimic previous menu system
|
||
however for some advanced stuff, like TIMER, you may will to turn them
|
||
off.
|
||
|
||
+ Menus can now be internally generated from 1 to 4 columns (up from 3)
|
||
|
||
+ Menus now contain a description configurable within the menu flags. A
|
||
new MCI code |MD goes along with it, and will display the description
|
||
of the current menu.
|
||
|
||
+ Menus now have an optional "user status" field in the menu flags. If this
|
||
is set to a non-blank value, the user's action in node listings will be
|
||
updated to this value. If the value is left blank, Mystic will use the
|
||
default "Browsing menus" prompt from the theme prompts.
|
||
|
||
+ Menus now have a "theme fallback" option similar to the recent change to
|
||
the display file system. If a menu is not found in its theme menu
|
||
directory, then if the option is enabled, Mystic will look for it in the
|
||
default menu directory configured in the System Configuration. When
|
||
combined with the similar display changes, it makes it very easy to build
|
||
additional themes off of the default. In your new themes, the stuff that
|
||
you haven't themed can simply fall back to your default theme now.
|
||
|
||
+ Merged the "Hot Key" and "Long Key" options from the old menu system into
|
||
one single hotkey field.
|
||
|
||
+ Added an "Input char" option to menu flags that defines how the user's
|
||
input is echoed back to them at a menu prompt. Valid options are
|
||
Uppercase, Lowercase, and hidden.
|
||
|
||
+ Lightbar menus now allow extended input while the lightbar continues to
|
||
function! This works for both standard lightbar and lightbar grid menus.
|
||
|
||
For example, you can set the hotkey to "OWNAGE" and have full lightbar
|
||
menu. Mystic will still recognize and execute the commands linked to
|
||
OWNAGE if the user types it. In addition, it has a smart input so that
|
||
it only allows valid characters to be entered. Mystic will use the X/Y
|
||
location of the cursor after the menu prompt is displayed, so it is best
|
||
to set where you might want to see the user's input (if its not hidden)
|
||
using the menu footer/prompt.
|
||
|
||
+ Lightbar grid menus now allow the following events to be handled in
|
||
addition to arrow keys:
|
||
|
||
Page Up
|
||
Page Down
|
||
Escape
|
||
Tab
|
||
Home
|
||
End
|
||
|
||
+ In a lightbar grid menu, each menu command now has the ability to execute
|
||
on a grid-specific event. The following are available options:
|
||
|
||
Selected
|
||
Up
|
||
Down
|
||
Left
|
||
Right
|
||
Tab
|
||
Escape
|
||
PgUp
|
||
PgDn
|
||
Home
|
||
End
|
||
|
||
+ All displayed menu items now have an option for display type. If it set
|
||
to Access it will only be displayed if the user has access. If it is set
|
||
to Always, it will always been displayed. If its set to Never, it will
|
||
never be displayed.
|
||
|
||
+ Lightbar and Lightbar/Grid menus now display menu header and prompts if
|
||
they are not set to a blank value. They were ignored in the past, but
|
||
this provides some better flexibility. If you have lightbar menus you
|
||
may need to validate that the header/footers in your menu flags are blank
|
||
if you do not want this feature.
|
||
|
||
+ New auto-exec hotkey for menu commands: TIMER. An item with the hotkey
|
||
of TIMER will automatically execute every X amount of seconds, which is
|
||
defined per menu command. This combined with all of the other new
|
||
features makes for an amazingly powerful new menu system!
|
||
|
||
+ Increased the menu reading buffer to 4k, up from 2k
|
||
|
||
+ Added new menu command -I which sets the menu timer counter to the value
|
||
in the optional data field. The menu timer is an internal incrementing
|
||
counter used to fire off TIMER commands. It represents the number of
|
||
seconds that have passed since the menu was loaded.
|
||
|
||
+ TIMER commands also have 3 types, configurable per each menu option:
|
||
|
||
Interval - Always execute at the configured timed interval
|
||
OnlyOnce - Execute at interval ONLY ONCE per menu being loaded
|
||
PerRedraw - Execute after each menu redraw as per timer interval
|
||
|
||
+ When using hotkey-style menu input, extended hotkeys are no longer
|
||
required to have a / first. You can make a hotkey command named QUIT
|
||
for example, and it will execute immediately when QUIT is entered.
|
||
|
||
Keep in mind it is still a hot-key styled input. So you cannot have
|
||
one hotkey named QUIT and one named QUITNOW. The QUIT command will
|
||
always get the hotkey. If you need functionality like that, hotkeys
|
||
can be disabled on the menu.
|
||
|
||
+ Similar to the display file and menu systems, the MPL scripts directory
|
||
will now also fallback from the theme scripts path to the default
|
||
scripts directory if the feature is enabled in the selected theme.
|
||
|
||
+ Enhanced the ANSI listbox functions for some better efficiency.
|
||
|
||
+ ANSI listbox now searches for an entire search string, rather than
|
||
jumping to first characters. For example, in the User Editor when you
|
||
are at the list of user names, you can simply start typing the user
|
||
name of the person you are looking for, and you will get there.
|
||
|
||
Anytime you do anything that isn't typing a character, the search string
|
||
will be "reset" allow you to continue searching for something else.
|
||
|
||
! Setting inactivity to 0 (to globally disable it) wasn't working. I don't
|
||
know if this was a fault in 1.10 alphas or also in 1.09, so I am
|
||
mentioning it just in case.
|
||
|
||
+ New MPL function: GetMBaseStats. This can be used as a function or a
|
||
procedure (returning true if successful). It takes 6 parameters.
|
||
|
||
#1: Message base number
|
||
#2: Exclude messages FROM the current user in stats
|
||
#3: Exclude messages TO the current user that have already been read
|
||
#4: Total messages (this is a VAR parameter)
|
||
#5: New messages (this is a VAR parameter)
|
||
#6: New messages to you (this is a VAR parameter)
|
||
|
||
Example:
|
||
|
||
uses mbase;
|
||
|
||
var
|
||
count, total, new, yours : longint;
|
||
begin
|
||
count := 1; //start @1 to skip email base
|
||
|
||
while getmbase(count) do begin
|
||
getmbstats(count, true, true, total, new, yours);
|
||
|
||
writeln('base : ' + mbasename);
|
||
writeln('total msgs : ' + int2str(total));
|
||
writeln('new msgs : ' + int2str(new));
|
||
writeln('your msgs : ' + int2str(yours));
|
||
writeln('');
|
||
|
||
count := count + 1
|
||
end;
|
||
end.
|
||
|
||
+ New MPL procedure: WriteXY. This procedure writes a string of text at
|
||
the defined X/Y location with a specific text attribute. This of course
|
||
requires the user has ANSI to function properly.
|
||
|
||
WriteXY (1, 10, 8, 'Prints at X:1 Y:10 with dark grey text');
|
||
|
||
+ New MPL procedure WriteXYpipe. This procedure writes a string of text at
|
||
the defined location, similar to WriteXY *except* it parses pipe color
|
||
codes *and* requires a "maximum field size" of which it will always
|
||
extend or restrict the length of the text within that field.
|
||
|
||
WriteXYPipe (1, 10, 8, 50, 'This pads to 50 chars at location 1,10');
|
||
|
||
+ Added new user flag "UserNoTimeout" which makes a single user immune to
|
||
inactivity timeout check.
|
||
|
||
+ Enhanced the ANSI listbox search capabilities. Most listboxes will now
|
||
allow you to type a search string in which it will use to attempt to
|
||
select an item that matches the search string. While you are typing you
|
||
can use CTRL-A to search "again" with the current string, or CTRL-Y to
|
||
delete the current string. Moving the lightbar selector will also reset
|
||
the current search string. The search string is case insensitive.
|
||
|
||
Since the space key may need to be used in a search string, the hotkey
|
||
used to mark items in a listbox has changed from the SPACE key to the TAB
|
||
key.
|
||
|
||
+ If Message base list columns is set to 1, the toggle newscan and qwkscan
|
||
message base lists will also now be 1 column.
|
||
|
||
+ If file base list columns is set to 1, the toggle new scan list will now
|
||
also be shown in a single list.
|
||
|
||
! Mystic was not checking the "Download ACS" for each file base when files
|
||
were added to the batch queue within a file listing. Instead it was
|
||
relying on the List ACS. This is now fixed.
|
||
|
||
+ Mystic now allows users to select a default file transfer protocol. If
|
||
a protocol has been selected by a user they will not be asked to select
|
||
a protocol when transfering files.
|
||
|
||
A new addition to the GE menu command (optional data 32) will allow the
|
||
user to select their default protocol.
|
||
|
||
+ Restructured some class code to reduce executable sizes in the Mystic
|
||
binary. The result is about 120kb smaller executable size in Windows for
|
||
Mystic.exe. The other versions should see similar results.
|
||
|
||
! Mystic was not properly parsing long filenames with spaces in them during
|
||
external file transfer.
|
||
|
||
! Mystic was not properly setting the "Transfering files" node status when
|
||
executing transfer protocols.
|
||
|
||
+ Mystic now has internal Zmodem protocol. To enable it, just use the
|
||
@ZMODEM text for the send/receive commands in the Protocol editor, and
|
||
Mystic will do the rest. The Zmodem has been tested extensively with
|
||
the following clients. The current status is as follows:
|
||
|
||
mTelnet Windows Downloads and Uploads successful
|
||
SEXYZ Windows Downloads and uploads successful
|
||
NetRunner Windows/Linux Downloads and uploads successful
|
||
ZOC Windows Downloads and uploads successful
|
||
SyncTerm Windows/Linux Downloads ok, uploads fail
|
||
Qodem Linux Downloads ok, Upload Qodem segfault
|
||
HyperTerminal Windows Nothing works (ever) with this terminal
|
||
|
||
+ The file directory editor is now available in the standard file listing.
|
||
In the past it only worked in the lightbar file listing. Whoops. The
|
||
hotkey is E if you have SysOp access.
|
||
|
||
! File list downloader was not properly allowing a download after the list
|
||
was created.
|
||
|
||
+ File list compiler now only adds the filebase header/footer to the list
|
||
if the filebase has files listed.
|
||
|
||
+ File list compiler now uses megabytes instead of kilobytes in the file
|
||
base summary footer.
|
||
|
||
+ MIS and MYSTIC now switch ownership to the group/user who owns each
|
||
binary upon startup on Unix-based systems. MIS waits until after it
|
||
binds the ports, so if it is SUDO started, it can listen on ports less
|
||
than 1024 while not running as a root application/daemon.
|
||
|
||
+ Display files can now be aborted with the SPACE bar during transmission. I
|
||
may remove this feature if people do not like it.
|
||
|
||
+ New MCI code AO turns off display file aborting within the current display
|
||
file.
|
||
|
||
! The date shown in the message base header while reading messages should
|
||
now properly display in the user's configured date format. In the past
|
||
it was always MM/DD/YY format.
|
||
|
||
! Mystic was converting the passed hostname to all upper case. This is no
|
||
longer the case.
|
||
|
||
! Mystic was converting the passed MPL program (from command line) to all
|
||
upper case. This caused the Unix versions to fail to execute the MPL
|
||
program and exit.
|
||
|
||
+ MIDE now has a mide.ini configuration file. This file is in the .INI file
|
||
format and allows various things such as auto indent, tab space, screen
|
||
mode (25 or 50 line) and others to be defined.
|
||
|
||
+ MIDE now has a "Run" option which will compile and execute the current
|
||
MPL program without logging into Mystic itself. You will need to set up
|
||
the options with mide.ini in order for this to work. See the default
|
||
mide.ini for more information.
|
||
|
||
! Posts made via QWK were not being counted in the BBS history.
|
||
|
||
+ Mystic now supports QWK control posts. This means that with modern QWK
|
||
readers you can add/drop message bases that are included in your packet
|
||
from within the offline reader.
|
||
|
||
If the reader does not support that feature, you can post a message in
|
||
your reader to "MYSTICQWK" with the subject of either "ADD" or "DROP" in
|
||
the message base in which you want to add or drop from your QWK packets.
|
||
|
||
Tested with MultiMail
|
||
|
||
+ Mystic now supports the QWKE extension for offline mail. What does this
|
||
mean? Well it means first off that the 12 character message base name
|
||
limitation is completely gone. Mystic will now generate the full base
|
||
name with MCI codes stripped in QWKE packets. It also means that the
|
||
25 character limitation on From, To, and Subject fields is gone.
|
||
|
||
In addition, it opens up room for future enhancements such as offline
|
||
file requests, and the ability to maintain master file lists / new file
|
||
lists, as well as setting lastread pointers from within the offline
|
||
reader. And file attachments, and and...
|
||
|
||
A new menu command (OE) has been added to download a QWKE packet. When
|
||
uploading a .REP packet, Mystic can determine if the REP is QWK or QWKE
|
||
so there is no need for a new upload menu command.
|
||
|
||
+ Given the new changes, Mystic now includes ALL message bases in QWK
|
||
packets regardless of if it is in the QWK scan settings. Mystic will
|
||
NOT send any messages if you are not subscribed to the message base, but
|
||
it should still appear in the offline reader. This is changed so that
|
||
users can add/drop message bases.
|
||
|
||
- Menu passwords have been removed from the menu flags. If you want to
|
||
password protect your menus you can do the same thing by using the -P
|
||
and FIRSTCMD options on your menus.
|
||
|
||
+ Mystic should now be able to recognize FILE_ID.DIZ on Unix platforms
|
||
regardless of the casing, just as long as the archive program is able to
|
||
extract it. MUTIL mass upload should also work like this now.
|
||
|
||
+ Mystic should now be able to recognize TODOOR.EXT files from QWKE packets
|
||
regardless of their file casing, just as long as the archive utility is
|
||
able to extract it.
|
||
|
||
+ Added syntax highlighting back into MIDE, however it does not and probably
|
||
will not support block comment highlighting. Just use the single line
|
||
// comments if you like syntax highlighting. The highlighting can be
|
||
turned on/off via mide.ini by adding this option under "[General]":
|
||
|
||
; do syntax highlighting (note does not support block comments)
|
||
; and is substancially slower in screen updates
|
||
syntax_highlight = true
|
||
|
||
In addition, colors can be configured for the source code editor text:
|
||
|
||
[Colors]
|
||
|
||
; syntax highlighting colors (text attributes 0-255)
|
||
; attribute = foreground_color + background_color * 16
|
||
; foreground is 0-15 and background is 0-7
|
||
|
||
syn_normal = 30
|
||
syn_keyword = 31
|
||
syn_string = 27
|
||
syn_number = 19
|
||
syn_comment = 23
|
||
syn_hex = 28
|
||
syn_charnum = 27
|
||
|
||
! Fixed a bug that could cause viewing files from within an archive to
|
||
fail.
|
||
|
||
+ MUTIL now has the ability to import FILES.BBS files automatically. In
|
||
addition, if MUTIL detects that a file already exists, but has a
|
||
different file size, it will update the existing record and description.
|
||
This is for people who are using it for networked file bases and TIC.
|
||
See MUTIL.CFG file for more information.
|
||
|
||
+ When importing FILE_ID.DIZ, Mystic will attempt to use its internal
|
||
archive viewing capabilities to find the "casing" of the FILE_ID.DIZ file.
|
||
If it finds one it will pass the exact casing to the configured archive.
|
||
|
||
! Fixed a bug where Mystic would not detect and use its internal archive
|
||
viewing for LZH files with a different file extension (ie .LHA files from
|
||
an Amiga, for example). Mystic will now properly internally view LHA
|
||
extensions, as well as properly look for LHA in the archive configuration.
|
||
|
||
! Fixed a bug when viewing an archive that could cause the lightbar file
|
||
list display to not get redrawn after.
|
||
|
||
! Duplicate IP check in MIS was not working properly. It is now.
|
||
|
||
+ MIS telnet in Windows now has an option to hide node windows.
|
||
|
||
+ Added a new utility called NodeSpy. This utility will allow you to
|
||
monitor active nodes, snoop, kick, chat with users, etc.
|
||
|
||
! Mystic was not properly creating BBS history database if it did not
|
||
already exist.
|
||
|
||
+ MIDE now uses CTRL+K and CTRL+U to cut and paste text, similar to
|
||
Pico/Nano-like Unix text editors.
|
||
|
||
+ Mystic now tracks calls by the hour in its BBS history database.
|
||
|
||
+ Added USAGE.MPS to the default installation. This currently shows a
|
||
weekly and monthly usage graph calculated based on the number of calls.
|
||
|
||
! Fixed a bug which could sometimes cause a node to get disconnected just
|
||
after MIS answered the all in Windows.
|
||
|
||
+ If the user has zero downloads and uploads, Mystic will now allow them to
|
||
transfer one file for "free" (either a download or an upload) before the
|
||
ratio tracking comes into play.
|
||
|
||
! Sysop chat hours now function as expected. This was broken somewhere
|
||
around the 1.09 era.
|
||
|
||
! Fixed bugs with MIS calculating the wrong node number if a user was
|
||
logged in locally in Windows.
|
||
|
||
+ Mystic in non-Unix will now assign an available node number automatically
|
||
similar to how it works in a Unix environment. This will help prevent
|
||
a person from accidentally logging into a node that is being used during
|
||
a local login.
|
||
|
||
+ Mystic now sends IAC_DO_BINARY as part of the starting telnet negotiations
|
||
done by MIS. This will help fix some weird issues with Linux/OSX default
|
||
telnet command line client.
|
||
|
||
+ In MPL including a file has been changed to its own keyword as opposed to
|
||
mimicing a compile directive. All MPL programs for 1.10 must be updated
|
||
if INCLUDE files are used:
|
||
|
||
Old: {$include myfile.mps}
|
||
New: include myfile.mps
|
||
|
||
+ Added an hourly usage graph to usage.mps.
|
||
|
||
! MUTIL FILEBONE import was not adding the trailing slash when generating a
|
||
file path.
|
||
|
||
+ MUTIL now has an option to generate an allfiles list which contains a
|
||
listing of all files from each filebase in one text file.
|
||
|
||
The functionality if there, but its not very configurable yet. If
|
||
anyone has suggestions please let me know.
|
||
|
||
+ Added 3 new MPL functions: MsgEditor, MsgEditSet, MsgEditGet. These allow
|
||
access to the internal Mystic msg editor (line and/or full) from within
|
||
MPL. It even allows you to define wrap position and template to completely
|
||
make it look like its not the Mystic editor!
|
||
|
||
As a little hint the MsgEditSet and MsgEditGet stuff could be used to post
|
||
process message text on posts. Like say for example you wanted to write
|
||
a MPL that allows users to add Tag lines, you could do that by replacing
|
||
the "Saving message..." prompt and using those two in order to modify the
|
||
text before it is saved by Mystic!
|
||
|
||
Rather than trying to explain it all, here is an example of all 3:
|
||
|
||
Var
|
||
Lines : Integer = 0;
|
||
WrapPos : Integer = 79;
|
||
MaxLines : Integer = 200;
|
||
Forced : Boolean = False;
|
||
Template : String = 'ansiedit';
|
||
Subject : String = 'My subject';
|
||
Count : Integer;
|
||
Begin
|
||
MsgEditSet (1, 'this is line 1');
|
||
MsgEditSet (2, 'this is line 2!');
|
||
|
||
Lines := 2;
|
||
|
||
SetPromptInfo(1, 'MsgTo'); // if template uses &1 for "To:" display
|
||
|
||
If MsgEditor(0, Lines, WrapPos, MaxLines, Forced, Template, Subject) Then Begin
|
||
WriteLn('User selected to save.');
|
||
WriteLn('There are ' + Int2Str(Lines) + ' of text in buffer:');
|
||
|
||
For Count := 1 to Lines Do
|
||
WriteLn(MsgEditGet(Count));
|
||
|
||
Pause;
|
||
End Else Begin
|
||
WriteLn('User aborted the edit.');
|
||
|
||
Pause;
|
||
End
|
||
End
|
||
|
||
! Fixed a bug in the internal LHA archive viewing that could cause the last
|
||
file in the archive to get corrupted during the view, if the file had
|
||
comments (and was created on an Amiga?)
|
||
|
||
+ CTRL-Z and [ESCAPE] now both bring up the full screen editor prompt to
|
||
save, etc. I did a lot of research with old softwares and editors, and
|
||
found this approach to be the common ground between everything ever. :)
|
||
|
||
+ Revampped message quoting a little bit. Quoted text will now be auto
|
||
reformatted if adding the initials would cut off text in the original
|
||
message EXCEPT when quoting quoted text.
|
||
|
||
Quote initials will always be 2 characters now. In an effort to better
|
||
"standardize" quoting: If the User handle has a single word handle, Mystic
|
||
will now use the first two letters of their name instead of one.
|
||
|
||
! Fixed a bug that could corrupt a message and/or crash when editing a
|
||
message with a lot of lines.
|
||
|
||
+ New option: "Ask Theme" in the General Settings. If this is set to true
|
||
Mystic will prompt the user to select a theme after the graphics are
|
||
detected upon each connection.
|
||
|
||
+ Added new MPL function: Real2Str this takes a string and decimal place
|
||
value. Example:
|
||
|
||
Var
|
||
R : Real;
|
||
Begin
|
||
R := 1234.1234;
|
||
WriteLn (Real2Str(R, 2)); // Will print 1234.12
|
||
End
|
||
|
||
+ The GE menu command (edit user settings) option 14 (select theme) can now
|
||
have an option which specifies the base filename of a theme. For example
|
||
if the theme filename is "english" you can do:
|
||
|
||
Menu command: GE
|
||
Data: 14 english
|
||
|
||
This will cause the theme to be selected automatically, without prompting
|
||
the user for anything. If a second parameter is not supplied, the user
|
||
will be prompted to select a theme as usual.
|
||
|
||
+ Copy/Paste is now added/fixed for menu commands and menu execution lists
|
||
in the new menu editor.
|
||
|
||
+ NodeSpy in Windows now uses OS named pipes instead of Disk I/O.
|
||
|
||
+ NodeSpy in Unix now uses OS named pipes instead of Disk I/O.
|
||
|
||
+ NodeSpy now has a full blown telnet client, which replaces the "local
|
||
login" feature. Instead, the default the phone book will contain an entry
|
||
for "local login" which telnets to localhost.
|
||
|
||
+ NodeSpy now defaults "Auto Snoop" to OFF. Auto Snoop will automatically
|
||
start snooping a node upon connection if it is the only active
|
||
connection. To enable this, create an nodespy.ini file in the same
|
||
directory as the NodeSpy and add this content:
|
||
|
||
[General]
|
||
autosnoop=1
|
||
|
||
+ Renamed the default mutil.cfg to mutil.ini since it is indeed an INI
|
||
format file. This is just in case someone has .ini files associated with
|
||
an editor on their OS. EXISTING USERS WILL NEED TO RENAME MUTIL.CFG TO
|
||
MUTIL.INI unless you are supplying the filename on the command line.
|
||
|
||
+ Added logging into MUTIL. Add the following crap below into the
|
||
[GENERAL] section of your configutation files if you want to use it. If
|
||
you would like some things logged that are not please let me know, and
|
||
vice versa. Anyway, from the new default mutil.ini:
|
||
|
||
; Logging option. If no directory is specified in the logfile
|
||
; name, mUtil will attempt to use the configured LOGS directory from
|
||
; in Mystic's configuration. To disable logging, leave the logfile
|
||
; option commented out or set to a blank value.
|
||
|
||
logfile=mutil.log
|
||
|
||
; Level 1 = basic process logging
|
||
; Level 2 = verbose
|
||
|
||
loglevel=1
|
||
|
||
An example of loglevel=1 logging for mUtil configured for a single
|
||
process (mass upload) follows. I haven't tested the logging with all
|
||
processes to get them where I want them, so please give feedback if you
|
||
have something to suggest! :)
|
||
|
||
+ 09/24/12 23:11 Startup using mutil.ini
|
||
+ 09/24/12 23:11 Process: Mass Upload Files
|
||
+ 09/24/12 23:11 Add: mbbs_104.zip To: New File Base
|
||
+ 09/24/12 23:11 Add: SPOT1_3B.LHA To: New File Base
|
||
+ 09/24/12 23:11 Result: Uploaded 2 file(s)
|
||
+ 09/24/12 23:11 Shutdown
|
||
|
||
+ MUTIL now has a message purge function. This function will go through
|
||
all of the messages in all message bases and delete any messages that do
|
||
not meet the "Age" or "Max Messages" settings for each message base.
|
||
|
||
To use this function simply add the following into your [GENERAL] header
|
||
of your mUtil .INI configuration file(s):
|
||
|
||
PurgeMessageBases = true
|
||
|
||
! MBBSUTIL -UKILL was not working properly.
|
||
|
||
! MBBSUTIL BBS list packer was not working properly when checking
|
||
verification days.
|
||
|
||
+ MUTIL now has a message posting function. This function can post any
|
||
number of text files to a message base, including echomail and netmail
|
||
bases. It will also split large posts into multple messages - allowing
|
||
up to 10,000 line text files to be posted. To enable, add this to your
|
||
[GENERAL] section of your mUtil .INI configuration files:
|
||
|
||
PostTextFiles = true
|
||
|
||
Then add the [PostTextFiles] section from the default mutil.ini from a
|
||
new install.
|
||
|
||
+ The Toggle New Scan and Toggle QWK Scan menu commands now allow an optional
|
||
/ALLGROUP in the optional data. If this is supplied it will show all bases
|
||
in all groups. By default it only shows current group only.
|
||
|
||
- Removed MYSTPACK from Mystic BBS distribution. Do not use this anymore.
|
||
|
||
+ 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
|
||
be as buggy as MYSTPACK). I would suggest doing a backup of your message
|
||
bases as a precaution before running this for the first time, just in case
|
||
there are problems.
|
||
|
||
+ 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.
|
||
|
||
+ When scanning results of a "DSZ-logged" file transfer, Mystic will now
|
||
ignore filename casing in Unix environments. I believe this might
|
||
help reduce problems with QWK .REP uploading.
|
||
|
||
<ALPHA 21 RELEASED>
|
||
|
||
! Fixed a bug with message base copy/paste where the base unique index was
|
||
not being generated.
|
||
|
||
! Fixed a bug with the /ADDR option of the MP menu command which was not
|
||
saving the destination address.
|
||
|
||
+ Added message base sorting. A range of message bases can be tagged using
|
||
the TAB key, and then sorted based on base name, filename, or network
|
||
type.
|
||
|
||
! Fixed a bug with port scanners causing MIS to create ghost nodes in
|
||
Windows version.
|
||
|
||
! I accidentally overwrote my HISTORY file while preparing the Alpha 22
|
||
release, so I am missing some stuff here.
|
||
|
||
+ I will now track changes per-alpha in the history file. Each version of
|
||
Mystic will now come with a HISTORY.TXT which contains the history of
|
||
Mystic changes for all previous releases. WHATSNEW.TXT will contain only
|
||
the latest release changes for that version with a marking to denote when
|
||
a new alpha was released.
|
||
|
||
+ The installation program will now have the option to view the history of
|
||
changes with Mystic BBS, or just the WHATSNEW for the latest major version
|
||
release.
|
||
|
||
+ The installation program will now highlight major and alpha releases in a
|
||
different color while viewing the history or the whatsnew.
|
||
|
||
<ALPHA 22 RELEASED>
|
||
|
||
+ Added the network that a message base belongs to into the list of message
|
||
bases in the configuration editor.
|
||
|
||
! Fixed an issue with inserting records in the message base editor where it
|
||
would copy the record before it, instead of creating a fresh entry.
|
||
|
||
! Fixed an issue with inserting records in the file base editor where it
|
||
would copy the record before it, instead of creating a fresh entry.
|
||
|
||
+ NodeSpy now has a 1000 line scrollback when connecting via telnet using
|
||
it's terminal mode. Press Alt-B when connected and you will get a nice
|
||
status line/scrollback of up to 1000 lines!
|
||
|
||
+ Prompt editor now has a prompt simulator if you press ENTER while editing
|
||
a prompt.
|
||
|
||
+ NodeSpy's phone book now allows directory searching similar to other
|
||
Mystic editors. Just type away and it will search on the fly.
|
||
|
||
! Fixed a bug during list box searches that would cause the search string
|
||
to not get updated.
|
||
|
||
+ Mystic will now set the window title to "Mystic Configuration" when
|
||
started in configuration mode (-cfg)
|
||
|
||
+ New MPL fuction: Function ABS (Num: LongInt) : LongInt; This value takes
|
||
a signed integer and returns the absolute value. All MPL programs must be
|
||
recompiled.
|
||
|
||
+ New menu command: GV. This uses an ANSI full screen file viewer which is
|
||
capable of extracting SAUCE info and also parsing ANSI/pipe display files.
|
||
The format of the optional data is as follows:
|
||
|
||
<template name>;<placeholder>;<filename>;<END optional>
|
||
|
||
Examples:
|
||
|
||
Optional data: ansiviewer;dummy;prelogon
|
||
Optional data: ansiviewer;dummy;prelogon;end
|
||
|
||
If ;END is added at the end, the viewer will start viewing at the END of
|
||
the file instead of at the top of it.
|
||
|
||
An example ansiviewer.ans template is now included with the default
|
||
installation and has the following new MCI codes used:
|
||
|
||
Optional:
|
||
&1 = Display file name (excluding directories)
|
||
&2 = File title (from SAUCE)
|
||
&3 = File author (from SAUCE)
|
||
&4 = File group (from SAUCE)
|
||
|
||
Required:
|
||
!1 = Specifies the first line (row) of the file viewing display window
|
||
!2 = Specifies the last line (row) of the file viewing display window
|
||
|
||
If you want to use the File Viewer percentage bar from the theme's
|
||
configuration you will need to add these two Screen Info codes as well:
|
||
|
||
!3 = Specifies the X/Y location of the File Viewer percentage bar
|
||
!4 = Specifies the X/Y location and attribute of the percentage number
|
||
|
||
+ The ANSI art gallery now by default uses the full screen ANSI file viewer
|
||
to display ANSI files.
|
||
|
||
A new template has been added called "ansigalv" which will be used to
|
||
display files and uses the same template format as the ansiviewer (GV)
|
||
menu command template.
|
||
|
||
If you would like to continue NOT use the full screen viewer you can
|
||
specify the speed and DISPLAY option on the optional data of the menu
|
||
command:
|
||
|
||
Example using full screen viewer:
|
||
|
||
Optional data: <directory>
|
||
Optional data: /mygallery/
|
||
|
||
Example using the old display type with display speed option:
|
||
|
||
Optional data: <directory>;<speed>;DISPLAY
|
||
Optional data: /mygallery;100;DISPLAY
|
||
|
||
! Fixed improper message date generation in NTTP server.
|
||
|
||
+ NNTP server now reports the raw message number as the MsgID which seems to
|
||
increase compatibility with certain readers. In the future this should be
|
||
changed to truely unique MsgIDs if possible.
|
||
|
||
! Fixed an issue where message base permanent indexes were not properly
|
||
being generated.
|
||
|
||
! Fixed an issue where file base permanent indexes were not properly being
|
||
generated.
|
||
|
||
+ Message base records now contain the date the message base was created.
|
||
|
||
+ Added new function to MBBSUTIL: -FIXINDEX. This function will go through
|
||
all message and file bases and make sure that the indexes are unique, and
|
||
if they are not it will make them unique.
|
||
|
||
It will also check to make sure the "creation date" of each base is set to
|
||
a valid date. If it is not, it will set it to the current date.
|
||
|
||
This needs to be ran once after upgrading to this alpha due to some prior
|
||
bugs.
|
||
|
||
<ALPHA 23 RELEASED>
|
||
|
||
! Fixed a bug with the telnet protocol negotiation which was causing Zmodem
|
||
uploads from SyncTerm to fail.
|
||
|
||
! Fixed a few additional internal Zmodem related bugs
|
||
|
||
! Fixed a bug in the file base editor where a file was left open, causing
|
||
Mystic to eventually crash.
|
||
|
||
+ NodeSpy's telnet client now has the option to ALT-H to disconnect.
|
||
|
||
+ NodeSpy's telnet client now has a built in Zmodem upload and download. The
|
||
default download/upload directory can be defined in nodespy.ini in the
|
||
[General] section as transfer_dir. If nothing is defined, NodeSpy will use
|
||
the current directory.
|
||
|
||
+ NodeSpy telnet client can optionally automatically start Zmodem downloads
|
||
and uploads. This option can be disabled in the .ini file:
|
||
|
||
[General]
|
||
auto_zmodem = true
|
||
|
||
<ALPHA 24 RELEASED>
|
||
|
||
! NodeSpy's telnet client was saving the phone directory in the wrong
|
||
directory after a Zmodem upload was completed.
|
||
|
||
! The internal RAR archive viewer was not working when a .RAR file had a
|
||
comment in the file.
|
||
|
||
! Fixed an issue with the minimum upload space check in Linux.
|
||
|
||
+ Mystic can now view archives within an archive instead of just text files.
|
||
So for example if you have MYZIP.ZIP and inside that file there is another
|
||
ZIP/LZH/LHA/ARJ/RAR file, you can View it's contents using the (V)iew
|
||
command. If the file you've entered is not a valid archive, it will try
|
||
to display it as a text file as it has in the past.
|
||
|
||
! Fixed an issue with the previous page command in the standard file
|
||
listing, where it could sometimes show the file uploader text before the
|
||
actual filename text.
|
||
|
||
! More Zmodem upload fixes with SyncTerm.
|
||
|
||
! Closing a node window in Windows should no longer create a ghost user
|
||
on the node.
|
||
|
||
+ Added Zmodem 8K (ZEDZAP) internal protocol. You can use the Send/Recv
|
||
command of "@zmodem8" to use it. Updated the protocol definitions for
|
||
the default install to include ZEDZAP, and to also disable SEXYZ
|
||
protocols by default.
|
||
|
||
+ NodeSpy's telnet client will now switch to ZEDZAP (Zmodem 8K) during
|
||
Zmodem download if the sender supports it.
|
||
|
||
+ When reading messages in the normal message reader, you can now just type
|
||
a message number on the prompt to automatically jump to that message.
|
||
|
||
<ALPHA 25 RELEASED>
|
||
|
||
! After doing a list of message in the standard message reader, the
|
||
current message number on the prompt will no longer show the wrong
|
||
message number.
|
||
|
||
+ Added two MCI codes to prompt #44: &1 total files in base &2 last listed
|
||
file number.
|
||
|
||
+ In a standard generated menu you can now set the "display columns" to
|
||
zero which will cause the generated menu to only show the menu prompt.
|
||
|
||
+ Added new menu command: -G. This command shows the currently loaded
|
||
internally generated menu. The optional data field will determine the
|
||
number of display columns to use to format the menu. The -G command does
|
||
not display the menu prompt or execute "EVERY" menu commands.
|
||
|
||
+ Added a new menu type that can be created in the menu editor. You can
|
||
now set a "Lightbar/Prompt" type menu, which will allow you to create
|
||
menus similar to the old Searchlight style with a lightbar prompt. Users
|
||
can scroll through commands with the arrow keys or also search by simply
|
||
typing in letters. Our version supports commands with hotkeys that
|
||
contain more than one character among other things that Searchlight
|
||
didn't do.
|
||
|
||
If the user has hotkeys enabled, or the menu forces hotkeys, the command
|
||
will be executed as soon as a match of a hotkey is inputted from the user.
|
||
|
||
If the user has hotkeys disabled, or the menu forces longkeys, then the
|
||
user will always have to press enter to execute the selected command.
|
||
|
||
Each menu item is created similar to a standard type menu, with the the
|
||
following changes:
|
||
|
||
1. The "Lightbar Hi" text contains the look of the selected lightbar
|
||
command. The location prompt will be generated where the cursor
|
||
is after the menu prompt is displayed.
|
||
|
||
2. The "Lightbar Lo" text contains the description that will be
|
||
displayed below the currently selected command. If this is blank
|
||
the extended description will not be used.
|
||
|
||
The description will automatically be aligned below the lightbar
|
||
command, unless the "X" value of the command is defined. If the X
|
||
is not equal to 0, Mystic will print the description at that X
|
||
column instead.
|
||
|
||
A new menu has been included with the default installation called
|
||
testlbprompt.mnu. Please use this to experiment with these types of
|
||
menus if it interests you.
|
||
|
||
+ The smart input used by the standard message base reader to jump between
|
||
messages now creates an input field according to the selected theme. You
|
||
can of course turn it off for specific prompts using the IF MCI code if
|
||
you don't like it.
|
||
|
||
+ The message base change command now uses the smart input function for
|
||
input while prompting to select a message base.
|
||
|
||
+ The message group change command now uses the smart input function for
|
||
input while prompting to select a message group.
|
||
|
||
+ The file base change command now uses the smart input function for input
|
||
while prompting to select a file base.
|
||
|
||
+ The file group change command now uses the smart input function for input
|
||
while prompting to select a file group.
|
||
|
||
+ Rewrote the file tagging system in the standard file listing. The old
|
||
way still works, by pressing F to flag a file. However, you can now
|
||
just type in the file number to add or remove a file from your batch
|
||
queue without every pressing the F key.
|
||
|
||
+ The F flag command now uses smart input when prompting for the file number
|
||
to add/remove from queue (in standard file listing)
|
||
|
||
+ The V view command now uses smart input when prompting for the file number
|
||
to view in the standard file listing.
|
||
|
||
+ Sending a node message will now use the smart input function when
|
||
prompting for the node number.
|
||
|
||
+ Paging a user for user/user chat now uses the smart input function.
|
||
|
||
+ When selecting "Forward" reading, Mystic now uses the smart input
|
||
function to prompt for the message start number.
|
||
|
||
+ Rewrote the message move and fowarding functions. Both now make use of
|
||
compressed message base numbers when selecting the target message base,
|
||
and they both now use smart input.
|
||
|
||
! Fixed a bug which could cause a crash after moving a message while doing
|
||
a newscan of message bases.
|
||
|
||
+ Added sorting to the file bases configuration editor. Use TAB to mark
|
||
and /S to sort just like message bases.
|
||
|
||
! Fixed a bug when editing prompts using the theme editor when performing
|
||
a search.
|
||
|
||
! The Menu editor was not properly using the theme selected when it was
|
||
started.
|
||
|
||
! According to a document I saw, the ANSI-BBS C function to move the cursor
|
||
should hard stop at 80. Mystic's ANSI parser wraps to the next line which
|
||
I think was added in a while back to increase ANSI compatibility. For
|
||
now I changed it back to follow what this standard document is claiming.
|
||
|
||
+ If a message bases's data files actually exist, for but some reason the
|
||
highest message number is 0 (ie everything has been deleted), Mystic will
|
||
now display the "There are no messages in this base" prompt when reading.
|
||
|
||
+ When downloading a file or a batch, Mystic will now ask the user if they
|
||
would like to disconnect after the transfer. Replace two prompts in your
|
||
language file:
|
||
|
||
; Disconnect after download?
|
||
066 |CR|12Disconnect after file transfer? |11
|
||
|
||
; Disconneting in 10 seconds, press a key to abort
|
||
067 |CR|09Disconnecting in 10 seconds: Press a key to abort.
|
||
|
||
! Mystic wasn't properly checking the message base "auto signature" setting
|
||
before adding in the user's auto signature.
|
||
|
||
+ Mystic will now ignore the group membership contraints in the ACS string
|
||
when using the MW (write email) menu command.
|
||
|
||
+ Mystic now has an ACS setting to "see offline" files in the file bases.
|
||
This setting is found in System Config -> File Base Settings.
|
||
|
||
+ If you select the I (Ignore all messages) option while reading message
|
||
bases, Mystic will now ask you if you want to remove the base from your
|
||
new message scan. Two new prompts go along with this:
|
||
|
||
; Normal msg reader: Remove from newscan? (after I command)
|
||
494 |CR|12Remove |15|MB |12from message newscan? |XX
|
||
|
||
; Lightbar msg reader: Remove from newscan (after I command)
|
||
495 |CR|12Remove |15|MB |12from message newscan? |XX
|
||
|
||
! MBBSUTIL -NOCHECK option was not bypassing the online user check.
|
||
|
||
! MBBSUTIL -FCHECK was not properly marking some files OFFLINE when they
|
||
should have been.
|
||
|
||
+ MBBSUTIL -FCHECK now has an optional command after it which will cause
|
||
missing files to be removed from the file listing, instead of marked
|
||
offline. Add KILL after fcheck to enable this function:
|
||
|
||
mbbsutil -fcheck kill
|
||
|
||
<ALPHA 26 RELEASED>
|
||
|
||
! MPL WordGet will now trim spaces off the beginning of the string, but only
|
||
when space is used as a word separator. When something other than a
|
||
space is used, it will not trim anything. This fixes a problem that
|
||
could cause the result to be incorrect when using non-space separators.
|
||
|
||
+ Mystic now has a node address lookup option when sending NetMail. This
|
||
search allows wildcard search by address, or text seaching of the BBS
|
||
name, SysOp name, location, phone and Internet address. In addition, it
|
||
also has functions to list zones and specific nets within a zone, rather
|
||
than just nodes themselves.
|
||
|
||
To enable this feature, simply copy a raw FTN-style nodelist into the
|
||
data directory and name it "nodelist.txt". Mystic is using raw uncompiled
|
||
nodelists. The reason for this is due to a lack of nodelist compilers,
|
||
standards that are behind the times, and when combined with faster CPUs
|
||
and shrinking nodelist size it seems to make the most sense.
|
||
|
||
A new display file called "nodesearch.xxx" will be displayed if it exists
|
||
before the netmail address prompt, and when the user selects ?/help at the
|
||
prompt. A nodesearch.asc file has been included in the new default
|
||
install.
|
||
|
||
The following new prompts must be added:
|
||
|
||
; Netmail send address prompt with active nodelist searching
|
||
496 |CR|09Enter netmail address or search criteria (|10?|09/|10Help|09): |11
|
||
|
||
; Nodelist browser prompt
|
||
497 |CR|09Enter nodelist search criteria (|10?|09/|10Help|09): |11
|
||
|
||
; Nodelist search results header
|
||
498 |CR|15Node System Name Location SysOp |CR|09============ ========================== ================== ====================
|
||
|
||
; Node list search results
|
||
; &1=addr &2=bbsname &3=location &4=sysop &5=phone &6=internet
|
||
499 |10|$R12|&1 |15|$R26|&2 |11|$R18|&3 |09|$R20|&4
|
||
|
||
; Node list single result
|
||
500 |CR|03 Address: |14|&1|CR|03System Name: |11|&2|CR|03 Location: |11|&3|CR|03 Operator: |11|&4|CR|03 Phone: |11|&5|CR|03 Internet: |11|&6
|
||
|
||
; Node list search "found X matches" &1=# of matches
|
||
501 |CR|03Found |11|&1 |03matches.
|
||
|
||
; Netmail send confirmation
|
||
; &1=addr &2=bbsname &3=location &4=sysop &5=phone &6=internet &7=to
|
||
502 |CR|12Send netmail to |15|&7|07 at |15|&1|12? |11
|
||
|
||
! Fixed a bug with internal Zmodem uploads which would cause the upload to
|
||
not be detected by Mystic.
|
||
|
||
+ After uploading a QWK .REP reply packet, Mystic will now display some
|
||
basic statistics of messages posted, or of failed imports. A new prompt
|
||
must be added to go with this:
|
||
|
||
; QWK .REP complete/results prompt
|
||
; &1=msgs imported &2=msgs failed &3=bases added to scan &4=bases removed
|
||
503 |10SUCCESS|01.|CR|CR|11- |03Posted |11|&1 |03new messages (|11|&2 |03failed)|CR|11- |03Added |11|&3 |03bases to new scan (|11|&4 |03removed).|CR|CR|PA
|
||
|
||
+ Added new menu command ML (Nodelist Browser). This kicks off the new
|
||
nodelist browser, just in case someone would like to use it outside of
|
||
sending a netmail.
|
||
|
||
+ Complete rewrote the MIS telnet server for Unix platforms. It should be
|
||
much faster now. There is no reason not to use MIS now at all and you
|
||
should switch to it as soon as possible - at least if you want to take
|
||
advantage of future features that will require MIS (new event system, FTN
|
||
mailer and tosser, etc).
|
||
|
||
! Fixed all known issues with MIS and STDIO redirection. DOSEMU works
|
||
great now, and is pretty easy to setup. Check the new section in the
|
||
Linux installation document for a tutorial on how to set up a DOS door
|
||
in DOSEMU with Mystic!
|
||
|
||
<ALPHA 27 RELEASED>
|
||
|
||
+ Added a new function to MUTIL called ImportMessageBase. This function
|
||
will scan the configured Message Base directory for existance of either
|
||
JAM or Squish datafiles. For each message base MUTIL finds, it will
|
||
create a Message Base in Mystic if one does not already exist.
|
||
|
||
You must add "Import_MessageBase = true" to your GENERAL header in
|
||
mutil.ini, and then configure the template message base settings for
|
||
newly created bases in a [ImportMessageBase] section. See the default
|
||
MUTIL.INI for an example.
|
||
|
||
+ E-mail messages are now included in QWK packets.
|
||
|
||
+ Added additional support for the QWKE packets. Mystic will now generate
|
||
the appropriate QWKE data to tell the reader if the message base is
|
||
public or private, if reading is forced, if real names or handles should
|
||
be used, and whether or not they have access to post/reply to the area.
|
||
|
||
+ Rewrote the status bar on the local console (in Windows) to use the color
|
||
values set in the configuration.
|
||
|
||
+ Message QuickScan (MQ) menu command now has two new options:
|
||
|
||
/YOU - Only show base if it has messages address to you
|
||
/NEW - Only show base if it has new messages
|
||
|
||
! Fixed a bug which caused the nodelist text search to not work.
|
||
|
||
+ The "startup" MPL program that is executed if it exists after ANSI
|
||
detection and theme assignment can now set the user login and password
|
||
to bypass the internal login functions. You must set to two variables:
|
||
|
||
UserLoginName
|
||
UserLoginPW
|
||
|
||
So for example if I had a startup.mpx that simply did this:
|
||
|
||
Begin
|
||
UserLoginName := 'g00r00';
|
||
UserLoginPW := 'mypassword';
|
||
End;
|
||
|
||
It would automatically log in as g00r00 and bypass the normal login/pw
|
||
stuff. This combined with newuserapp.mpx allows you to completely
|
||
rewrite login and newuser functions in MPL if you'd like to.
|
||
|
||
+ The Read Messages menu command (MR) now has the option to pass /NOLR
|
||
in the optional data. If this is found, Mystic will not update the
|
||
users last read pointers after reading.
|
||
|
||
You MUST still supply the read type as the first character. So for
|
||
example:
|
||
|
||
Command: MR
|
||
Optional data: Y /NOLR
|
||
|
||
Would read all messages addressed specifically to that user, but would
|
||
not set their last read pointers.
|
||
|
||
+ The Message New Scan (MN) now has the option to supply /NOLR which will
|
||
cause the users last read pointers to NOT get updated during this
|
||
message scan.
|
||
|
||
+ New Menu Command -R will set the value of the "OK" acs flag. The
|
||
optional data of 0 will set the OK flag to return false, or 1 will set
|
||
it to return true.
|
||
|
||
+ New ACS function: ON. This returns true if the last performed message
|
||
"Quick scan" found new messages or if the last performed Email check
|
||
found unread emails.
|
||
|
||
+ New ACS function: OY. This returns true if the last performed message
|
||
"Quick scan" found new messages addressed to the user.
|
||
|
||
+ The Message New Scan (MN) now has the option to supply /NOFROM which
|
||
will skip over any messages FROM the user. This works in ALL reading
|
||
modes.
|
||
|
||
+ The Read Messages (MR) now has the option to supply /NOFROM which
|
||
will skip over any messages FROM the user. This works in ALL reading
|
||
modes.
|
||
|
||
+ The Message Quick Scan (MQ) command now has the option to supply
|
||
/NOFROM which will not count any messages FROM the user in the scan.
|
||
|
||
+ Added a new menu "personalscan.mnu" into the default install menu
|
||
directory which demonstrates many of the new message reading/scanning
|
||
functions.
|
||
|
||
- MPL GetMBaseStats has changed in a few ways. First, it has been renamed
|
||
to "getmbstats" and now has two additional parameters:
|
||
|
||
#1: Message base number
|
||
#2: Exclude messages FROM the current user in stats? T/F
|
||
#3: Exclude personal messages that have already been read? T/F
|
||
#4: Total messages (this is a VAR parameter)
|
||
#5: New messages (this is a VAR parameter)
|
||
#6: New messages to you (this is a VAR parameter)
|
||
|
||
+ Mystic now tracks if ANY message (public or private) has been read by
|
||
the user the message is addressed to. You MUST replace your old
|
||
message header flags prompt with the new one to include the received
|
||
flag at the end:
|
||
|
||
; Msg header flags text one word each separated by a space
|
||
; 1=Local 2=Echo 3=Private 4=Sent 5=Delete 6=Received
|
||
490 Local Echo Private Sent Deleted Rcvd
|
||
|
||
! Fixed a bug that could cause private messages to not be marked as private
|
||
when uploading a QWKE REP packet.
|
||
|
||
+ Two new prompt info codes added to prompt #127 (read email? prompt):
|
||
|
||
&1 = number of emails
|
||
&2 = number of unread emails
|
||
|
||
In addition, the Yes/No prompt defaults to NO if they do not have any
|
||
unread emails, or YES if they do.
|
||
|
||
+ The Read Messages command (RM) now allows for the option /NOREAD which
|
||
will skip over any message marked as received. A received message is
|
||
classified as a message addressed to the current user that has already
|
||
been read.
|
||
|
||
+ The Message New Scan (MN) command now allows for the /NOREAD option.
|
||
|
||
+ The QuickScan command (MQ) now allows for the /NOREAD option.
|
||
|
||
- Removed QuickScan header prompt and /NOHEAD option. It was pointless and
|
||
could easily be done in a menu if yo someone wanted it.
|
||
|
||
+ Added prompts that will be displayed when setting the last read pointer
|
||
within the message readers. The two new prompts are:
|
||
|
||
; Standard message reader: Lastread pointer set &1 = msg number
|
||
504 |CR|11Last read pointer has been set to message number |&1.|CR|CR|PA
|
||
|
||
; Lightbar reader: Lastread pointer set &1 = msg number
|
||
505 |CR|11Last read pointer has been set to message number |&1.|CR|CR|PA
|
||
|
||
+ Added a /LIST option to the QuickScan which will list out messages based
|
||
on the options presented. The following new prompts need to be added:
|
||
|
||
; QuickScan message list header &2=basename
|
||
506 |15From Base Subject|CR|09=============== ==================== ==========================================
|
||
|
||
; QuickScan message list middle
|
||
; &1=msg# &2=basename &3=from &4=to &5=subject &6=date
|
||
|
||
507 |10|$R15|&3 |09|$R20|&2 |11|$R42|&5
|
||
; QuicScan message list footer
|
||
|
||
508 |09|$D79=|CR
|
||
|
||
<ALPHA 28 RELEASED>
|
||
|
||
+ Prompt #490 has been changed to separate message header flags by comma
|
||
instead of space. This allows the ability to completely exclude certain
|
||
flags (ie if you never want a Local flag you can just remove it and leave
|
||
the comma)
|
||
|
||
; 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,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.
|
||
|
||
+ The ansi viewer now has a help file option. The format of the optional
|
||
data has changed for the GV menu command so you will need to change it
|
||
if you are using it.
|
||
|
||
<template><helpfile><displayspeed><filename>
|
||
|
||
IE:
|
||
Command: GV
|
||
Data: ansiviewer;ansivhelp;0;myansi
|
||
|
||
! Fixed a bug in Zmodem that could cause a locked node if carrier was
|
||
dropped at a certain point during Zmodem upload initialization.
|
||
|
||
+ 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. 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)
|
||
|
||
! The ANSI art gallery would crash if the directory passed to it did not
|
||
exist.
|
||
|
||
+ Mystic now allows the column size to be defined within a theme. Valid
|
||
values are 40 or 80 columns.
|
||
|
||
+ 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 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>
|
||
|
||
+ Added new INBOUND and OUTBOUND echomail directories into the System
|
||
Configuration.
|
||
|
||
+ Added new Echomail node editor. This allows you to configure nodes which
|
||
you are going to exchange echomail from, either an uplink or downlink. In
|
||
addition, you can view/edit the list of message bases configured for
|
||
export to that node.
|
||
|
||
+ Message bases now have a echomail TAG option which is intended to include
|
||
the bases's echomail tag from .NA files.
|
||
|
||
+ Message bases now have an "Export To" option where up to 2 million
|
||
echomail nodes can be linked to each message base. This relationship with
|
||
nodes can also be edited from the Echomail node editor.
|
||
|
||
! Fixed a bug which would cause the file to be deleted if you tried to
|
||
move it to the new file base. Mystic should check now and give an
|
||
error.
|
||
|
||
+ Message base global editor now confirms the number of different settings
|
||
you will be updating before it does. This will help prevent people from
|
||
claiming its buggy because they forgot to select "Yes" on a setting! :)
|
||
|
||
+ The MUTIL mass upload function now has the ability to ignore files when
|
||
performating the mass upload. The list can contain up to 100 ignore
|
||
masks (supporting ? and * wildcards). For example under your header
|
||
for [MassUpload] you can add them:
|
||
|
||
[MassUpload]
|
||
|
||
ignore = files.bbs
|
||
ignore = *.readme
|
||
|
||
! Fixed a bug with sending Netmail using the text file post menu command
|
||
|
||
+ Mystic will now attempt to perform AKA matching on the origin address
|
||
of netmail messages. If you have a netmail base configured as the address
|
||
of 1:111/111 but you send a Netmail to 911:111/111, Mystic will switch the
|
||
origin address to your 911 AKA (if you have one configured in Network
|
||
addresses).
|
||
|
||
+ Message quoting will now indent itself by a single character to better
|
||
facilitate separation from regular text. The text will wrap and
|
||
reformat itself so no text should be lost.
|
||
|
||
+ The full screen editor now shows a different text color for quoted text.
|
||
The attributes are defined in the template file (ansiedit.ans). The
|
||
attribute of |!1 is the standard text color, and the attribute of |!2 is
|
||
the quoted text color.
|
||
|
||
+ If you change message base's storage filename or path, Mystic will now ask
|
||
you if you want to physically rename them on disk too upon leaving the
|
||
base editor.
|
||
|
||
+ MUTIL now has a full binkley-style 5D echomail importer and exporter. It
|
||
can autocreate new bases, perform dupe checking, and push duplicate msgs
|
||
to their own base. All node configuration, echos, and export info comes
|
||
from within the new editor options with Mystic's configuration.
|
||
|
||
Please review MUTIL.INI for the two new added functions for import/export
|
||
|
||
There are a few things left on my TODO list before I consider everything
|
||
pretty much functional. I have two networks setup using only Mystic and
|
||
it is able to interact fine so far (Fido and Agora) with both Echo and
|
||
Netmail - so it DOES work, however, please review the current TODO:
|
||
|
||
1. Does not support exporting to point nodes.
|
||
2. Does not properly create reply chain links when importing
|
||
3. Netmail routing/passthrough does not exist yet. You can only export
|
||
netmail to a configured uplink or downlink. This is a big issue
|
||
when using networks like Fido that have multiple zones.
|
||
4. Does not have the option to keep "last scanned" pointers when
|
||
exporting mail. This means that it searches all of your messages when
|
||
exporting. This doesn't effect features, just the speed of exporting
|
||
messages.
|
||
|
||
The basic setup is this:
|
||
|
||
0. Set your inbound and outbound directories in the System Paths.
|
||
|
||
1. Edit echomail message bases to set their ECHOTAG value (match
|
||
whatever they are from the .NA definitions). Make sure you don't
|
||
forget to set your origin address / base type!
|
||
|
||
2. Configure any nodes that you want to import/export echomail with
|
||
using the Echomail Node editor.
|
||
|
||
3. Link each message base to the node that you want to export messages
|
||
to. You can do this either by node (using Echomail Node editor)
|
||
or by attaching nodes to a specific message base (using the Message
|
||
base editor).
|
||
|
||
4. If you want to use a base for duplicate messages, see information
|
||
inside of MUTIL.INI
|
||
|
||
5. If you want to auto-create message bases when a new echobase is
|
||
found, see information inside of MUTIL.INI
|
||
|
||
6. Turn on importing/exporting in MUTIL.INI.
|
||
|
||
7. Set one echomail address as your PRIMARY address. This will be
|
||
what the root outbound directory you defined in system configuration
|
||
will use. When a echomail message for a non-primary address is
|
||
found Mystic will replace the last directory with the domain and
|
||
zone. So for example if your root is:
|
||
|
||
c:\mybbs\echomail\out\
|
||
|
||
And you have Fido as your primary, a message posted to Agora net
|
||
will be created in:
|
||
|
||
c:\mybbs\echomail\agoranet.02e\
|
||
|
||
The 5D BSO outbound format doesn't append to the base outbound
|
||
directory as you would expect. Because of this, I recommand setting
|
||
the default outbound to include the primary address network domain.
|
||
|
||
So for example, if you have FidoNet as your primary address, set your
|
||
outbound directory to include the primary's domain:
|
||
|
||
c:\mybbs\echomail\out\fidonet\
|
||
|
||
This will mean that Mystic will then create the following using the
|
||
above example:
|
||
|
||
c:\mybbs\echomail\out\agoranet.02e\
|
||
|
||
I know all of this is confusing and stupid, but I didn't create the
|
||
standard I'm only dealing with it! :)
|
||
|
||
8. At your own risk: Delete FastEcho, GEcho, CrashMail, etc. :)
|
||
|
||
NOTE that the first time you run the export function of MUTIL it may
|
||
toss all messages in your bases, depending on what tosser you used
|
||
before Mystic's tosser. You can just delete all the packets in your
|
||
outbound directory after running it the first time. This problem will
|
||
go away once tossing is finished.
|
||
|
||
! Fixed a bug that could cause the user editor to crash directly after a
|
||
new install if you didn't create your SysOp account first.
|
||
|
||
+ The MBBSUTIL -fixindex function will now also check users for duplicate
|
||
perm index and attempt to fix them (along with the file/msg bases).
|
||
|
||
+ Added new event editor to replace the old crappy one. You should delete
|
||
event*.dat from your DATA directory. You will have to reconfigure your
|
||
events unfortunately (as if anyone even used them ever).
|
||
|
||
+ BBS events can now be executed on specific days of the week.
|
||
|
||
+ Old Voting booth editor has been replaced with the VD menu command used
|
||
to delete voting questions.
|
||
|
||
+ CTRL-B will now reformat paragraphs in the FS editor.
|
||
|
||
+ In the FSE the TAB key now works in insert mode meaning it will push and
|
||
wrap text by tabstop.
|
||
|
||
! Forced messages were able to be aborted sometimes while using the FS
|
||
editor and using the CTRL-A key to abort.
|
||
|
||
+ Toggling message base new scan and QWK scan can now accept commas, in
|
||
addition to range. For example: 1,3,7-9,15 will toggle bases
|
||
1, 3, 7, 8, 9, and 15.
|
||
|
||
+ Toggling file base new scan can now accept commas, in addition to range.
|
||
For example: 1,3,7-9,15 will toggle bases 1, 3, 7, 8, 9, and 15.
|
||
|
||
+ After toggling any base or range of bases, the list of bases will now
|
||
automatically redisplay for both message, qwk, and file bases.
|
||
|
||
! Fixed a bug in the MPL user get functions that could cause a RTE 100.
|
||
|
||
! Installation will now properly create the file base directory for the
|
||
default upload filebase.
|
||
|
||
+ Installation now creates a DOCS directory off the root installation. This
|
||
will eventually contain documentation that hopefully doesn't suck. :)
|
||
|
||
+ Installation now creates default echomail in/out directories.
|
||
|
||
+ New program called FIDOPOLL has been added. This will poll or send mail
|
||
to configured echomail nodes using BINKP. This will eventually be baked
|
||
into MIS or MUTIL and will also include FTP echomail exchange as well as
|
||
QWK FTP networking. For now it just does BINKP.
|
||
|
||
This program does NOT run as a server (daemon) so it will only poll for
|
||
mail it will not allow nodes to connect to you to exchange mail.
|
||
|
||
<ALPHA 30 RELEASED>
|
||
|
||
+ Lots of changes to the MUTIL echomail import functions:
|
||
|
||
1. MUTIL will now process all PKT files with no regard of message type
|
||
(ie echo or netmail). It should now also process PKT files that
|
||
have a mix of each without crashing.
|
||
|
||
2. MUTIL will now ignore the base filename of PKT files meaning it will
|
||
attempt to process ALL incoming PKT files. MUTIL will check the PKT
|
||
header against the configured AKAs and if there is a match it will
|
||
import. If a PKT is found that is not addressed to a configured AKA
|
||
address, MUTIL will delete it.
|
||
|
||
3. For incoming echomail bundles, MUTIL will continue to first attempt
|
||
to match the bundle filename to a configured echomail node, but if a
|
||
configured node cannot be linked, it will attempt to find an archive
|
||
signature and use that to extract the bundle. Currently supported
|
||
signatures are ZIP, RAR, LZH, and ARJ.
|
||
|
||
If either a signature is found OR a link to an echomail node is found
|
||
it will attempt to import. Should both fail, MUTIL will no longer
|
||
delete the bundle instead it will only log the issue. This allows
|
||
the issue to be resolved without loss of echomail.
|
||
|
||
If it DOES succeed, MUTIL will process all PKT files using the same
|
||
logic that is described in #2 above.
|
||
|
||
4. MUTIL now reports status and percentage bars for each individual PKT
|
||
file when tossing a bundle, rather than just the bundle itself. In
|
||
addition, the logging will contain both the bundle and the PKT files
|
||
contained within it.
|
||
|
||
! Fixed a bug with the windows local console bleeding colors on a clear EOL
|
||
that was introduced in A30.
|
||
|
||
+ Added the footprint for the new reply functions (reply by current base,
|
||
email, netmail, or a selectable msg base). These are not functional yet,
|
||
but the internal changes have been made to allow for it. If you notice
|
||
wierdness during message replies let me know.
|
||
|
||
<ALPHA 31 RELEASED>
|
||
|
||
+ New option in System Config -> Message Base settings called "Forced NL
|
||
Match". If this is set to TRUE, Mystic will force a user who is sending
|
||
netmail to match an address found in the nodelist. If it is set to false
|
||
Mystic will still allow a user to search the nodelist, but if it does
|
||
not find a match they will still have the option to send the netmail.
|
||
|
||
+ When replying to a message, Mystic now gives the option to reply in the
|
||
current message base, BBS email base, or by selecting a new message base.
|
||
Four new prompts have been added for this:
|
||
|
||
; Message reply options (standard)
|
||
; &1=base name &2=reply to name &3=msg subject
|
||
509 |16|CL|09|17 <20> |15Message Reply |$X79 |16|CR|CR|03 Area: |11|&1|CR |03To: |11|&2|CR|03 Subject: |11|$R65|&3|CR|CR|09Reply area (|11ENTER|09) Current, |09(|11B|09)ase, |09(|11E|09)mail, |09(|11Q|09)uit? |14
|
||
|
||
; Message reply options (lightbar)
|
||
; &1=base name &2=reply to name &3=msg subject
|
||
510 |16|CL|09|17 <20> |15Message Reply |$X79 |16|CR|CR|03 Area: |11|&1|CR |03To: |11|&2|CR|03 Subject: |11|$R65|&3|CR|CR|09Reply area (|11ENTER|09) Current, |09(|11B|09)ase, |09(|11E|09)mail, |09(|11Q|09)uit? |14
|
||
|
||
; Message reply select base prompt
|
||
511 |CR|09Select message base for reply [|10?|09/|10List|09]: |11
|
||
|
||
; Message "replying to X base" prompt &1=base name
|
||
512 |CR|03Posting reply message to base |11|&1|03.
|
||
|
||
+ The message jump command in both lightbar and standard message readers
|
||
now use intelligent input for the message number.
|
||
|
||
+ MUTIL can now optionally remap incoming netmail messages by defining up to
|
||
50 sets of mappings under [EchoImport] address. For example:
|
||
|
||
[EchoImport]
|
||
forward = sysop;g00r00
|
||
forward = system operator;g00r00
|
||
|
||
+ Netmail exporting has been rewritten and now requires routing information
|
||
configured for each Echomail node. The first requirement is that any
|
||
netmail base must first be linked for export if you want it to be checked
|
||
for routing of netmail posted in that base.
|
||
|
||
Once linked, it must match the "Routing Info" defined for that node. In
|
||
general if you only have one uplink for that zone/network, you can use the
|
||
first example below. But if you have many uplinks for a single network it
|
||
will of course become more complicated.
|
||
|
||
Routing info is defined in the format of addresses separated by spaces and
|
||
uses an asterisk (*) as a wildcard. In addition to an address, a "NOT" can
|
||
be applied to each address by appending a ! and another address mask to it
|
||
which will then be excluded.
|
||
|
||
For example if you have are a FidoNet node in zone 1 and you want to route
|
||
all netmail posted to zones 1 through 5 to a specific downlink, you'd
|
||
configure the following Routing Info for that echomail node:
|
||
|
||
Routing Info | 1:* 2:* 3:* 4:* 5:*
|
||
|
||
For most cases that will do. For networks that only have one zone you'd
|
||
simply route just that zone. IE RandomNet zone 66 would just have 66:*
|
||
and you are done. But...
|
||
|
||
If for example, you had two FidoNet uplinks one at (1:123/1) and you
|
||
wanted to route all Netmail to your first uplink EXCEPT for Netmail
|
||
specifically addressed to your second uplink's NET you'd do this for your
|
||
primary uplink:
|
||
|
||
Routing Info | 1:*!1:123/* 2:* 3:* 4:* 5:*
|
||
|
||
This will cause ALL zone 1-5 netmail to be routed to that uplink EXCEPT
|
||
for netmail with a destination to 1:123/*. And then you'd configure your
|
||
second uplink to route ONLY net 123:
|
||
|
||
Routing Info | 1:123/*
|
||
|
||
Remember, only exported echomail nodes are eligible for routing, so in the
|
||
above example you'd link both FidoNet bases to your export and Mystic.
|
||
|
||
As usual with routing it can be confusing when you have very specific
|
||
routing needs but if you have only single uplinks then it can be pretty
|
||
straight forward. EXISTING echomail users need to go in and add their
|
||
routing information if they are using the internal tosser.
|
||
|
||
+ Message bases can now be tagged and deleted in bulk, along with their
|
||
message base data files.
|
||
|
||
+ Message base global editor can now add and/or remove an echomail link to
|
||
a selected list of bases.
|
||
|
||
+ New MPL filebase variable: "fbasefn" returns the file base's filename.
|
||
|
||
+ Added new utility program: ansi2pipe. This program converts ANSI files
|
||
to pipe color files and should compile for all operating systems that
|
||
Mystic compiles for. This program is not distributed with Mystic directly
|
||
but is on SourceForge.
|
||
|
||
+ New MPL function "GetMBaseTotal (Compress: Boolean) : LongInt". This
|
||
function returns the total message bases on the system. If Compressed
|
||
is true, then it will return the total number of message bases the user
|
||
has access to (slower to calculate). If it is false, it returns the raw
|
||
total number of bases on the system.
|
||
|
||
+ MPL variables can now be initialized by calling a function. This has
|
||
actually been in a for a while but I think I forgot to document it. For
|
||
example:
|
||
|
||
Var
|
||
TotalBases : LongInt = GetMBaseTotal(False);
|
||
Begin
|
||
WriteLn ('Total message bases: ' + Int2Str(TotalBases));
|
||
End.
|
||
|
||
+ New MPL procedure "GetMailStats" returns the number of e-mail messages
|
||
and the number of unread email messages:
|
||
|
||
Var
|
||
Total, UnRead: LongInt;
|
||
Begin
|
||
GetMailStats(Total, UnRead);
|
||
|
||
WriteLn ('You have ' + Int2Str(Total) + ' emails, ' + Int2Str(UnRead) + ' unread');
|
||
End;
|
||
|
||
+ The MC (check email) menu command now has the optional data /NOLIST. If
|
||
this is supplied Mystic will go straight to reading mail instead of
|
||
listing the messages and asking the user if they want to read e-mail.
|
||
|
||
+ New MPL vars: CfgNetDesc (array 1..30 of string[25] contains network
|
||
descriptions) and MBaseNetAddr (contains the network address target of
|
||
the message base). Ex:
|
||
|
||
Uses CFG, MBASE;
|
||
|
||
Begin
|
||
If GetMBase(1) Then
|
||
WriteLn ('Base #1 is in network: ' + CfgNetDesc[MBaseNetAddr]);
|
||
End.
|
||
|
||
<ALPHA 32 RELEASED>
|
||
|
||
! Fixed a small pipe code display bug in the new FS editor.
|
||
|
||
+ MUTIL echo import now ignores case of echotag when trying to match.
|
||
|
||
! MUTIL no longer adds netmail messages to a Binkley FLO file when exporting
|
||
echomail.
|
||
|
||
! FIDOPOLL no longer expects netmail packets to be in a FLO file.
|
||
|
||
+ Message base editor now has a Move command. You must first Copy a message
|
||
base, and then move to where you want to move it to and then /M to move it.
|
||
|
||
+ 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 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
|
||
new default follows:
|
||
|
||
; editing message display
|
||
296 |16|CL|09|17 <20> |15Message Editing |$X79 |16|CR|CR|09(|11A|09) |03To: |11|&1|CR|09(|11B|09) |03Subject: |11|&2|CR|09(|11C|09) |03Sent: |11|&3|CR|CR|09Edit option (|11!|09) Edit text, (|11Q|09)uit? |11
|
||
|
||
+ When Mystic gives an input prompt with a default text value, pressing a
|
||
backspace will now automatically erase the default. Likewise, typing any
|
||
key will erase the default.
|
||
|
||
+ Added a new flag into message bases called Pvt Reply. If this is set to
|
||
true then Mystic will allow private replies/posts to a message based
|
||
marked as public. This basically creates a "public/private" type base.
|
||
|
||
Two new prompts are added for this:
|
||
|
||
; Message post: "post msg as private" in pub/priv type base
|
||
513 |CR|12Post this as a private message? |11
|
||
|
||
; Message reply: "post msg as private" in pub/priv type base
|
||
514 |CR|12Post this as a private message? |11
|
||
|
||
! When using extended hotkeys in a standard menu (ie UP,DOWN,PGUP,DOWN,etc)
|
||
Mystic was bleeding input during some events, and also allowing input
|
||
and redrawing the menu when invalid input was entered. This is now fixed.
|
||
|
||
+ Further optimized the on-the-fly ANSI optimization generated by Mystic. I
|
||
think its probably not possible to make it more efficient now.
|
||
|
||
+ MUTIL now properly exports echomail and netmail for BSO-style point nodes.
|
||
|
||
+ FIDOPOLL now supports sending/receiving echomail for point systems.
|
||
|
||
! Fixed a bug in the QWK download system that could cause some networked
|
||
message bases to get corrupted.
|
||
|
||
+ Mystic now allows the network interface to be defined for its MIS servers.
|
||
If you want it to work the same as before, you MUST set the "Interface"
|
||
value in "System Configuration -> Internet Options" to "0.0.0.0" without
|
||
the quotes. ALPHA TESTERS: DO NOT SKIP THIS STEP! USE CTRL-Y WHEN
|
||
EDITING THIS FIELD AND VALIDATE THAT IT IS BLANK BEFORE SETTING THE
|
||
VALUE TO 0.0.0.0 (ie no spaces before or after etc).
|
||
|
||
If you specify 0.0.0.0 Mystic will try to accept ANY connection on a
|
||
specified port for all adapters. If you specify one in particular Mystic
|
||
will only bind, accept, and use connections from that network interface.
|
||
|
||
+ Added some new file buffer functions to replace the old stuff. In areas
|
||
where this is used (very few for now) there should be some speed up. Be
|
||
on the lookout for broken things.
|
||
|
||
+ When selecting message base during a reply, Mystic will now list all bases
|
||
the user has access to, instead of just the current group.
|
||
|
||
! 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>
|
||
|
||
! Mystic was not properly closing some files when resetting the message
|
||
base new scan pointer date.
|
||
|
||
! The FTP server will now gracefully handle data session timeouts (after
|
||
10 seconds) which should prevent FTP ghost users when there is a firewall
|
||
or network adapter configuration issue.
|
||
|
||
- Removed MPL support for GOTO labels.
|
||
|
||
- MPL/IPL syntax for not equal has been changed from "<>" to "!="
|
||
|
||
- Removed MakeTheme. Prompts are not longer required to be compiled. You
|
||
can delete *.thm from your DATA directory it is no longer used. You MUST
|
||
move your default.txt, etc, from your root Mystic BBS directory into your
|
||
DATA directory.
|
||
|
||
+ The N and P keys now go to next and previous pages in the full screen
|
||
ANSI viewer.
|
||
|
||
+ The MATRIX login will now use the matrix login prompts for ALL logins
|
||
from matrix login. This means that the standard login will now be
|
||
bypassed for menu command XL. Make sure your matrix login looks the
|
||
way you want after upgrading, if you use matrix.
|
||
|
||
! Fixed some quirkiness introduced in A33 around netmail.
|
||
|
||
! Lots of minor bug fixes that were mostly not reported.
|
||
|
||
+ The prompt to set the message base pointers by date now defaults to the
|
||
current date.
|
||
|
||
+ The FS editor quote window template has changed (ANSIQUOT). It now allows
|
||
the quote window size to be defined and all attributes. 3 screen info
|
||
codes are used:
|
||
|
||
!1 = Defines the text attribute and Y location where normal text ends
|
||
!2 = Defines the top Y location of quote window text and attribute
|
||
!3 = Defines the bot Y location of quote window and lightbar attribute
|
||
|
||
+ Added 3 new optional Screen Info codes to the FS editor (ANSIEDIT)
|
||
template which allow different types of text to be colored "on the fly".
|
||
|
||
If you do not want to use these features, just do not set them in your
|
||
template.
|
||
|
||
!4 = Defines the color of capital letters
|
||
!5 = Defines the color of punctuation
|
||
!6 = Defines the color of numbers
|
||
|
||
! Fixed issues with the ALT-GR key detection for international keyboards in
|
||
the Windows version.
|
||
|
||
<ALPHA 34 RELEASED>
|
||
|
||
+ MBBSUTIL -FSORT will now ignore file casing on case sensitive operating
|
||
systems.
|
||
|
||
+ When changing theme options involving single character input (field input
|
||
percentage bars, etc) Mystic will now prompt for the ASCII character
|
||
number.
|
||
|
||
+ When doing a message QuickScan (MQ) with the /LIST option, Mystic will now
|
||
pause when the users terminal screen is full (and allow them to abort the
|
||
scan as well).
|
||
|
||
! Mystic would get stuck in an endless loop if the MATRIX menu was turned
|
||
on but the menu didn't physically exist. It will not error and log that
|
||
the menu is missing.
|
||
|
||
+ When "Ask Theme at Connect" is ON, Mystic will now set the theme selected
|
||
as the users default theme. Previously it would reload their last used
|
||
theme regardless of what was selected on startup.
|
||
|
||
+ If the download directory doesn't exist when NodeSpy attempts a Zmodem
|
||
download, it will now tell you instead of crashing.
|
||
|
||
+ NodeSpy Terminal now allows the current connected phone book entry to be
|
||
edited while connected. This allows the password to be set, statusbar to
|
||
be turned on/off, etc.
|
||
|
||
+ NodeSpy Terminal now only updates the last call date and times called if
|
||
the connection was successful.
|
||
|
||
+ NodeSpy terminal now fully disconnects the session before displaying the
|
||
"connection terminated" box.
|
||
|
||
+ MPLC will now continue to attempt to compile subsequent MPL programs even
|
||
if one compilation fails.
|
||
|
||
+ Message Base QWK scan and regular scan settings now have the ability to
|
||
toggle ALL bases on or off at one time. An updated prompt goes along with
|
||
this:
|
||
|
||
; Message base new and qwk scan toggle prompt:
|
||
095 Toggle: |09[|11#-#,#|09], Select [|11A|09]dd ll, [|11R|09]emove All, [|11?|09/|11List|09]: |XX
|
||
|
||
! Fixed a bug in the matrix login after creating a new user.
|
||
|
||
! Fixed a bug when searching or doing new scans on a single file base which
|
||
could sometimes cause a crash.
|
||
|
||
! Broke BADIP.TXT recently. Fixed now.
|
||
|
||
! Fixed a bug with NodeSpy Zmodem download which would cause it to crash,
|
||
hopefully it will work better now? At least it shouldn't crash now either
|
||
way.
|
||
|
||
! Fixed a few other bugs and did some minor enhancements that no one will
|
||
notice. ;)
|
||
|
||
<ALPHA 35 RELEASED>
|
||
|
||
! Fixed a memory leak in the new theme prompt system. Mystic was leaking
|
||
about 30kb per login.
|
||
|
||
! Mystic should now will properly display the file base "display file"
|
||
before listing files.
|
||
|
||
! Date corruption with MUTIL echomail export has hopefully been fixed.
|
||
|
||
+ MPL now has the ability to interface directly with internal Mystic BBS
|
||
classes. This opens up a whole world of new possibilities in the future
|
||
(for example) sockets, full remote ANSI screen library (boxes, listboxes)
|
||
data sorting, and more.
|
||
|
||
Classes must first be created and then freed after using. Mystic will
|
||
create the class instance and return a handle to that specific class to
|
||
use with the functions. Finally, the class is freed. Two new functions
|
||
go with this:
|
||
|
||
ClassCreate (ClassHandle, ClassType)
|
||
ClassFree (ClassHandle)
|
||
|
||
+ MPL now supports the ANSI box class. There are three functions which
|
||
go along with this: BoxOpen, BoxClose, and BoxOptions. The Box class
|
||
will automatically save and and subsequently restore the text under the
|
||
box when it is closed.
|
||
|
||
See TESTBOX.MPS for an example.
|
||
|
||
+ MPL now supports the ANSI input class. There are several functions which
|
||
go along with this: InputString, InputNumber, InputEnter, InputOptions.
|
||
This class allows you more freedom over input functions than the standard
|
||
MPL input functions do.
|
||
|
||
See TESTINPUT.MPS for an example.
|
||
|
||
+ MIS FTP server now will display 'ftpbanner.txt' from the DATA directory
|
||
if it exists when a user connects via FTP.
|
||
|
||
! Once a default protocol was selected, the GE command (option 22) to change
|
||
the default was not working.
|
||
|
||
+ MPL now supports ANSI screen class. This allows the ability to save and
|
||
restore portions of the user's screen. The example below saves the screen
|
||
coordinates defined as: X1:20, Y1:5, X2:60, Y2:10. It then clears the
|
||
screen and then restores the saved portion of the screen.
|
||
|
||
Var SavedScreen : LongInt;
|
||
|
||
ClassCreate (SavedScreen, 'image');
|
||
ImageGet (SavedScreen, 20, 5, 60, 10);
|
||
|
||
ClrScr;
|
||
WriteLn ('Press a key to restore');
|
||
|
||
Pause;
|
||
|
||
ImagePut (SavedScreen);
|
||
ClassFree (SavedScreen);
|
||
|
||
Pause;
|
||
|
||
<ALPHA 36 RELEASED>
|
||
|
||
! Fixed an issue with useropts variable in MPL which could cause memory
|
||
corruption.
|
||
|
||
! Fixed two leaked file handles during QWK packet generation.
|
||
|
||
+ New MCI code: FT returns the total number of files in the current file
|
||
area.
|
||
|
||
+ MIS BINKP server is now active. Configuration is in the system
|
||
configuration with the rest of the servers.
|
||
|
||
+ All MIS servers now maintain their own independant log files in the LOGS
|
||
directory, assuming "Server Logging" is turned on in Internet Server
|
||
Options.
|
||
|
||
+ In order to maintain consistancy and for easier file association, telnet
|
||
node logs have changed from "sysop.nodenumber" to "node<nodenumber>.log"
|
||
in the logs directory.
|
||
|
||
+ Users can now be flaged as "QWK Network Account" in the User editor.
|
||
Account names should be the same as their QWK Network BBSID. These users
|
||
will bypass a majority of the login procedures and can have their own
|
||
distinct start menu (found in General Settings). A new default menu called
|
||
"qwknetwork.mnu" has been included as an example of how one should likely
|
||
be setup.
|
||
|
||
+ Message bases can now be flagged as "Allow QWK Networking" which means that
|
||
the message base will be allowed to be selected for scanning by QWK network
|
||
scans.
|
||
|
||
+ The OS menu command (Set QWK scan settings) now has the /QWKNET option
|
||
available in command data. This limits the message bases listed to ONLY
|
||
show bases flagged for QWK networking.
|
||
|
||
+ The OE menu command has been removed. Instead, a setting now saves the
|
||
users preference of QWK or QWKE packets. You will need to update your
|
||
QWK menu to remove this command and to add the toggle of the QWKE packet,
|
||
or you can optionally use the new qwk.mnu included as a guide/replacement.
|
||
|
||
+ New Menu command GE (edit user preferences) optional data: 33. This
|
||
toggles the user's preference for QWKE style packets on or off.
|
||
|
||
+ New MCI code QE returns Yes/No based on the users QWK Extended setting.
|
||
|
||
+ The MD menu command (set message lastread pointers) now has the optional
|
||
data option of /ALL. If this is used, Mystic will NOT has if the user
|
||
wants to update their current base, and will instead force the update for
|
||
all message bases.
|
||
|
||
! Mystic was changing the user's message base to the last base processed
|
||
when globally resetting the new message scan date.
|
||
|
||
! Fixed a bug that could cause a lockup in the FS editor when using the TAB
|
||
key.
|
||
|
||
+ The FTP server now accurately reports the file date during file listings.
|
||
|
||
+ The FTP server now accurately reports directories (filebases) based on the
|
||
actual time the file base was created in Mystic.
|
||
|
||
+ When editing the FTP directory name for a file base, / and \ characters
|
||
are now automatically converted to _ so it does not conflict with FTP. If
|
||
you have existing FTP names set for your file bases, you must open them in
|
||
the file base editor for their names to be automatically changed.
|
||
|
||
+ Users can now download QWK packets using the FTP server. A QWK packet
|
||
filename will be shown in all FTP listings. If the user is flagged as a
|
||
FTP network account, their handle will be used as the BBSID for the QWK
|
||
packet (handle.qwk).
|
||
|
||
+ Users can now upload QWK reply packets using the FTP server. If the user
|
||
is flagged as a FTP network account, their reply packet will need to be
|
||
"handle.rep".
|
||
|
||
+ The file base configuration editor now allows bulk file base deletion
|
||
if a list of bases are tagged when delete is requested.
|
||
|
||
+ Mystic's FTP server now supports uploading directly to Mystic's file bases
|
||
using FTP. It will also attempt to use the archive configuration to import
|
||
FILE_ID.DIZ files.
|
||
|
||
+ MIS server status updates and logging now use a MMM DD format date instead
|
||
of MM/DD which was confusing/annoying for people outside of North America.
|
||
|
||
+ Mystic's node logging now uses MMM DD format date instead of MM/DD/YY.
|
||
|
||
+ The FTP server now allows resumed uploads via the APPE function.
|
||
|
||
+ System configuration now has a QWK Networks configuration editor, where
|
||
one or more QWK networks can be defined.
|
||
|
||
+ Message base editor now allows each message base to be linked to a
|
||
configured QWK network. In addition, each message base also now has a QWK
|
||
network conference ID number.
|
||
|
||
+ Users can now be linked to a configured QWK network using the User editor.
|
||
This defines the QWK network message bases that they have access to if
|
||
they are flagged as a QWK network account.
|
||
|
||
+ Mystic's QWK system no longer forces all upper case user names and
|
||
subjects.
|
||
|
||
+ A new temporary QWK mailer has been included called QWKPOLL. This will
|
||
allow you to function as a node of a QWK network. It will connect via FTP
|
||
to your network hub, send them a REP packet of new messages, download a
|
||
QWK packet of new messages, and toss them into the BBS message bases all
|
||
automatically.
|
||
|
||
+ QWK and QWKE Networking (as a HUB and a NODE) has been implemented. This
|
||
implementation also allows you to be a part of multiple QWK networks and
|
||
even HUB them in addition to being members of several - all with separate
|
||
access management.
|
||
|
||
NOTE: All setups require you to have defined your QWK packet ID in
|
||
the Local QWK settings. This is the filename of the QWK packets
|
||
generated from your BBS or uploaded to your BBS.
|
||
|
||
SETTING UP AS A NODE OF A QWK NETWORK
|
||
=====================================
|
||
1. Create a new QWK network profile in the System Configuration ->
|
||
QWK Networks and set the member type to Node. When you join a QWK
|
||
network you should get all of the details required to fill in the
|
||
rest of the settings.
|
||
|
||
2. For each message base in the QWK networking:
|
||
A. Create message base in the message base editor.
|
||
B. Set message base type to echomail
|
||
C. Set QWK Network to point to your newly created QWK network.
|
||
D. Set the QWK Conference ID for the base. This is specific to
|
||
the network and should be provided to you along with the list
|
||
of bases when joining the network.
|
||
|
||
3. Thats it. When you run QWKPOLL it will attempt to connect to your
|
||
QWK networking hub and exchange/import messages for you for each
|
||
base (via FTP).
|
||
|
||
SETTING UP YOUR OWN QWK NETWORK
|
||
===============================
|
||
|
||
1. Create a new QWK network profile in the System Configuration, and
|
||
set the member type to HUB.
|
||
2. Create your message bases in the same way that you would as a node
|
||
(see above), except you need to make up a unique QWK conference number
|
||
for each message base. This number should be unique across all QWK
|
||
networks and needs to be provided to your nodes. Mystic itself does NOT
|
||
require that each base is unique across all networks, but it appears
|
||
that other software does require this.
|
||
|
||
These two steps are all that is needed to create your own network!
|
||
|
||
Now for each node that is a part of your network, you need to give them
|
||
a list of the conference IDs you created for each base you've created
|
||
for your network.
|
||
|
||
Next you need to login and create a new user, or instruct the Sysop of
|
||
your node to create an account using a unique BBS ID. For example, my
|
||
BBS is Sector 7 so I would create a user named "sector7". Once the
|
||
user is created, set the user's "Qwk Networking Acount" flag in the
|
||
user editor to TRUE and then associate them to the network you've
|
||
created (also in the user editor).
|
||
|
||
From now on when the user calls and logs in as their BBS ID (sector7 in
|
||
this example), they will be given a menu which allows them to select
|
||
which networked bases to subscribe to, in addition to resetting scan
|
||
pointers, etc.
|
||
|
||
Once that is done and the person has their client side setup, then can
|
||
connect to the MIS FTP server and login with the BBSID and password. From
|
||
this point they can download bbsid.qwk and upload bbsid.rep to the FTP
|
||
server to exchange mail. If they are also using Mystic, QWKPOLL will do
|
||
all of that for them!
|
||
|
||
! MUTIL should now generate a MSGID when posting text files to an echomail
|
||
base.
|
||
|
||
+ MUTIL logs now use MMM DD YYYY date stamps, instead of MM/DD/YY.
|
||
|
||
+ MUTIL now has a MergeNodeLists function which will scan for nodelist
|
||
files to find the most recent nodelists, then combine them and copy them
|
||
into the Mystic DATA folder so they can be used for node lookups. It also
|
||
supports merging archived nodelists. See MUTIL.INI for more information.
|
||
|
||
+ Mystic's terminal library in Linux will now attempt to detect terminal
|
||
screen size before switching to 80x25, and will also attempt to restore
|
||
screen size upon exit.
|
||
|
||
<ALPHA 37 RELEASED>
|
||
|
||
+ Mystic now creates "echomail.in" whenever it receives a new file from an
|
||
authenticated connection via the BINKP server.
|
||
|
||
+ The semaphore files named echomail.now, newsmail.now, and netmail.now
|
||
have all been changed to .out, ie echomail.out, newsmail.out, netmail.out
|
||
You will need to update any scripts that key off of those files.
|
||
|
||
+ Mystic now creates "qwkmail.out" whenever new messages have been posted
|
||
in a base assigned to a QWK network.
|
||
|
||
+ MUTIL EchoImport function now deletes echomail.in semaphore file after
|
||
it is done tossing messages.
|
||
|
||
+ MUTIL EchoExport function now deletes echomail.out semaphore file after it
|
||
is done exporting messages.
|
||
|
||
! Fixed a problem with the BINKP server and CRAM MD5 authentication.
|
||
|
||
! Fixed a problem with FIDOPOLL and BINKP where a file transfer would appear
|
||
to get stuck in certain situations when a file was skipped.
|
||
|
||
! Fixed a compatibility issue with the BINKP server when used against a BINKD
|
||
client.
|
||
|
||
! Fixed a bug when posting messages via NNTP. Since there is no "To" in
|
||
NNTP, Mystic now sets all posts to "To: All". This fixed a problem where
|
||
some messages posted via NNTP were not showing up inside of Mystic.
|
||
|
||
! Fixed: Posts to networked bases via NNTP were not adding origin lines.
|
||
|
||
! BINKP server should now properly escape filenames with spaces in them.
|
||
|
||
+ When tossing ECHOMAIL PKT files and bundles, Mystic will now sort the
|
||
entire incoming directory by filename and then filename as a secondary and
|
||
process each PKT or bundle in order.
|
||
|
||
+ When tossing an ECHOMAIL bundle, Mystic will now extract the bundle and
|
||
then sort the contents of the bundle by filedate and secondly by filename,
|
||
then process each PKT in the sorted order.
|
||
|
||
+ The message base editor now has a new function /R (Reset messages). This
|
||
will take a single base or a selection of tagged bases and remove ALL
|
||
messages in them without effecting your user's new scan/qwk scan settings
|
||
OR the echomail linkage. IF bases are tagged before /R Mystic will also
|
||
offer to reset the echomail duplicate tracking pointers as well.
|
||
|
||
+ QWKPOLL should now provide more detail during the polling process,
|
||
including possible data port issues and when the HUB does not have a QWK
|
||
packet with new messages for you.
|
||
|
||
! Fixed a bug where Mystic would incorrectly address routed Netmail in both
|
||
the header and INTL kludge. This could cause tossers to not correctly
|
||
reroute netmail to the correct destination.
|
||
|
||
! Fixed a bug in BINKP protocol on the client side where the client was not
|
||
sending the proper SKIP filesize back to the server. With BINKD this
|
||
could cause the BINKD server to just wait until the session times out
|
||
instead of sending EOB.
|
||
|
||
+ FIDOPOLL can now poll a single node by the address. IE:
|
||
fidopoll 46:1/100
|
||
|
||
+ FIDOPOLL now logs to "fidopoll.log" in the logs directory.
|
||
|
||
! SEEN-BY and PATH kludge lines are no longer added to exported netmail
|
||
messages.
|
||
|
||
+ Mystic will now flush the buffer after displaying the Inactivity timeout
|
||
prompt so that your remote users will actually see it!
|
||
|
||
+ When sending NETMAIL, Mystic's nodelist browser will now filter out any
|
||
nodes which are part of net "0" in the address searches. Using the browser
|
||
menu command will still show them. Assuming you have Forced NL compliance
|
||
turned on, this will prevent users from ever being able to select a net 0
|
||
address.
|
||
|
||
+ Mystic's netmail fowarding will now strip leading and trailing spaces in
|
||
case of typos in the .INI.
|
||
|
||
! Netmail messages will no longer export from MUTIL if their destination
|
||
address is one of your configured AKA addresses.
|
||
|
||
+ Mystic echomail nodes can now be configured as a "Directory" session type,
|
||
which means that Mystic (FIDOPOLL) will send bundles to/from locally
|
||
configured inbound and outbound directories instead of using BINKP or FTP.
|
||
|
||
! Mystic's FTP server was not sending the QWK packet name in directory
|
||
listings when the NLST command was used (instead of LIST).
|
||
|
||
+ When importing a FIDONET.NA format file, or when creating message bases
|
||
during echomail import OR when using the ImportMsgBase function, MUTIL
|
||
will now change any filenames (calculated from ECHOTAG) to replace both
|
||
\ and / with a _ character.
|
||
|
||
+ Mystic echomail nodes can now be configured as a "FTP" session type, which
|
||
means Mystic (FIDOPOLL) will send/receive bundles with their uplink using
|
||
the FTP protocol (as opposed to BINKP or Directory).
|
||
|
||
+ Added the ability to turn off showing the user's QWK packet in FTP
|
||
directory listings (Internet Servers > FTP)
|
||
|
||
+ The autocreating message base while Importing Echomail can now have a
|
||
lowercase_filename = 1 value to convert all msg base filenames to lower
|
||
cased. This was previously only available in FIDOBONE/FIDONET.NA
|
||
importing but it works under [ImportEchoMail] now too
|
||
|
||
! When hubbing FTN point systems, if you had multiple point systems their
|
||
PKTs were all getting stuffed into one bundle. Fixed.
|
||
|
||
+ FIDOPOLL's FTP send client will now list echomail packets on the remote
|
||
server and automatically increment packet names (ie we1->we2) until it
|
||
finds an unused packet name on the remote server.
|
||
|
||
! Fixed a bug when using spaces in menu filenames which caused the menu
|
||
editor to fail to edit, copy, and delete menus.
|
||
|
||
! When posting a text file to a netmail base using the MX menu command, the
|
||
origin address was not begin AKA matched with the destination address.
|
||
|
||
! MIS telnet in Linux should no longer create zombie processes.
|
||
|
||
+ Inactivity timeout is now disabled when running Mystic with the -CFG
|
||
option from the command line.
|
||
|
||
! MUTIL import of FIDONET.NA will now not blow up if you used tabs instead
|
||
of spaces to separate echotag with description.
|
||
|
||
! MUTIL import of FIDOBONE.NA will now not blow up if you used tabs instead
|
||
of spaces to separate tag with description.
|
||
|
||
! MUTIL import of FIDOBONE will now replace / and \ characters when
|
||
calculating the datafile name, if they exist in the echotag.
|
||
|
||
+ Changed the filename format used when Mystic generates PKT filenames in
|
||
bundles and when sending ?UT files:
|
||
|
||
Old way: Day of month + Hour + Minutes + Seconds
|
||
New way: Hex(Day + Seconds past midnight + Hundredth of seconds)
|
||
|
||
This allows truely unique names down to the hundred of a second for a one
|
||
month period. It solves all collision issues caused by the old way!
|
||
|
||
<ALPHA 38 RELEASED>
|