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
Wrap
Text File
|
1997-11-30
|
76KB
|
1,349 lines
Telegard Bulletin Board Software, v3.10
Revision History Documentation
Copyright (C) 1997 by Tim Strike
All Rights Reserved.
3.09 Gamma 1 - November 16, 1997
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
1) You must install the new HARDWARE.DAT. Also of note, the
entries in HISTORY.DAT have been changed for baud level
support. Some utilities use this information in a hardcoded
manner, some provide enough flexibility that it shouldn't
matter. At any rate, note the following changes:
38400 -> 31200 { array entry 16 }
57600 -> 33600 { array entry 17 }
64000 -> 38400 { array entry 18 }
115200 -> 57600 { array entry 19 }
31200 -> 64000 { array entry 20 *internal* }
33600 -> 115200 { array entry 21 *internal* }
Please also double check your modem settings after the
conversion to ensure that it properly updated the modem
connect string entries.
| 2) Some debug code crept into 3.09.g1 -- you must answer YES
| to the question "Test local uploads with upload processor"
| otherwise your uploaded files will have no descriptions.
LANGUAGES
* Review LANGUAGE.310 for updates to your language file, and
instructions on how to merge the language files to speed up
the update of your languages.
+ Languages are now fully 'paged' (ala memory management
lingo). Your language file is divided into pages (sections)
of up to 8K in size, with a maximum of 16 of these pages.
Telegard can store up to 8 pages in memory; as it needs a
page it will load that page into memory. Pages that are used
often are kept in memory, and those pages which are
infrequently used will be loaded and discarded as necessary.
I'm using some classic OS algorithms which are well proven
for OS, and should do nicely for Telegard.
NOTE 1: YOU MUST REMAKE YOUR LANGUAGES WITH THE NEW MAKELANG!
NOTE 2: Yes, this means the 64K limit on these files is
broken. Infact, it's raised to 128K now, and theoretically
can go to whatever size I want (performance would take a hit,
but this new paged method is extendable to 2048K, or 2 megs
of languages... like we'll *ever* need that!).
UTILITIES
+ MAKELANG v2.00 - Reports duplicate text lines with both the
text ID, and the first two duplicate line #'s (if there are
others, subsequent passes will find them!). In addition,
reports the net space usage for the new language (i.e. does
it take up more or less space than the previous version --
and how much!). Also creates the new paged language files.
In addition, invalid lines will not cause problems with the
text parser, and report duplicate items (when there are
none).
A copy of MAKELANG v1.15 was included (ML115.EXE) for use
with TCR 2.00 (which does not use paged languages (yet)).
+ INDEX v2.00 - Creates scan indexes, new file section indexes.
Includes LIMITS RESIZE which allows more message/file area
additions, and more . . .
Before using the LIMITS RESIZE feature, you should backup
your *.DAT files in your /data/ folder. INDEX LIMITS RESIZE
will backup the files as it deems necessary, but it's
important to have a failsafe just in case . . .
+ UNPACK v2.00 - For existing files, lists current (C=xx) and
new (N=xx) file dates for comparison. If the file dates are
different, then the line is highlighted in YELLOW.
If you say YES to overwrite the file, the NEW file (the one
in the .TWS archive) will be extracted over the current file.
NOTE: The file in the archive is not necessarily newer then
the file on disk. Files which have not changed from 3.02 are
listed with a file time of 3:02a.
AREAS
+ The scan records are now stored in files FSCAN.DAT and
MSCAN.DAT instead of a separate file for each area. This
makes things infinitely faster in terms of file/message area
scanning (especially when many areas are not in the users
scan). It's also faster for toggling areas--and I think in
general the speed increase is a pleasant change.
The files should also be smaller than the *.FSI/*.MSI files
--instead of 3 bytes per area, per user, the algorithm now
looks something like
(round(msgareas/8) + round(fileareas/8)) * # users
plus whatever extra space you have (couple of bytes per
user), all stored in two files only. Imagine 50 file areas,
100 message areas and 300 users. The optimum space usage
under the old system compared with the new system is:
Message+File New
2048 BLK 204800 + 102400 ~10000
4096 BLK 409600 + 204800 ~10000
8192 BLK 819200 + 409600 ~16000
The new system has several disadvantages as well:
1) special routines to insert and delete from the users'
selection tables.
2) insert/delete/position can no longer be done with
other active nodes since the selection tables are
stored in memory instead of on disk for those nodes.
I have provided solutions that should work for 99.9% of the
systems and purposes with respect to these two issues.
1) my routines are in BITPLANE.PAS for modifying the
bitplanes. I haven't provided too much detail, if
you want help . . . ask. Included in TGDEV309 kit.
2) see notes below
IMPORTANT NOTE (#1):
In order to ensure that nodes won't be actively reading and
misusings flags that aren't updated yet, I made it so that
the system recognizes the file TGLOCK.* in the /semaphore/
path as a lockout file. If node 1 created the lockout file,
it will be called TGLOCK.1, if node 2 created it, TGLOCK.2,
etc. If Telegard sees these lock files (either when
attempting to logon to the system, or when attempting to
enter the WFC quick-access menus), then access will be denied
and the message TGLOCK.TXT will be sent (note extension).
Telegard will delete lock files that are older than 4 hours
old -- thus, if a node for whatever reason does not remove
the lock file after it's done -- the system will detect that
after 4 hours and remove the file.
To either add (copy), delete or resposition file or message
areas the node will need to ensure the file TGLOCK.n exists.
If it does, then that node can modify the data files. If it
does not, and no other TGLOCK.* files exist, the lock file
can be created and the node can continue.
I'll put this bluntly. It is *not* elegant. Infact, it's
downright crude. But I *think* it'll work and avoid all of
the problems with this new scan format. If someone can think
of a better way of handling this, then by all means please
tell me. Other systems get around this by making the area
numbers static -- i.e. you can add areas to the end, or if
you delete an area, it stays there (you can replace it or
leave it 'deleted'). I like the simplicity of programming
that type of setup, I'm just not sure I like using it. So
please, if you have comments or suggestions, talk to me. I
don't know everything (although I admit to this being the one
problem that has held this release back--I've thought of many
things and many ways and this was the method that caused the
least problems thus far).
| IMPORTANT NOTE (#2):
|
| Was just for previous beta versions -- does not apply to
| the gamma 1 version. INDEX RESIZE has been completed.
INFORMATION NOTE (#3):
I have decided to merge the QWK and online message area
selections for various reasons. While I realize this is not
ideal for some systems, it is ideal for most (since most use
QWK functions from TGWave, which is more functional than the
internal QWK (and faster!)--or don't use QWK at all).
*.FSI and *.MSI files can be removed once you are satisfied
that none of your third party utilities use them (they are in
the backup you made--right?).
+ Both the File & Message Quick-Access menus are now powered by
the menu kernel. Thus, the two new menus WFCQFILE and
WFCQMSG have been included. The menus work properly as they
are currently defined, and just use the commands which were
previously automatically called by the quick-access menus.
Other menu items & commands *might* work. The only reminder
is that commands which expect an online user fill find user
id #1 online (record 0). Since the default items on both
these menus were previously used, they are well tested--other
menu commands are not, and using them may or may not cause
system problems. You can call other menus from these menus,
but the same caveat remainds (I got lost in my main menu at
one point because there was no menu stack).
The menu command needed to quit these menus are any of the
hangup routines (although I'm *not* sure what else that will
cause on the system), or the new command -Z which is used to
quit from the WFC menus or to save the new user information
from the NEWUSERV menu (see later).
+ A second group set has been added (so you can now keep your
file/msg groups separate if you so desire). The group sets
are now governed as follows:
Set 1 - Main Groups Set 2 - File Groups
File GROUPx File FGROUPx
MCI ~CC (desc), MCI ~CH (desc),
~CG (tag) ~CK (tag)
ACS Cx ACS Dx
Change OR Change OQ
Setup *G Setup *G
Note that some utilities will produce FALSE if you use the Dx
ACS--so separate your groups only if your utilities will
still work. The naming convention Msg/File is completely
ambiguous (Telegard does *not* care what you limit in each
group--internally they are Set 1 and Set 2--the naming
convention is just for convenience!).
** Your old group configuration will work without change **
+ Area compression is now separate b/w files and messages (i.e.
you can disable either one or both). The option has moved
from the SystemConfig.BBSConfig.AreaCompression to
SystemConfig.XYSystem.AreaCompression where XY is either File
or Message. The option is X on the FileSystem menu, and T
on the MessageSystem menu.
Option M from the BBSConfig menu is now used for log style.
MESSAGES
+ Major modifications to the message area. The changes were to
integrate the MSGREAD menu, which is called wherever the old
message reading prompt would have been called. A default
menu has been included which closely mimics the previous
reading. The commands for use on this menu are the new R?
series of commands:
R! Edit user account of message author
R# Jump to specific message number from prompt
R$ Toggle received/read status
R& Toggle sent status
R* Edit current message header
R= Continuous read mode
RA Reread current message
RD Delete current message
RI Ignore remaining messages
RK Toggle kludge line viewing
RL Set lastread pointer to current message
RM Move current message
C Copy message (identical message,
do not delete original)
F Forward message (new destination,
do not delete original)
Default Move message (identical message,
delete original)
RN Move to next message
RP Move to previous message
RQ Quit reading/scanning messages
S Quit reading & quit scan
Default Quit reading area (skip to next)
RR Reply to current message
N Reply via Netmail
O Reply to orig author (from name)
Default Reply to author (to name)
RS Save/Transfer message text
RT List next menu titles
RU Undelete current message
RX Extract current message to a file
RZ Toggle current area from zscan
R[ Follow message thread (prev message)
R] Follow message thread (next message)
These were the only commands specifically designed for this
menu. Other commands *might* be safe/work, but *please* keep
in mind that the more you imbed menus, the more potential
problems you may encounter. The only way to exit the menu is
via the Ignore Remaining (RI) or Read Quit (RQ) commands, or
by using Message Next (MN) past the last message. *HOWEVER*,
with that said, please *safely* experiment to your hearts
desire, the new commands and the MSGREAD menu provides a lot
of power to your system.
Some side effects of all these changes:
(1) Title scanning is available in all reading modes,
including toUser/fromUser/personal/subject/text modes.
(2) Jumping around to non-scanned messages (i.e. those
which don't match the scan criteria) is now allowed in
all modes except waiting/emailscan.
(3) toUser and fromUser scans now also accept an optional
name to scan for -- (blank for users personal mail
will match either the users alias or realname). It
should be a helpful feature.
+ Message header editing was completed. It's available for all
Message SubOps or SysOps (depending on how you do the
access). NOTE: If the user does *not* meet SubOp or SysOp
access, the option will *not* come up even if the menu item
is selected (safety feature). The new option on the MSGREAD
menu is "*", and is powered by the R* menu command.
+ Telegard will now use REPLYADDR from Internet Email if
it exists (the user will be given the option of which
address to use . . ., the FROM or REPLYADDR).
+ New toggle for message received status. The new option on
the MSGREAD menu is "$", and is powered by the R$ menu
command. NOTE: If you are the recipient of the message, the
bit will toggle OFF--however, if you re-read the message
(i.e. using "A"gain, or return to the message latter, the
received status will be set again). Once set, it is not
unset (except by this toggle).
+ Message threading was added for reply chains. I don't
pretend to fully understand how the chains are linked for
messages from remote systems (some is done by MSGID, others
on subject, etc.) -- Telegard simply follows the Reply1st and
ReplyTo fields that any message has. The two new commands on
the MSGREAD menu are [,] and are powered by the menu commands
R[ and R].
[,] follow the chain -- the next regular message movement
(previous, next message, continuous, etc.) will start with
the message where you entered the thread. (i.e. reading 1648,
thread previous replies to 1245, then hit enter for next
message -- you will get 1649). The one exception is jumping
to a message #, in which case the threading is terminated and
you goto the message you requested.
+ New anonymous toggle: Realname or Handle, allowing the choice
at the time of posting for the user. NOTE: This method uses
the 'None' tracking mode so that ^aREALNAME and (an####) tags
are not created -- the Handle/Realname are both unique on the
originating system, and thus, it really *isn't* needed. This
toggle is even available on Netmail areas (where other
anonymous toggles are not permitted).
+ Message area opening code is now much smarter: if an area can
not be opened, a polite message should be returned rather
than a hard runtime error message.
+ Some new kludge line features have been added:
1) If ShowKludgeLines is toggled ON, then both "Transfer
Message" and "Extract Message" features will grab the
kludge lines, which are saved with leading "@"
characters in order that they can be imported into
messages without affecting other software.
2) If ShowKludgeLines is toggled ON, then the message
quoting file will also grab the kludge lines; the lines
are prefaced with the quote str ("nn> "), and are
truncated at the maxmimum line length.
NOTE: It is recommended that the kludge line toggle feature
be limited to Co-SysOp or SysOp ACS only (controlled via
MSGREAD menu). Kludge lines should not be available for
general public access.
+ Anonymous messages have a new tracking mode. Previously, all
'anonymous' message types were posted with a ^aREALNAME
kludge (even in echomail areas). However, three new tracking
methods are now available-- Name, UserID, and None. The
three modes operate as follows:
Storage of Export
From field Original User Name Restore
Name Anonymous types ^aREALNAME kludge YES*1 YES
UserID Anonymous types #### in from NO*2 NO*3
+ (an####) field is userID
None Anonymous types NONE*4 NO NO
*1: The ^aREALNAME kludge is exported. Ideally, other
systems will not show kludge lines to general users,
but this is not always the case.
*2: UserID is exported, which is unique to the local system,
and only visible by the current user (from info
screens) or from the user editor (SysOps/etc).
If you have utilities which print the private
UserID of a user for public consumption, this
method is not anonymous either!
*3: Since UserID's can change (user is deleted, new user
logs on), the original name of the poster will not
be restored.
*4: Logs will contain message posting information; which is
only available for as long as the logs are kept.
+ Added quote warnings, and quote maximum for messages posted
within the line editor (this feature will *not* enforce the
messages posted via a FSE!). There are two settings, which
you can set as you please:
1) Quote warnings: The user will still be able to save
the message. Use 0 to disable warnings.
2) Quote maximum: The user will not be able to save the
message if they exceed this % limit. Use 0 to
disable the maximum.
So you have several combinations:
1) Disable both: Acts like Telegard 3.02
2) Enable Warning: All messages will still be saved,
but messages exceeding the limit will be warned
and given the option to re-edit.
3) Enable Maximum: No warnings, but messages with
too much content will not be saved--no questions.
4) Enable both: Messages lower than the warning level
will save normally, messages between the warning
level and the maximum level will receive a warning,
and messages above will be denied.
The default "Save anyway?" answer should work as follows: If
quote warnings are OFF, the save should default to YES. If
quote warnings are ON, it defaults to YES only if the user is
below the quote warning level--otherwise it defaults to NO
(so the user changes the message by default).
For Co-SysOps and SysOps, both the QuoteWarning and
QuoteOverThreshold warnings default to yes.
+ Local messages now also get MSGID fields (using default
netmail address (address 1)). These can be used for reply
linking in local areas.
+ Added extra MCI codes for lines 1119 and 1120 (see
LANGUAGE.310 for the information). Version 7 nodelists use
uppercase only--if you use Version 7, and want proper cased
entries, you'll have to use the ~En formatting codes.
+ Added toggle for appending "Re:" to the reply subjects.
+ Added auto-signature support for messages posted (again)
within the line editor (FSE support is *not* going to be made
available for this feature). The signature appended, short
or long, will depend on the message base setting. If the
area is set to SHORT, then the short signature will be sent
which consists of one line up to 75 characters of text. If
the area is set to LONG, then the long signature (240 chars
max, or 4 lines) will be sent -- if not set, the short will
be sent, if set. If the area is toggled to 'NoSigs', then
no signatures will be appended.
In addition, any name, anonymous or dear abby messages will
not have a signature automatically added.
* Patched up Squish deletion adjustment so that messages are
not skipped. Hopefully that is the last of such adjustments
that will be required--I thought I'd already done this, but
it apparently didn't work.
* Patched quoting so that when you wish to quote further text,
it starts where you last left off instead of starting from
the top of the quoted text.
* SmartQuote DISABLED should now be a little smarter (less of a
dumb-quote)--it'll now properly truncate lines; the logic was
right, except it was erroneously keeping the "excess" text in
the wrap field; it'll now only do this if the excess text
exceeds 10 characters in length.
* Netmail addresses were designed to be automatically filled
with values if the whole address was not provided; however,
the code was not working for node numbers, and also not
working for netmail areas defined as "Match AKA". Fixed.
* Anonymous names should now work properly for Echomail &
Netmail areas (the items were previously not properly saved
for non-local areas).
* Repaired some JAM code which would sometimes lead to MBUTIL
reporting invalid JAM msg-id's (this resulted when changing
the size of the subfields, and improperly resaving the OLD
index--which while not used, would cause said warning).
* Copying/forwarding/moving a message should dynamically pack
the current area as well as the area the message was copied
to (for Squish areas only, obviously!). It will now also
update the write logs, create the necessary semaphores, and
write the information to the SysOp logs. When copying/moving
messages, the REPLY: kludge lines and reply linking will also
be removed.
* Forwarding/Crossposting a message should now check for write
acs for the particular message area the message is being
forwarded/crossposted to.
* Crossposted messages will create the semaphore files (they
will also now receive log lines following the original posted
message statistics).
* Deleting a message to a user will properly mark the userCRC
in the *.JDX files as zero -- this will effectively uncouple
the messages relation with the user (thus, things like the
MW;P or MW;L option will not count those deleted messages).
Undeleting a message will restore the userCRC field to the
CRC-32 of the lowercased destinee (which should restore the
original value).
NOTE: This is only useful if other JAM utilities do this.
* Fixed up file attaches such that the parameters passed to the
protocol use the proper format (no filename for batch
protocols, which is often why attaches via Zmodem, etc. would
report errors when used with DSZ/GSZ).
* CTRL-P, T will now use /T: instead of the erroneous /C: as
the feature indicator in the line editor.
* Message start number input will accept up to 999,999 as the
valid input now. If you have more messages than this--TOUGH!
(renumber them! . . . I thought 32,000 was enough <g>).
* Squish areas should not skip the 'next' message when posting
a message forces dynamic packing--I thought this would be an
elaborate fix which is why it wasn't done for 3.01/3.02--
However, it appears I outsmarted myself and added the code
when I first added Squish--I just used the wrong variable
name when I later called the MsgSave() routine! Fixed.
* Version 7 nodelist searching has been completed. Version 7
nodelist browsing has not been completed yet (it will have to
wait until after the other features are finished).
* New message areas now use the default address properly--
Echomail & Newsgroup toggles were previous changing the
default address to the first address. Netmail & Internet
Email bases will continue to switch to AKA matching for
intuitive reasons.
* SysOp logs contain the From: name for posted messages if the
base allows anonymous types (even if the message is not
anonymous). This is for tracking purposes.
* Squish bases with unlimited messages were marked with max
messages == 65535 rather than the Squish standard == 0.
* Processing messages > 32K should _not_ have worked because of
some filtering variables if either mbfilter or mbstripcolour
was turned on. It did infact work on occasion, but it
shouldn't have. Fixed--hopefully this fixes importation of
large files (.ANS/etc) over 32K.
* Fixed posting statistics for message replies. These were
not being correctly counted in either the system statistics,
or in the user statistics.
* Telegard will remove all trailing blank lines from a message
before saving it. This makes things look cleaner (and was
implemented to pave the way for the next item...)
* After a message is deleted, it will attempt to move forward,
*then* backward. It makes no difference if users must delete
messages, but apparently this is what was wanted...
* File attaches allowed attaching directories as exist()
returned true for directories--I've changed the exist() so
that it does not recognize directories.
* MSGID fields should now be unique for multiple msgs/s, even
when posted via the QWK internal mail scan. If you were
previously having problems, please let me know...
* Replying to a message in netmail/another area after reading
several -new- messages, will now retain the lastread
information (i.e. where you've read to) instead of restoring
it to the previous value.
* Import filenames are persistent across the same message area
session (i.e. if you enter an input filename; it will store
that filename and used it until you leave and enter a
different message area).
* Fixed up file attaches so files can be removed with the
R:eset command.
* All file attaches now have the file attach path stored; this
makes outbound file attaches possible (Telegard would always
find the file because it checked the attach directory, which
the external programs could not do).
* Fixed up Squish deletion coding, which would skip messages if
at the very last message. Should work well now.
* Messaging importing should now properly work with Unix text
files (LF instead of CR/LF). If Telegard finds a LF without
a leading CR, then it translates that LF into a CR/LF (new
line). Telegard used to ignore LF's entirely, so this should
not introduce any other incompatabilities.
* Updated code so that it was smarter when encountering message
area errors; such as long Squish index files. I'm not sure
if it's Telegard's problem, or otherwise, but Telegard should
be a lot more friendly in that respect.
* Updated file attach download code so that it properly
parses the input. It was using an invalid string and
occasionally rejecting input (based on the contents of that
invalid string). Fixed.
* Fixed problems with Squish hash routines, affecting MW L, P
and G options (MW itself was okay, since it uses a string
search rather than an index hash search). NOTE: Messages
internally posted with the OLD hash routines will no longer
be found with the NEW hash routines. If this is a huge
problem, let me know and I'll whip up (hopefully) a program
to update the hash values to their proper values . . .
* Fixed last-read pointer reseting so that the pointer is
more accurate (by one message), and also does not produce
invalid ranges. The code should be more friendly to errors.
* Increased sized of import and export filepath fields.
* Fixed up file attaches so files can be removed with the
R:eset command.
* All file attaches now have the file attach path stored; this
makes outbound file attaches possible (Telegard would always
find the file because it checked the attach directory, which
the external programs could not do).
FILES
+ New file section--the description files are now 'flat access'
which means that to get the file description, you seek to the
description offset, read the description ID (should be the
matching filename--13 bytes in length), then the description
of fbrec.desclength size. No more pointers to maintain
besides the offset = easier to use/maintain file section.
The new structure use NEW files (i.e. utilities which use the
old filenames will not load the new structure and crash).
External utilities have been included for support with other
utilities which make use of the old structures.
For utilities which only _read_ the file areas (file listers,
etc.) or utilities which update things which may not be too
important during this beta stage (download counters,
whatever):
FA2FB /* generates old files from current
structure files */
...utilities here...
For utilities which update the file areas:
FA2FB /* generate old files... */
...utilities here...
FB2FA /* convert old files back to new
FA files */
I have included several switches with the utilities so that
you can obtain optimum performance with these conversions:
-NOCD /* do not process CD-ROM areas */
-DATE /* only process if dates on files are
different */
Assuming that the utilities, when they change the file, also
change the file date, the -DATE option will ensure that you
only update files which have _indeed_ been changed (which
will save going through all your file areas = faster update).
In addition, since utilities like ALLFIX do not update CD-ROM
areas, the -NOCD switch does not process those areas either.
The new files are slightly smaller than the previous files;
it is more noticable on the first coversion because the file
descriptions are packed and wasted space is removed--thus,
the following results were obtained:
Old files (w/wasted space) 810,843
Old files (w/o wasted space) 309,950
New files (w/o wasted space) 226,462
The new files are easier to pack and remove the wasted space,
so I'll write a packer shortly (actually, I'll build it into
the INDEX utility).
* I recoded some of the core file section routines to improve
on overall system speed -- the following items have been
affected by these changes:
1) All *.FA/*.FAD files are kept open while the user is
actively listing files. The files are only closed
when neccessary -- this reduces file open/close time
(which makes the system feel *real* sluggish). I
don't think it'll cause problems unless files are
deleted while the file is open -- to prevent this,
packing utilities must be able to open the file in
fmReadWrite+fmDenyAll mode -- if they can not (the
file is presently open), then the utility must wait
before deleting the file.
2) Upload queues are no longer used. Uploading will
start the protocols immediately, after the upload,
the file_id.diz will be checked, and if missing a
description prompted for. No filenames or
descriptions will be entered before the transfer
starts. Bidirectional uploads use the file area
precedence of current -> UploadArea -> SysOpULArea
(latter both as setup in SystemConfig.FileSection).
The only exception to this rule is single file
transfer protocols, which require a filename before
transfer -- these will be input as required.
3) Download queue was resized to 50 files. This should
be more adequate with today's transfer speeds (it's 2
1/2 times the previous limit).
4) Duplicate filenames are allowed, except that any
given directory can only have ONE file of any given
filename (pretty obvious). Otherwise, you should now
have free reign on the file section!
5) Archive conversion now checks for a duplicate of the
new filename (which it always SHOULD have, but never
did). Note: It does an index check, not a physical
file check! (if there is no index entry for that area,
but the file exists, the conversion *should* catch it
later...)
6) Downloads, Tagging, etc. will cycle through all
areas if globaldownload is ON, otherwise it'll only
check the current area. Of note: Specifying a
wildcard (* or ?) will cause Telegard to search all
areas -- specifying a full filename will cause
Telegard to search the INDEX instead and only prompt
for found files -- this is muchos faster!!
(Telegard previously did this, but I think in this
incarnation it is *much* better).
7) Files of the same name from different areas can now
be tagged for download. Of note however -- the users
terminal had better be able to handle that (by
renaming the second file to something else). It's
not a Telegard restriction anymore . . .
8) Telegard does not care what format the descriptions
are stored in the flat description file. However,
Telegard will continue to obey the Reformat option
when displaying the loaded descriptions. The
description format (stored by a third party utility)
will not be updated automatically.
DEVELOPERS NOTE: Please format your descriptions in
45 character lines, per the proper FILE_ID.DIZ
description.
9) Reworked the editing code so that it's a bit smarter;
it'll now move backwards and forwards through edit
list looking for matching file specs (or filenames).
It should also be smarter with respect to saving only
edited files, and was designed to be integrated with
the file tagging prompt <g> . . . It DID take major
modifications though, so please let me know of any
problems.
+ Major modifications to the file area listing/scanning. The
changes were to integrate the FILETAGP menu, which is called
wherever the old file tagging prompt would have been called.
A default menu has been included which closely mimics the
previous tagging. The commands for use on this menu are the
new S? series of commands:
SC Continue with listing
SE Edit file (delete/move/etc.) - by number
SF File operations
V View files - by number/filename
Default Tag files - by number/filename
SQ Scan quit
S Quit current area & quit scan
Default Quit current area (skip to next)
ST Tagged queue editing
L List tagged files only
E Edit tagged files
Default Tagged queue statistics
SZ Toggle current area from zscan
These were the only commands specifically designed for this
menu. Other commands *might* be safe/work, but *please* keep
in mind that the more you imbed menus, the more potential
problems you may encounter. The only way to exit the menu is
via the Scan Quit (SQ) commands, or by using Scan Continue
(SC) past the last file. *HOWEVER*, with that said, please
*safely* experiment to your hearts desire, the new commands
and the FILETAGP menu provides a lot of power to your system.
+ Added secondary sort option (for options other than Filename
sort--which allows only one file of identical name in any
given area anyways)--the secondary sort is used when the
primary sort criteria for two files is equal (i.e. upload
dates are the same, then sort by filename).
+ Added configurable sort criteria--defined for each file area--
used for area sorting (unless overridden with a different
sort criteria).
+ Added command line file sorting. The command line is -FS
and it invokes a global sort based on the sort criteria for
each area (i.e. you can not select the criteria). Areas with
out a primary criteria are not sorted.
+ Telegard now has the ability to change the file path
dynamically based on the CD-ROM label. Thus, if you have
multiple CD-ROM drives and flip the disks (or they're on
a CD-ROM changer which automatically flips the disks),
Telegard can update the file path so that it's appropriate
for the CD-ROM labels in the drives.
How does this feature work? Several things have to happen
before it'll successfully work:
1) Global toggle must be enabled
2) File area toggle must be enabled
3) File area must have CD-ROM label defined
4) CD-ROM table update must be enabled and set to
a reasonable update time.
When the CD-ROM table is updated, Telegard will go through
each file area. If the file area has drive letter updating
enabled, then Telegard will check the label of the current
CD for the current drive; if it does not match, then Telegard
will step through each drive (from the table) attempting to
match the CD label to the predefined label. If the label is
found, the file area path is automatically adjusted to the
correct drive letter. If the label is -not- found, then
Telegard will not update the area--in this case, when a user
attempts to download from the area, they will receive a
message stating that the CD-ROM labels do not match (and that
the CD-ROM for this area is hence unavailable), which is how
the original CD-ROM label checking worked (without drive path
updating).
The checks are only done when the CD-ROM table is updated,
and only during startup. Doing the checks on the fly would
eat too much overhead.
This is a very nifty CD-sharing idea that I hope will come in
handy; just keep in mind that there is -some- overhead
involved with the checks that it does . . .
+ Telegard now has a list 'failed' file ACS; if a user does
not meet this ACS restriction, they will not be allowed to
list 'failed' files. Toggle option SystemConfig.FileSystem.
AccessControl. The other options were moved down to
accomodate.
+ For some failed download requests, Telegard will now log
those requests; for
- Missing, Offline, Failed, Unvalidated files
- Failed passwords
- Unmatched CDROM labels
(i.e. all the ones that SysOps might be interested in)
+ When deleting files, and selecting not to remove the area
record (i.e. only physically delete the file), an option for
toggling the offline status flag will now be given.
+ Option to remove high-bit from imported descriptions (toggle
from Systemconfig.Filesystem.(H)8-bit_FILE_ID).
+ Preliminary support for PNG (Portable Network Graphics)
format added.
* The validate files maintenance option is now powered by the
same update engine as most of the other maintenance items.
* 'Next Area' should now work properly -- i.e. it will skip the
rest of the file being displayed and will avoid any further
pausing for the skipped area. The big problem was when the
'Pause After List' option was enabled (Next Area was not
cancelling this forced pausing prompt -- it does now!)
* Offline files will no longer receive a duplicate file tagging
number (offline files should receive NO file tagging number
at all).
* Graphic Specification (GifSpec=NNNxNNN,NNNc,type) is now
represented as (xSpec=NNNxNNN,NNNc,type) instead.
* The search engine for the file section has been updated to
reflect the new structure--it's using the QuickSearch now
instead of the much slower POS(), and was noticably faster on
my machine (perhaps not on yours . . . )
* FILES.1 file listing & description file (for downloads) was
missing the second line of the description. Fixed.
* Uploader names > 36 characters were truncated to 20
characters during editing; names longer than 20 characters
after input would crash the system. Fixed.
* File Passwords will not be prompted if the user has failed
any of the download ACS criteria. The file password will
still be prompted for valid ACS users, before time & byte
checks are done.
* Description importing will remove empty (or blanked) trailing
lines from the descriptions.
* Fixed up local download code -- if the local download it
aborted, the file counter will not be incorrectly update.
* When moving files, conferences are now ignored automatically.
This -could- be accomplished locally before by just hitting
the IGNORE CONFERENCE SysOp key, but this makes it automatic,
so you can move files across conference boundaries.
DOORS
* The DOOR.SYS file (Menu DG) has been updated to reflect the
*correct* format of the DOOR.SYS file created by GAP. This
means that the REAL NAME of the user is *always* sent instead
of the realname/alias toggle we previously used, and in
addition, the handle is sent later in the DOOR.SYS file.
If you use doors which use the DOOR.SYS and also keep user
information, the new format will cause those doors not to
recognize the users as active players/etc. If this is the
case you have two options--update the 'player name' id
entries in your DOOR.SYS to use the real name instead of the
handle, or use the OLDDOORS.SCR file to create an old
DOOR.SYS compatible drop file. I honestly suggest a slow
progression to the new, and proper, drop file format.
SysOps who use R; (real name force) in their DOOR.SYS drop
file commands should have no problems--the file is of
compatible format.
* A proper DOORFILE.SCR was included which has the new REAL
NAME line for the DOORFILE.SR generation. This is used for
duplicate checking for the Solar Realm games. Please use it.
MENUS
* Major overhaul to the internal menu routines -- this was done
not only for optimization purposes, but also to support the
new specialized menus (see AREAS, MESSGAES, FILES and this
section for details). This is the core of the BBS system, so
please let me know of any difficulties.
+ The New User Information Verification code is now handled via
a specialized menu called NEWUSERV.MNU. This menu just makes
calls to the OP menu commands to update the user information.
A new menu command, -Z, will exit from this menu loop, save
the user information and continue with the new user process
(dupe phone # checks, etc...). Several things should be
noted:
* The OP menu commands operate in 'NewUser' mode -- i.e.
the same as the old methods. Thus, if you toggle items
ON/OFF via SystemConfig.NewUser, then those items will
work as expected (off, forced value, etc). This works
for all OP commands 1-25, & 80. Thus, if you disable
the date of birth field, even if you call OP 9 the
date of birth will not be prompted for.
* Menu changes, sub menus, etc. should work just *fine*.
Just remember that the user has *not* been saved yet,
and calls to other menu functions that expect the user
has been saved may, or may not, work. This is most esp.
true for door calls, file transfers, message reading,
etc. which expect the user is a valid, logged on user.
There is an alternative -- to automatically save the
user and assign a user-ID, and then load the menu.
However, if the user does an ALT-H at this point, their
account has already been saved, and they will avoid all
of the duplicate number checking, and the newuser
script. I did not take this alternative -- if people
have comments, suggestions, etc., please let me know!
* Hangup commands will function as normal (log the user
off) -- the records will *not* be saved. The only way
to exit this menu set, and save the user record is to
use the -Z command.
I have included the menu template NEWUSERV.MSG, which is
displayed by the NEWUSERV.MNU instead of the generic menus.
You can use generic menus for this display, but the display
file provides easier manipulation of the fields.
While I don't insist you stick with the default NEWUSERV.MNU
that comes with Telegard, I do urge that you heavily test any
changes that you make.
+ New menu command OK which adjusts user statistics; it is
a compound command, which handles the adjustment of:
Timebank, Netmail Debits, Netmail Credits, Filepoints and
online Time. See the MENUS.REF file for more information
on the command. Some examples:
+B25 ; adjust timebank by 25 minutes
-B5+T5 ; adjust timebank by -5 minutes, add
5 minutes to online time
+P250 ; adjust filepoints by +250
-P250 ; adjust filepoints by -250
=D0=C1000 ; set netmail debits to zero, set netmail
credits to 1000
+C500 ; adjust credits by +500
I guess this is also a good time to mention how Telegard
handles netmail crediting and debiting. Essentially a user
is given NN Netmail *Credits* to start off with. The user is
allowed to continue sending netmail until the users Netmail
*Debits* exceeds the NN Netmail Credits. At this point, you
can do one of two things -- Increase the available Netmail
Credits (and the user can use netmail until their debits >=
credits again), or you can set the Debits back to zero.
+ Two new default menu handling help levels have been defined
for menu input. The help levels work as follows:
User Settings } Starts at Expert or Normal level
(depending on the user eXpert setting)
?:Help goes to the next level.
Forced Expert
Forced Normal } ?:Help does nothing, always forced
Forced Extended
Default Expert
Defaults Normal } Override user settings for this menu,
but still allow ?:Help to goto next
help level.
The help level progression is Expert -> Normal -> Extended.
Thus, with the forced levels, the user will always be at that
help level for that menu. With the default levels, the users
will act like their setting has been temporarily overridden,
but the ?:Help key still progresses to the next level.
NOTE: Default Normal with Extended Help = &OFF is like being
in Forced Normal mode (the user can't go to Expert, and can't
go to Extended either).
+ Menu editor now contains a (R)ename menu function, and a
(C)opy menu command function.
* Telegard allowed *OFF* in the extended menu filename to
disable extended menus (allowing only expert and normal).
Due to my oversight, the filename input routine would not
allow the * character -- even though *OFF* was expected.
The new designation is &OFF -- please update any menus you
may have had left over from previous versions of TG (which
could be used, but not changed).
+ New menu flag -- no CR after prompt -- Telegard normally puts
a <CR> after the input, to start the cursor on a new line.
With the flag enabled, the cursor remains where it was. This
is especially helpful for the FILETAGP menu, which will erase
the prompt if it can.
* MCI codes are translated for file display (-F through -I)
commands. This is useful for displaying node dependent,
area dependent, etc. information.
* Menu command NW will no longer run on single node systems
(no errors this way either).
OTHER
* User-ID *text* was changed from ##-#### to #### format
(leaving off the leading two zero's since it is unlikely any
system will ever have more than 1.6 million users). The
userid is *still* a longint, and all your users *still* have
the same userid. The only thing that has changed is the way
that the numeric number is represented as text. Thus, things
to note:
(1) I##-#### ACS is now I#### -- change your menus
or the ACS will always fail (even for | (OR)
alternatives since the string is the wrong size).
(2) If you use doors that use the old ##-####, or
if you pass the MCI code to batch files for
semaphore files amung other things, you should put
a leading "00-" infront of the ~UU MCI code. This
will mean all your old doors will work. I suggest
switching semaphore files etc. to the newer format.
(3) Separate SysOp Logs are now SLOG####.LOG instead of
##-####.LOG as they were previously. This is
better I think (matches the CHAT#### and TRAP####
logs better too).
+ SysOp logging format was changed. Telegard now uses either
FrontDoor or Binkley style logging (default: FrontDoor). The
logs should integrate better with your other utilities, and
also provide timing critical information.
+ Added Duplicate Phone Number 'Email-To-SysOp' option. The
option SystemConfig.NewUser.DuplicatePhoneScan now has three
levels - No, Log Only, and Email SysOp. If the latter is
chosen, an email will be sent to the sysop with DUPTEL.TXT
as the header (from your default text path, NOT the language
text path) and a list of all the users (handle & realname)
which duplicate the new user's telephone numbers.
+ Added ACS XZ, which is TRUE for users w/ CoSysOp ACS and
FALSE otherwise (this was needed for the new MSGREAD menu!)
+ If deleting a protected user and the online user has SysOp
ACS, an override protection prompt is now used.
+ The local input routines accept left and right arrows to
move up and down the input line, and the insert key to toggle
b/w insert and overwrite mode. NOTE: Input fields which
accept pictures (i.e. phone, postal codes, dates) and colour
codes will -not- allow arrow keys. Please test this area
extensively, and let me know if things mess up to any
significant degree.
+ Added drive table listing and update facility from
SystemConfig.Hardware. This will allow the table to be
updated if there are problems with detected media.
+ Added security level upgrade and downgrade notices to the
validation system. If the users' SL goes up or stays the
same, they will receive the upgrade notice, and otherwise
they will be sent the downgrade notice.
The upgrade and downgrade notices can be configured for each
level. The notices must have a .TXT extension, and must
exist in the textfile paths (similar to WATCHPW, etc.).
| The base file names for each level are configured in
| SystemConfig.ValidationLevels.
NOTE: The upgrade/downgrade notices are sent from their NEW
level, not from their OLD level. So if they change from
level A to level B, they will be sent the appropriate upgrade
or downgrade notice from level B.
+ User accounts can now be toggled with 'No Password Alert'
status, which means they won't receive a hack warning request.
This can be helpful for guest & other temporary accounts.
+ Added -OFS and -OMC command lines, to override the detection
of SHARE and MSCDEX respectively. If your system is SHARE
compatible, but SHARE can not be detected, use -OFS. If your
system is MSCDEX compatible, but MSCDEX can not be detected,
use -OMC. CAUTION: USE WITH CARE. IF YOUR SYSTEM IS NOT
COMPATIBLE TELEGARD WILL MAKE CALLS TO THESE DEVICES AND MAY
RTE IF IT CAN NOT GET WHAT IT IS LOOKING FOR.
* Patched up multinode network (SHARE) code so that if a file
encounters an error, it doesn't loop with that error even if
the file is subsequently made available. Most notable in RTE
5 loops, followed by a RTE 103 or otherwise.
* Updated handling of multinode INODE*.DAT files in an attempt
to reduce errors.
* Languages which don't exist on login will be replaced by
the default language (which must exist, otherwise the user
would never have gotten that far!)
* The TRASHPHN.TXT file will now be used to deny BBS list
numbers as well. I thought of using a separate listing, but
if you don't want the numbers in your user list, you don't
want them in your BBS list, and vice versa.
* The TRASHPHN.TXT file which Telegard parsers to deny phone
numbers now accepts ? as well as * as wildcards. ? will
allow any character only in that position, while * indicates
the rest of the phone number. I.e. 111-* means deny anything
that starts with "111", while 1??-* means deny anything the
starts with "1". In the latter example, it is important to
note that 1* would not be appropriate, as this would cancel
international numbers, etc. Putting in at least one
formatting code is a good idea (in this case "-").
* Fixed up internode messages so that long messages with lots
of colour codes in the pre-text (1931/1932) are still sent
intact. Additionally, added support for @/$filename from
the 1931/1932 prompts (they are sent separately -- without
a CR -- that is the only thing to note).
* Fixed up some event code which would cause any of the
following symptoms:
(a) Slow event display at WFC screen
(b) System instability at WFC / logon process
(esp. under multitasking systems -- Jeff, this *could*
have been what caused your other windows to close down
when you shut down Telegard -- unlikely, but *could*)
(c) Nothing at all (it was erratic!)
* The vote mangling from deleted users was definately Telegard
-- although I don't quite understand why. The code was all
correct, so who knows. When Telegard deletes users, it no
longer touches the voting data. Since Telegard keeps a tally
with each question, the questions now have the effect of
keeping a running total (for active & deleted users) until
the next vote reset. I think this is appropriate anyway.
* Deleting a user will now only open the message base if it
is Squish format -- JAM does not need the lastread pointers
updated, so it's not done (and thus will be faster).
* Field input should not be so sluggish if not checking for
any pre-formatting (i.e. not formatting phone numbers, postal
codes, dates and times).
* IEMSI phone numbers should parse a little more cleanly (i.e.
(905) 820-7273 -> 905-820-7273
(905) 820 7273 -> 905-820-7273
905 820 7273 -> 905-820-7273 ...etc...)
~ IEMSI code in relation to carrier drops; there is no easy way
to recognize the dropped carrier during the IEMSI sequence --
Telegard will timeout after 15 or 20 seconds, and at that
point Telegard will check. Unfortunately, at this time
that's the best the code is going to get.
* Fixed a number of cosmetic errors (override delete, colour
for deletion prompts, too many nl before errors, etc). Please
let me know if you find/see other 'funny' things.
* File I/O routines trap RT 5 as a file-sharing error now as
well (instead of just 162). I also repaired some of the I/O
error handling -- file sharing/locking should be more
reliable. User side output will strip the file path (which
never should have been sent), and additional information is
now sent to the local screen only.
* Original bet will be adjusted if maximum bet < 5.
* Fixed internal YY/MM/DD conversion problem that WOULD under
certain circumstances crash the system (reseting last
read pointers with this date format, for instance).
* Fixed OP53 toggle (it would increment well past the limit
of 3 date fields--creating unknown formats for the dates
(Telegard would at least translate to MM/DD/YY in this case)).
* Date separator will now be used for all date input and
other date fields displays (date format for instance).
DEVELOPERS NOTE: All internal date fields (string) use
'/' as the separator, and MM/DD/YY as the format.
* The time separator will now be used throughout the system.
Of note, the time & date separators (and the thousands
and decimals separators) are single characters only (i.e.
NO COLOUR CODES--SORRY!).
* I think I fixed (for the final time) the logon bps
restrictions for both general logons, and for node specific
logons. I moved the code to an ENTIRELY different library,
and that should fix the problem (I believe it was setting
hangup, and then incorrectly unsetting hangup in a subsequent
area of code, allowing the user to logon . . .)
* Fixed language selection problem -- occured if there was only
one available language that the user had access too.
* Telegard will attempt to strip colours from user names when
completing a user name during a lookup (for sequential
searches *only* (i.e. mail and user list/editor)).
* Fixed sysop window spacing--also did a number of other
changes to the sysop window code. Please let me know if
there are any problems.
* Forced password changes will no longer permit the current
user password to be input -- somewhere this logic was killed.
* Time adjustment commands have been changed to CTRL-PGUP
and CTRL-PGDN which add and subtract 1 minute respectively.
PAGE UP and PAGE DOWN now move between your SysOp Windows,
and LEFT, RIGHT, UP and DOWN are now processed in input
routines (and eventually, menus).
* The default exit levels for Telegard have changed; errorlevel
0 is the default exit level (no errors), and errorlevel
1 is the default error level (w/errors). This is changed
*from* 255 and 254 respectively. You can still override with
the -EN, -EE command line options.
* Random files should be more evenly distributed between .ANS,
.AN1, etc... under the old system, it would choose the .ANS
file by FLUKE... (i.e. rarely).
* Input routines that don't accept colour by default will print
out the string in it's full form; backspacing over visible
colour codes will not affect the display.
* Changing the SL of the user while in ALT-E edit user denies
all further access to the account (edit lockout). Fixed.
* ALT-P to PRN, LPT1 or LPT2 will not ask if you want to append/
overwrite, etc. It will just do it...
* Drive detection code was updated; the first two drives (A:
and B:) are never checked (always assumed to be Floppy
drives). In addition, Networked drives now return type
Network instead of type CDROM (this returns the detection
to the previous setup I originally started and somehow
fumbled . . . ).
* User editor via ALT-E/ALT-U has been updated so you can
modify all entries; it was designed previously to lockout
changes to online user records from the online user...
* MCI Code translation has been moved from level 2 to level 1
(i.e. it'll only process an MCI substitution once, instead
of going over the string twice--doing it twice allowed for
strings which weren't automatically substituted with MCI
codes to be reprocessed and substituted). The two level
substitution caused a lot of problems; this should remove
all problems associated with ~ from Win 95/Linux long file
names, etc... etc... etc...
* Chat logging is now set for a particular session; if you use
ALT-F to change the chat logging DURING a chat, it won't
change the format of the current recording (i.e. if it's
not recording, it won't record, if it is, it will). I
realize this is problematic, but I'm afraid it's stuck that
way for now . . . if you want to record a chat you're
already in, hit ALT-F, setup the chat recording, and exit and
re-enter chat.
| * Date format in New User Application now preceeds Birthday
selection.
* Languages which don't exist on login will be replaced by
the default language (which must exist, otherwise the user
would never have gotten that far!)