User Tools

Site Tools


whats_new_108

Mystic BBS v1.08 - What's New

Every Mystic BBS archive contains a WHATSNEW.TXT file that tracks the development of Mystic BBS for the version related to that archive.

This page contains notes from the author (g00r00) during the development of Mystic BBS v1.08

It outlines what is a new or changed feature, a bug fix, or something that has been removed.

In order to interpret each entry below, the following key explains the nature of each change that has been noted in the WHATSNEW.TXT for this version of Mystic BBS.

! = Bug fix
+ = New or changed feature
- = Removed

If you spot something you think looks amiss with these notes please contact us using the contact info found on this Wiki.

Version 1.08

 + New MPL function: GETUSERTIME returns the number of minutes the user
   has remaining.

 ! Kludge lines were not getting filtered out in standard message reader
   mode.  This also caused a problem creating REPLYID tags in networked
   message bases.

 ! MCFG would exit out to the prompt when CTRL-C was used to copy a menu
   command in the menu editor.

 + Added IP blocking into Mystic's Telnet server (TSERVER).  The file
   IPBLOCK.TXT can now be placed into the data directory and contain a
   list of IP addresses which should be blocked.  An asterics can be used
   to block a mask of addresses.  Each address needs to be in the format
   of #.#.#.# and only one address can be specified on a single line.  For
   example:

      204.186.*.*
      24.67.213.*
      24.87.321.534

 + Completely rewrote MYSTPACK to fix some problems with the way the
   previous version packed the message bases.  Gone should be the crashes
   and any problems with last read pointers being screwed up because of
   MYSTPACK.  Also added the -pack command line, which is now required
   in order to start packing the bases. IE: mystpack -pack -skipfirst. Some
   minor cosmetic changes have been made.  A spinning cursor has been added
   while each base is getting packed, and the total number of messages and
   bytes removed are displayed or each base along with a total for all
   bases after all packing has been completed.

 ! MPL: Fixed a bug which caused some of the MBASE variables to get
   corrupted.

 ! MCFG: Fixed a minor aestetics error in the global file base editor.

 + Added a daily history system.  Mystic will now track the following
   things on a daily basis: emails, posts, downloads, uploads, upload KB,
   download KB, calls, and new users.  A new menu command (G1) has been
   added to view all the daily history, and the following new prompts have
   been added:

      ; no history data
      454 |CR|12No history data available.|CR|CR|PA
      ; history header
      455 |CL|15Daily System History|CR|CR  Date    Calls  New    Posts  Email  DLs    DLkb       ULs    ULkb|CR|08|$D79-
      ; history list
      ; &1=date  &2=calls  &3=newusers  &4=posts  &5=emails  &6=dls  &7=dlkb
      ; &8=uls   &9=ulkb
      456 |07|&1  |$R05|&2  |$R05|&3  |$R05|&4  |$R05|&5  |$R05|&6  |$R09|&7  |$R05|&8  |&9
      ; history footer &1=total days
      457 |08|$D79-|CR|15* Total days: |&1|CR|CR|PA

 ! The extended descriptions in the file list compiler were off by a single
   character.  Fixed.

 + Added message scan date setting.  Users can now set the message last read
   pointers based on a date.  A new menu command of MD accesses this
   function, and a few new prompts have been added:

      ; msg scan date prompt
      458 |CR|09Enter new message scan date |01[|10|UF|01]|09: |11
      ; msg scan date global prompt
      459 |CR|12Set this date for all bases? |11
      ; msg scan date: updating pointers
      460 |CR|12Updating pointers: Please wait...

 + The [ and ] keys now work while editing files within file listings.

 + Mystic will now automatically rename any file name longer than 70
   characters (the maximum Mystic supports) during an upload or a mass
   upload.  It will keep the file extention if there is one and make the
   total filename length 70 characters.  If a file already exists with the
   new shortened name, Mystic will prompt for the user to enter a new file
   name for the file, and then rename it to whatever they type.  Pretty
   slick if you ask me. =]  A new prompt goes along with this:

      461 |CR|12File of this name already exists.|CR|CR|09Enter new file name (max 70 chars)|CR:

 + Mystic's internal user editor will now accept partial user searching as
   well as user record number jumping.

 + When importing FILE_ID.DIZ, Mystic will now strip off all extra blank
   lines of text.  So if a FILE_ID.DIZ has 10 blank lines before or after
   the description, Mystic will remove those 10 blank lines.

 + MPL: Expanded the maximum number of parameters passed in a procedure or
   function from 5 to 8.

 + Mystic can now set an ACS level for each node which a user must meet
   in order to login to that node.  This is found in the Modem/Node
   editor.  A changed prompt goes along with this:

      ; Node login ACS failed
      315 |CR|14You do not have access to call this node.

 + MPL: Added new MPL function: MCI2STR.  This function takes an MCI code
   and converts the value of the code into a string variable.

 + Added the /ALLGROUP optional data option into the QWK Download menu
   command.

 + Removed the Lightbar Yes/No configuration from the language settings
   into the language file as prompts.  You will need to replace the
   following prompts with the lightbar Y/N stuff:

      ; Lightbar Y/N: YES text
      316 |09|17Ý|15Yes|09Þ|16  |14N|11o |16
      ; Lightbar Y/N: NO text
      317 |14 Y|11es  |09|17Ý|15No|09Þ|16

 + Added a new option into the language settings.  There are now two input
   field colors, one being the color of the typed text, and the other
   being the color of the field itself.  This allows for some pretty cool
   input field combinations, when playing with these two settings and the
   input field fill character.

 + Added the language settings into MCFG, accessible via the language
   editor.

 + Added new 'percentage bar' system into MCFG's language configuration.
   The first percentage bar is the voting booth results bar.  It is now
   configured with the language editor and activated when the same Prompt
   Info MCI code as in the past.  This just allows more customization of
   the percentage bar.

 + Added a percentage bar into the lightbar message viewer.  The new
   configuration options for the message reader percentage bar can be
   found in the language editor of MCFG.  Two new and optional Screen
   Info MCI codes are now available in the ANSIMRD.XXX template file:

      !4 = The X/Y location and text attribute of the actual percentage
           of the message read (ie a number between 0 and 100).  If this
           code is not in the template, it will be ignored.

      !5 = The X/Y location of the percentage bar.  If this code is not in
           the template file, it will also be ignored.

 + Changed the clear screen functions in Mystic to send an ESC[2J rather
   than a ASCII #12 if the user has ANSI graphics.  This is a little more
   compatible with obscure terminals and telnet clients.

 + MCFG now saves the selected option when navigating menus, and keeps that
   option highlighted when returning to a previous menu.

 ! When the status bar was set to single line and a user paged the sysop,
   Mystic wouldn't update the statusbar properly to show the user name,
   chat reason, and chat commands.

 + MCFG: Added some extra checking in the sort functions.  This should
   prevent any sorting problems due to memory limitations in the file
   and message base editors.

 ! Fixed a bug which could cause some messages that were marked as deleted
   to still be readable.  In fact, they'd only be actually deleted when
   MYSTPACK was ran on the bases.

 ! MCFG: Fixed a very bad bug in the user editor.  If you selected CTRL-U
   to upgrade, then hit ESC to abort the upgrade, MCFG would upgrade the
   user to security level 255.  VERY BAD - BUT FIXED NOW!  SORRY!

 + Added the ability for message moving.  If a user was the original
   poster of the message, or if the user has SysOp access rights to the
   message base, they can move the message to any message base they have
   access to by pressing (M).  Changed prompts:

      ; Move message to where?
      282 |CR|09Move to which base (?/List):
      ; Moving message. &1=base name
      318 |CR|14Moving message to |15|&1|14...

 - Removed CTRL-Z and CTRL-R commands from the line mode text editor for
   compatibility with Linux.  Also removed prompt #161.

 + Removed CTRL-Z in the full screen editor and the full screen text editor.
   CTRL-Z was save in the text editor and CTRL-Z was help in the normal
   full screen editor.  The help command has been moved to /H.

 ! Fixed a huge bug in MBBSUTIL's -FPACK function which would truncate
   file descriptions at 45 characters.  When Mystic was enhanced to allow
   50 characters on a line, somehow MBBSUTIL wasn't. :(

 + Added two new command line features: The -U and -P command line options
   can be used to log in as a user from the command line, skipping the
   user name and password prompts, or login matrix if one is activated.
   These must be used along side the -B command line option in order to
   work.  If either the user name or password supplied is not valid,
   Mystic will simply exit.  When supplying a user name, you must replace
   all spaces in a name with an underscore (_).  For example:

        MYSTIC -B0 -Usome_user_name -Ppassword

   The above would start Mystic in local mode with user "some user name"
   already logged in.

 + Mystic will now run STARTUP.MPE if it exists in the scripts directory
   directly after the graphics emulation detection/selection.

 + When replying to a private or e-mail message, Mystic will now force
   that the To: field is a valid user on the system.  A changed prompt
   goes along with this:

      161 |CR|11|&1 is not a valid user on this system.

 + Added new ACS command "Mx" which is based on the current minute.  This
   command is used to check if a user is accessing a command at a certain
   minute.  Where X is the minute.  For example: M15 will prevent the user
   from accessing the command before :15 after each hour.

 + Added new ACS command "Wx" which is based on the current day of the week.
   Where X is a numerical value from 0 to 6, representing a day of the week:

      0 = Sunday
      1 = Monday
      2 = Tuesday
      3 = Wednesday
      4 = Thursday
      5 = Friday
      6 = Saturday

   For example, "W0" would make the command only accessible on sunday.  W5
   would be Friday, etc.

 ! The Netmail Origin and Destination address was not getting set properly
   when replying to a netmail message.  The Origin address was also not
   getting set properly when posting a netmail message.  These are fixed!

 + Added new command line option: -X<data>
   This option goes along with the -U and -P command line options and when
   supplied on the command line will execute a compiled MPL program file.
   <data> contains the file name and any command line options supplied to
   the mpe program.  As with the -U option, any spaces should be replaced
   with a _ character.  If no path is supplied, Mystic will look in the
   configured scripts directory for the program.  Some examples:

      MYSTIC -B0 -Ug00r00 -PHELLO -XTEST
      MYSTIC -B0 -Ug00r00 -PHELLO -XBULLETIN_BULLETIN_BULLET_CHECK
      MYSTIC -B0 -Ug00r00 -PHELLO -XC:\MYSTIC\SCRIPTS\GAME\MYGAME

   After the script is ran, Mystic will exit back to the operating system.
   This is mostly useful to MPE developers being that they can setup an
   external editor for coding their programs, and have it automatically
   run the program from within the editor to test things.

 + Expanded the maximum number of variables in an MPL program to 500.  This
   took quite a bit of recoding because MPL was originally intended to be
   a simple script engine, and was written with certain limitations.  Well,
   now one of those limitations is gone.  Technically (if memory allowed),
   I could expand the max variables up to 64,000 now!

 + Added the display of the user's permanent index within MCFG's User
   Editor.  That should have been there to begin with, but I must have
   overlooked it.

 ! Fixed a small display bug in MCFG's user editor with the "Editing User
   XXX of XXX" would get messed up.

 ! MCFG: The statusbar in the file base editor didn't have the (I)nsert
   command on it.  I'm not sure if it was like that in 1.07.3 or just the
   1.08 alphas, so I thought I'd mention it here.

 ! Did a full rewrite of the mandatory message base code.  The old system
   was very buggy and allowed users to quit reading mandatory bases.  In
   addition, the /M option of the new message scan (scan all mandatory
   bases) was not working properly.  This should all be fixed now.

 + Added a new auto-running menu command type called 'LINEFEED'.  If you
   set the hotkey of a internally generated menu to LINEFEED, Mystic will
   go to the next line and display the 'display text' of the command.  This
   can be used, for example, to separate normal commands from sysop commands.

 + Added new 'LINEFEED' option into MCFG's menu editor.

 + The Linux version now sets the terminal mode back into RAW mode when
   returning from doors.  This should solve some problems with running
   external programs that modified the terminal setting, causing Mystic to
   seem like its getting input in 'line mode' (ie, no hotkeys).

 + Linux: The input buffer is now purged after an ANSI detection.

 + Added new Door execution MCI codes:

     %P = Current node's temp path where door drop files are made.
     %T = Current user's time left in minutes.
     %# = Current user's permanent user index number.

 + MIDE: New option for auto indenting added.  This can be toggled on or off
   within the MIDE options.

 + MPL: The compilers now ignore semicolons, so if you accidentally add on
   at the end of a line or something, the program will still compile.

 + MIDE: When the delete key is pressed on a blank line or if it is pressed
   at the end of a line, MIDE will now wrap the text from the following
   line onto the current line.

 ! When reading private e-mail, it was possible to read another user's
   email by using a combination of the prev/next message commands and the
   reply command.  This has been fixed.  I doubt many people found the bug
   though as it went over a year before it was reported to me.

 + New MCI display code: U#.  This returns the user's permanent index
   number.

 ! The GROUP.XXX and FGROUP.XXX display files were showing up during the
   login sequence when Mystic was loading the user's msg/file group
   information.

 + Added a percentage bar into the lightbar file lister.  The new
   configuration options for the file list percentage bar can be found in
   the language editor of MCFG.  Two new and optional Screen Info MCI codes
   are now available in the ANSIFLST.XXX template file:

      !5 = The X/Y location and text attribute of the actual percentage
           of the message read (ie a number between 0 and 100).  If this
           code is not in the template, it will be ignored.

      !6 = The X/Y location of the percentage bar.  If this code is not in
           the template file, it will also be ignored.

 + If the user's NoCaller flag is set, Mystic will no longer update the
   total system calls.  In the past, Mystic would only exempt the use from
   the last callers data.

 ! Fixed a bug which would cause the message base listing to pop up during
   the user's login.  This was a rare bug, but I finally tracked it down
   and squashed it.

 + The optional data field of command G1 (View System History) will now
   accept a numerical value to display the last xx days of history.  For
   example, optional data of 10 will show the history of the last 10
   days.

 + New MCI Code: SN.  Displays the SysOp name as configured in Mystic's
   configuration.

 ! Fixed a bug in the mass mailing procedure that would cause the From:
   field in the message to get corrupted.

 + Two new command line options for the Win32 version of Mystic.  When
   loading Mystic, the socket descriptor or the comm handle can be passed
   on the command line.  This is used for using 3rd party telnet and dialup
   servers such as a mailer.  The command line options are:

      -TID<socket descriptor>
      -CID<comm handle>

 ! MPL/Linux: Fixed problems with the file access functions, specifically
   FSEEK, but others may have been affected by the same bug.

 ! While reading messages using the lightbar message index, Mystic would
   sometimes show messages as new when they were not.

 + The left/right arrow keys now work as page up and down in the lightbar
   file listings.

 ! Mystic was not checking the Post ACS for message bases when uploading
   a QWK reply packet.

 ! Mystic was not checking the ACS before running menu commands with the
   AFTER hotkey.

 ! Mystic was not checking the ACS before running menu commands with the
   EVERY hotkey.

 ! Fixed all mass email bugs.  There were several and they should all be
   squashed now

 - Removed Mystic's internal Zmodem protocol.

 + Added support for external protocols.  Mystic is now compatibile with any
   protocol driver that can create a DSZ-style log of the files that were
   transferred.  Mystic will automatically set the DSZLOG environment
   variable before executing the configured protocol.  Here are the MCI
   codes used in the Protocol Configuration:

     %0 : Returns communications handle (Win32 and OS/2 only)
     %1 : Node's modem port as configured
     %2 : User's baud rate
     %3 : FileName of file to send/receive (or path/filename of text file
          which lists all of the files if in batch mode.  When receiving
          this will return the directory where files should be uploaded
          to).
     %4 : Node's baud rate as configured
     %5 : User's UserID as passed with the -UID command option
     %6 : User's handle.  Spaces are converted to _.
     %7 : Current node number

 + New Menu command of *P for Protocol Editor and new WFC menu key P to
   access the Protocol Editor.

 + New command line option: UID.  Here you can pass any value up to 60
   characters in length to identify the user.  It must be a single word,
   it cannot contain any spaces.

 + New MCI code UX returns the user's ID as it was passed with the -UID
   command, or blank if one wasn't passed.

 + When pressing ENTER in the lightbar message reader, Mystic will now
   PAGE DOWN instead of jumping to the next message immediately.  This
   allows reading of all messages in the reader by just using the ENTER
   key! =]

 + Pressing ENTER in the lightbar file listings now work the same as the
   message reader.  ENTER will scroll down the listing a page, and if at the
   bottom, will move onto the next base in the scan or quit the listing if
   not scanning.

 + New Door MCI code (translated when executing doors): %5 will be replaced
   by the User ID as passed with the -UID command line option.  This works
   the same as %5 in the protocol editor.

 + Added the ability to execute an MPL program instead of the command line
   for a protocol.  By starting your command line with a !, you can have
   Mystic run a MPE program.  For example:

       send Command: !test %1 %2 %3

   The above would execute test.mpe from your scripts directory and pass
   the results of the %1 %2 %3 protocol MCI codes as command parameters to
   the MPL program.  Keep in mind that if you do use this to execute some
   type of protocol, you must set the DSZLOG environment variable yourself
   and have it point to the current node's temp directory as xfer.log.  Mystic
   will also create an xfer.bat or xfer.sh (depending on operating system) which
   can also be executed.

 + Added prompts for protocol selection to the language file.  You will
   need to replace the old prompts with the new prompts listed below, and
   then recompile your language files:

      ; Protocol List Header
      359 |CR|14Available Protocols:|CR
      ; Protocol list prompt &1=HotKey &2=Description
      061 |14[|15|&1|14] |&2
      ; Protocol select prompt
      062 |CR|14Select Protocol [|15Q/Quit|14]: |XX

 + Users now have the option to (R)eply to a received node to node message.
   There are updated prompts that go along with this:

     145 |CR|09(R)eply to Message or (ENTER/Continue): |15
     ; NodeMsg reply &1=from &2=node#
     360 |CR|09sending reply to |&1 on node |&2:

 + If a user is online when another user sends them e-mail, Mystic will now
   notify the user via a system message that new mail has been received.

 + TSERVER now passes the user's IP address using the -UID command line
   option.

 + The /TO: /SUBJ: and /ADDR: options now work with the MP menu command.

 ! MCI codes are now stripped from Message and File base names when they
   are written to the Sysop logs.

 ! The UM (use lightbar message index in E-mail) MCI code was not working
   correctly.

 ! Fixed MCFG and MIDE "Out of memory" errors that could occur sometimes
   in Linux.  Now if it happens, you are seriously out of memory that was
   allocated to those programs. =]

 + Added the ability to change the message subject from within the line and
   full screen message editors.  The following new/changed prompts exist:

      ; Line editor "command" prompt help
      167 |CR|03(|11A|03)bort Message    (|11C|03)ontinue Message     (|11U|03)pload Message|CR(|11Q|03)uote Message    (|11S|03)ave Message         (|11H|03)elp|CR(|11T|03)itle Change
      ; FS editor command prompt help
      355 |CR|03(|11A|03)bort Message    (|11C|03)ontinue Message     (|11U|03)pload Message|CR(|11Q|03)uote Message    (|11S|03)ave Message         (|11H|03)elp|CR(|11T|03)itle Change
      ; line editor edit subject
      462 |CR|09Enter new subject:
      ; FS editor edit subject
      463 |CR|09Enter new subject:

 + Expanded the data filename size from 8 characters to 40 characters in
   both the message and file bases.

 + Mystic will now recreate MBASES.DAT with the Electronic Mail base if for
   some reason reason it does not exist in the data directory.

 + Mystic now allows the quote header to be configurable in all quoted text.
   A new prompt goes along with this:

      ; msgtext quote header &1=date &2=from &3=initials
      464 On |&1, |&2 said the following...

 + When tagging a file in the lightbar file lister, Mystic now automatically
   moves to the next file after tagging the current.

 ! Fixed a bug in Linux relating to parsing MCI codes in a display file.

 + Completely rewrote all of the 'local' input and output functions in
   the Windows version.  It should be faster.

 - Removed the password being displayed in clear text on the SysOp status
   bar when a user is logging in.

 + The user editor now masks the password with asterisk unless it is being
   edited.

 - Removed the DOS and OS2 versions.

 + Completely switched all versions of Mystic BBS over to Free Pascal. Using
   only one compiler now makes it much easier to maintain the code.

 + Added new MCI code |ISxx where XX is a two digit number.  This limits the
   actual max amount of input on the next input prompt.  Whereas IN limits
   the size of the input prompt space itself, this limits the actual amount
   of characters that will be accepted.

 ! Fixed a bug when attempting to determine an archive's file extension
   under Linux.  The actual extension comparison is now NOT case sensitive
   when checking it against the archive tools in the configuration.

 ! Fixed a bug in the full screen editor, where the cursor would move
   strangely when using the right arrow key at the end of a line.

 + MBBSUTIL's UPACK (user pack) function will now go through every message
   base marked as "Private" and delete any messages TO or FROM the person
   being deleted.

 ! Mystic wasn't working correctly on voting questions #15-20 (if you had
   that many).  The maximum is 20 and all 20 should work correctly now.

 + All door menu commands can now include the /DOS option on the command
   line data.  If /DOS is found, drop files will be created in MSDOS format
   even if the operating system is not Windows.  If the /DOS option is not
   supplied, the drop files will be created in the format of the operating
   system (CRLF for Windows and LF for Linux/OSX). Ex:

        Menu Command: DD
       Optional data: c:\mystic\doors\mydoor.sh %1 %2 /DOS

 + Removed all of the remote modem/TCPIP code for Windows and replaced it
   with newer stuff from Mystic 2.0 code.  Unfortunately this means that
   built in support for modems/dialup has been removed.  But it opens a
   lot of doors moving forward.  I would like to eventually support dialup
   in Windows again in the future.  It is probably possible using 3rd party
   software for now.

 ! Mystic was not always setting the user's node action correctly when
   reading messages.  This should be fixed.

 ! Fixed various bugs with pause prompts, where some terminals sending
   CRLF would cause subsequent pause prompts to be skipped.

 + Replaced TSERVER with MIS.  MIS only has its telnet functionality
   enabled for now.  It is based off of the Mystic 2.0 server code,
   which had semi-working POP3/SMTP/FTP servers and seems to be more
   efficient and at least as stable.

 + Changed the WFC screen to "configuration mode", accessible by running
   mystic -cfg command line.  This also works in Linux allowing access
   to the internal configuration editors.  Mystic will skip checking
   for created directories and some other data file related start up
   checks when this command line is used, so that they can be corrected
   using the editors.  Mystic only requires MYSTIC.DAT and a valid language
   file in order to enter configuration mode.

 - Removed the "screen saver" from the WFC/Configuration mode screen. It
   was really only useful in the DOS version which is no longer supported.

 + Added a new MCI code: XX.  This actually does nothing, but it can be useful
   in some prompts files to help with prompts.  For example, if you have an
   editor that always removes any trailing spaces, you might use it to make
   sure the ending space is never removed:
        Enter user name:
        Enter user name: |XX

 ! Fixed a bug where Mystic was doing a case sensitive check of language
   files in Windows.

 + Expanded menu names to a maximum of 20 characters now, up from 8.  Now
   that the DOS version is no longer developed, we can finally start moving
   away from its limitations! There will be places where this isn't updated
   and that is because I didn't want to change the data file formats this
   close to release.

 + Added in a new Intel Mac OSX native version of Mystic BBS!

.------------------------------------------------.
| Mystic BBS v1.08 RELEASED : September 20, 2011 |
`------------------------------------------------'
whats_new_108.txt · Last modified: 2016/05/22 04:56 by avon