====== 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 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. 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 -CID ! 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 | `------------------------------------------------'