home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / MISC / TG_309S2.ZIP / WHATSNEW.310 < prev   
Text File  |  1997-11-30  |  76KB  |  1,349 lines

  1.  
  2.                   Telegard Bulletin Board Software, v3.10
  3.                        Revision History Documentation
  4.  
  5.                       Copyright (C) 1997 by Tim Strike
  6.                             All Rights Reserved.
  7.  
  8.                       3.09 Gamma 1 - November 16, 1997
  9.  
  10.         INSTALLATION NOTES
  11.  
  12.             Please completely read INSTALL.DOC.  Follow the installation 
  13.             instructions to the number, otherwise you will find that your 
  14.             system has not been completely or correctly updated, and this 
  15.             is likely to cause you many problems and frustrations.
  16.  
  17.         RELEASE NOTES
  18.  
  19.             1) You must install the new HARDWARE.DAT.  Also of note, the 
  20.                entries in HISTORY.DAT have been changed for baud level 
  21.                support.  Some utilities use this information in a hardcoded 
  22.                manner, some provide enough flexibility that it shouldn't 
  23.                matter.  At any rate, note the following changes:
  24.  
  25.                         38400 ->  31200 { array entry 16 }
  26.                         57600 ->  33600 { array entry 17 }
  27.                         64000 ->  38400 { array entry 18 }
  28.                        115200 ->  57600 { array entry 19 }
  29.                         31200 ->  64000 { array entry 20 *internal* }
  30.                         33600 -> 115200 { array entry 21 *internal* }
  31.  
  32.                Please also double check your modem settings after the 
  33.                conversion to ensure that it properly updated the modem 
  34.                connect string entries.
  35.             
  36.    |        2) Some debug code crept into 3.09.g1 -- you must answer YES
  37.    |           to the question "Test local uploads with upload processor"
  38.    |           otherwise your uploaded files will have no descriptions.
  39.  
  40.         LANGUAGES
  41.  
  42.             * Review LANGUAGE.310 for updates to your language file, and 
  43.               instructions on how to merge the language files to speed up
  44.               the update of your languages.
  45.  
  46.             + Languages are now fully 'paged' (ala memory management 
  47.               lingo).  Your language file is divided into pages (sections) 
  48.               of up to 8K in size, with a maximum of 16 of these pages.  
  49.               Telegard can store up to 8 pages in memory; as it needs a 
  50.               page it will load that page into memory.  Pages that are used 
  51.               often are kept in memory, and those pages which are 
  52.               infrequently used will be loaded and discarded as necessary.  
  53.               I'm using some classic OS algorithms which are well proven 
  54.               for OS, and should do nicely for Telegard.
  55.  
  56.               NOTE 1: YOU MUST REMAKE YOUR LANGUAGES WITH THE NEW MAKELANG!
  57.  
  58.               NOTE 2: Yes, this means the 64K limit on these files is 
  59.               broken.  Infact, it's raised to 128K now, and theoretically 
  60.               can go to whatever size I want (performance would take a hit, 
  61.               but this new paged method is extendable to 2048K, or 2 megs 
  62.               of languages... like we'll *ever* need that!).
  63.             
  64.         UTILITIES
  65.             
  66.             + MAKELANG v2.00 - Reports duplicate text lines with both the 
  67.               text ID, and the first two duplicate line #'s (if there are 
  68.               others, subsequent passes will find them!).  In addition, 
  69.               reports the net space usage for the new language (i.e. does 
  70.               it take up more or less space than the previous version -- 
  71.               and how much!).  Also creates the new paged language files.
  72.               
  73.               In addition, invalid lines will not cause problems with the 
  74.               text parser, and report duplicate items (when there are 
  75.               none).
  76.               
  77.               A copy of MAKELANG v1.15 was included (ML115.EXE) for use 
  78.               with TCR 2.00 (which does not use paged languages (yet)).
  79.               
  80.             + INDEX v2.00 - Creates scan indexes, new file section indexes.
  81.               Includes LIMITS RESIZE which allows more message/file area
  82.               additions, and more . . .
  83.               
  84.               Before using the LIMITS RESIZE feature, you should backup 
  85.               your *.DAT files in your /data/ folder.  INDEX LIMITS RESIZE 
  86.               will backup the files as it deems necessary, but it's 
  87.               important to have a failsafe just in case . . .
  88.  
  89.             + UNPACK v2.00 - For existing files, lists current (C=xx) and 
  90.               new (N=xx) file dates for comparison. If the file dates are 
  91.               different, then the line is highlighted in YELLOW.
  92.                 
  93.               If you say YES to overwrite the file, the NEW file (the one 
  94.               in the .TWS archive) will be extracted over the current file.  
  95.               NOTE: The file in the archive is not necessarily newer then 
  96.               the file on disk.  Files which have not changed from 3.02 are 
  97.               listed with a file time of 3:02a.
  98.  
  99.         AREAS
  100.  
  101.             + The scan records are now stored in files FSCAN.DAT and 
  102.               MSCAN.DAT instead of a separate file for each area.  This 
  103.               makes things infinitely faster in terms of file/message area 
  104.               scanning (especially when many areas are not in the users 
  105.               scan).  It's also faster for toggling areas--and I think in 
  106.               general the speed increase is a pleasant change.
  107.  
  108.               The files should also be smaller than the *.FSI/*.MSI files 
  109.               --instead of 3 bytes per area, per user, the algorithm now 
  110.               looks something like
  111.                 
  112.                      (round(msgareas/8) + round(fileareas/8)) * # users
  113.  
  114.               plus whatever extra space you have (couple of bytes per 
  115.               user), all stored in two files only.  Imagine 50 file areas, 
  116.               100 message areas and 300 users.  The optimum space usage 
  117.               under the old system compared with the new system is:
  118.  
  119.                                   Message+File          New
  120.                    2048 BLK       204800 + 102400       ~10000
  121.                    4096 BLK       409600 + 204800       ~10000
  122.                    8192 BLK       819200 + 409600       ~16000
  123.  
  124.               The new system has several disadvantages as well:
  125.                   1) special routines to insert and delete from the users' 
  126.                      selection tables.
  127.                   2) insert/delete/position can no longer be done with 
  128.                      other active nodes since the selection tables are
  129.                      stored in memory instead of on disk for those nodes.
  130.  
  131.               I have provided solutions that should work for 99.9% of the
  132.               systems and purposes with respect to these two issues.
  133.                   1) my routines are in BITPLANE.PAS for modifying the
  134.                      bitplanes.  I haven't provided too much detail, if
  135.                      you want help . . . ask.  Included in TGDEV309 kit.
  136.                   2) see notes below
  137.  
  138.             IMPORTANT NOTE (#1):
  139.               
  140.               In order to ensure that nodes won't be actively reading and
  141.               misusings flags that aren't updated yet, I made it so that 
  142.               the system recognizes the file TGLOCK.* in the /semaphore/
  143.               path as a lockout file.  If node 1 created the lockout file,
  144.               it will be called TGLOCK.1, if node 2 created it, TGLOCK.2, 
  145.               etc.  If Telegard sees these lock files (either when 
  146.               attempting to logon to the system, or when attempting to 
  147.               enter the WFC quick-access menus), then access will be denied
  148.               and the message TGLOCK.TXT will be sent (note extension).
  149.               Telegard will delete lock files that are older than 4 hours
  150.               old -- thus, if a node for whatever reason does not remove 
  151.               the lock file after it's done -- the system will detect that
  152.               after 4 hours and remove the file.
  153.  
  154.               To either add (copy), delete or resposition file or message
  155.               areas the node will need to ensure the file TGLOCK.n exists.
  156.               If it does, then that node can modify the data files.  If it
  157.               does not, and no other TGLOCK.* files exist, the lock file
  158.               can be created and the node can continue.
  159.  
  160.               I'll put this bluntly.  It is *not* elegant.  Infact, it's
  161.               downright crude.  But I *think* it'll work and avoid all of
  162.               the problems with this new scan format.  If someone can think
  163.               of a better way of handling this, then by all means please 
  164.               tell me.  Other systems get around this by making the area 
  165.               numbers static -- i.e. you can add areas to the end, or if 
  166.               you delete an area, it stays there (you can replace it or 
  167.               leave it 'deleted').  I like the simplicity of programming
  168.               that type of setup, I'm just not sure I like using it.  So 
  169.               please, if you have comments or suggestions, talk to me.  I 
  170.               don't know everything (although I admit to this being the one 
  171.               problem that has held this release back--I've thought of many 
  172.               things and many ways and this was the method that caused the 
  173.               least problems thus far).
  174.  
  175.    |        IMPORTANT NOTE (#2):
  176.    |    
  177.    |          Was just for previous beta versions -- does not apply to
  178.    |          the gamma 1 version.  INDEX RESIZE has been completed.
  179.  
  180.             INFORMATION NOTE (#3):
  181.               
  182.               I have decided to merge the QWK and online message area 
  183.               selections for various reasons.  While I realize this is not 
  184.               ideal for some systems, it is ideal for most (since most use 
  185.               QWK functions from TGWave, which is more functional than the 
  186.               internal QWK (and faster!)--or don't use QWK at all).
  187.               
  188.               *.FSI and *.MSI files can be removed once you are satisfied 
  189.               that none of your third party utilities use them (they are in 
  190.               the backup you made--right?).
  191.  
  192.             + Both the File & Message Quick-Access menus are now powered by
  193.               the menu kernel.  Thus, the two new menus WFCQFILE and 
  194.               WFCQMSG have been included.  The menus work properly as they
  195.               are currently defined, and just use the commands which were 
  196.               previously automatically called by the quick-access menus.
  197.               
  198.               Other menu items & commands *might* work.  The only reminder
  199.               is that commands which expect an online user fill find user
  200.               id #1 online (record 0).  Since the default items on both
  201.               these menus were previously used, they are well tested--other 
  202.               menu commands are not, and using them may or may not cause 
  203.               system problems.  You can call other menus from these menus, 
  204.               but the same caveat remainds (I got lost in my main menu at 
  205.               one point because there was no menu stack).
  206.               
  207.               The menu command needed to quit these menus are any of the
  208.               hangup routines (although I'm *not* sure what else that will
  209.               cause on the system), or the new command -Z which is used to 
  210.               quit from the WFC menus or to save the new user information 
  211.               from the NEWUSERV menu (see later).
  212.         
  213.             + A second group set has been added (so you can now keep your 
  214.               file/msg groups separate if you so desire). The group sets 
  215.               are now governed as follows:
  216.  
  217.                     Set 1 - Main Groups          Set 2 - File Groups               
  218.                          File  GROUPx                 File  FGROUPx              
  219.                           MCI  ~CC (desc),             MCI  ~CH (desc),
  220.                                ~CG (tag)                    ~CK (tag)
  221.                           ACS  Cx                      ACS  Dx                   
  222.                        Change  OR                   Change  OQ                   
  223.                         Setup  *G                    Setup  *G                   
  224.               
  225.               Note that some utilities will produce FALSE if you use the Dx 
  226.               ACS--so separate your groups only if your utilities will 
  227.               still work.  The naming convention Msg/File is completely 
  228.               ambiguous (Telegard does *not* care what you limit in each 
  229.               group--internally they are Set 1 and Set 2--the naming 
  230.               convention is just for convenience!).
  231.  
  232.               ** Your old group configuration will work without change **
  233.  
  234.             + Area compression is now separate b/w files and messages (i.e.
  235.               you can disable either one or both).  The option has moved
  236.               from the SystemConfig.BBSConfig.AreaCompression to
  237.               SystemConfig.XYSystem.AreaCompression where XY is either File
  238.               or Message.  The option is X on the FileSystem menu, and T
  239.               on the MessageSystem menu.
  240.  
  241.               Option M from the BBSConfig menu is now used for log style.
  242.  
  243.         MESSAGES
  244.  
  245.             + Major modifications to the message area.  The changes were to 
  246.               integrate the MSGREAD menu, which is called wherever the old 
  247.               message reading prompt would have been called.  A default 
  248.               menu has been included which closely mimics the previous 
  249.               reading.  The commands for use on this menu are the new R? 
  250.               series of commands:
  251.  
  252.                         R!      Edit user account of message author
  253.                         R#      Jump to specific message number from prompt
  254.                         R$      Toggle received/read status
  255.                         R&      Toggle sent status
  256.                         R*      Edit current message header
  257.                         R=      Continuous read mode
  258.                         RA      Reread current message
  259.                         RD      Delete current message
  260.                         RI      Ignore remaining messages
  261.                         RK      Toggle kludge line viewing
  262.                         RL      Set lastread pointer to current message
  263.                         RM      Move current message
  264.                                   C        Copy message (identical message,
  265.                                               do not delete original)
  266.                                   F        Forward message (new destination, 
  267.                                               do not delete original)
  268.                                   Default  Move message (identical message, 
  269.                                               delete original)
  270.                         RN      Move to next message
  271.                         RP      Move to previous message
  272.                         RQ      Quit reading/scanning messages
  273.                                   S        Quit reading & quit scan
  274.                                   Default  Quit reading area (skip to next)
  275.                         RR      Reply to current message
  276.                                   N        Reply via Netmail
  277.                                   O        Reply to orig author (from name)
  278.                                   Default  Reply to author (to name)
  279.                         RS      Save/Transfer message text
  280.                         RT      List next menu titles
  281.                         RU      Undelete current message
  282.                         RX      Extract current message to a file
  283.                         RZ      Toggle current area from zscan
  284.                         R[      Follow message thread (prev message)
  285.                         R]      Follow message thread (next message)
  286.  
  287.               These were the only commands specifically designed for this 
  288.               menu.  Other commands *might* be safe/work, but *please* keep 
  289.               in mind that the more you imbed menus, the more potential 
  290.               problems you may encounter.  The only way to exit the menu is 
  291.               via the Ignore Remaining (RI) or Read Quit (RQ) commands, or 
  292.               by using Message Next (MN) past the last message.  *HOWEVER*, 
  293.               with that said, please *safely* experiment to your hearts 
  294.               desire, the new commands and the MSGREAD menu provides a lot 
  295.               of power to your system.
  296.  
  297.               Some side effects of all these changes:
  298.                  (1) Title scanning is available in all reading modes, 
  299.                      including toUser/fromUser/personal/subject/text modes.
  300.                  
  301.                  (2) Jumping around to non-scanned messages (i.e. those 
  302.                      which don't match the scan criteria) is now allowed in 
  303.                      all modes except waiting/emailscan.
  304.                  
  305.                  (3) toUser and fromUser scans now also accept an optional 
  306.                      name to scan for -- (blank for users personal mail 
  307.                      will match either the users alias or realname).  It 
  308.                      should be a helpful feature.
  309.  
  310.             + Message header editing was completed.  It's available for all 
  311.               Message SubOps or SysOps (depending on how you do the 
  312.               access).  NOTE: If the user does *not* meet SubOp or SysOp 
  313.               access, the option will *not* come up even if the menu item 
  314.               is selected (safety feature).  The new option on the MSGREAD
  315.               menu is "*", and is powered by the R* menu command.
  316.               
  317.             + Telegard will now use REPLYADDR from Internet Email if
  318.               it exists (the user will be given the option of which
  319.               address to use . . ., the FROM or REPLYADDR).
  320.             
  321.             + New toggle for message received status.  The new option on
  322.               the MSGREAD menu is "$", and is powered by the R$ menu 
  323.               command.  NOTE: If you are the recipient of the message, the
  324.               bit will toggle OFF--however, if you re-read the message 
  325.               (i.e. using "A"gain, or return to the message latter, the 
  326.               received status will be set again).  Once set, it is not 
  327.               unset (except by this toggle).
  328.             
  329.             + Message threading was added for reply chains.  I don't 
  330.               pretend to fully understand how the chains are linked for 
  331.               messages from remote systems (some is done by MSGID, others 
  332.               on subject, etc.) -- Telegard simply follows the Reply1st and 
  333.               ReplyTo fields that any message has.  The two new commands on 
  334.               the MSGREAD menu are [,] and are powered by the menu commands 
  335.               R[ and R].
  336.  
  337.               [,] follow the chain -- the next regular message movement 
  338.               (previous, next message, continuous, etc.) will start with 
  339.               the message where you entered the thread. (i.e. reading 1648, 
  340.               thread previous replies to 1245, then hit enter for next 
  341.               message -- you will get 1649).  The one exception is jumping 
  342.               to a message #, in which case the threading is terminated and 
  343.               you goto the message you requested.
  344.  
  345.             + New anonymous toggle: Realname or Handle, allowing the choice 
  346.               at the time of posting for the user.  NOTE: This method uses 
  347.               the 'None' tracking mode so that ^aREALNAME and (an####) tags 
  348.               are not created -- the Handle/Realname are both unique on the 
  349.               originating system, and thus, it really *isn't* needed.  This
  350.               toggle is even available on Netmail areas (where other 
  351.               anonymous toggles are not permitted).
  352.  
  353.             + Message area opening code is now much smarter: if an area can 
  354.               not be opened, a polite message should be returned rather 
  355.               than a hard runtime error message.
  356.  
  357.             + Some new kludge line features have been added:
  358.  
  359.                  1) If ShowKludgeLines is toggled ON, then both "Transfer 
  360.                     Message" and "Extract Message" features will grab the 
  361.                     kludge lines, which are saved with leading "@" 
  362.                     characters in order that they can be imported into 
  363.                     messages without affecting other software.
  364.  
  365.                  2) If ShowKludgeLines is toggled ON, then the message 
  366.                     quoting file will also grab the kludge lines; the lines 
  367.                     are prefaced with the quote str ("nn> "), and are 
  368.                     truncated at the maxmimum line length.
  369.  
  370.               NOTE: It is recommended that the kludge line toggle feature 
  371.               be limited to Co-SysOp or SysOp ACS only (controlled via 
  372.               MSGREAD menu).  Kludge lines should not be available for
  373.               general public access.
  374.  
  375.             + Anonymous messages have a new tracking mode.  Previously, all 
  376.               'anonymous' message types were posted with a ^aREALNAME 
  377.               kludge (even in echomail areas).  However, three new tracking 
  378.               methods are now available-- Name, UserID, and None.  The 
  379.               three modes operate as follows:
  380.  
  381.                                              Storage of      Export
  382.                            From field       Original User     Name   Restore
  383.  
  384.                  Name    Anonymous types  ^aREALNAME kludge   YES*1    YES
  385.  
  386.                UserID    Anonymous types    #### in from      NO*2     NO*3
  387.                          + (an####)        field is userID
  388.  
  389.                  None    Anonymous types       NONE*4         NO       NO
  390.  
  391.                 *1: The ^aREALNAME kludge is exported.  Ideally, other
  392.                         systems will not show kludge lines to general users,
  393.                         but this is not always the case.
  394.  
  395.                 *2: UserID is exported, which is unique to the local system,
  396.                         and only visible by the current user (from info
  397.                         screens) or from the user editor (SysOps/etc).
  398.                         If you have utilities which print the private
  399.                         UserID of a user for public consumption, this 
  400.                         method is not anonymous either!
  401.  
  402.                 *3: Since UserID's can change (user is deleted, new user
  403.                         logs on), the original name of the poster will not
  404.                         be restored.
  405.  
  406.                 *4: Logs will contain message posting information; which is
  407.                         only available for as long as the logs are kept.
  408.  
  409.             + Added quote warnings, and quote maximum for messages posted
  410.               within the line editor (this feature will *not* enforce the
  411.               messages posted via a FSE!).  There are two settings, which
  412.               you can set as you please:
  413.                    1) Quote warnings: The user will still be able to save 
  414.                         the message.  Use 0 to disable warnings.
  415.                    2) Quote maximum: The user will not be able to save the 
  416.                         message if they exceed this % limit.  Use 0 to 
  417.                         disable the maximum.
  418.  
  419.               So you have several combinations:
  420.                    1) Disable both: Acts like Telegard 3.02
  421.                    2) Enable Warning: All messages will still be saved,
  422.                         but messages exceeding the limit will be warned
  423.                         and given the option to re-edit.
  424.                    3) Enable Maximum: No warnings, but messages with
  425.                         too much content will not be saved--no questions.
  426.                    4) Enable both: Messages lower than the warning level
  427.                         will save normally, messages between the warning
  428.                         level and the maximum level will receive a warning,
  429.                         and messages above will be denied.
  430.  
  431.               The default "Save anyway?" answer should work as follows: If 
  432.               quote warnings are OFF, the save should default to YES.  If 
  433.               quote warnings are ON, it defaults to YES only if the user is 
  434.               below the quote warning level--otherwise it defaults to NO 
  435.               (so the user changes the message by default).
  436.  
  437.               For Co-SysOps and SysOps, both the QuoteWarning and 
  438.               QuoteOverThreshold warnings default to yes.
  439.  
  440.             + Local messages now also get MSGID fields (using default 
  441.               netmail address (address 1)).  These can be used for reply 
  442.               linking in local areas.
  443.  
  444.             + Added extra MCI codes for lines 1119 and 1120 (see 
  445.               LANGUAGE.310 for the information).  Version 7 nodelists use 
  446.               uppercase only--if you use Version 7, and want proper cased 
  447.               entries, you'll have to use the ~En formatting codes.
  448.  
  449.             + Added toggle for appending "Re:" to the reply subjects.
  450.  
  451.             + Added auto-signature support for messages posted (again) 
  452.               within the line editor (FSE support is *not* going to be made
  453.               available for this feature).  The signature appended, short
  454.               or long, will depend on the message base setting.  If the
  455.               area is set to SHORT, then the short signature will be sent
  456.               which consists of one line up to 75 characters of text.  If
  457.               the area is set to LONG, then the long signature (240 chars
  458.               max, or 4 lines) will be sent -- if not set, the short will
  459.               be sent, if set.  If the area is toggled to 'NoSigs', then
  460.               no signatures will be appended.
  461.  
  462.               In addition, any name, anonymous or dear abby messages will
  463.               not have a signature automatically added.
  464.  
  465.             * Patched up Squish deletion adjustment so that messages are 
  466.               not skipped.  Hopefully that is the last of such adjustments 
  467.               that will be required--I thought I'd already done this, but 
  468.               it apparently didn't work.
  469.  
  470.             * Patched quoting so that when you wish to quote further text, 
  471.               it starts where you last left off instead of starting from 
  472.               the top of the quoted text.
  473.  
  474.             * SmartQuote DISABLED should now be a little smarter (less of a
  475.               dumb-quote)--it'll now properly truncate lines; the logic was 
  476.               right, except it was erroneously keeping the "excess" text in 
  477.               the wrap field; it'll now only do this if the excess text 
  478.               exceeds 10 characters in length.
  479.  
  480.             * Netmail addresses were designed to be automatically filled 
  481.               with values if the whole address was not provided; however,
  482.               the code was not working for node numbers, and also not
  483.               working for netmail areas defined as "Match AKA".  Fixed.
  484.  
  485.             * Anonymous names should now work properly for Echomail & 
  486.               Netmail areas (the items were previously not properly saved 
  487.               for non-local areas).
  488.             
  489.             * Repaired some JAM code which would sometimes lead to MBUTIL
  490.               reporting invalid JAM msg-id's (this resulted when changing 
  491.               the size of the subfields, and improperly resaving the OLD 
  492.               index--which while not used, would cause said warning).
  493.  
  494.             * Copying/forwarding/moving a message should dynamically pack 
  495.               the current area as well as the area the message was copied 
  496.               to (for Squish areas only, obviously!).  It will now also
  497.               update the write logs, create the necessary semaphores, and
  498.               write the information to the SysOp logs.  When copying/moving
  499.               messages, the REPLY: kludge lines and reply linking will also
  500.               be removed.
  501.               
  502.             * Forwarding/Crossposting a message should now check for write 
  503.               acs for the particular message area the message is being 
  504.               forwarded/crossposted to.
  505.  
  506.             * Crossposted messages will create the semaphore files (they 
  507.               will also now receive log lines following the original posted 
  508.               message statistics).
  509.  
  510.             * Deleting a message to a user will properly mark the userCRC 
  511.               in the *.JDX files as zero -- this will effectively uncouple 
  512.               the messages relation with the user (thus, things like the 
  513.               MW;P or MW;L option will not count those deleted messages).
  514.  
  515.               Undeleting a message will restore the userCRC field to the
  516.               CRC-32 of the lowercased destinee (which should restore the
  517.               original value).
  518.               
  519.               NOTE: This is only useful if other JAM utilities do this.
  520.  
  521.             * Fixed up file attaches such that the parameters passed to the 
  522.               protocol use the proper format (no filename for batch 
  523.               protocols, which is often why attaches via Zmodem, etc. would 
  524.               report errors when used with DSZ/GSZ).
  525.  
  526.             * CTRL-P, T will now use /T: instead of the erroneous /C: as 
  527.               the feature indicator in the line editor.
  528.  
  529.             * Message start number input will accept up to 999,999 as the 
  530.               valid input now.  If you have more messages than this--TOUGH! 
  531.               (renumber them! . . . I thought 32,000 was enough <g>).
  532.  
  533.             * Squish areas should not skip the 'next' message when posting 
  534.               a message forces dynamic packing--I thought this would be an 
  535.               elaborate fix which is why it wasn't done for 3.01/3.02-- 
  536.               However, it appears I outsmarted myself and added the code 
  537.               when I first added Squish--I just used the wrong variable 
  538.               name when I later called the MsgSave() routine!  Fixed.
  539.         
  540.             * Version 7 nodelist searching has been completed.  Version 7 
  541.               nodelist browsing has not been completed yet (it will have to 
  542.               wait until after the other features are finished).
  543.  
  544.             * New message areas now use the default address properly-- 
  545.               Echomail & Newsgroup toggles were previous changing the 
  546.               default address to the first address.  Netmail & Internet 
  547.               Email bases will continue to switch to AKA matching for 
  548.               intuitive reasons.
  549.  
  550.             * SysOp logs contain the From: name for posted messages if the 
  551.               base allows anonymous types (even if the message is not 
  552.               anonymous).  This is for tracking purposes.
  553.  
  554.             * Squish bases with unlimited messages were marked with max 
  555.               messages == 65535 rather than the Squish standard == 0.
  556.  
  557.             * Processing messages > 32K should _not_ have worked because of 
  558.               some filtering variables if either mbfilter or mbstripcolour 
  559.               was turned on.  It did infact work on occasion, but it 
  560.               shouldn't have.  Fixed--hopefully this fixes importation of 
  561.               large files (.ANS/etc) over 32K.
  562.  
  563.             * Fixed posting statistics for message replies.  These were
  564.               not being correctly counted in either the system statistics,
  565.               or in the user statistics.
  566.  
  567.             * Telegard will remove all trailing blank lines from a message
  568.               before saving it.  This makes things look cleaner (and was
  569.               implemented to pave the way for the next item...)
  570.  
  571.             * After a message is deleted, it will attempt to move forward,
  572.               *then* backward.  It makes no difference if users must delete
  573.               messages, but apparently this is what was wanted...
  574.  
  575.             * File attaches allowed attaching directories as exist() 
  576.               returned true for directories--I've changed the exist() so 
  577.               that it does not recognize directories.
  578.  
  579.             * MSGID fields should now be unique for multiple msgs/s, even 
  580.               when posted via the QWK internal mail scan.  If you were 
  581.               previously having problems, please let me know...
  582.  
  583.             * Replying to a message in netmail/another area after reading
  584.               several -new- messages, will now retain the lastread 
  585.               information (i.e. where you've read to) instead of restoring
  586.               it to the previous value.
  587.  
  588.             * Import filenames are persistent across the same message area
  589.               session (i.e. if you enter an input filename; it will store
  590.               that filename and used it until you leave and enter a
  591.               different message area).
  592.  
  593.             * Fixed up file attaches so files can be removed with the 
  594.               R:eset command.
  595.  
  596.             * All file attaches now have the file attach path stored; this
  597.               makes outbound file attaches possible (Telegard would always
  598.               find the file because it checked the attach directory, which
  599.               the external programs could not do).
  600.  
  601.             * Fixed up Squish deletion coding, which would skip messages if
  602.               at the very last message.  Should work well now.
  603.  
  604.             * Messaging importing should now properly work with Unix text 
  605.               files (LF instead of CR/LF).  If Telegard finds a LF without 
  606.               a leading CR, then it translates that LF into a CR/LF (new 
  607.               line).  Telegard used to ignore LF's entirely, so this should 
  608.               not introduce any other incompatabilities.
  609.  
  610.             * Updated code so that it was smarter when encountering message 
  611.               area errors; such as long Squish index files.  I'm not sure 
  612.               if it's Telegard's problem, or otherwise, but Telegard should 
  613.               be a lot more friendly in that respect.
  614.  
  615.             * Updated file attach download code so that it properly
  616.               parses the input.  It was using an invalid string and 
  617.               occasionally rejecting input (based on the contents of that 
  618.               invalid string).  Fixed.
  619.  
  620.             * Fixed problems with Squish hash routines, affecting MW L, P 
  621.               and G options (MW itself was okay, since it uses a string 
  622.               search rather than an index hash search).  NOTE: Messages 
  623.               internally posted with the OLD hash routines will no longer 
  624.               be found with the NEW hash routines.  If this is a huge 
  625.               problem, let me know and I'll whip up (hopefully) a program 
  626.               to update the hash values to their proper values . . .
  627.  
  628.             * Fixed last-read pointer reseting so that the pointer is
  629.               more accurate (by one message), and also does not produce
  630.               invalid ranges.  The code should be more friendly to errors.
  631.  
  632.             * Increased sized of import and export filepath fields.
  633.  
  634.             * Fixed up file attaches so files can be removed with the 
  635.               R:eset command.
  636.  
  637.             * All file attaches now have the file attach path stored; this
  638.               makes outbound file attaches possible (Telegard would always
  639.               find the file because it checked the attach directory, which
  640.               the external programs could not do).
  641.  
  642.         FILES
  643.         
  644.             + New file section--the description files are now 'flat access' 
  645.               which means that to get the file description, you seek to the 
  646.               description offset, read the description ID (should be the 
  647.               matching filename--13 bytes in length), then the description 
  648.               of fbrec.desclength size.  No more pointers to maintain 
  649.               besides the offset = easier to use/maintain file section.
  650.  
  651.               The new structure use NEW files (i.e. utilities which use the 
  652.               old filenames will not load the new structure and crash). 
  653.               External utilities have been included for support with other 
  654.               utilities which make use of the old structures.
  655.  
  656.               For utilities which only _read_ the file areas (file listers, 
  657.               etc.) or utilities which update things which may not be too 
  658.               important during this beta stage (download counters, 
  659.               whatever):
  660.         
  661.                         FA2FB           /* generates old files from current
  662.                                                 structure files */
  663.                         ...utilities here...
  664.  
  665.               For utilities which update the file areas:
  666.         
  667.                         FA2FB           /* generate old files... */
  668.                         ...utilities here...
  669.                         FB2FA           /* convert old files back to new
  670.                                                 FA files */
  671.  
  672.               I have included several switches with the utilities so that 
  673.               you can obtain optimum performance with these conversions:
  674.  
  675.                         -NOCD     /* do not process CD-ROM areas */
  676.                         -DATE     /* only process if dates on files are
  677.                                         different */
  678.  
  679.               Assuming that the utilities, when they change the file, also 
  680.               change the file date, the -DATE option will ensure that you 
  681.               only update files which have _indeed_ been changed (which 
  682.               will save going through all your file areas = faster update).  
  683.               In addition, since utilities like ALLFIX do not update CD-ROM 
  684.               areas, the -NOCD switch does not process those areas either.
  685.  
  686.               The new files are slightly smaller than the previous files; 
  687.               it is more noticable on the first coversion because the file 
  688.               descriptions are packed and wasted space is removed--thus, 
  689.               the following results were obtained:
  690.  
  691.                         Old files (w/wasted space)      810,843
  692.                         Old files (w/o wasted space)    309,950
  693.                         New files (w/o wasted space)    226,462
  694.  
  695.               The new files are easier to pack and remove the wasted space, 
  696.               so I'll write a packer shortly (actually, I'll build it into 
  697.               the INDEX utility).
  698.  
  699.             * I recoded some of the core file section routines to improve
  700.               on overall system speed -- the following items have been
  701.               affected by these changes:
  702.                    
  703.                    1) All *.FA/*.FAD files are kept open while the user is 
  704.                       actively listing files.  The files are only closed 
  705.                       when neccessary -- this reduces file open/close time 
  706.                       (which makes the system feel *real* sluggish).  I 
  707.                       don't think it'll cause problems unless files are 
  708.                       deleted while the file is open -- to prevent this, 
  709.                       packing utilities must be able to open the file in 
  710.                       fmReadWrite+fmDenyAll mode -- if they can not (the 
  711.                       file is presently open), then the utility must wait 
  712.                       before deleting the file.
  713.                    
  714.                    2) Upload queues are no longer used.  Uploading will 
  715.                       start the protocols immediately, after the upload, 
  716.                       the file_id.diz will be checked, and if missing a 
  717.                       description prompted for.  No filenames or 
  718.                       descriptions will be entered before the transfer 
  719.                       starts.  Bidirectional uploads use the file area 
  720.                       precedence of current -> UploadArea -> SysOpULArea 
  721.                       (latter both as setup in SystemConfig.FileSection). 
  722.                        
  723.                       The only exception to this rule is single file 
  724.                       transfer protocols, which require a filename before 
  725.                       transfer -- these will be input as required.
  726.                        
  727.                    3) Download queue was resized to 50 files.  This should 
  728.                       be more adequate with today's transfer speeds (it's 2 
  729.                       1/2 times the previous limit).
  730.  
  731.                    4) Duplicate filenames are allowed, except that any
  732.                       given directory can only have ONE file of any given
  733.                       filename (pretty obvious).  Otherwise, you should now
  734.                       have free reign on the file section!
  735.  
  736.                    5) Archive conversion now checks for a duplicate of the
  737.                       new filename (which it always SHOULD have, but never
  738.                       did).  Note: It does an index check, not a physical
  739.                       file check! (if there is no index entry for that area,
  740.                       but the file exists, the conversion *should* catch it
  741.                       later...)
  742.  
  743.                    6) Downloads, Tagging, etc. will cycle through all 
  744.                       areas if globaldownload is ON, otherwise it'll only 
  745.                       check the current area.  Of note: Specifying a 
  746.                       wildcard (* or ?) will cause Telegard to search all 
  747.                       areas -- specifying a full filename will cause 
  748.                       Telegard to search the INDEX instead and only prompt
  749.                       for found files -- this is muchos faster!!
  750.                       (Telegard previously did this, but I think in this
  751.                       incarnation it is *much* better).
  752.  
  753.                    7) Files of the same name from different areas can now 
  754.                       be tagged for download.  Of note however -- the users 
  755.                       terminal had better be able to handle that (by 
  756.                       renaming the second file to something else).  It's 
  757.                       not a Telegard restriction anymore . . .
  758.  
  759.                    8) Telegard does not care what format the descriptions
  760.                       are stored in the flat description file.  However,
  761.                       Telegard will continue to obey the Reformat option 
  762.                       when displaying the loaded descriptions.  The 
  763.                       description format (stored by a third party utility) 
  764.                       will not be updated automatically.  
  765.                       
  766.                       DEVELOPERS NOTE: Please format your descriptions in 
  767.                       45 character lines, per the proper FILE_ID.DIZ 
  768.                       description.
  769.                       
  770.                    9) Reworked the editing code so that it's a bit smarter; 
  771.                       it'll now move backwards and forwards through edit 
  772.                       list looking for matching file specs (or filenames).  
  773.                       It should also be smarter with respect to saving only 
  774.                       edited files, and was designed to be integrated with 
  775.                       the file tagging prompt <g> . . . It DID take major 
  776.                       modifications though, so please let me know of any 
  777.                       problems.
  778.  
  779.             + Major modifications to the file area listing/scanning.  The 
  780.               changes were to integrate the FILETAGP menu, which is called 
  781.               wherever the old file tagging prompt would have been called.  
  782.               A default menu has been included which closely mimics the 
  783.               previous tagging.  The commands for use on this menu are the 
  784.               new S? series of commands:
  785.  
  786.                         SC      Continue with listing
  787.                         SE      Edit file (delete/move/etc.) - by number
  788.                         SF      File operations
  789.                                   V        View files - by number/filename
  790.                                   Default  Tag files - by number/filename
  791.                         SQ      Scan quit
  792.                                   S        Quit current area & quit scan
  793.                                   Default  Quit current area (skip to next)
  794.                         ST      Tagged queue editing
  795.                                   L        List tagged files only
  796.                                   E        Edit tagged files
  797.                                   Default  Tagged queue statistics
  798.                         SZ      Toggle current area from zscan
  799.                         
  800.               These were the only commands specifically designed for this
  801.               menu.  Other commands *might* be safe/work, but *please* keep
  802.               in mind that the more you imbed menus, the more potential 
  803.               problems you may encounter.  The only way to exit the menu is 
  804.               via the Scan Quit (SQ) commands, or by using Scan Continue 
  805.               (SC) past the last file.  *HOWEVER*, with that said, please 
  806.               *safely* experiment to your hearts desire, the new commands 
  807.               and the FILETAGP menu provides a lot of power to your system.
  808.  
  809.             + Added secondary sort option (for options other than Filename
  810.               sort--which allows only one file of identical name in any
  811.               given area anyways)--the secondary sort is used when the 
  812.               primary sort criteria for two files is equal (i.e. upload 
  813.               dates are the same, then sort by filename).
  814.  
  815.             + Added configurable sort criteria--defined for each file area--
  816.               used for area sorting (unless overridden with a different 
  817.               sort criteria).
  818.  
  819.             + Added command line file sorting.  The command line is -FS
  820.               and it invokes a global sort based on the sort criteria for
  821.               each area (i.e. you can not select the criteria).  Areas with
  822.               out a primary criteria are not sorted.
  823.  
  824.             + Telegard now has the ability to change the file path
  825.               dynamically based on the CD-ROM label.  Thus, if you have
  826.               multiple CD-ROM drives and flip the disks (or they're on
  827.               a CD-ROM changer which automatically flips the disks),
  828.               Telegard can update the file path so that it's appropriate
  829.               for the CD-ROM labels in the drives.
  830.  
  831.               How does this feature work?  Several things have to happen
  832.               before it'll successfully work:
  833.                    1) Global toggle must be enabled
  834.                    2) File area toggle must be enabled
  835.                    3) File area must have CD-ROM label defined
  836.                    4) CD-ROM table update must be enabled and set to
  837.                       a reasonable update time.
  838.  
  839.               When the CD-ROM table is updated, Telegard will go through
  840.               each file area.  If the file area has drive letter updating
  841.               enabled, then Telegard will check the label of the current
  842.               CD for the current drive; if it does not match, then Telegard
  843.               will step through each drive (from the table) attempting to 
  844.               match the CD label to the predefined label.  If the label is 
  845.               found, the file area path is automatically adjusted to the 
  846.               correct drive letter.  If the label is -not- found, then 
  847.               Telegard will not update the area--in this case, when a user 
  848.               attempts to download from the area, they will receive a 
  849.               message stating that the CD-ROM labels do not match (and that 
  850.               the CD-ROM for this area is hence unavailable), which is how 
  851.               the original CD-ROM label checking worked (without drive path 
  852.               updating).
  853.  
  854.               The checks are only done when the CD-ROM table is updated, 
  855.               and only during startup.  Doing the checks on the fly would 
  856.               eat too much overhead.
  857.  
  858.               This is a very nifty CD-sharing idea that I hope will come in 
  859.               handy; just keep in mind that there is -some- overhead 
  860.               involved with the checks that it does . . .
  861.  
  862.             + Telegard now has a list 'failed' file ACS; if a user does
  863.               not meet this ACS restriction, they will not be allowed to
  864.               list 'failed' files.  Toggle option SystemConfig.FileSystem.
  865.               AccessControl.  The other options were moved down to 
  866.               accomodate.
  867.  
  868.             + For some failed download requests, Telegard will now log 
  869.               those requests; for
  870.                     - Missing, Offline, Failed, Unvalidated files
  871.                     - Failed passwords
  872.                     - Unmatched CDROM labels
  873.               (i.e. all the ones that SysOps might be interested in)
  874.  
  875.             + When deleting files, and selecting not to remove the area 
  876.               record (i.e. only physically delete the file), an option for
  877.               toggling the offline status flag will now be given.
  878.  
  879.             + Option to remove high-bit from imported descriptions (toggle 
  880.               from Systemconfig.Filesystem.(H)8-bit_FILE_ID).
  881.  
  882.             + Preliminary support for PNG (Portable Network Graphics) 
  883.               format added.
  884.  
  885.             * The validate files maintenance option is now powered by the
  886.               same update engine as most of the other maintenance items.
  887.  
  888.             * 'Next Area' should now work properly -- i.e. it will skip the 
  889.               rest of the file being displayed and will avoid any further 
  890.               pausing for the skipped area.  The big problem was when the 
  891.               'Pause After List' option was enabled (Next Area was not 
  892.               cancelling this forced pausing prompt -- it does now!)
  893.  
  894.             * Offline files will no longer receive a duplicate file tagging 
  895.               number (offline files should receive NO file tagging number 
  896.               at all).
  897.  
  898.             * Graphic Specification (GifSpec=NNNxNNN,NNNc,type) is now 
  899.               represented as (xSpec=NNNxNNN,NNNc,type) instead.
  900.  
  901.             * The search engine for the file section has been updated to 
  902.               reflect the new structure--it's using the QuickSearch now 
  903.               instead of the much slower POS(), and was noticably faster on 
  904.               my machine (perhaps not on yours . . . )
  905.  
  906.             * FILES.1 file listing & description file (for downloads) was 
  907.               missing the second line of the description.  Fixed.
  908.  
  909.             * Uploader names > 36 characters were truncated to 20 
  910.               characters during editing; names longer than 20 characters 
  911.               after input would crash the system.  Fixed.
  912.  
  913.             * File Passwords will not be prompted if the user has failed
  914.               any of the download ACS criteria.  The file password will
  915.               still be prompted for valid ACS users, before time & byte
  916.               checks are done.
  917.  
  918.             * Description importing will remove empty (or blanked) trailing 
  919.               lines from the descriptions.
  920.  
  921.             * Fixed up local download code -- if the local download it 
  922.               aborted, the file counter will not be incorrectly update.
  923.  
  924.             * When moving files, conferences are now ignored automatically.
  925.               This -could- be accomplished locally before by just hitting
  926.               the IGNORE CONFERENCE SysOp key, but this makes it automatic,
  927.               so you can move files across conference boundaries.
  928.  
  929.         DOORS
  930.  
  931.             * The DOOR.SYS file (Menu DG) has been updated to reflect the 
  932.               *correct* format of the DOOR.SYS file created by GAP.  This 
  933.               means that the REAL NAME of the user is *always* sent instead 
  934.               of the realname/alias toggle we previously used, and in 
  935.               addition, the handle is sent later in the DOOR.SYS file.
  936.  
  937.               If you use doors which use the DOOR.SYS and also keep user 
  938.               information, the new format will cause those doors not to 
  939.               recognize the users as active players/etc.  If this is the 
  940.               case you have two options--update the 'player name' id 
  941.               entries in your DOOR.SYS to use the real name instead of the 
  942.               handle, or use the OLDDOORS.SCR file to create an old 
  943.               DOOR.SYS compatible drop file.  I honestly suggest a slow 
  944.               progression to the new, and proper, drop file format.
  945.  
  946.               SysOps who use R; (real name force) in their DOOR.SYS drop 
  947.               file commands should have no problems--the file is of 
  948.               compatible format.
  949.  
  950.             * A proper DOORFILE.SCR was included which has the new REAL 
  951.               NAME line for the DOORFILE.SR generation.  This is used for 
  952.               duplicate checking for the Solar Realm games.  Please use it.
  953.  
  954.         MENUS
  955.         
  956.             * Major overhaul to the internal menu routines -- this was done 
  957.               not only for optimization purposes, but also to support the 
  958.               new specialized menus (see AREAS, MESSGAES, FILES and this 
  959.               section for details).  This is the core of the BBS system, so
  960.               please let me know of any difficulties.
  961.  
  962.             + The New User Information Verification code is now handled via 
  963.               a specialized menu called NEWUSERV.MNU.  This menu just makes 
  964.               calls to the OP menu commands to update the user information.  
  965.               A new menu command, -Z, will exit from this menu loop, save 
  966.               the user information and continue with the new user process 
  967.               (dupe phone # checks, etc...).  Several things should be 
  968.               noted:
  969.  
  970.                  * The OP menu commands operate in 'NewUser' mode -- i.e. 
  971.                    the same as the old methods.  Thus, if you toggle items 
  972.                    ON/OFF via SystemConfig.NewUser, then those items will 
  973.                    work as expected (off, forced value, etc).  This works 
  974.                    for all OP commands 1-25, & 80.  Thus, if you disable
  975.                    the date of birth field, even if you call OP 9 the
  976.                    date of birth will not be prompted for.
  977.  
  978.                  * Menu changes, sub menus, etc. should work just *fine*.
  979.                    Just remember that the user has *not* been saved yet,
  980.                    and calls to other menu functions that expect the user
  981.                    has been saved may, or may not, work.  This is most esp.
  982.                    true for door calls, file transfers, message reading, 
  983.                    etc. which expect the user is a valid, logged on user.
  984.                    
  985.                    There is an alternative -- to automatically save the 
  986.                    user and assign a user-ID, and then load the menu.  
  987.                    However, if the user does an ALT-H at this point, their 
  988.                    account has already been saved, and they will avoid all 
  989.                    of the duplicate number checking, and the newuser 
  990.                    script.  I did not take this alternative -- if people
  991.                    have comments, suggestions, etc., please let me know!
  992.                    
  993.                  * Hangup commands will function as normal (log the user
  994.                    off) -- the records will *not* be saved.  The only way
  995.                    to exit this menu set, and save the user record is to
  996.                    use the -Z command.
  997.                    
  998.               I have included the menu template NEWUSERV.MSG, which is
  999.               displayed by the NEWUSERV.MNU instead of the generic menus.  
  1000.               You can use generic menus for this display, but the display 
  1001.               file provides easier manipulation of the fields.  
  1002.  
  1003.               While I don't insist you stick with the default NEWUSERV.MNU 
  1004.               that comes with Telegard, I do urge that you heavily test any 
  1005.               changes that you make.  
  1006.  
  1007.             + New menu command OK which adjusts user statistics; it is
  1008.               a compound command, which handles the adjustment of:
  1009.               Timebank, Netmail Debits, Netmail Credits, Filepoints and
  1010.               online Time.  See the MENUS.REF file for more information
  1011.               on the command.  Some examples:
  1012.  
  1013.                    +B25         ; adjust timebank by 25 minutes
  1014.                    -B5+T5       ; adjust timebank by -5 minutes, add
  1015.                                   5 minutes to online time
  1016.                    +P250        ; adjust filepoints by +250
  1017.                    -P250        ; adjust filepoints by -250
  1018.                    =D0=C1000    ; set netmail debits to zero, set netmail
  1019.                                   credits to 1000
  1020.                    +C500        ; adjust credits by +500
  1021.  
  1022.               I guess this is also a good time to mention how Telegard 
  1023.               handles netmail crediting and debiting.  Essentially a user
  1024.               is given NN Netmail *Credits* to start off with.  The user is 
  1025.               allowed to continue sending netmail until the users Netmail 
  1026.               *Debits* exceeds the NN Netmail Credits.  At this point, you 
  1027.               can do one of two things -- Increase the available Netmail 
  1028.               Credits (and the user can use netmail until their debits >= 
  1029.               credits again), or you can set the Debits back to zero.
  1030.  
  1031.             + Two new default menu handling help levels have been defined 
  1032.               for menu input.  The help levels work as follows:
  1033.                 
  1034.                 User Settings     } Starts at Expert or Normal level 
  1035.                                     (depending on the user eXpert setting) 
  1036.                                     ?:Help goes to the next level.
  1037.                 
  1038.                 Forced Expert
  1039.                 Forced Normal     } ?:Help does nothing, always forced
  1040.                 Forced Extended 
  1041.                 
  1042.                 Default Expert
  1043.                 Defaults Normal   } Override user settings for this menu,
  1044.                                     but still allow ?:Help to goto next 
  1045.                                     help level.
  1046.  
  1047.               The help level progression is Expert -> Normal -> Extended.
  1048.               Thus, with the forced levels, the user will always be at that
  1049.               help level for that menu.  With the default levels, the users
  1050.               will act like their setting has been temporarily overridden, 
  1051.               but the ?:Help key still progresses to the next level.
  1052.               
  1053.               NOTE: Default Normal with Extended Help = &OFF is like being
  1054.               in Forced Normal mode (the user can't go to Expert, and can't 
  1055.               go to Extended either).
  1056.  
  1057.             + Menu editor now contains a (R)ename menu function, and a 
  1058.               (C)opy menu command function.
  1059.  
  1060.             * Telegard allowed *OFF* in the extended menu filename to 
  1061.               disable extended menus (allowing only expert and normal).
  1062.               Due to my oversight, the filename input routine would not 
  1063.               allow the * character -- even though *OFF* was expected.
  1064.               The new designation is &OFF -- please update any menus you 
  1065.               may have had left over from previous versions of TG (which
  1066.               could be used, but not changed).
  1067.  
  1068.             + New menu flag -- no CR after prompt -- Telegard normally puts
  1069.               a <CR> after the input, to start the cursor on a new line.
  1070.               With the flag enabled, the cursor remains where it was.  This
  1071.               is especially helpful for the FILETAGP menu, which will erase
  1072.               the prompt if it can.
  1073.  
  1074.             * MCI codes are translated for file display (-F through -I)
  1075.               commands.  This is useful for displaying node dependent,
  1076.               area dependent, etc. information.
  1077.  
  1078.             * Menu command NW will no longer run on single node systems
  1079.               (no errors this way either).
  1080.  
  1081.         OTHER
  1082.             
  1083.             * User-ID *text* was changed from ##-#### to #### format 
  1084.               (leaving off the leading two zero's since it is unlikely any
  1085.               system will ever have more than 1.6 million users).  The 
  1086.               userid is *still* a longint, and all your users *still* have
  1087.               the same userid.  The only thing that has changed is the way
  1088.               that the numeric number is represented as text.  Thus, things
  1089.               to note:
  1090.  
  1091.                    (1) I##-#### ACS is now I#### -- change your menus
  1092.                         or the ACS will always fail (even for | (OR)
  1093.                         alternatives since the string is the wrong size).
  1094.  
  1095.                    (2) If you use doors that use the old ##-####, or
  1096.                         if you pass the MCI code to batch files for 
  1097.                         semaphore files amung other things, you should put
  1098.                         a leading "00-" infront of the ~UU MCI code.  This
  1099.                         will mean all your old doors will work.  I suggest
  1100.                         switching semaphore files etc. to the newer format.
  1101.  
  1102.                    (3) Separate SysOp Logs are now SLOG####.LOG instead of
  1103.                         ##-####.LOG as they were previously.  This is 
  1104.                         better I think (matches the CHAT#### and TRAP####
  1105.                         logs better too).
  1106.  
  1107.             + SysOp logging format was changed.  Telegard now uses either
  1108.               FrontDoor or Binkley style logging (default: FrontDoor).  The
  1109.               logs should integrate better with your other utilities, and
  1110.               also provide timing critical information.
  1111.             
  1112.             + Added Duplicate Phone Number 'Email-To-SysOp' option.  The
  1113.               option SystemConfig.NewUser.DuplicatePhoneScan now has three
  1114.               levels - No, Log Only, and Email SysOp.  If the latter is
  1115.               chosen, an email will be sent to the sysop with DUPTEL.TXT
  1116.               as the header (from your default text path, NOT the language
  1117.               text path) and a list of all the users (handle & realname) 
  1118.               which duplicate the new user's telephone numbers.
  1119.  
  1120.             + Added ACS XZ, which is TRUE for users w/ CoSysOp ACS and
  1121.               FALSE otherwise (this was needed for the new MSGREAD menu!)
  1122.  
  1123.             + If deleting a protected user and the online user has SysOp 
  1124.               ACS, an override protection prompt is now used.
  1125.  
  1126.             + The local input routines accept left and right arrows to
  1127.               move up and down the input line, and the insert key to toggle
  1128.               b/w insert and overwrite mode.  NOTE: Input fields which 
  1129.               accept pictures (i.e. phone, postal codes, dates) and colour
  1130.               codes will -not- allow arrow keys.  Please test this area
  1131.               extensively, and let me know if things mess up to any 
  1132.               significant degree.
  1133.  
  1134.             + Added drive table listing and update facility from 
  1135.               SystemConfig.Hardware.  This will allow the table to be 
  1136.               updated if there are problems with detected media.
  1137.  
  1138.             + Added security level upgrade and downgrade notices to the 
  1139.               validation system.  If the users' SL goes up or stays the
  1140.               same, they will receive the upgrade notice, and otherwise 
  1141.               they will be sent the downgrade notice.
  1142.               
  1143.               The upgrade and downgrade notices can be configured for each 
  1144.               level.  The notices must have a .TXT extension, and must 
  1145.               exist in the textfile paths (similar to WATCHPW, etc.).
  1146.    |          The base file names for each level are configured in 
  1147.    |          SystemConfig.ValidationLevels.
  1148.               
  1149.               NOTE: The upgrade/downgrade notices are sent from their NEW 
  1150.               level, not from their OLD level.  So if they change from 
  1151.               level A to level B, they will be sent the appropriate upgrade 
  1152.               or downgrade notice from level B.
  1153.  
  1154.             + User accounts can now be toggled with 'No Password Alert' 
  1155.               status, which means they won't receive a hack warning request.
  1156.               This can be helpful for guest & other temporary accounts.
  1157.  
  1158.             + Added -OFS and -OMC command lines, to override the detection
  1159.               of SHARE and MSCDEX respectively.  If your system is SHARE
  1160.               compatible, but SHARE can not be detected, use -OFS.  If your
  1161.               system is MSCDEX compatible, but MSCDEX can not be detected,
  1162.               use -OMC.  CAUTION: USE WITH CARE.  IF YOUR SYSTEM IS NOT 
  1163.               COMPATIBLE TELEGARD WILL MAKE CALLS TO THESE DEVICES AND MAY
  1164.               RTE IF IT CAN NOT GET WHAT IT IS LOOKING FOR.
  1165.  
  1166.             * Patched up multinode network (SHARE) code so that if a file
  1167.               encounters an error, it doesn't loop with that error even if
  1168.               the file is subsequently made available.  Most notable in RTE
  1169.               5 loops, followed by a RTE 103 or otherwise.
  1170.  
  1171.             * Updated handling of multinode INODE*.DAT files in an attempt
  1172.               to reduce errors.
  1173.  
  1174.             * Languages which don't exist on login will be replaced by
  1175.               the default language (which must exist, otherwise the user
  1176.               would never have gotten that far!)
  1177.  
  1178.             * The TRASHPHN.TXT file will now be used to deny BBS list
  1179.               numbers as well.  I thought of using a separate listing, but
  1180.               if you don't want the numbers in your user list, you don't
  1181.               want them in your BBS list, and vice versa.
  1182.  
  1183.             * The TRASHPHN.TXT file which Telegard parsers to deny phone 
  1184.               numbers now accepts ? as well as * as wildcards.  ? will
  1185.               allow any character only in that position, while * indicates
  1186.               the rest of the phone number.  I.e. 111-* means deny anything
  1187.               that starts with "111", while 1??-* means deny anything the
  1188.               starts with "1".  In the latter example, it is important to
  1189.               note that 1* would not be appropriate, as this would cancel
  1190.               international numbers, etc.  Putting in at least one 
  1191.               formatting code is a good idea (in this case "-").
  1192.  
  1193.             * Fixed up internode messages so that long messages with lots
  1194.               of colour codes in the pre-text (1931/1932) are still sent
  1195.               intact.  Additionally, added support for @/$filename from
  1196.               the 1931/1932 prompts (they are sent separately -- without
  1197.               a CR -- that is the only thing to note).
  1198.  
  1199.             * Fixed up some event code which would cause any of the
  1200.               following symptoms:
  1201.                 (a) Slow event display at WFC screen
  1202.                 (b) System instability at WFC / logon process
  1203.                      (esp. under multitasking systems -- Jeff, this *could* 
  1204.                      have been what caused your other windows to close down
  1205.                      when you shut down Telegard -- unlikely, but *could*)
  1206.                 (c) Nothing at all (it was erratic!)
  1207.  
  1208.             * The vote mangling from deleted users was definately Telegard 
  1209.               -- although I don't quite understand why.  The code was all
  1210.               correct, so who knows.  When Telegard deletes users, it no
  1211.               longer touches the voting data.  Since Telegard keeps a tally
  1212.               with each question, the questions now have the effect of
  1213.               keeping a running total (for active & deleted users) until 
  1214.               the next vote reset.  I think this is appropriate anyway.
  1215.  
  1216.             * Deleting a user will now only open the message base if it
  1217.               is Squish format -- JAM does not need the lastread pointers
  1218.               updated, so it's not done (and thus will be faster).
  1219.  
  1220.             * Field input should not be so sluggish if not checking for
  1221.               any pre-formatting (i.e. not formatting phone numbers, postal
  1222.               codes, dates and times).
  1223.  
  1224.             * IEMSI phone numbers should parse a little more cleanly (i.e.
  1225.                 (905) 820-7273  ->  905-820-7273
  1226.                 (905) 820 7273  ->  905-820-7273
  1227.                 905 820 7273    ->  905-820-7273   ...etc...)
  1228.  
  1229.             ~ IEMSI code in relation to carrier drops; there is no easy way 
  1230.               to recognize the dropped carrier during the IEMSI sequence -- 
  1231.               Telegard will timeout after 15 or 20 seconds, and at that 
  1232.               point Telegard will check.  Unfortunately, at this time 
  1233.               that's the best the code is going to get.
  1234.  
  1235.             * Fixed a number of cosmetic errors (override delete, colour 
  1236.               for deletion prompts, too many nl before errors, etc). Please 
  1237.               let me know if you find/see other 'funny' things.
  1238.  
  1239.             * File I/O routines trap RT 5 as a file-sharing error now as 
  1240.               well (instead of just 162).  I also repaired some of the I/O 
  1241.               error handling -- file sharing/locking should be more 
  1242.               reliable.  User side output will strip the file path (which 
  1243.               never should have been sent), and additional information is 
  1244.               now sent to the local screen only.
  1245.  
  1246.             * Original bet will be adjusted if maximum bet < 5.
  1247.         
  1248.             * Fixed internal YY/MM/DD conversion problem that WOULD under
  1249.               certain circumstances crash the system (reseting last
  1250.               read pointers with this date format, for instance).
  1251.  
  1252.             * Fixed OP53 toggle (it would increment well past the limit
  1253.               of 3 date fields--creating unknown formats for the dates
  1254.               (Telegard would at least translate to MM/DD/YY in this case)).
  1255.  
  1256.             * Date separator will now be used for all date input and
  1257.               other date fields displays (date format for instance).
  1258.               DEVELOPERS NOTE: All internal date fields (string) use
  1259.               '/' as the separator, and MM/DD/YY as the format.
  1260.  
  1261.             * The time separator will now be used throughout the system.
  1262.               Of note, the time & date separators (and the thousands
  1263.               and decimals separators) are single characters only (i.e.
  1264.               NO COLOUR CODES--SORRY!).
  1265.  
  1266.             * I think I fixed (for the final time) the logon bps 
  1267.               restrictions for both general logons, and for node specific 
  1268.               logons.  I moved the code to an ENTIRELY different library, 
  1269.               and that should fix the problem (I believe it was setting 
  1270.               hangup, and then incorrectly unsetting hangup in a subsequent 
  1271.               area of code, allowing the user to logon . . .)
  1272.  
  1273.             * Fixed language selection problem -- occured if there was only
  1274.               one available language that the user had access too.
  1275.  
  1276.             * Telegard will attempt to strip colours from user names when
  1277.               completing a user name during a lookup (for sequential
  1278.               searches *only* (i.e. mail and user list/editor)).
  1279.         
  1280.             * Fixed sysop window spacing--also did a number of other 
  1281.               changes to the sysop window code.  Please let me know if 
  1282.               there are any problems.
  1283.  
  1284.             * Forced password changes will no longer permit the current 
  1285.               user password to be input -- somewhere this logic was killed.
  1286.  
  1287.             * Time adjustment commands have been changed to CTRL-PGUP
  1288.               and CTRL-PGDN which add and subtract 1 minute respectively.
  1289.               PAGE UP and PAGE DOWN now move between your SysOp Windows,
  1290.               and LEFT, RIGHT, UP and DOWN are now processed in input
  1291.               routines (and eventually, menus).
  1292.  
  1293.             * The default exit levels for Telegard have changed; errorlevel
  1294.               0 is the default exit level (no errors), and errorlevel
  1295.               1 is the default error level (w/errors).  This is changed 
  1296.               *from* 255 and 254 respectively.  You can still override with
  1297.               the -EN, -EE command line options.
  1298.  
  1299.             * Random files should be more evenly distributed between .ANS, 
  1300.               .AN1, etc... under the old system, it would choose the .ANS 
  1301.               file by FLUKE... (i.e. rarely).
  1302.  
  1303.             * Input routines that don't accept colour by default will print
  1304.               out the string in it's full form; backspacing over visible
  1305.               colour codes will not affect the display.
  1306.  
  1307.             * Changing the SL of the user while in ALT-E edit user denies
  1308.               all further access to the account (edit lockout).  Fixed.
  1309.  
  1310.             * ALT-P to PRN, LPT1 or LPT2 will not ask if you want to append/
  1311.               overwrite, etc.  It will just do it...
  1312.  
  1313.             * Drive detection code was updated; the first two drives (A: 
  1314.               and B:) are never checked (always assumed to be Floppy 
  1315.               drives).  In addition, Networked drives now return type
  1316.               Network instead of type CDROM (this returns the detection
  1317.               to the previous setup I originally started and somehow 
  1318.               fumbled . . . ).
  1319.               
  1320.             * User editor via ALT-E/ALT-U has been updated so you can 
  1321.               modify all entries; it was designed previously to lockout
  1322.               changes to online user records from the online user...
  1323.  
  1324.             * MCI Code translation has been moved from level 2 to level 1
  1325.               (i.e. it'll only process an MCI substitution once, instead
  1326.               of going over the string twice--doing it twice allowed for
  1327.               strings which weren't automatically substituted with MCI 
  1328.               codes to be reprocessed and substituted).  The two level
  1329.               substitution caused a lot of problems; this should remove
  1330.               all problems associated with ~ from Win 95/Linux long file 
  1331.               names, etc... etc... etc...
  1332.  
  1333.             * Chat logging is now set for a particular session; if you use
  1334.               ALT-F to change the chat logging DURING a chat, it won't
  1335.               change the format of the current recording (i.e. if it's
  1336.               not recording, it won't record, if it is, it will).  I 
  1337.               realize this is problematic, but I'm afraid it's stuck that
  1338.               way for now . . . if you want to record a chat you're
  1339.               already in, hit ALT-F, setup the chat recording, and exit and
  1340.               re-enter chat.
  1341.  
  1342.    |        * Date format in New User Application now preceeds Birthday
  1343.               selection.
  1344.  
  1345.             * Languages which don't exist on login will be replaced by
  1346.               the default language (which must exist, otherwise the user
  1347.               would never have gotten that far!)
  1348.  
  1349.