Telegard Bulletin Board Software, v3.10 Revision History Documentation Copyright (C) 1998 by Tim Strike All Rights Reserved. 3.09 Gamma 2 Service Pack 3 - 22 August 1998 IMPORTANT + There is one important language change to this beta which relates to new user logins. The new user login name can now be defined to something other than "NEW". This is configured on line 338 of your language file. Also note the changes to line 341 to indicate the new MCI code for new user logon id code. MESSAGES + Public, private and netmail posts for a call are now stored in the LASTON.DAT file. * Internet email areas marked with anonymous type Realname/ Handle would only allow the user to read messages from one of their two names (depending on whether the area defaulted to Realname or Handle posting). Fixed. * System Configuration for message areas was incorrect for options H through K. * Private message areas would allow reading of messages without the private bit enabled for the message; a private area should always be private regardless of the message flag status... fixed. * Quote header would be incorrectly output for internal line editor messages (Telegard automatically handles this, so it duplicates entries...) * Upgrade notices for the New User Level will not been sent when a user first applies to the system (the user isn't valid yet; this caused empty destination messages). These messages will only be sent for the second time that a user is set to this level (i.e. automated downgrade, etc.). If you want messages sent to your first-time callers, then I suggest using the NEWUSER.SCR script to send them... * Entering a non-existant path in the message area manager will now warn you that the path doesn't exist; Telegard will no longer attempt to move files to a non-existant path. * Fixed up problem of sending a validation level letter from the message read prompt which returned the wrong message when attempting to redisplay the message from which the user was validated. * Messages already marked deleted will not be prompted with the delete message query after a message reply. * Continous message mode with email/netmail areas and a user marked with must delete email/netmail flag would cause an endless loop (until user hungup); continous mode will no longer be allowed in such situations. * Moving file attachments to a path and not creating that path when prompted will now abort the file move. FILES + Telegard will now process the volume label of CD-ROM's a little more carefully. If the CD-ROM has a blank label, or if the label is "NO NAME" (or "NONAME"), Telegard will get the volume serial number and covert it into hexadecimal for use as the volume id label. TG/2 + Protocols now have a native OS/2 flag. If your protocol is a native OS/2 application, toggle this item on. The protocols now work as follows: If the protocol is native OS/2: - Output environment & command to .CMD file, load .CMD file in native OS/2 window If the protocol is native DOS: - Output environment & command to .BAT file, load .BAT file in native DOS window This flag will ensure that the protocol environment is setup properly for when the protocol is run. The environment is used to set the logfile path; thus, the logfile path will be correctly passed off to the protocol, and Telegard will now be able to process uploads and downlaods made from DOS protocols under Telegard/2. * Daily download ignore restrictions flag (option 5) doesn't work properly for downloads. Fixed. * Changing *.FA* file area db storage path would not move the files into the new path as it used too. Fixed. SCRIPTS + Added MCI function to force processing on a string variable which contains MCI codes. This will alleviate a few variable processing order restrictions which limit how many levels of dynamic processing can occur. Temporary fix until g3 script language is released . . . OTHER + User emulation detection during login (user set) will now be logged to the system logs. In addition, the user editor will now display "Detect :: (emulations)" in the user editor for such users. * RTE 200 still existed with the TELEGARD.EXE and UPDATE.EXE executables, because the source tree was picking up an older library file that I wasn't aware of; this source tree has been updated to reflect the earlier patches, and all utilities should now be PII 300+ friendly... * Updated IEMSI polling to behave better under multitasking environments (most noticable in Telegard/2). I had to make some heavy modifications to make this work--it cut 1K of code, but requires some good eyes and testing... * Updated ANSI detection polling to behave better under multitasking environments (again, most noticable in Telegard/2). * Time limit settings now have a maximum of 1439 minutes instead of 32000 -- this prevents overflow, and means a user can spend a maximum of one day online before their time runs out (which I think is COMPLETELY reasonable... :p) * Y/N prompts now send a `07 clearing code after the prompt just in case you're using high-background colours, which have a tendancy to bleed when you're at the last line of the screen (not my fault... just patching). * Caller-ID for out-of-town callers where the phone company returned 0 as the phone number would cause duplicate phone number checking to report many duplicate phone numbers when it really should have just been ignoring these numbers. The intelligent parsing will now ignore all numbers that are either blank or filled with 0's, or that are filled with other alpha characters (such as Unknown, Private, etc.) * Some string conversion routines were patched; most noticable in the Menu Editor command help section (but potentially problematic in a few other areas too...). 3.09 Gamma 2 - 5 July 1998 INSTALLATION NOTES Please completely read INSTALL.DOC. Follow the installation instructions to the number, otherwise you will find that your system has not been completely or correctly updated, and this is likely to cause you many problems and frustrations. RELEASE NOTES This version of Telegard 3.09.g2 is complete, save the scripting language. I decided that I didn't have the time to dedicate to finishing the scripting language for g2 and keep the release of g2 to a reasonable date. Subsequently, the new compiled scripting language will make it's debut in g3. In addition, Gamma 2 marks the release of Telegard/2, a native OS/2 version of Telegard. There aren't many additional features included in TG/2, but there are many planned for the future. Please consider Telegard/2 a test version--it is a direct drop-in replacement for Telegard/dos, so you can run both from the same set of data files and test Telegard/2 while still running your system critical BBS using Telegard/dos. MAJOR CHANGES * The installation procedure has changed considerably (to make things easier...). 1) INSTALL.TG / INSTALL.TG2 replaced by INSTALL.TWS and INSTALL2.TWS -- which are password protected .TWS files instead of a password protected .ZIP file. This should allow the Telegard distribution archive to be uploaded without failure to THD ProScan and other protected upload systems (no errors during unzipping). 2) All reference documentation and other non-install documentation will be packed in DOCS.TWS (NOTES.TWS is no longer being used), and will be unpacked in a DOCS subdirectory. * Telegard now locks (deny write) the config.tg file when entering the system configuration. This means that other nodes/instances of Telegard will be able to read but *not* update the system configuration (the prompts change to include -=> View Only Mode <=- in this case). This was done to protect data integrity across nodes & networks, but still to allow other nodes to view the system configuration (as I often do by shelling from Node 1 into Node 2, when I can't load the configuration directly in Node 1 (ala message posting)). If an external program attempts to open the file in Write or ReadWrite mode, the external program will fail. If the external program does not write to the data file, then the file mode should be changed to Read only to allow it to open the system configuration in this instance. * I changed all of the internal routines relating to the message buffer / buffer length to use a standard textbuffer library that I built (to handle messages, file descriptions, etc.). While the changes were fairly straight forward and just involved modifying the current routines, I *may* have made a typo here or there resulting in code being broken. * I changed the way sets are handled in Telegard (internally for now; developers will get these changes in the next development kit, since the methods are computationally compatible). At any rate, this was done to facilitate compilation on other platforms with other compilers; TP/BP can store sets in byte values, but other compilers often use word or longint values which are incompatible in size. This change took about 7 hours to complete, and while I *attempted* to verify everything I did, I may not have. Therefore, please keep an eye out for things like: * Flags which are not correctly used (or are inverse) * Flags which can not be toggled * I started changing how Telegard stores file names and paths internally so that we can eventually (hopefully) move to long filenames, and case sensitive names as the platforms permit. This was again a fairly lengthy change (and is still ongoing) so please let me know if anything is broken. * I started optimizing the common routines; this resulted in a 1K decrease in core memory--nothing significant yet, but I'll continue working on it to see what else can be trimmed. Please let me know if any standard functions begin failing... * Patched up the Squish code to conform to standards which aren't documented... It appears that SQPACK sets .sqi index entries for delete messages (from date packing, and potentially from a base which has it's maximum_msgs reset) to the filesize() of the .sqd file. The Squish documentation says extra entries are marked with a msgptr == 0. Telegard was checking the msgptr when posting, and trying to avoid overwriting a valid message; Telegard would write to the end of the file with the last entry 0... after a message is posted, two scenarios emerge: 1) The message posted is long enough so the next deleted message offset is valid, but incorrect; Telegard ignores the message (invisible message syndrome...) 2) The message posted is not long enough so the next deleted message offset is invalid; RTE 100. Telegard now ignores the msgptr value in the .sqi index file; it just writes the index entry overtop--it is now assuming that the message number fields are properly maintained so it can do this, and that the msgptr that it is overwriting is indeed to be overwritten (otherwise the message number field would be more up-to-date). LANGUAGES * Review LANGUAGE.G2 for updates to your language file, and instructions on how to merge the language files to speed up the update of your languages. UTILITIES * INDEX, FB2FA and FA2FB utilities were patched up to fix the ghost upload bugs that were encountered in Gamma-1. * CMPRLANG has added functionality to compare without colour codes (i.e. strip colour, then compare). This effectively scans for text changes only. AREAS + MA and FA area change commands now accept [ and ] as options, for previous scanned and next scanned areas respectively (similar to - and +, but working only on scanned areas). + Message/file area editors now have a 'J'ump to entry command. * MY and FY commands should now screen pause appropriately. * When Telegard releases the area lock, it will return to the menu instead of continuing with the requested operation--this is done so the screen is fresh again (so you can see area numbers, etc.). The next subsequent request will work as usual (with no message until the editor is exited). * Menu commands FY (new file areas) and MY (new message areas) will now check the ACS of referenced conferences; i.e. if you just use S25CA and expect the conference "A" access to do the weeding; it will now properly be checked and adhered to. MESSAGES + Added long internet address support for those running their own gateway software, togglable for each area instead of as a global toggle (just in case you have different feeds). IMPORTANT NOTES: 1) Only available for JAM format (Squish does not have long enough field names) 2) Only available for internet areas 3) Your gateway software MUST support > 36 character addresses directly in JAM format. If you export to another source (i.e. your Fidonet hub), then you must use Antiquated UUCP support to have > 36 character addresses, as this is the limitation of the *.MSG format which is used by FTN's. + Added mail account option for downloading from the command line in Telegard; using -M=First_Last will create a qwk mail packet from (or upload a packet for) the user account listed instead of the standard SysOp account. + Added message start number prompt to the MC (mail check) command (users with ForcedEmailDelete flag are not prompted). The default input is the first UNREAD message. In addition, the mail check command now counts total and unread messages, and displays this information in the title listing as well. + Added feature to toggle skipped messages (from title scanning) as read (i.e. make highread message # = last message #). This option is only available for new message scanning. + Added feature to skip read messages during a waiting message scan. Also added feature to scan for messages To: 'All' when doing a personal scan (so the user can read personal and general messages). + Telegard can support long email addresses (>35 characters) if Antiquated UUCP is toggled ON. Telegard will then put the long TO: name in the first line of text, and address the message to UUCP. NOTE: THIS IS JUST AN ADDED EXTENSION OF THE OLD ANTIQUATED UUCP SUPPORT. + Added ability to do a keyword search across all message areas instead of just one. Note, this search is intensive as every message in every (available) area is loaded and scanned. The menu command is MK. + Added grey twirly bar to waiting message scan, although it should be fast enough that activity characters really aren't necessary, it was added anyway... + Added separate NEWSGROUP and INTERNET EMAIL semaphore files. Previously these areas created/touched ECHOMAIL.* and NETMAIL.* files, but now create/touch IGROUP.* and IEMAIL.*. If you use your mail tosser to toss ALL of these types, you should check for IGROUP.* and IEMAIL.* in addition to ECHOMAIL.* and NETMAIL.* (where * is .TGS for Squish, or .TGJ for JAM). + Added ability to do a reverse title scan for menu command MS, which now prompts to do a forward or reverse listing. * QuoteHeader is output to MSGTMP as part of the message text if using an external editor, for FSE which don't have the option of a quote header (i.e. Telegards internal quote header will be output as text for usage...). * QWK pointers can now be updated for areas that users don't have posting privileges too--this was the result of a fair number of errant pointer update reports. * QWK areas that a user can't post to are no longer listed as 'unknown', but rather 'denied'. * Newsgroups will not be scanned for personal mail (no such thing--newsgroups are inherently to 'all'). * QWK network support/anonymous/anyname support has been fixed. * Squish lastread updates for deleted users are now done during a new user logon instead of when the user is deleted. * If an area was previously cached, Telegard will recount the available messages instead of just ignoring the open call entirely (Telegard was previously ignoring the call since it could get all the information from the area cache...). * QWK uploads should now dynamically pack Squish areas properly after a message is posted. * Quoting now has a C:ycle command which will reset the pointer of the quote lines to the first line in the file. I don't particularly like C:ycle as the name, so if you have a better one which works with available letters (not AFTRSOQ) then please let me know . . . * R& will now properly toggle the message sent/unsent. * Deleting/editing/etc. a message will only append a new line to the ECHOMAIL/NETMAIL.JAM files if the message sent status is toggled [except in circumstances when it doesn't know, in which case it always adds it]. * Uploading prepared text with ~PF on the upload command line with an unregistered DSZ/GSZ would result in an upload error; Telegard now does not pass ~PF for batch protocols in message uploads. * Importing text with line length > 255 will no longer cause Telegard to hang when listing the message; Telegard will now appropriately chop the lines at 250 characters. NOTE: If you are trying to import ANSI files, then you should save your ANSI files with a line length <= 250 characters, NOT 255 and certainly not without ANY line length restrictions. If you do not, your imported ANSI will likely be grunged when it is viewed--YOU HAVE BEEN WARNED! ALSO, remember that echomail networks typically recommend line lengths <= 75 characters for ANSI transmission. If you wish to import your files for export via a network, best save them with the recommended line length... * Fixed a number of pesky Squish bugs-- 1) The lost-first-line of a message after a title scan or msg number reload 2) The ">> Message exceeds 64K" problems should now be fixed (except for legitimate messages over 64K) 3) 'Posted' but 'Invisible' (SQREIDX fixes): If the .SQI file is not properly updated with 0 entries for deleted messages at the end, Telegard will now ignore this and save the message in the proper index spot instead of trying to magically protect an invalid entry. Telegard will put a DEBUG: note into the logs when it does this. 4) RTE #100 after SQPACK'ing an error with date packing ENABLED, or a changed MAX_MSGS limit causing SQPACK to pack the areas before a dynamic pack can do it... * Inserting new message areas, when the area default (setup in your system configuration) is for areas to be DEFAULT OFF in the user scan is now correct; before Telegard would always set the areas in the scan, not it'll obey the default setting. * MW command now has an option to default the options instead of asking, so that MW*1 will default to 'Unread Only' and not 'Read to 'All''. MW1 will ask the questions as designed. * JAM indexes now contain appropriate userCRC values for local message areas (i.e. message entered online, in email or otherwise now have the proper CRC values, and thus can be found by the Waiting Messages scan...). Previously posted messages have and will not be corrected. * *.JAM (ECHOMAIL/NETMAIL) files will be updated when the message is edited (i.e. if sent/unsent, to, from, etc. is toggled....). It might cause the scanner to inadvertently check a message which has already been sent, but this way nothing is explicitly missed... * Replies to messages from "SysOp" will automatically be sent to the SysOp name configured in the BBS configuration. This is identical to new messages entered locally, except that it now handles replies to automated messages from "SysOp" (such as hack warnings, other offline posting utilities, etc...). * Changed PAUSE prompt to MORE(y/n/c) prompt when listing messages, allowing for easy aborting, and also allowing for a continuous listing mode. * MC command has optional parameter (C) which returns only the counts instead of listing the messages and prompting to read. The default (no parameters) is to count, display titles and prompt to read. With parameter C, only the count is done. [NOTE: I still suggest using MC with no parameters in your login sequence...]. * 64K limit should be properly adjusted when saving messages. * Changed file attach method so that the message has a notice of the attached files, and the download of those files is now controlled via a menu option (RF) which should be added to your MSGREAD menu. * Changed message statistics feature to output to a .TXT file so that statistics can be saved/referenced at a later date. Viewing the statistics will view the last created set, unless the SysOp/User chooses to update the statistics. Output file is in your data directory as MSTATS.TXT. * Trailing blank lines will be stripped before the signatures are added, and stripped after the signature is added (to get any from the signature). FILES + File tagging prompt now accepts range operator '..' (I chose '..' since it can't be in a valid filename, thus making the parsing considerably easier. + Added menu command S=, which will toggle continuous listing of the remainder of the files (i.e. no page pausing, no file tagging prompts...). + Added (finished) the upload processing during a SysOp /U upload. Upload processing includes testing, conversion, gif specs. and archive commenting. + Added "tag file" command to EditFiles menu. * FILE_ID.DIZ importation is now a little smarter; if the file has a non-standard archive extension (i.e. one which is not defined in the system archive configuration), then Telegard will run the archive type detection code to determine if it matches another archive type. If the file has a valid archive extension that is WRONG, this will not be detected. * File type conversion should now properly update the index files when the files change format. * Moving files will now check for duplicate names in the destination area; if the file record exists, or the physical file exists without a record, the move will not be completed. * Duplicate file handling has been re-enabled; check your options in the file system; you have None (will only nuke the file if exists in destination area), KillDupes (will nuke if file record exists in any area), and MoveDupes (will move the file to a holding directory; if the file area exists in the holding directory, the file will be incrementally renamed). If the MoveDupes feature is used, the file description will be augmented with ** Duplicate File **, and if the file is renamed, ** Duplicate File / Original FFFFFFFF.EEE ** will be used instead to indicate the original upload filename. THIS FEATURE COULD USE SOME HEAVY TESTING, COMMENTS AND CRITICISM . . . (just so you know...). * Changed how file descriptions are edited based on some suggestions; let me know what you think of the new system (I personally think it is quite a bit better . . . ). * Changed the way file transfer statistics are reported; all the various upload/download routines should now use the standard statistics reporting template (MCI codes are now available for lines 711 through 720). Please let me know if you encounter any strange transfer statistics... * Last file scan date is now stored (last time FN is run for a user) instead of using the laston date; this will allow users to logon many times between new file scans, and still see new files since the last time they scanned. This logic is slightly different than we're used to, please let me know if it doesn't work in some way . . . * Validating files in No Prompt mode now has a receipt mode too -- ask for each file (jic), yes receipts and no to receipts. * Fixed up maintenance options; saying NO to all areas with the current area a CD-ROM area would result in no action... which is obviously not correct, since you want to scan the current area only (regardless of it's CD-ROM-edness). * Commandline -FC will process all areas (including CD-ROM) for file updates, while -F will continue to ignore CD-ROM areas. * CD-ROM labels stored in the file areas will accept mixed case now; the matching is case sensitive (although I can't imagine why case would matter). Ensure that you have the correct case for your CD's... * Saying NO to 'upload all' will deny processing of any CD-ROM areas, when it should just blindly accept the current area as the scan area, regardless of what it is. Fixed! * Using SE (edit files) command from the file tagging menu should now properly handle moving/deleting files instead of returning a RTE. * Updated "test" command from EditFiles menu selections so that if the testing method has been set to Integrity, Telegard will now actually just do the integrity check. * Corrupt archives should now be noted as corrupt archives instead of giving a RTE (this is how things were designed to work like all along...). * FILE_ID.DIZ importation during uploads will now use the correct TEMP\FILE\ path instead of the path the file is GOING to be moved to... * Telegard will now properly search for files during the /U upload command--it was incorrectly checking the search indices previously, which caused many upload/duplicate problems. OTHER + Telegard TEMP directory can now be relocated with the environment variable TGTEMP=[path]. NOTE: The TEMP\TEMPn extension will be automatically added to the base path that you provide. For example: SET TGTEMP=D:\BBS will use D:\BBS\TEMP for single nodes, and D:\BBS\TEMP1 for Node 1, etc... You can setup different drives for different nodes by setting different environments: SET TGTEMP=I:\ (Node 1 environment) SET TGTEMP=J:\ (Node 2 environment) will use I:\TEMP1 for Node 1, and J:\TEMP2 for Node 2. WARNING: Telegard will clean out the TEMP directories as it sees fit. DO NOT OVERLAY THE TELEGARD TEMP DIRECTORY ONTO A TEMP DIRECTORY FOR ANOTHER APPLICATION. + Added preliminary caller-ID support. Telegard will search for the caller ID information, will store it to the logs, the user record, and will use it when scanning for duplicate numbers. + Added message post/time ratio--this ratio is a little fairer than a post/call ratio, since it takes into account the time spent online, rather than the number of calls. Someone who calls twice a day to use the Offline Mail Door may only use 5 minutes, but make two calls (download & upload), and someone with a poor connection may get dropped often, but not actually use any more time than anyone else... + Added menu equalization command (short menu description will be set to the (truncated) long menu description). + Added menu input length option. Menus should default to 60 as the maximum input length (field). If your menus don't convert properly, input may not be properly checked; if Telegard finds an invalid value it will default to 60, but you should double check your menus anyway. + Added auto-detect emulation during logon option. If the user selects this mode, Telegard will adjust their emulation to the most compatible terminal emulation during logon automatically (RIP, Avatar, ANSI, TTY, in that order...). If the terminal mode is not correctly detected, or the detection chooses a mode that the user does not wish to use, the user should not use this feature. + Added option to delete BBS entries when editing them. Only the user who added the entry, or a CoSysOp, can delete/edit any given entry. + Added subscription update command, which will update the date a given subscription is to expire. The menu command is OZ. ! Cancel (reset) expiry date =[n] Set to n days from current date +[n] Set to n days from current subscription expiry + Added ability to override the external chat. Pressing ESC instead of ENTER will force an internal chat (ENTER will continue to use external if available, and internal otherwise). ALT-Y will force internal chat, while ALT-C will use external if available, and internal otherwise. + Added ability to send internode messages from WFC menu -- command N. + Added MCI time conversion code to convert times to 12-hour with am/pm indicators. The input is time in the form of HH:MM:SS or HH:MM (or even HH, as it only checks the first two characters). For instance: ~ET8~ST will produce: ~ST: 13:45:01 => 01:45:01p ~ST: 07:45:01 => 07:45:01a ~ET5~ST will produce: ~ST: 13:45:01 => 01:45p ~ST: 07:45:01 => 07:45a (as you can see, you can stack MCI codes to get the desired affect as you see fit...) + Added sysop key ALT-1 for transmit file; it assumes a raw (unlisted) download, and uses the unlisted download engine after the filename has been input. + Added ACS for subscription level Z (see ACS.REF for notes). + Updated the crt unit to correctly calibrate on PII 200+ machines, so that the RTE #200 should *not* occur. If anyone previously had to run tppatch.zip to get Telegard to run on their machines, I would appreciate knowing if the problem has been solved. + Added ALT-N function key to enable/disable chat paging audio on a per-call basis (instead of having to wait for the user to actually chat you). + Updated the SysOp log viewing code; in addition to the Telegard sysop*.log files, any file in the /logs folder can now be viewed by typing the filename. TG/2 + Added option to control the operating priority of Telegard sessions. When booting, Telegard will set the session to NORMAL priority and then adjust the potency of that setting based on the system configuration (-31 to +31). I don't honestly know much about this, Telegard will start at 0 for now, until someone can let me in on an 'ideal' setting... + Door commands can now accept M