M3
AGENT FAQ
AGENT FAQ
  
  Agent Free Agent Support Room
   
This section is your primary source for technical information about
Agent and Free Agent. We'll be updating it frequently, so it should be
your first place to look when you have a question or a problem.

Fort does not provide direct technical support to freeware users. However,
we will continue to update our Web pages with the latest technical support
information. Free Agent users may also post their questions in these newsgroups
monitored by the Agent Support Team. 

Usenet

alt.usenet.offline-reader.forte-agent 
comp.os.ms-windows.apps.winsock.news 

CompuServe

Windows Connectivity (GO WINCON) 
Internet Resources (GO INETRES) 
Internet New Users (GO INETNEW) 


AGENT SUPPORT


Forte; provides direct technical support via email to all Agent .99 customers.
To contact a member of the Agent Support Team, please post your question
by choosing Post | Support Question from the Agent menu. 

Please note: Forte; does not offer direct telephone support to individual
Agent .99 customers.

Commercial Sites should refer to your contract, or contact your
Fort sales representative for the terms and conditions of your customer
support agreement.


LOST REGISTRATION KEYS


If you've lost your Agent Registration Key, please send an email message
to lost-key@forteinc.com to request a replacement.


FREQUENTLY ASKED QUESTIONS


Whenever you have a support question, your first stop should be our
Answers to Frequently-Asked Questions (FAQ's) (Updated
10/01/96)


BUGS ENHANCEMENTS


Known Bugs 

Most-Requested Enhancements 


Release History (Free Agent 1.0, Agent .99f)


Follow this procedure to report a new
bug.


DOWNLOAD THETECHNICAL SUPPORT WEB PAGES


Follow this procedure to download and install an off-line
copy of our Technical Support Web Pages (Updated 10/01/96). These pages
are in HTML format so you can view them with your Web Browser.


Winsock Compatibility 
Agent requires a TCP/IP protocol stack that supports Windows
Sockets (winsock) 1.1. Here is a list of winsock drivers that we have
tested and verified compatibility with, or that our users have reported
success with. Click on the names for information about specific versions
that have been tested, and setup options or other tricks required to
make them work.


Chameleon

Internet In A Box / CompuServe NetLauncher

Microsoft WFWG, Windows 95, and Windows NT


Netcom Netcruiser
Novell Netware Winsock
Trumpet Winsock  
 

We know that we have compatibility problems with the following
drivers, and are investigating the problems:

SuperTCP by Frontier Technology
Sun PCNFS, Quarterdeck Winsock  (These two are due to a bug that
we'll be fixing shortly.) 
 
Chameleon

We've tested version 3.11N, which is the lite version
that's been bound into popular Internet books. It works with
Agent, but it doesn't have a dial-on-demand mode to
fully support our offline operation. You'll have to manually connect and
disconnect from your service provider.
 
Internet In A Box / CompuServe NetLauncher

We are not compatible with version 1.0, which does not
support the async GetHostByName function.  We are compatible with versions 1.0a and above.
 For information about upgrading to version 1.0a, see Spry's Web pages


Note that there appear to be two updates, one to the DLL and
one to the dialer.  Versions 0.55 and earlier of Free Agent
require the new DLL but the old dialer.  All later versions of Free
Agent (and all versions of Agent) work with the latest DLL
and dialer.
The CID program that is included in CompuServe's NetLauncher package
is basically the latest version of Spry's winsock driver.  If you're
using it, you should therefore make sure you have upgraded
past version 0.55 of Free Agent as described above. 
 
Microsoft WFWG, Windows 95, and Windows NT


We've tested Agent with Windows for Workgroups 3.11, Windows
95, and Windows NT 3.5, using their standard protocol stacks, and found
no problems.
If you're using one of the 32-bit versions, you'll need to install
the winsock.dll that is supplied with it before you can use Agent
(or any other 16-bit Winsock application).  Our experience has been that
Windows 95 installs it automatically when you install the TCP/IP
networking protocol, but we've had at least one user report that they
had to install it manually.

Netcom NetCruiser
Agent is compatible with version 1.6 of Netcom's NetCruiser
software, but not with earlier versions.  Here are the steps
to configure NetCruiser to work with Agent:

Under the Settings | Startup Options menu option in
NetCruiser, make sure you have checked load Winsock on startup
(the next time you call using NetCruiser it will automatically load the
Winsock driver).NOTE:  You MUST be connected at
the time in order to receive the Settings | Startup Options menu
option!
Add your NetCruiser directory (e.g. C:\NETCOM) to the
PATH statement in your AUTOEXEC.BAT.
After all of the above, exit Windows and reboot your computer so
the changes can take effect.
Connect to NETCOM using NetCruiser, minimize it, and then launch
Agent.NOTE:  After connecting with NETCOM,
you must close the news blurb that appears each time you log on before
the Winsock driver will load!  All you should see is the large NETCOM
Logo on the screen.
Once that's done, you'll need to configure Agent to work
with the NETCOM servers.  Go to the System Profile tab of the
Options | Preferences dialog box and enter the following server
names:
News Server:  nntp.ix.netcom.comMail Server: 
smtp.ix.netcom.com

Novell Netware Winsock
We are compatible with the latest version of Netware Winsock,
although earlier versions had a bug that prevented them from working. 
The latest version is available from Novell's ftp site as LWP42T.EXE.
Make sure you have the file NOVASYNC.EXE in \net\bin
or in your path.  This file provides the asynchronous support for
Novell's driver, and you will get  10050 or 20050 (WSAENETDOWN)
errors if it isn't found.
 
Trumpet Winsock

We've tested versions 1.0B and 2.0B, and although both of them work
we recommend 2.0B. Version 1.0B of the driver contains a bug that can
cause Agent to stop responding while it's downloading an
article. This isn't a serious problem, because things return to normal
after the article is loaded, but you won't have the problem at all if
you use 2.0B. Version 1.0B also doesn't support PPP, so you'll need 2.0B
if you have such an account.

(We've heard reports of bugs in version 2.1B that can cause serious
performance problems.  We're told that the Trumpet people are aware of
these, and that a workaround is to go to the Setup dialog box
and disable the Van Jacobsen CSLIP compression option.  We
haven't tested this ourselves, though, so we can't guarantee the
results.)  For other troubleshooting tips, see the Trumpet Winsock Troubleshooting Reference.
There are no special setup requirements to make Trumpet work with
Agent, unless you have a dial-in connection and want to use
Agent as an Offline newsreader. To operate effectively in that
case, you must configure Trumpet Winsock to dial in and hang up on
demand. To do that, run TCPMAN.EXE, open the Dialler menu, and
select the Options item. On the ensuing dialog box, select the
Automatic login and logout on demand radio button. This makes it
run the login.cmd file whenever it needs to go online (typically when
it's loaded), and the bye.cmd file when it is unloaded.
While you're in this dialog box, you should also set the SLIP
inactivity timeout field to 0. This will prevent Trumpet Winsock
from hanging up if Agent is inactive for an extended period, as
can happen when purging and threading.  When you've made all these
changes, press OK to dismiss the dialog box.
The next thing to do is to tell Trumpet Winsock how to recognize
when it is on line. To do this, select the File | Setup menu
item and look at the Online Status Detection section of the
dialog box. This tells Trumpet Winsock how to recognize when it is
on-line to the Internet. If you're using a normal modem, you should
check the DCD (RLSD) check option. This tells Winsock to use the
modem's carrier detect line to detect its online status. Trumpet Winsock
will probably fail to dial your service provider if you check any of the
other options, because it will think it's already online. Press OK
when you have this option set correctly.

Once you've done all that, you can test your setup by manually
running TCPMAN. It should start executing the login.cmd script as soon
as it starts up. If it doesn't, and you don't see any error messages,
chances are that it thinks it's already online. If this happens, go to
the File | Setup dialog box again and verify that you set the
right Online Status Detection option.

If you have, the problem could be that your modem is reporting that
it's online even when it isn't. Many modems have the ability to force
their DCD (carrier detect) line to be on whenever the modem is powered
on and ready. For Trumpet Winsock to work properly, the modem must
instead be reporting the true state of DCD, so that Winsock can tell
when it's actually connected.
You'll probably have to break out your modem manual to figure out
how to proceed from here. Some older modems control this with a
dipswitch setting, but most modern ones use AT commands to set it. For
many modems, the command &C1 will cause the DCD line to
correctly report the modem's state. To test this, use a terminal program
to talk to your modem and issue whatever command your modem requires.
Then close the terminal program and start TCPMAN. If it now starts
executing the login script, you've got things wired -- almost.

The one remaining chore is to save this modem configuration change,
so that it works this way every time you turn it on. To do that, get out
the modem manual again and find the command that saves the current
configuation as the default power-on setup. For many modems, the
appropriate command is &W or &W0
. Make sure your modem configuration is really the way you want it,
and then use your terminal program to issue the command to save the
configuration.

(You might be thinking that you could save yourself the trouble of
doing this last step by simply including the &C1 command
in the setup string in your login.cmd file, so that it got executed
every time Trumpet Winsock tried to go online. There's a
chicken-and-the-egg problem here: Winsock won't even execute the file
unless it knows it's offline, but the modem will be telling Winsock that
it's already online until it gets the command. The modem must be
correctly set up before Winsock is loaded.)
 
Names listed above are registered trademarks of their respective
companies.

 Copyright 1996, Forte


Release History

Agent 0.99f (build 299) - 10/1/96

Agent .99f provides comprehensive support for sending and receiving messages through it's implementation of the MIME specification.  It also provides crosspost management for news messages, enhanced support for international languages, and the ability to import and export data to/from a .newsrc file.  In addition there are many minor features and bug fixes available.  Everything that's new is described here, with references to full explanations in the online help.
 

MIME
Overview
Agent's implementation of the MIME specification provides you with all the tools necessary to send and receive news and email messages, both simple and complex.  You'll see that there is a lot of functionality added to Agent .99f.  If you don't understand much of this, rest assured that Forte has worked hard with our beta test group to make sure that all default options minimize the changes experienced Agent users will see, yet maximize the utility of the new features available with release .99f.

Things You'll Notice Right Away
In the message list pane (especially for groups with binary attachments):



Agent automatically joins the individual parts of a multi-part message into a single message, and indicates this by appending [*/M] to the joined messages.  For example, where previously you might have seen 3 separate headers for a 3-part message, you'll now see a single header, with [*/3] appended to the subject line.  And ... Agent will show you the total size of the combined attachment, so you don't have to figure this out from the size of each individual part.

There is a new incomplete message icon (a paper icon with a section missing) which indicates that the message is a multi-part message for which some of the sections were not available.  Each time you retrieve new headers, Agent keeps track of incomplete multi-part messages that have already been retrieved.  As new sections arrive, Agent adds the sections and converts the message to complete when all sections have been retrieved.

The camera icon has been removed because now that multiple attachments are supported, a single icon can not be used to represent the state of all attachments in a message.  (But the camera toolbar button is remains, allowing for easy launching of binary attachments.)

The Usenet Message and Email Message icons in the Message List pane now come in three colors: white for plain messages, yellow for messages with attachments, and green for messages for which all attachments have been saved.



In the message pane:



For normal text messages, nothing will look different.  But for attachments, where you used to see the ASCII representation of the binary attachment, you'll now see an icon with information describing the attachment.  (For those of you who really want to see the nitty-gritty of the attachment, you can opt to view the message in raw form.  Use Show Raw Messages from the Message menu.)
For incomplete multi-part attachments, Agent will tell you exactly which parts of the attachment are included and which are missing.

For incomplete multi-part attachments, Agent will tell you exactly which parts of the attachment are included and which are missing.


For multi-section messages (now possible with MIME),  text sections are displayed inline and all other sections are displayed as icons.  If a text section has a content description, the description appears in a title box above the section.  Otherwise, text sections are preceded by a single horizontal line.  You can use the keys Alt+Up and Alt+Down to navigate between the sections. 




In the composition window:


The Attachments control is now a read-only list of attachments.  To add an attachment or modify the list of attachments, press the Attachment button.  This displays the new Attachments dialog, giving you complete flexibility in creating single-section or multi-section messages.

When the Composition Window is open, the Message menu now contains the "Properties" command, which brings up the Message Properties dialog box (this replaces the old Message Language dialog).  This dialog allows you to specify various properties for the message.  Essentially, it combines the old Language properties with settings from the new Sending Files tab of the Group Properties dialog box.





On the Menu Bar:
The File menu options Save Binary Attachment, Launch Binary Attachment, and Delete Binary Attachment have been replaced by Save All Attachments, Launch Attachment, and Delete Saved Attachments, respectively.  (See below for changes associated with these commands.)  


Handling Attachments:



Agent seamlessly joins the world of MIME with that of uuencode/uudecode so you don't ever need to worry what the format of a posted or mailed message is.  Agent will figure it out for you.  

For reading messages, Agent supports uudecode (as before), Base64, and AppleDouble formats.  For sending messages, Agent supports uuencode and Base64 encoding.

Agent .99f launches binary attachments directly from the message body.  Previously, Agent would download the attachment, save it to a file, then launch the header from the saved file.  Now Agent keeps everything in the message, allowing you to control whether you want the attachment saved as a file or not.  This is the default behavior but Agent provides several options so you can set things up the way you want to work. (See the Receive Files tab on the Group Properties dialog box,  for all groups or  for selected groups.  

Prior to .99f, Agent would not save any attachment for which a decoding error was found and would also delete the body of the message..  Agent now will display a new error dialog if you try to manually save or launch an attachment which is corrupted.  In this dialog, you can either save the attachment to file and leave it in the message, save the attachment to file and remove it from the message, or don't save the attachment to file and leave it the message.

There is a new Index option on the Message menu which brings up the Message Index dialog.  This dialog lists all the sections of a multi-section message, and allows you to save attachments to file, launch attachments, and delete message attachments which were saved to file.  (Ctrl+I and double-clicking the Message pane also display this dialog.)



Multi-Part Messages
Agent .99f takes the worry and hassle out of working with multiple-part messages.  When retrieving new headers using .99f, Agent automatically detects multi-part messages and combines them into single messages.  The combined messages contain all of the information about the constituent messages necessary to retrieve the bodies later on.  This means that you can usually ignore the fact that a given message is actually multiple messages.  If you retrieve the body for a multi-part message, Agent automatically retrieves all of the constituent messages and combines them into a single body.

If you prefer, you can direct Agent to automatically join multi-part messages when you use the Save All Attachments or Launch options on the File menu, rather than when retrieving headers.  This means that if a multi-part message has not already been joined (i.e. all parts combined into a single message), Agent will automatically attempt to find all of the sections of the message and join them when you issue either of these two commands.  This is essentially how Agent used to work (pre-.99f).  The only difference is that Agent now joins all of the sections into a single [*/N] message and deletes all of the extra sections.  Previously, Agent kept all of the sections.  

What this means is, you have a choice:  either you can have Agent automatically join multi-parts when you retrieve headers (the new method), or you can have Agent join multi-parts only when you explicitly save or launch attachments (the old method).  There are options on the Receiving Files tab of the Default Properties for All Groups dialog box (or the Receiving Files tab for Selected Groups) to enable/disable either method.  (One reason you might choose to disable the new method and only use the old method is because your news server's feed is so slow that sections of some multi-parts are purged before all of the sections have arrived.  By disabling auto-joining during header retrieval, you can have Agent retrieve the bodies for incomplete multi-part messages and join them later manually.)

One final note: Agent does not attempt during header retrieval to detect multi-part messages in headers that have already been retrieved by a previous version of Agent.  But if you use Launch Attachments or Save All Attachments, Agent will find and join sections as in previous versions.

MIME Header Fields

Agent supports the MIME method for encoding header fields that contain non-ASCII text.  If you've ever seen a header field that looks like the one below...
       =?ISO-8859-1?Q?Fort=E9?=
...then you know what we're talking about.  On the Languages tab of the General Preferences dialog box, you can control, for each language, whether MIME headers are used for posting Usenet and email messages.  By default, MIME headers are disabled for Usenet messages (where they are less common) and enabled for email messages.  

Agent also translates headers when you receive messages. Note: If you have old messages in this format, Agent will not translate the headers in the message list.

Quoted-Printable Format
Agent now allows you to read and compose messages using MIME quoted-printable format, which provides support for non-ASCII characters (e.g., accented characters).  You'll never see those strange "=30" characters scattered througout your messages again.
See Using MIME Quoted Printable in the help file for full details.

Digests

A digest is a group of messages which are combined into a single MIME message of type multi-part/digest.

With Agent .99f, you can create and send a message digest using the new Forward Verbatim command (see below).  (For details, see Sending a Digest in the help file.)

Agent .99f also provides the ability to burst message digests, i.e. take each message in the digest and save it as an individual message.   It will also handle nested digests (i.e., if a digest contains a message that is itself a digest, Agent will burst that too, ad infinitum).  (See Bursting a Digest in the help file.)

Forwarding Messages

Agent .99f expands the capability of forwarding news and mail messages to allow three options:

Forward Quoted -- forward the message with text preceded by the quoted-text prefix.  (See Forward Quoted Command, Post Menu in the help file.)
Forward Unquoted -- forward the message with text as-is, with no quoted-text prefix.  (See Forward Unquoted Command, Post Menu in the help file.)
 Forward Verbatim -- send the message as an attachment.  With this feature you can select one or more messages and send them all at once, or select additional messages to add to the list of attachments already selected for a message.  (See Forward Verbatim Command, Post Menu in the help file.)



The General tab on the Posting Preferences dialog box now has options to define the format of the subject line in all three kinds of forwarded messages.  

Canceling Messages

When you cancel a joined multi-part Usenet message, Agent automatically sends a separate cancel message for each section of the message.


Crosspost Management

With Agent .99f, you have the ability to either skip or mark read messages that are posted to more than one newsgroup.  Agent will leave a message unread the first time it is retrieved, then follow your instructions for how to handle subsequent retrievals of the same message in other groups.  We've designed this feature so that:

It works as fast as possible.  You can retrieve headers as you always have and notice no significant performance degradation.
Agent will remember which articles have been posted, so it will detect cross-posted messages from session to session, not just in a single session or download.
 The scheme works optimally for those of you who take advantage of Agent's single-key navigation feature, or who work one group at time, downloading headers and reading articles in each group before proceeding to the next group.
You can skip articles, so you never see duplicate headers in any groups, saving you time and disk space.

You can find the options for controlling crosspost on the new Crosspost tab of the Group Properties dialog boxes (for all groups or for selected groups).  Note: Crosspost checking is OFF by default. You'll need to go to this dialog box to activate this feature.

Many spammers do their crossposting by posting the same message repeatedly, each time to a different set of groups, resulting in  the same message having a different message-id for each posting.  Crosspost management schemes which rely on checking the message id often fail to detect what are really duplicate messages.  To deal with this kind of crosspost, Agent uses the subject, author, date, and number of lines to identify a message.  Specifically, if the subject, author, and number of lines for a messages matches a previously-retrieved message, and if the dates of the two messages are within 30 minutes of each other, Agent assumes that the new message is a crosspost.  (An option exists in Agent.ini to have Agent ignore the time of the message, as some areas of the world seem to post all messages with the time set to 00:00.)

Of course, there is a very slight possibility that Agent will mistakenly tag a message as a crosspost when it really isn't.  So, we've made the new detection method optional.  But, we think it will work so well that we have made it the default method.  If you would prefer to use just the message-id to detect crossposts, you can change the detection method on the Group Properties Crossposts tab (either for all groups or for selected groups).

For more information, see How Crosspost Management Works in the help file.

NEWSRC
Agent .99f includes the ability to import and export a standard newsrc file.   (A newsrc file is a file used by Unix systems and by some other Windows-based newsreaders to record the list of newsgroups.)  This provides an easy, standard way to keep in synch with other newsreaders, or between your at-work and at-home copies of Agent.  For each group, the file records whether the group is subscribed and the ranges of messages that have been retrieved and read for the group. 

Agent allows you to use this capability for all groups, or just for your subscribed groups.  This latter option makes the operation faster, and makes the newsrc file much smaller.  This option is handy if you are using the newsrc file primarily to update Agent's list of retrieved messages.

You may manually import or export a newsrc file.  You can also configure Agent to automatically import a file on program startup and export a file on program exit.

For more information, see About Newsrc Files in the help file.

Languages
Agent .99f enhances your ability to exchange messages in languages other than English by allowing you to encode each section of a MIME message using a standard MIME character set, at the same time defining which Windows codepage maps to this character set.
Full details and examples are in the online help.  See Using MIME Character Sets and  Configuring Agent for International Fonts in the help file.
  
Other Improvements 

Agent now supports the X-No-Archive header field.  You can turn this field on for all your posts, or only for posts that are follow-ups to other messages that happen to have the field turned on.  That is, you can elect to have your own original posts archived, but prevent archiving of follow-up posts that may contain material the original authors didn't want to be archived.  The options to control this are on the Post tab of the Group Properties dialog box (either for all groups or for selected groups).

You can now use the right mouse button to change the selection in the body pane.  This makes it easier to select an attachment and launch it with the context menu.

Double-clicking a word in the composition window will now cause the entire word to be selected.
The maximum line count that Agent can display for a message has been increased from 65K to 512K.  This should be sufficient for attachments up to about 23 meg in size.  NOTE:  The ***** will still be displayed for existing messages that were over the limit.  The new limit only applies to new messages.

Agent now automatically removes the Keep flag from a message if you try to retrieve the message's body and Agent discovers that the body is no longer available.  Several users requested this option because they found that it was difficult to manually remove the Keep flag for unavailable messages that had been automatically marked Keep by a Watch filter.  This option is controlled by the "Do not Keep unavailable messages" checkbox on the Retrieving tab of the Group Properties dialog box (either for all groups or for selected groups).

On the Add Usenet Filter and Edit Usenet Filter dialog boxes, a new "Lower Case" button has been added.  Use this to convert text that you have pasted in the "Search For" field to  all lower case.

There is a new option on the Sample Headers From Selected Groups dialog box, "Update record of headers that have been retrieved".  By default, this option is checked, which causes Agent to work as before.  When the option is unchecked, Agent does *not* use information from the sample operation to update the list of headers that have already been retrieved.  Then, when you later perform some other header operation, Agent will act as if the sample operation never happened.  This option was requested by several users who occasionally need to sample headers but who then want to throw away everything they sampled and resume normal operation afterwards.

When you close and reopen Agent, it will position the browser on the message that was selected when you closed Agent.  However, if you don't want Agent to do this there is an option on the Display tab of the General Preferences dialog box to turn it off: "Reposition on last message when restarting program".

For those of you who like to run multiple copies of Agent, there is now an option to change Agent's title bar, so that you can tell which copy is which.  The option is "Program Title", on the System tab of the User and System Profile dialog box.  (By the way, if you set the title to blank, Agent reverts to its default title.)

Some users complained that they like Agent to prompt for confirmation prior to deleting messages except when the deletions are being done as a side-effect of manually applying Usenet filters.  So, now there is a separate confirmation option on the Confirmations tab of the General Preferences dialog box: "Delete messages after applying Filters".

Agent was unable to process more than 1000 email messages at a time when retrieving messages from a POP mailbox.  In particular, this caused Agent to fail to retrieve any messages if you had leave-on-server turned on and had more than 1000 messages saved on the server.  There is no longer a limit.

We added MET and JST to Agent's list of timezone names.

If a newsgroup browser is the active window and you open a new browser, the new browser will inherit the zoom state, active pane, Groups/Folders pane filter, and selected message of the currently active browser.

Some Additional User Interface Changes

The General Preferences dialog has two new tabs: Newsrc tab and MIME Types tab.
The Newsrc tab allows you to import and export Newsrc files when starting and exiting Agent.
The MIME Types tab allows you to associate file extensions and program applications with MIME types.

With the addition of the new tabs above, the General Preferences dialog had too many tabs.  So there is now a User and System Profile dialog box (Options menu).  This dialog contains the User, System, and Online dialog tabs that used to appear on the General Preferences dialog.

The Attachments tab on the Posting Preferences dialog box (Options menu) has been moved to the Group Properties dialog and has been renamed the Send File tab. 

The introduction fields on the General tab of the Posting Preferences dialog box have been moved to a new Introductions tab.  This change made it possible to spell out the names of the introduction fields.
There is a new option on the Page Setup dialog box: "Print raw (unformatted) messages".
The "Server creates messages out of order" option (the "Demon" option) has been moved from the Group Properties dialog to the System tab of the User and System Profile dialog box, where it should have been in the first place.


Current Bug Fixes

The following bugs were fixed:
For some mail servers, Agent would re-retrieve a mail message which had been retrieved but left on the server.

"Contents of Panes" was clipped on the Window Layout dialog for some screen resolutions.

Agent would GPF when certain news servers emitted really long XOVER lines.  The symptom for this was that this occurred with messages of 0 length.  Actually, this was a special case where the messages appeared to be 0 length.

Agent was complaining of timeouts when configured to receive mail with SMTP and no messages were being received.

"View Next Unread Body" would go to the wrong message under very special circumstances.

The setting, "Group | Properties | Filters | Disable filters" was not being remembered if a group contained no messages

Certain Windows date formats could affect the functioning of the Get New Groups command, causing Agent to get a complete list of groups rather than just new groups.
In some cases Agent would not wait long enough for some mail servers to respond to the POP3 QUIT command.  This is now controlled with an Agent.ini option:
[Timing]
QuitResponse= (Default is 30 seconds)

Agent where Agent would hang when responding to erroneous UIDL commands from some mail servers.  This is now handled with an Agent.ini option:
[EMail]
UseUIDL=  The default is 1 (yes).

Sent messages were not always deleted from the Outbox when sent messages were being sent to a folder.
Agent didn't handle 3-digit time zones.
Agent did not recognize "U" as a timezone, even though some programs generate it.  "U" is now recognized as GMT.
Agent did not recognize +/- single-digit timezones.
Agent was not removing tabs from XHDR field values.  This would cause Agent to ignore the information after the tab.
Switching the language while composing a message would not change the spelling checker used for that message.
Agent appeared to hang when applying a filter to over 100 groups.
The Preference menu items were not remembering the last tab selected.
Some news servers complained if the message-id domain part ends with a period.
The selected message was not always maintained when collapsing all threads in the message list pane.



AGENT.INI File Changes in .99f
Added seven options to the [Xpost] section of AGENT.INI that correspond to options on the Group Properties dialog boxes' Crossposts tab and crossposting functionality.
[Xpost]
Enable=1
CacheDim="65534"
CacheBuckets="131071"
MemBlocks=8
SaveInterval=60
Method=0
MaxDateRange=1800

Added four options to the [Newsrc] section of AGENT.INI that control how a newsrc file is exported.
[Newsrc]
ExportSubscribed=0
AutoExportSubscribed=0
MarkReadOnly=1
AutoMarkReadOnly=1

Added two options to the [Groups] section of AGENT.INI that control how Agent updates the record of messages retrieved when sampling messages, and what Agent does when attempting to retrieve a message that is not available.
[Groups]
SampleUpdateRanges=1
UnkeepUnavailable=1

Added an option to the Timing section of AGENT.INI to adjust the time (in seconds) that Agent will wait for a Quit acknowledgment from the server.
[Timing]
QuitResponseTimeout=30

Added an option to the Attachment section of AGENT.INI that remembers the application selected to launch an attachment for the next time you try to launch the same type of attachment.
[Attachment]
LastMimeApp="(application)"

Added an option to the Email section of AGENT.INI that controls whether Agent reverts to its non-UIDL state after responding to a UIDL request.
[Email]
UseUIDL=1

Added three options to the View section of AGENT.INI that control the program title, as well as Agent's ability to remember the message and view that was showing in the previous session and reposition itself on that message and in that view.
[View]
Title="(title text)"
ReturnToMessage=1
LastView="(view)"

Added an option to the Confirm section of AGENT.INI that causes Agent to confirm message deletions after a filter is applied.
[Confirm]
DeleteArticleByFilter=1

Added two options to the Article section of AGENT.INI that control how Agent treats a MIME section that has a filename.
[Article]
FileMeansAttachment=0
SaveNamedInlines=1

Added an option to AGENT.INI to treat "inline" sections as "attachments".

[Article]
InlineAttachments=(n)

For a message with an imbedded message, Agent was using the same format for the header fields in both the imbedded message and the top-level message.  Now, Agent uses a different group of field settings for imbedded messages, as defined by the following INI options:
[Article]
AttachedBaseFields=(fields)
AttachedAllFields=(fields)

There are now separate settings of "Fixed Pitch", "Word Wrap", and "Show Headers for the raw and formatted display modes".  For example, you may now configure Agent to show headers when you display a message in raw mode and to not show headers when you display a message in formatted mode.  There are three new INI options:
[Article]
UseFixedFontRaw=0 
WordWrapRaw=0
ShowHeaderRaw=1

Added a new AGENT.INI option to specify how Agent will behave when the group property "Double-clicking launches attachments" is set and you double-click on a message header for which the body has not yet been retrieved.
[Browser]
ViewLaunchesOnRetrieve=0

When sending attachments, most Macintosh systems use the multipart/appledouble format.  This format consists of a multipart MIME section with two imbedded sections: one for the resources fork and the other for the data fork.  The data fork contains the actual file; the resources fork contains Mac-specific information about the file.  There is a new option in AGENT.INI option which controls whether Agent should collapse any appledouble message into a single MIME section that consists of just the data file, so that it looks like a simple attachment.
[Article]
FilterAppleDouble=1

There is a new AGENT.INI option which specifies how Agent will behave when the group property "Double-clicking launches attachments" is set and you double-click on a message header for which the body has not yet been retrieved.
[Browser]
ViewLaunchesOnRetrieve=0

There is a new AGENT.INI option to disable file buffer flushing.  If you set this option to zero, Agent will not flush file buffers.  This may improve performance, but will also increase the risk of losing data in the event of a computer crash.
[Misc]
FlushFileBuffers=1



Agent 0.99e  Release Notes
Agent 0.99d  Release Notes
Agent 0.99c  Release Notes
Agent 0.99b  Release Notes
Agent 0.99a Release Notes
Agent 0.99  Release Notes
Free Agent 1.0  Release Notes

Copyright 1996, Forte

Release History  .99e (Build 227)

Agent 0.99e (build 227) - 5/1/96

These Release Notes contain a detailed description of the new features
and bug fixes in Agent 99e. If you are upgrading from an earlier version
of Agent to Agent 99e, you will notice several things that have changed
from previous versions. In particular, PLEASE NOTE some significant changes
in the menus and dialog box tabs. 

ENHANCEMENTS: 


You can now create filters to Kill and Watch Usenet messages based
on the author field, subject field, and/or message length.
 

You can now define multiple languages (up to 255). For each language,
you can specify what fonts to use for the message list and message body
panes and what spell-checker to use when composing messages. Each group
has a particular language associated with it. Thus, when you select a group,
the message list and message body panes use the fonts for that group's
language.
 

Agent now keeps track of ranges of retrieved messages instead of only
the highest message retrieved. This fixes the problem (experienced by many
Demon users) where Agent was not retrieving all messages due to non-sequential
message IDs on the news server.
 

Agent has a new option which allows you to control whether or not Agent
keeps track of gaps in the range of retrieved messages. See the Retrieving
tab of the Default Group Properties dialog box. The option is Server Creates
messages out of order.
 

When this option is checked, Agent always records any gaps in the list
of messages that it has retrieved so that it can check for new messages
in the gaps the next time it retrieves new headers.
 

When this option is not checked, Agent records the range of retrieved
messages from the lowest message retrieved through the highest, ignoring
gaps. Since most news servers don't add messages out of order (Demon's
server being an exception), you can probably leave this unchecked. Unchecking
it will generally improve performance.
 

Agent now creates message headers with Message-ID instead
of Message-Id because the latter was not recognized by some
programs. 


Agent now updates the DAT and IDX files more frequently so that data
is less likely to be lost in the event of a power failure or PC crash.



You can now use the F3 key to Find Next in the message composition
window. 


Added a Confirmations option that controls whether Agent should prompt
for confirmation before marking all messages in ALL groups read. Previously,
the confirmation option for selected groups also controlled the ALL groups
command. 


The Print dialog now allows you to select the range of pages to be
printed. 


Single-Key Read is a new option on the Navigate menu. The SPACE key
is the accelerator for this option. This option pages down through the
current message. When it reaches the end of the message, it jumps to the
next unread message. 


You can control which message it jumps to with a new option on the
General Preferences | Navigation dialog, Single-Key Read views next
unread message body. When this option is checked, Agent views the
next unread message with a body (as if you pressed Ctrl+B). If this option
is not checked and the focus is in the message body pane, then SPACE will
skip to the next unread message in the thread. If this option is not checked
and the focus is in the message list pane, SPACE will skip to the next
unread message. Typically, you would check the option if you read messages
offline, and uncheck it if you read online. 


INTERFACE CHANGES: 


The Preferences dialog box has been split into two dialog boxes: General
Preferences and Posting Preferences. 


Message sampling has changed significantly. Below are the major changes:



Empty Group Sample Size and View Empty Group Action are no longer group
properties. You can still set them on the Group Properties dialog, but
they now apply to all groups. If you configure Agent to prompt for action
when viewing an empty group, you may now specify the sample count from
the prompt dialog. Note: changing the value in the prompt dialog will also
change the setting on the Group Properties dialog. 


Sample Headers from Selected Groups (Online menu) will bring up a new
dialog. From it, you can choose to sample the &lt;n most recent messages,
or messages from the last &lt;n days. Agent will remember the last
values you used. In the past, many people would decrement the highest message
retrieved number for a group, and get new headers to re-retrieve messages
that had been deleted or purged. This dialog provides a more convenient
way to do the same thing. Note that the sample count on this dialog is
independent of the count on the empty group dialog, so changing this value
won't affect the empty group sample size. 


MISCELLANEOUS FIXES 


Fixed a GPF which could occur when closing Agent.


Fixed a bug that caused browsers to sometimes fail to redraw correctly
when you resized a window. 


Fixed a bug that could cause Agent to delete the wrong message if new
messages were received while the Are you sure? confirmation
dialog box was displayed.


Fixed a bug that caused Agent to GPF when doing certain Find operations.



Fixed a bug that caused Agent to incorrectly decode certain binary
attachments. This bug only affected binaries that were decoded from messages
whose bodies were already retrieved, or from email messages. 


Fixed a bug that would cause the From field to get mangled if the field
contained a syntax error and you either fixed the error or chose to leave
it unchanged. 


When importing messages from Unix-format files, Agent ignored messages
for which the From line contained a timezone field. Agent now recognizes
these messages. 


When you delete messages, the confirmation prompt includes the number
of messages to be deleted. This count used to include messages that were
marked keep and would not actually be deleted. Now, the count
excludes kept messages. 


The you have new email status bar message is now cleared
when you mark read or delete unread mail messages. Previously, the status
bar was cleared only when you viewed an unread mail message.


Fixed a bug which caused the Save Messages As command to overwrite
an existing file even after you told it not to. 


The Reply-To field may now contain more than one email address. 


Agent now always asks for confirmation if you attempt to delete a message
and any text is selected in the message body. This is to help users keep
from accidentally deleting a message when they intended to delete a text
selection. 


Agent now displays a warning message if you use the expand addresses
option to insert an address book entry into a message, when the entry has
a Field Text value. 


Fixed a bug which caused Agent to fail to remember the directory last
used in the Save Messages As dialog.


Release History
Agent 0.99d (build 182) - 2/6/96

In previous versions of Agent, messages were automatically marked read
whenever the message body was displayed in the body pane. Many of our users
complained that they accidentally marked messages read while scrolling
through the list pane. We have added a Preference setting that allows you
to choose when Agent should automatically mark articles read (described
in the Release Notes). **In particular, we have changed the default behavior
so that Agent now only marks an article as read when it is displayed in
the body pane AND the body pane has the focus. If you prefer the old behavior,
you can change this setting under Options | Preferences | Navigation.**

We have also changed the keyboard accelators that were used to Save/Launch
Binary Attachments (described in the Release Notes). We know that this
is confusing for our power-keyboard-users, but when we added the new Skip
To/View Next Unread Article with Body feature, we decided that B
and Ctrl-B were the obvious choices for keyboard accelerators. The Save
Binary function has been renamed Decode Binary. Its new accelerator is
Ctrl-D (it used to be Ctrl-B). The accelerator for Launch Binary (it used
to be Ctrl-Shift-B) is now Ctrl-L.

ADDRESS BOOK:

Agent now contains an Address Book. Select Window-Open Address Book
to view it. You can add items to the Address Book by selecting New from
the Address menu or using the toolbar buttons while the Address Book is
open. You can also add addresses by selecting a usenet or email message
and choosing Message-Add Author to Address Book. See the online help
for a complete description of the Address Book feature.

32-BIT AGENT:


We've added built-in support for dial-up networking, allowing Agent
to automatically establish a dial-up connection when Agent goes online
and hang up the connection when it goes offline. Agent's DUN support is
configured by the new Dial-Up tab on the Preferences dialog. This tab is
present in 32-bit Agent only, and appears only if DUN has been installed
on the computer.

When using Windows 95 or NT Dial-up Networking, Agent assumes that
you are connected if ANY connection is active (even if it's not the one
Agent is configured to use). This is controlled by an AGENT.INI option,
and appears on the Preferences-Dial-Up dialog as the checkbox If
another connection is already open, use it instead.
The INI option is:


   [Online]
   RasUseAny=1

You can now run multiple instances of 32-bit Agent simultaneously provided
each instance is using a different data directory.


EMAIL ENHANCEMENTS and BUG FIXES:


The menu option Post | Reply to All has been added for sending replies
to Cc addresses. This option is enabled only if a single email message
is selected. In the reply message created, the fields are initialized as
follows:

To: The author of the original message
Cc: All addressees in the original message's To and Cc fields
Bcc: All addressees in the original message's Bcc field

Agent omits your own email address from the fields.

On the composition window for email messages, the Cc is now in its
own edit control field. This makes it easier to Cc your email messages.

Re: is no longer prepended to the subjects of forwarded
email messages.

Source routing addresses are now handled correctly in outgoing posts.

Fixed bug which caused duplicate mail to be received under some conditions
when Agent is set to leave mail on server.


NAVIGATION and MARKING ARTICLES READ:


We added new Navigation menu options to Skip to or View the next unread
message body. You can use these commands to jump to the next unread message
for which a body has been retrieved, skipping over other unread messages
that have not been retrieved. The keyboard accelerators for these features
are B and Ctrl-B, respectively.

We have changed the criteria that Agent uses when automatically marking
an article as read. The following options have been added to
the Preferences | Navigation dialog:

Automatically mark articles read:
( ) Whenever the message body is visible in the Message pane
(x) Only when the Message pane is selected
( ) Never

We have chosen the second option, Only when the Message pane
is selected, as the default in order to avoid inadvertently marking
articles read when you happen to select them in the Message List pane.

You can change it back to the old behavior by selecting the first option.

In order to make room for these options on the Preferences Navigation
page, we had to create a new page and moved some options to it. The new
page is called Message List and contains the options having
to do with the formatting of the Message List pane.

Added options in Group Properties / Marking Read dialog box for marking
only articles without bodies read when retrieving new headers or marked
message bodies. For example, you can now configure Agent to mark all message
headers read, but leave unread message bodies alone when you retrieve new
headers.

If Agent is configured to mark all messages read when you jump to a
new group, and if Agent is configured to automatically skip to the next
unread message when you Watch, Ignore, or Mark for Retrieval, Agent will
now mark all messages read in the old group when it skips to the new group.


KEYBOARD ACCELERATORS:


The accelerators used for the Save Binary and Launch Binary functions
have been changed. 


The Save Binary function has been renamed Decode Binary. Its new accelerator
is Ctrl-D (used to be Ctrl-B).

The accelerator for Launch Binary (used to be Ctrl-Shift-B) is now
Ctrl-L.

To be consistent with the other attachment commands, the command Manually
Save Binary Attachment is now Manually Decode Binary Attachment.
This did not involve any accelerator changes.


The new navigation features, Skip to and View Next Unread with Body,
now uses B and Ctrl-B as the keyboard accelerators.

The accelerator for the new Reply to All feature is Shift+R.

The accelerator Ctrl+M has been added for posting new email messages.

Formally undocumented accelerators (G - go to Group pane, A - go to
Article pane and B - go to Body pane) have been changed to 1,2,3.


WINSOCK RELATED CHANGES:


The AGENT.INI parameter [Online]UnloadWinsock has been replaced by
two new AGENT.INI parameters [Online]LoadWinsockOnStartup16 and [Online]LoadWinsockOnStartup32.
There is a new checkbox for this option in the Preferences | Online dialog.
When this option is checked, Agent loads Winsock immediately on program
startup and unloads it on program exit. When this option is unchecked,
Agent loads Winsock when it goes online and unloads it when it goes offline.
When using 32-bit Agent with the Windows 95 winsock, you'll want to leave
this option enabled.

In some cases, winsock will report that your own computer's name is
blank. If this happens, Agent now uses unknown instead of the
blank name in the SMTP HELO command. Using a blank name caused the email
server to report Error 501.


MISC GENERAL CHANGES:


When Agent is configured to thread by subject, it no longer groups
all messages with a blank subject in a single thread. Messages with blank
subjects are now left in separate threads.

When you delete messages, the confirmation dialog now includes the
number of messages you are about to delete, to help you avoid mistakenly
deleting the wrong messages.

Fixed bug which made it impossible to resize the browser panes after
a browser window had been minimized and then restored.

Fixed a bug that could cause the percent-saved value calculated by
the compaction operation to be incorrect.

Agent no longer includes the Newsgroups: field in email replies to
usenet messages, unless the same reply is also posted as a usenet followup
message.

If you have queued messages when you close Agent, a Yes/No/Cancel message
box will be displayed. Select Yes if you want Agent to send the messages.
Select No to close Agent without sending the messages. Select Cancel if
you don't want to close Agent or send the messages. This feature is enabled
by the Send Queued messages when closing application checkbox
on the Preferences | Confirmations dialog and by the AGENT.INI parameter
[Confirm]SendOnClose=1.

Agent will now update the AGENT.INI file with new parameters. There
is a new AGENT.INI option, [Profile]Build, which identifies the version
and build most recently run. Each time Agent starts, it checks this parameter.
If the parameter does not match Agent's current version and build, Agent
writes any missing parameters to the file, assigning default values to
the new parameters.

Increased the default value for Options | Preferences | Attachments
| Lines per Message from 900 to 10,000.

Pressing Page Up while on the first page now causes Agent to scroll
up to the first line of the page.

Double-spaced text no longer appears single-spaced when scrolling forward.

Copyright 1996, Forte

   
Release History
Agent 0.99c (build 141) - 9/21/95

You can now copy or move items from the Outbox to a folder.

You can now select a folder in which to automatically route your outbound
messages.

Implemented an interim solution to binary decoding. Agent now lets you
apply all of the attachment decoding options to email messages in folders.
But, it never deletes the body of an email message. This means that it
doesn't store the destination filename in the message after you have extracted
the file, nor does it display the little camera icon next to the message.
The next release will have the fully integrated solution, with MIME support.

The email filter now recognizes the Apparently-To: field.
If a received or imported email message contains an Apparently-To field
rather than a To field, Agent treats the field as if it were the To field.

Added a Table of Contents to the AGENT.INI help topic.

Agent now generates its own message IDs when posting messages. This
was done so that sent messages, when copied from the outbox to a folder,
will thread correctly with replies to the sent messages. You can disable
this feature (if Agent's message IDs disagree with your news server) with
the following INI option: 

   [Message]
   GenerateId=0


You can now cancel a sent Usenet message that has been placed in a folder
if you allow Agent to generate message ids (the new default). This will
allow you to cancel a message without first retrieving it from the news
server. If Agent does not generate the message id for the message, you
must retrieve it from the news server before you can cancel it.

Added a Cancel button to the Skip to Next Unread Group message
box.

After spell-checking a selected area of text, Agent no longer asks you
if you want to start at the beginning of the message and spell check the
entire message.

You can now selectively specify the header fields to use when printing.

Added .INI-file options to control the behavior of the progress indicator
bar.

Agent now accepts email messages of the form @x:foo@bar (they're called
source routing addresses), either with or without the enclosing
&lt;...@gt;, and will pass the @x routing info to the mail server. The
full syntax of the routing (@x:) portion of the address is:

     @&lt;domain [,@&lt;domain]*:

(This means that the routing info consists of one or more @&lt;domain
components, separated by commas, with the whole thing followed by a colon).

Agent now accepts email addresses without the @domain part.
Addresses with just the @ are also acceptable. Agent does not try to determine
the actual domain for the address. Rather, it sends the address as is to
the mail server, and lets it deal with it. Most mail servers automatically
assume the server's local domain if no domain is supplied.

Enhanced the behavior when replying to a Usenet message which has the
Reply-To: field set to poster. Agent now pops up
a dialog which gives you the choice of (1) replying to the poster via email,
(2) posting a Usenet message AND CCing the poster via email, or (3) just
posting a Usenet message.

Agent now supports the In-Reply-To: field (which identifies
the specific message to which the reply pertains).

The build number now includes a 32 or 16 to
indicate whether you are using the 32-bit or 16-bit version of Agent.

Under Preferences | Posting, Agent was limiting the length of the Reply
to Email and Forwarded Email introduction strings to
the number of characters that fit on the screen. This limit has been removed.

Agent now recognizes UTC when parsing the date/times of
messages.

Agent now displays a warning message if you attempt to use Save
As on a header with no body text.

When renaming a folder, the new name field automatically
defaults to the old name to make it easier to edit.

Added end-of-message marker in the message body pane.

Agent now allows you to select text in read-only windows (i.e., in the
message body pane) with the keyboard. Previously, you could only use the
mouse to select text. To select text with the keyboard, turn off Scroll
Lock on your keyboard.

Agent no longer spell-checks words that look like email addresses, domain
names, URLs, etc. Normally, this means that Agent will not try to spellcheck
the introduction line, unless an email address contains a proper name.

Various bug-fixes and enhancements in the composition window, including:


Removed the 60K size restriction in composition and message window.

Fixed a bug that could make Agent could hang while word-wrapping very
long article that contained no hard carriage returns.

Added end-of-message marker in composition window.

Fixed a bug in the function that calculates the space consumed by tabs,
which is used to determine when to wrap lines in messages being formatted
for transmission. Also fixed problem that caused text to be wrapped incorrectly
when displaying messages.

Miscellaneous performance improvements.


Fixed a GPF that could occur if you entered a very long field value
in the Value for: edit control on the composition window.

Agent now remembers an article's original newsgroup. This allows Agent
to use the correct Group Properties, Introduction Strings, etc. when you
reply to a message from a folder. For messages created outside the context
of a group (original email messages and usenet messages created when no
group is selected), Agent sets the field to blank, which will cause it
to use the default group properties for the message.

Added the Post | New Copy of Message command. This will allow you to
resend a message that has been copied to a folder.

When opening any of the tabbed dialogs (e.g., Preferences, Properties
for Selected Group), Agent now automatically selects the tab you were viewing
the last time you had the dialog open.

Added the Newsgroups: header field on CCed copies of Usenet
posts (so that when you get a copy of the email you get an indication in
the header fields of what group it was associated with).

Fixed a problem that could cause a menu to be dismissed when the New
Email Notification message was displayed.

Fixed a problem in the composition window that could cause text to be
garbled or disappear after pasting text that came from a UNIX machine (UNIX
machines use a single \n character as a line terminator instead of \r\n
pairs).

Fixed a problem that could prevent you from copying or moving a message
into a folder because Agent would think you had already copied/moved it.
Agent now does a better job of checking for duplicates, and also lets you
override the warning and copy the messages anyway.

Fixed a problem that prevented Agent from accepting some less common
formats for email addresses.

Fixed a problem in which Agent was stopping all online tasks even if
you answered No to the Stop all online tasks? prompt.

Fixed a problem that caused the current thread to collapse when new
email was received.

Fixed a problem that caused a 435 Duplicate error when posting
multi-part Usenet messages.

Fixed a problem that could cause Agent to retrieve two copies of an
email message if you had Leave on server enabled.

Fixed a problem in which the 'Newsgroup:' header field was not being
initialized correctly when displaying messages in a folder.

The X-Attachment field is now visible when displaying all header fields
for an email message. This field contains the name of any attached file.

Fixed some problems in controlling the scroll lock light. Now Agent
maintains its internal state and its own scroll indicator, but does not
enable/disable the keyboard scroll lock light.

Bullet-proofed against date/time calculation errors.

Fixed a GPF that occurred when trying to repaint an empty Body pane
(after an operation such as resizing, scrolling, pressing a key, clicking
in empty window).

Fixed a GPF that could occur if you defined a folder before you got
groups for the first time and then got new groups or refreshed the group
list.

Fixed a problem that prevented a right-mouse click from changing the
window focus. This occurred when you had two Newsgroup windows open and
switched between them by clicking with the right-mouse button.

Fixed a problem that could lead to an out of memory error
when deleting messages. This generally occurred if you pressed Delete in
an empty message list.

Fixed a GPF that could occur if you received an email with no header
fields.

Fixed a GPF that could occur when you dragged and dropped a message
with a long subject field.

Fixed two problems that could cause Agent to unlock articles
when upgrading to Agent 99a or 99b from early version of Free Agent.

Fixed a problem in the French spell-checker. It didn't deal with words
that contained apostrophes.

Fixed a problem that could prevent Agent from retrieving all parts of
an email message. Apparently, some listservers send multiple messages with
the same message id. Agent would see the duplicate ID, and
assume that it had already retrieved the message.

Fixed a GPF that could occur if Agent checked for email while purging.

Fixed a problem in which active retrieval tasks could be disrupted if
you changed the sort in a group that had any messages queued for retrieval.
This resulted in Agent not retrieving all marked message bodies.

Fixed a problem that could result in error 550: User Unknown
when sending an email message. This occurred if you had your field defaults
set to always CC: yourself, and then you overrode that for an individual
email by blanking the CC: field in the outgoing post.

Fixed a problem that was allowing email recipients to see who was BCCed
on the email. Agent now omits the Bcc field from the message when it is
sent.

Fixed a problem that caused an Ignored thread to be marked unread
if it was moved to a folder.

Fixed a problem that could cause Agent to hang or GPF if it read a message
header that contained a References field with contained the message's own
message id. (We found another newsreader that incorrectly generated messages
with this problem.)

Fixed a problem which could make new text wrap incorrectly in the composition
with if you included one of your quote characters (i.e. ) in the newly
typed text.

Fixed a problem that was causing Agent to access the hard drive every
second or so. This problem only occurred if you were not running a disk
cache program, such as SmartDrive.

Fixed a problem where Agent couldn't find the Inbox folder
if the folder name started with a blank.

Fixed an error that could cause 503 need RCPT posting email
error message.

Fixed a problem that could cause the body pane to reset to the top when
you received new email or pressed a key that changed the state of the article
(i.e. Keep, Ignore).

Fixed problem in spell-checker that could cause it to jump over a misspelled
word (after deleting a previous word).

The menus have been changed to follow the new Microsoft guidelines for
using menu elipses.

Agent was sometimes using the wrong icon for incoming email messages,
marking them as Usenet messages. This has been fixed.

Fixed a problem that could cause Agent to hang reading an email with
a long To: list. 

Agent 0.99b upissue (build 113) - 10/17/95

This is an unusual bug-fix upissue, in that nobody who is currently
using Agent needs to download it. It fixes several bugs that occurred when
you updated to Agent from pre-1.0 versions of Free Agent, which means that
anybody who has build 112 (the .99b release) doesn't need it because they've
already done the conversion. There are no new features or other bug
fixes in this upissue - we put it on the site only to prevent future
upgraders from having the conversion problems. (People with pre-112 versions
should get it for the 112 bug fixes, of course.)


Copyright 1996, Forte

Release History
Agent 0.99b (build 112) - 9/11/95

This is a bug-fix upissue and fixes the following problems:

Two bugs that occurred only if you were using SMTP to receive email:


GPF at 0001:1C4F that occurred when starting Agent.

Agent loaded winsock on startup regardless of whether the load
on startup option was checked.


If you change the sort for a group, but Agent hasn't actually re-sorted
the group (it was part of a multiple selection), and you perform a skip
to next unread that jumps into that group, Agent jumps to the first unread
message in the old sort and then re-sorts. The result is that you end up
in a random location in the message list.

The Watch and Ignore flags were not propagating correctly if you selected
Watch or Ignore while the Message list was sorted by anything other than
Thread.

If you were moving a list of messages from one folder to another and
cancelled the operation partway through, some of the messages could be
lost.

GPF at 0009:43F9 when Agent timed out trying to access the server and
you had it configured to retry after a connection failure and to
unload the Winsock driver between attempts.

GPF at 0014:F9C7 on startup if the data and/or shared directories specified
in AGENT.INI no longer exist.

Compatibility problem with some POP servers that produced an Error
reported by server: -ERR bad number 0 when trying to check email.
This would occur if you told Agent to leave your mail on the server AND
your server does not support UIDL.


Release History

Agent 0.99a (build 107) - 8/31/95

This is the first email release, with most of the basic email
features implemented.

Due to email's tight integration, we've made a minor yet pervasive change
to our terminology, replacing the word Article with Message.

User-defined folders have been added. Folders appear in the Group pane
(which is now called the Groups/Folder pane) along with newsgroups.

You can now sort messages in a group or folder by author, date, size,
or in the normal thread order.

You can now receive email from POP3 and SMTP servers.

Added additional Introduction Strings strings for replying from an email.

Added a progress indicator when downloading message headers, bodies,
and binary attachments.

Added support for poster in the follow-up field.

Modified the right mouse button behavior to work like Windows 95, which
also allows you to select items from the context menus with either the
right or left buttons. To revert to the old behavior, edit the following
line in AGENT.INI:

   [Browser]
   RightButtonSelects=0

Added protection against automatically launching executable binary attachments.
This is controlled by the Confirmations tab of the Preferences
dialog box.

You can now choose which fields appear at the top of message bodies.

Added Ctrl+H as a keyboard accelerator to toggle Show All Header
Fields.

Added the Organization field to the list of fields you can
set in email messages.

Fixed bug which could cause Agent to hang on some servers when it tried
to retrieve an article that was no longer available. 


Release History
Agent 0.99 (build 82) - 7/6/95

This is the first release of Agent. If you are upgrading from Free Agent
version 0.55, the items listed below all apply.

Free Agent 1.0 (build 82) - 7/6/95

Improved the Purging option to give you more control over which articles
are purged. Also, you can now purge groups manually, and automatically
on program exit. 

Added an option to compact the databases. To compact your databases,
choose Compact Databases from the File menu. 

Significantly improved download, threading, and purging performance.
Now, purging most groups should only take a few seconds at most. 

You can now send an email carbon copy (CC) when you post an article.
This is especially useful when you want to post a follow-up response and
email the original author at the same time.

Moved some commands from the File menu to a new Options menu and the
Window menu. Commands that control program configuration are now on the
Options menu. Commands that open new windows are now on the Window menu.


Agent now allows you to edit all header fields (Distribution, Keywords,
etc.) for messages you send. 

You can now mark an article unread while you are viewing its body. 

Selecting Watch Thread on an unread article now skips to the next unread
article. You can disable this option with the Navigation tab of the Preferences
dialog box. 

You can now control whether or not Agent should validate email addresses
in your messages. 

You can now cancel a post after you send it. To cancel a post, highlight
the article in the Article pane and choose Cancel Article from the Article
menu. 

Agent now accepts a command line parameter to specify the location of
AGENT.INI. The optional argument can be either the directory containing
AGENT.INI or the name of the INI file to use as AGENT.INI. 


If no command line argument is specified, Agent looks for AGENT.INI
in the current working directory. If the file doesn't exist, Agent creates
it.

If the argument is a filename, Agent uses that file as AGENT.INI. If
the file doesn't exist, Agent creates it.

If the argument is a directory, Agent looks for AGENT.INI in the specified
directory. If the file doesn't exist, Agent creates it. Note: If the directory
doesn't exist, Agent assumes that you are specifying a filename. You can
prevent this from happening by appending a \ to the end of the
directory name to force Agent to always treat it as a directory. For example:
c:\agent\.


Added support for Spry's winsock dialer. This fixes problems using Agent
with Internet in a Box and CompuServe. You no longer have to manually start
the Spry dialer prior to having Agent go online. 

Agent is now less strict when searching for the articles composing a
binary attachment. It ignores case and leading/trailing whitespace when
comparing the article subjects. 

Added Delete Body to the Article menu. Select this option
to delete the selected article's body but not its header. 

Add drag-select support to highlight multiple groups or articles with
the mouse. Just click and drag the mouse over the groups or articles. 

Agent now starts a new thread when a follow-up article has a different
subject than the original. You can control this behavior with the Navigation
tab on the Preferences dialog box. 

Agent's dialog boxes now have the correct 3D look when running in Windows
95. 

After unsubscribing to a group or leaving a group you just sampled,
Agent now asks if you want to keep the group's articles. If you say No,
it will immediately delete articles in the group. This feature helps you
delete unwanted database files from your disk. 

Agent now includes all newsgroups from the original article when you
post a follow-up to a cross-posted article. This option is controlled by
an AGENT.INI parameter: 

   [Message]
   CurrentGroupOnly=0


Added a confirmation message when you mark all the articles in group
as read or unread. You can turn this message off from the Confirmations
tab of the Preferences dialog box. 

Agent can now retry refused connections that can occur when the news
server is very busy. For details, see the Online Operation tab of the Preferences
dialog box. 

Added context menus to the Composition and Outbox windows. Context menus
are activated by clicking the right mouse button. 

Add a preference option for selecting which mouse button selects items
from the context menu. See the Navigation tab of the Preferences dialog
box for details. 

Skipping to the next unread article from the Group pane now moves the
focus to the Article pane for the next group with an unread article and
selects that article. You can disable this behavior by unchecking the Skipping
to next unread article jumps... box on the Navigation tab of the
Preferences dialog box. 

Agent now adds a leading zero when posting multi-part attachments. E.g.,
[04/15]. 

When an article does not contain a timezone, Agent now assumes local
time. It used to assume GMT. This feature is controllable via an AGENT.INI
parameter: 

   [TimeZone]
   AssumeLocal=1


Choosing Get Selected Article Bodies when a collapsed thread is selected
now retrieves the bodies of all the articles in the thread. 

You can now specify a location for your database files (*.IDX and *.DAT).
To keep your database files in a directory other than Agents normal working
directory, edit the Home parameter in the [Directories] section
of AGENT.INI. 

Ctrl+A now works in the Outbox window. 

Added an option to AGENT.INI to override the Port numbers used for the
NNTP and SMTP servers. See the online help for AGENT.INI for details. 

Agent now deletes the Outbox files when all the messages in the outbox
are deleted. 

Agent now strips EOF characters from signatures when posting. 

The various debugging parameters are now documented in the AGENT.INI
help topic. 

Agent now purges all but the most recent article in an ignored thread.


Agent now detects when the news server renumbered the articles in a
group. When this occurs. Agent adjusts the high article numbers accordingly
and retrieves all new articles. 

   Free Agent  1.1 (Build 230)
   
Version 1.1

Terminology

We've made a minor yet pervasive change to our terminology.  We've replaced the word "article" with 
"message" throughout the program.

Significant Interface Changes

Two Preferences dialog boxes -  The Preferences dialog box in previous versions has now been split into 
two dialog boxes: General Preferences and Posting Preferences.


	The General Preferences dialog has a new Languages tab, which you can use to add, rename, and 
delete languages.
	The General Preferences dialog has a new Fonts tab, where you specify all fonts for the program.  
This tab replaces the now-extinct Options | Fonts menu options.  This dialog has buttons for changing 
all of the program's fonts.  Beside each button is information about the current selection for that font.

	The Browser button at the top controls all browsers except the message list browser.
	The remaining buttons control the fonts for the highlighted language.  You can now tell Free Agent 
to automatically use the Variable-Pitch Body font for the Message List, and to use a bold version 
of the Message List font for the Subject.  This helps reduce the number of fonts you have to 
specify.


Message sampling - How you sample messages has changed significantly.  Below are the major changes:
Empty Group Sample Size and View Empty Group Action are no longer group properties.  You can still 
set them on the Group Properties dialog, but they now apply to all groups.  If you configure Free Agent to 
prompt for action when viewing an empty group, you may now specify the sample count from the prompt 
dialog.

	Note:  changing the value in the prompt dialog will also change the setting on the Group Properties 
dialog.

Sample Headers from Selected Groups (Online menu) will bring up a new dialog.  From it, you can 
choose to sample the  most recent messages, or messages from the last  days.  Free Agent will 
remember the last values you used.  In the past, many people would decrement the highest message 
retrieved number for a group, and get new headers to re-retrieve messages that had been deleted or 
purged.  This dialog provides a more convenient way to do the same thing.  Note that the sample count on 
this dialog is independent of the count on the empty group dialog, so changing this value won't affect the 
empty group sample size.

Group Properties dialog - This dialog box now has a Language tab, where you specify which language to 
use for that group.

With the new Language Menu option on the Message menu, you can use this option to override the 
default language setting for selected messages.
In the composition window, the language which is used when composing a message is determined by the 
language setting for the group from which the message is composed, in the same way that other settings, 
such as the field values and signature, are determined.  You can also use Message | Language to override 
the setting for a message.

The language-specified fonts control the fonts that are used in the following places:

 The message list
 The message body pane
 The message body pane header.  This uses the variable-pitch body
  font, sized to as close to the same size as the other header fonts as
  possible.
The composition Text window.
The composition Subject window.
Printing


Main Features and Enhancements

Languages - You can now define multiple languages (up to 255).  For each language, you can specify 
what fonts to use for the message list and message body panes and what spell-checker to use when 
composing messages.  Each group has a particular language associated with it.  Thus, when you select 
a group, the message list and message body panes use the fonts for that group's language.

This is useful for reading messages in groups where posts are normally made using a different character 
set than the one you are using.  For example, if you had a Cyrillic font you could define a Russian 
language in Free Agent that used that font.  Then, for any Russian groups you wanted to follow, you could 
define Russian as the default language for those groups.  All the messages in those groups would display 
and print in your Russian font.  Free Agent would also use the Russian font in the composition window 
when you were posting to one of these groups.
For each language, you can specify what fonts to use to display and print messages.  When you first run 
this version of Free Agent, it automatically creates a default "English" language, which will retain your 
current font settings.

Each group has a particular language associated with it.  Thus, when you select a group, the message 
list and body panes use that group's language's fonts.
Navigation and Marking Messages Read - In previous versions of Free Agent, messages were 
automatically marked read whenever the message body was displayed in the body pane.  Many of our 
users complained that they accidentally marked messages read while scrolling through the list pane.  We 
have added a Preference setting that allows you to choose when Free Agent should automatically mark 
messages read.  Specifically, the following options have been added to the Navigation tab of the General 
Preferences dialog box:

Automatically mark articles read:

	( ) Whenever the message body is visible in the Message pane
	(x) Only when the Message pane is selected
	( ) Never


PLEASE NOTE:  We have chosen the second option, "Only when the Message pane is selected", as the 
default in order to avoid inadvertently marking articles read when you happen to select them in the 
Message List pane.  If you prefer the old behavior, select the first option.

In order to make room for these options on the Navigation tab of the General Preferences dialog box, we 
created a new tab on the General Preferences dialog and moved some options to it.  This new tab is 
called the Message List tab and contains the options having to do with the formatting of the Message List 
pane.

We added new Navigation menu options to Skip to or View the next unread message body.  You can use 
these commands to jump to the next unread message for which a body has been retrieved, skipping over 
other unread messages that have not been retrieved.  The keyboard accelerators for these features are B 
and Ctrl+B, respectively.

We have added options in the Marking Read tab of the Group Properties dialog box for marking only 
messages without bodies read when retrieving new headers or marked message bodies.  For example, 
you can now configure Free Agent to mark all message headers read, but leave unread message bodies 
alone when you retrieve new headers.

If Free Agent is configured to mark all messages read when you jump to a new group, and if Free Agent is 
configured to automatically skip to the next unread message when you Watch, Ignore, or Mark for 
Retrieval, Free Agent will now mark all messages read in the old group when it skips to the new group.

Added a new menu option, Navigate | Single-Key Read, which has the SPACE key as its accelerator.  
This option pages down through the current message.  When it reaches the end of the message, it jumps 
to the next unread message.   You can control which message it jumps to with a new option on the 
Navigation tab of the General Preferences dialog box, "Single-Key Read views next unread message 
body."  When this option is checked, Free Agent views the next unread message with a body (as if you 
pressed Ctrl+B).  When this option is unchecked and the focus is in the Message List pane, Free Agent 
will skip to the next unread message (as if you pressed N).   Typically, you would check the option if you 
read messages offline, and uncheck it if you read online.

Changed Free Agent so that if "Skipping to next unread message jumps to the first unread message in 
next group" is unchecked and you are at the end of a group, the Single-Key command will put you back in 
the Group pane without jumpting to the next group with an unread message.

Keyboard Accelerators and Command Names
The Save Binary function has been renamed Decode Binary.  Its new accelerator is Ctrl+D (used to be 
Ctrl+B).
The accelerator for Launch Binary (used to be Ctrl+Shift+B) is now Ctrl+L.
To be consistent with other attachment commands, the command "Manually Save Binary Attachment" is 
now "Manually Decode Binary Attachment."  This did not involve any accelerator changes.
The new navigation features, Skip to and View Next Unread with Body, now uses B and Ctrl+B as the 
keyboard accelerators.  (See above.)

The accelerator Ctrl+M has been added for posting new email messages.
Formerly undocumented accelerators (G - go to Group pane, A - go to Article pane, and B - go to Body 
pane) have been changed to 1,2,3.

Added Ctrl+H and H as keyboard accelerators to toggle "Show All Header Fields."

Winsock
The AGENT.INI parameter [Online]UnloadWinsock has been replaced by two new AGENT.INI parameters 
[Online]LoadWinsockOnStartup16 and [Online]LoadWinsockOnStartup32.
There is a new checkbox for this option on the Online tab of the General Preferences dialog box.

	When this option is checked, Free Agent loads Winsock immediately on program startup and 
	unloads it on program exit. 
	When this option is unchecked, Free Agent loads Winsock when it goes online and unloads it when it 
	goes offline.

In some cases, Winsock will report that your own computer's name is blank.  If this happens, Free Agent 
now uses "unknown" instead of the blank name in the SMTP HELO command.  Using a blank name 
caused the email server to report Error 501.
The X-Attachment field is now visible when displaying all header fields for an email message.  This field 
contains the name of any attached file.

Email
On the composition window for email messages, the Cc is now in its own edit control field.  This makes it 
easier to Cc your email messages.
"Re:" is no longer prepended to the subjects of forwarded email messages.
Added the "Organization" field to the list of fields you can set in email messages.
Free Agent no longer includes the Newsgroups: field in email replies to Usenet messages, unless the 
same reply is also posted as a Usenet follow-up message.
Free Agent now accepts email addresses without the "@domain" part.  Addresses with just the @ are 
also acceptable.  Free Agent does not try to determine the actual domain for the address.  Rather, it 
sends the address as is to the mail server, and lets it deal with it.  Most mail servers automatically 
assume the server's local domain if no domain is supplied.

Fixed a problem which prevented Free Agent from accepting some less common formats for email 
addresses.  
Fixed a problem that could result in "error 550: User Unknown" when sending an email message.  This 
occurred if you had your field defaults set to always CC: yourself, and then you overrode that for an 
individual email by blanking the CC: field in the outgoing post.
Fixed a problem that was allowing email recipients to see who was BCCed on the email.  Free Agent now 
omits the Bcc field from the message when it is sent.
Fixed error that could cause "503 need RCPT posting email" error message.

Composition Window
Eliminated the overlap of the "Fields" listbox and the "Value for" field.  (The overlap only occurred with 
certain configurations.)
Removed the 60K size restriction in the composition and message window.
Fixed a bug that could make Free Agent hang while word-wrapping very long message that contained no 
hard carriage returns.
Added an end-of-message marker in composition window.
Fixed a bug in the function that calculates the space consumed by tabs, which is used to determine when 
to wrap lines in messages being formatted for transmission.  Also fixed a problem that caused text to be 
wrapped incorrectly when displaying messages.
Fixed a GPF that could occur if you entered a very long field value in the "Value for:" edit control on the 
composition window.

Fixed a problem in the composition window which could cause text to be garbled or disappear after 
pasting text that came from a UNIX machine (UNIX machines use a single \n character as a line 
terminator instead of \r\n pairs).
Fixed a problem which could make new text wrap incorrectly in the composition window if you included 
one of your quote characters  in the newly typed text.

Miscellaneous Features
Free Agent now keeps track of ranges of retrieved messages instead of only the highest message 
retrieved.  This fixes the problem (experienced by many Demon users) where Free Agent was not 
retrieving all messages due to non-sequential message IDs on the news server.

Free Agent now has a new option which allows you to control whether or not Agent keeps track of gaps in 
the range of retrieved messages.  See the Retrieving tab of the Default Group Properties dialog box.  The 
option is Server Creates messages out of order.

When this option is checked, Free Agent always records any gaps in the list of messages that it has 
retrieved so that it can check for new messages in the gaps the next time it retrieves new headers.
When this option is not checked, Free Agent records the range of retrieved messages from the lowest 
message retrieved through the highest, ignoring gaps.  Since most news servers don't add messages 
out of order (Demon's server being an exception), you can probably leave this unchecked.  
Unchecking it will generally improve performance.


Demon's LISTGROUP command (which Free Agent uses) returns a list of all message numbers in the 
range of numbers reported by the GROUP command, even if some of those messages are unavailable.  
Since the LISTGROUP report is useless for filtering the set of messages to be retrieved, Agent will now do 
XHDR instead.  XHDR is slower because it retrieves about twice as much text, but it reports the correct 
information about which messages are available.  Agent will do XHDR if "Server creates messages out of 
order" is checked.
When you sample (n) messages, Agent will now record the range for the retrieved messages as if all 
messages prior to the (n) you tried to sample have already been retrieved.
Free Agent can now handle tabs in message fields.  Previously, if a message field contained a tab, Agent 
would garble the message header information in the Message List pane.
Free Agent now builds a fresh copy of RANGES.DAT whenever you do Online | Refresh Groups or Online | 
Get New Groups (and there are new groups).  Previously, Free Agent simply updated the existing copy of 
the file.  Building a fresh copy compacts the file and fixes any damaged data from the old file.

Free Agent now creates message headers with "Message-ID" instead of "Message-Id" because the latter 
was not recognized by some programs. 
Free Agent now updates the DAT and IDX files more frequently so that data is less likely to be lost in the 
event of a power failure or PC crash.
Added a new checkbox at the bottom of the Fonts tab on the General Preferences dialog box.  When this 
option is checked, Free Agent uses the variable-pitch body font for the Message pane header and for the 
Subject field on the composition window.  Otherwise, it uses the default system font.  Note:  you only 
need to check this option if you have selected a font that does not use the default Window character set 
and you want text in the different character set to be displayed correctly on the Message pane header and 
in the subject edit field.
You can now use the F3 key to Find Next in the message composition window.
Added a Confirmations option that controls whether Free Agent should prompt for confirmation before 
marking all messages in ALL groups read.  Previously, the confirmation option for selected groups also 
controlled the ALL groups command.

If you have queued messages when you close Free Agent, a Yes/No/Cancel message box will be 
displayed.  Select Yes if you want Free Agent to send the messages.  Select No to close Free Agent 
without sending the messages.  Select Cancel if you don't want to close Free Agent or send the 
messages.  This feature is enabled by the "Send Queued messages when closing application" checkbox 
on the Confirmations tab of the General Preferences dialog box and by the AGENT.INI parameter 
[Confirm]SendOnClose=1

Added a progress indicator when downloading message bodies.  Among other things, you can now tell 
how much progress you're making on each part of a binary download.  It is currently controlled by two INI 
options:

[View]
ProgressStyle=0

ProgressDelay=1000

When opening any of the tabbed dialogs (e.g., General Preferences, Properties for Selected Group), Free 
Agent now automatically selects the tab you were viewing the last time you had the dialog open.
Added support for "poster" in the Followup-To field.  When posting a Usenet article, if you wish to have 
follow-up messages sent to you via email, set the Followup-To field to "poster".  If you follow up to a 
message with "poster" in the Followup-To field, Free Agent now creates an email message composition 
window rather than a news message composition window.
The menus have been changed to follow the new MS guidelines for using menu ellipses.

Modified the right mouse button behavior to work like Windows 95, which also allows you to select items 
from the context menus with either the right or left buttons.  To revert to the old behavior, edit the following 
line in AGENT.INI:

[Browser]

RightButtonSelects=0

Added protection against automatically launching executable binary attachments.  For details, see the 
Confirmations tab of the General Preferences dialog box.
You can now choose which fields appear at the top of message bodies.  See AGENT.INI for details.
Added a Table of Contents to the AGENT.INI help topic.
When Free Agent is configured to thread by subject, it no longer groups all messages with a blank 
subject in a single thread.  Messages with blank subjects are now left in separate threads.
When you delete messages, the confirmation dialog now includes the number of messages you are about 
to delete, to help you avoid mistakenly deleting the wrong messages.

Free Agent will now update the AGENT.INI file with new parameters.  There is a new AGENT.INI option, 
[Profile]Build, which identifies the version and build most recently run.  Each time Free Agent starts, it 
checks this parameter.  If the parameter does not match Free Agent's current version and build, Free 
Agent writes any missing parameters to the file, assigning default values to the new parameters.

On the Attachments tab of the Posting Preferences dialog box, the default value for the Lines per 
Message field has been increased from 900 to 10,000.

Free Agent now generates its own message IDs when posting messages.  You can disable this feature (if 
Free Agent's message IDs disagree with your news server) with the following INI option:

[Message]

GenerateId=0


Added a Cancel button to the "Skip to Next Unread Group" message box.
You can now selectively specify the header fields to use when printing.
Enhanced the behavior when replying to a Usenet message which has the "Reply-To:" field set to 
"poster".  Free Agent now pops up a dialog which gives you the choice of (1) replying to the poster via 
email, (2) posting a Usenet message AND CCing the poster via email, or (3) just posting a Usenet 
message.
Free Agent now supports the "In-Reply-To:" field (which identifies the specific message to which the reply 
pertains).
Free Agent now recognizes "UTC" when parsing the date/times of messages.
Free Agent now displays a warning message if you attempt to use "Save As" on a header with no body 
text.
Free Agent now allows you to select text in read-only windows (i.e., in the message body pane) with the 
keyboard.  Previously, you could only use the mouse to select text.  To select text with the keyboard, 
turn off Scroll Lock on your keyboard.

Added end-of-message marker in the message body pane.
You can now use the F3 key to Find Next in the message composition window.
The Reply-To field may now contain more than one email address.
Free Agent now always asks for confirmation if you attempt to delete a message and any text is selected 
in the message body.  This is to help users keep from accidentally deleting a message when they 
intended to delete a text selection.

The Print dialog now allows you to select the range of pages to be printed.

Miscellaneous Bug Fixes
Fixed a bug where Free Agent asked if you wanted to discard changes in a message after the message 
had already been changed.
Fixed a GPF which could occur when closing Free Agent.
Fixed a bug that caused browsers to sometimes fail to redraw correctly when you resized a window.
Fixed a bug that could cause Free Agent to delete the wrong message if new messages were received 
while the "Are you sure?" confirmation dialog box was displayed.
Fixed a bug that caused Free Agent to GPF when doing certain Find operations.
Fixed a bug that caused Free Agent to incorrectly decode certain binary attachments.  This bug only 
affected binaries that were decoded from messages whose bodies were already retrieved, or from email 
messages.
Fixed a bug which caused Free Agent to fail to remember the directory last used in the Save Messages 
As dialog.
Fixed a problem in which Free Agent was stopping all online tasks even if you answered "No" to the "Stop 
all online tasks?" prompt.
Fixed a problem which caused a "435 Duplicate" error when posting multi-part Usenet messages.
Fixed some problems in controlling the scroll lock light.  Now Free Agent maintains its internal state and 
its own scroll indicator, but does not enable/disable the keyboard scroll lock light.

Bullet-proofed against date/time calculation errors.
Fixed a GPF that occurred when trying to repaint an empty Body pane (after an operation such as 
resizing, scrolling, pressing a key, clicking in empty window).
Fixed a problem that prevented a right-mouse click from changing the window focus.  This occurred when 
you had two Newsgroup windows open and switched between them by clicking with the right-mouse 
button.
Fixed a problem that could lead to an "out of memory" error when deleting messages.  This generally 
occurred if you pressed Delete in an empty message list.
Fixed a problem that could cause Free Agent to hang or GPF if it read a message header which 
contained a References field with contained the message's own message id.  (We found another 
newsreader that incorrectly generated messages with this problem.)
Fixed a problem that was causing Free Agent to access the hard drive every second or so.  This problem 
only occurred if you were not running a disk cache program, such as SmartDrive.
Fixed a problem which could cause a GPF @ 0001:4F93 or cause Free Agent to hang when merging in 
new headers.  These cases were due to messages that had a Reference: field that contained references 
to themselves.
Fixed a problem that could cause the body pane to reset to the top when you pressed a key that changed 
the state of the message (i.e. Keep, Ignore).
Fixed GPF @ 0014:F9C7 which occurred if the data and/or shared directories specified in AGENT.INI no 
longer existed.
Fixed bug which could cause Free Agent to hang on some servers when it tried to retrieve a message that 
was no longer available.

Fixed a bug which made it impossible to resize the browser panes after a browser window had been 
minimized and then restored.
Fixed a bug that could cause the percent-saved value calculated by the compaction operation to be 
incorrect.
Pressing Page Up while on the first page now causes Free Agent to scroll up to the first line of the page.
Double-spaced text no longer appears single-spaced when scrolling forward.
Fixed a bug that would cause the From field to get mangled if the field contained a syntax error and you 
either fixed the error or chose to leave it unchanged.
When importing messages from Unix-format files, Free Agent ignored messages for which the From line 
contained a timezone field.  Free Agent now recognizes these messages.

When you delete messages, the confirmation prompt includes the number of message to be deleted.  
This count used to include messages that were marked "keep" and would not actually be deleted.  Now, 
the count excludes kept messages.


OS/2 Compatibility


Our beta testers have given us mixed reports about running Free
Agent under OS/2 3.0 (Warp). Some can't make it work at all,
while others are able to get it working more or less smoothly.
It's possible that at least some of the difficulties are caused
by problems  in Agent, while
others may be setup problems in Warp. We intend to make Agent
work correctly under OS/2, so we are setting up an OS/2
installation ourselves to evaluate the compatibility issues. Since
it may be a while before we have conclusive information, we'll
summarize what our beta testers are reporting until we can supplement
it with our own findings.

Please understand that we are simply reporting information that
we can neither confirm nor test at the moment. These are unsubstantiated
reports from our users, supplemented by some Usenet browsing on
our part (no shortage of newsreaders here!).

A posting in the comp.os.os2.networking.tcp-ip newsgroup talked
about some general steps to make Winsock programs work with Warp's
Internet Access Kit (IAK):

If winsock programs don't work with the IAK check:
1. in autoexec.bat there is a line : 'SET ETC=C:\TCPIP\DOS\ETC'
2. in autoexec.bat PATH line C:\TCPIP\DOS\BIN is in front
3. there is no other WINSOCK.DLL in \WINDOWS or \WINDOWS\SYSTEM
4. in \TCPIP\DOS\ETC there is a file 'resolv'
5. in CONFIG.SYS there are lines saying:
      DEVICE=c:\tcpip\bin\inet.sys
      DEVICE=c:\tcpip\bin\ifndisnl.sys
      DEVICE=c:\tcpip\bin\vdostcp.vdd
      DEVICE=c:\tcpip\bin\vdostcp.sys
      RUN=c:\tcpip\bin\cntrl.exe
      RUN=c:\tcpip\bin\vdosctl.exe



One OS/2 user reported that he had trouble making Free Agent
run until he un-installed win32s, after which it worked fine.
We don't know why this might be the case, and we haven't heard
similar reports with Windows, but it might be worth trying.

Another user reported that Free Agent crashed right after
the startup graphics in Windows Enhanced mode, but worked fine
in Standard mode.

Several people have reported odd screen-related problems, usually
with Free Agent failing to completely obscure other windows
that should have been under it.  Most of them report that these
problems don't prevent Free Agent from working properly
otherwise.

One user reports success running Free Agent in a separate
seamless WinOS/2 session, and sent us a copy of his settings:

s=DCF
i=Free_Agent - Settings
p=WIN_RUN_MODE
t=5
v=320 3.1 Standard
d=0 Off
p=WIN_DDE
t=5
v=1 On
d=1 On
p=WIN_CLIPBOARD
t=5
v=1 On
d=1 On
p=WIN_ATM
t=0
v=0 Off
d=1 On
p=DOS_AUTOEXEC
t=3
v=C:\AUTOEXEC.BAT
d=1 On
p=DOS_BACKGROUND_EXECUTION
t=0
v=1 On
d=1 On
p=DOS_BREAK
t=0
v=0 Off
d=1 On
p=DOS_DEVICE
t=4
v=C:\OS2\TCPIP\BIN\VDOSTCP.SYS
d=1 On
p=DOS_FCBS
t=1
v=16
d=1 On
p=DOS_FCBS_KEEP
t=1
v=8
d=1 On
p=DOS_FILES
t=1
v=50
d=1 On
p=DOS_HIGH
t=0
v=1 On
d=1 On
p=DOS_LASTDRIVE
t=3
v=Z
d=1 On
p=DOS_RMSIZE
t=1
v=640
d=1 On
p=DOS_SHELL
t=3
v=C:\4DOS5\4DOS.COM /P @C:\4DOS5\4DOS.INI
d=1 On
p=DOS_STARTUP_DRIVE
t=3
v=
d=1 On
p=DOS_UMB
t=0
v=1 On
d=0 Off
p=DOS_VERSION
t=4
v=DCJSS02.EXE,3,40,255
v=DFIA0MOD.SYS,3,40,255
v=DXMA0MOD.SYS,3,40,255
v=EXCEL.EXE,10,10,4
v=IBMCACHE.COM,3,40,255
v=IBMCACHE.SYS,3,40,255
v=ISAM.EXE,3,40,255
v=ISAM2.EXE,3,40,255
v=ISQL.EXE,3,40,255
v=MSD.EXE,5,00,255
v=NET3.COM,3,40,255
v=NETX.COM,4,00,255
v=NETX.EXE,5,00,255
v=PSCPG.COM,3,40,255
v=SAF.EXE,3,40,255
v=WIN200.BIN,10,10,4
d=1 On
p=DPMI_DOS_API
t=2
v=AUTO
d=1 On
p=DPMI_MEMORY_LIMIT
t=1
v=6
d=0 Off
p=DPMI_NETWORK_BUFF_SIZE
t=1
v=8
d=1 On
p=EMS_FRAME_LOCATION
t=2
v=AUTO
d=1 On
p=EMS_HIGH_OS_MAP_REGION
t=1
v=0
d=1 On
p=EMS_LOW_OS_MAP_REGION
t=1
v=384
d=1 On
p=EMS_MEMORY_LIMIT
t=1
v=0
d=0 Off
p=HW_NOSOUND
t=0
v=0 Off
d=1 On
p=HW_ROM_TO_RAM
t=0
v=0 Off
d=1 On
p=HW_TIMER
t=0
v=1 On
d=0 Off
p=IDLE_SECONDS
t=1
v=20
d=0 Off
p=IDLE_SENSITIVITY
t=1
v=100
d=0 Off
p=INT_DURING_IO
t=0
v=1 On
d=0 Off
p=KBD_ALTHOME_BYPASS
t=0
v=1 On
d=0 Off
p=KBD_BUFFER_EXTEND
t=0
v=1 On
d=1 On
p=KBD_CTRL_BYPASS
t=2
v=NONE
d=1 On
p=KBD_RATE_LOCK
t=0
v=0 Off
d=1 On
p=MEM_EXCLUDE_REGIONS
t=3
v=
d=1 On
p=MEM_INCLUDE_REGIONS
t=3
v=
d=1 On
p=MOUSE_EXCLUSIVE_ACCESS
t=0
v=0 Off
d=1 On
p=PRINT_SEPARATE_OUTPUT
t=0
v=1 On
d=1 On
p=PRINT_TIMEOUT
t=1
v=15
d=1 On
p=SESSION_PRIORITY
t=1
v=1
d=1 On
p=SIO_Allow_Access_COM1
t=0
v=1 On
d=1 On
p=SIO_Allow_Access_COM2
t=0
v=1 On
d=1 On
p=SIO_Allow_Access_COM3
t=0
v=1 On
d=1 On
p=SIO_Allow_Access_COM4
t=0
v=1 On
d=1 On
p=SIO_Idle_Sensitivity
t=1
v=100
d=1 On
p=SIO_Mode_DTR
t=2
v=No Change at OPEN or CLOSE
d=1 On
p=SIO_Mode_FIFO_Load_Count
t=2
v=16
d=1 On
p=SIO_Mode_IDSR
t=2
v=Ignore DSR During Receive
d=1 On
p=SIO_Mode_OCTS
t=2
v=HandShake Signal, as in RTS/CTS
d=1 On
p=SIO_Mode_ODSR
t=2
v=Ignore DSR During Transmit
d=1 On
p=SIO_Mode_RTS
t=2
v=HandShake Signal, as in RTS/CTS
d=1 On
p=SIO_Mode_XON/XOFF
t=2
v=No XON/XOFF flow control by SIO
d=1 On
p=SIO_Screen_Sync_Kludge
t=0
v=0 Off
d=1 On
p=SIO_Share_Access_With_OS/2
t=0
v=1 On
d=1 On
p=SIO_Virtualize_16550A
t=0
v=1 On
d=1 On
p=SIO_Virtualize_COM_Ports
t=0
v=1 On
d=1 On
p=VIDEO_8514A_XGA_IOTRAP
t=0
v=1 On
d=1 On
p=VIDEO_FASTPASTE
t=0
v=0 Off
d=1 On
p=VIDEO_MODE_RESTRICTION
t=2
v=NONE
d=1 On
p=VIDEO_ONDEMAND_MEMORY
t=0
v=1 On
d=1 On
p=VIDEO_RETRACE_EMULATION
t=0
v=1 On
d=1 On
p=VIDEO_ROM_EMULATION
t=0
v=1 On
d=1 On
p=VIDEO_SWITCH_NOTIFICATION
t=0
v=1 On
d=0 Off
p=VIDEO_WINDOW_REFRESH
t=1
v=1
d=1 On
p=XMS_HANDLES
t=1
v=32
d=1 On
p=XMS_MEMORY_LIMIT
t=1
v=64
d=0 Off
p=XMS_MINIMUM_HMA
t=1
v=0
d=1  On


OS/2 and Warp are registered trademarks of the IBM corporation.


MIME
How do I save inline files?
You need to edit your AGENT.INI file:

[Article]
SaveNamedInlines=0   (change this to a 1)

When this value is non-zero, if a MIME section has a filename, Agent will display
the yellow icon for the message and will save the section when you select Save All
Attachments from the File menu.

A uuencoded message wasn't decoded. How do I decode it?

First, ensure that you have the 'detect uuencoded messages automatically' checked on the Group | Default Properties | Receiving Files tab.

If you have already received the message, you'll need to save the file to text using the File | Save Messages As option, and then import the message back into Agent with the above setting on.

You should now be able to right click on the message, choose Index, and save the uuencoded message from this dialog.

I can't burst the digest that was received from a mailing list.

Even though most list servers send out a 'digest' of messages sent to the list, rarely do the servers send a digest that follows the MIME spec (we have yet to find one!).  Unless the digest is in acordance with the MIME spec, Agent won't burst it.

I sent a message using quoted printable, but the recipient complained about equals (=) signs.

Most likely, the recipient of the message is not using a MIME capable program to receive your message.  In this case, in the future, you'll want to send your email messages to this person using 7bit/8bit instead of quoted printable.

I sent a text file, but recipient got a bunch of '=20' characters in the file.

Same explanation as the "complained about equals signs" above.  Switch the encoding type from quoted printable to 7bit/8bit (select Message | Properties from the composition window).

how do I specify file types other than text be non-encoded?

When you are attaching the file to the message (by clicking on the Attachments button while in the composition window) select the file, then change the type of data field to "text/plain".

Do follow-up messages that are copied to author take the MIME characteristics of email or usenet?

When you are posting a reply to a usenet message, and copying the author via email, keep in mind that the email message will assume the same characteristics as the usenet post:

Encoding type (quoted printable or 7bit/8bit)
MIME Headers (checked (yes) or not checked (no)


   FAQ: Browsing and Reading
   


When I do a 'Save Message As', why do I only get header information?
On the Save Messages As... dialog box, you need to check the 'save raw (unformatted) message' box.

How do I mark and retrieve all messages
in certain groups?

There are two ways to do this:

If you want to do this on an ad-hoc basis after you've retrieved the
headers, press Ctrl+A to select all of the headers, select Message |
Mark for Retrieval and then select Online | Get Marked Message Bodies.

If you always want to get the bodies automatically for a particular
group, select the group and use the Group | Properties option to
open the Group Properties dialog. On the Retrieving page, check Override
default settings and then check Retrieve bodies for all new
messages.




If I retrieve new headers, but I don't read
any messages, how do I prevent the headers from being marked as read?

By selecting Group | Default Properties (or Properties
if behavior is desired only in current group) and selecting Do not
mark any existing messages read in the When retrieving new
message headers section. 




What does the Catch Up option do?

Here's the question that one of our beta testers sent us:

 I was wondering if I could get an explanation of the function of the
 catching-up choice in the online menu.  If, after being away, you want
 to catch-up what is the difference in using this choice and the mark
 all messages as read choice?

Agent remembers the number of the last message it has retrieved
from the news server. When you get new headers, Agent
gets all higher-numbered messages. The Online | Catch Up With Selected
Groups command queries the server to find out the highest number, but
does not retrieve any headers, so that the next time you get headers, you'll
only get messages posted since you did the catch up.

The Message | Mark All Read command simply marks as read (changes
them from red to black) all messages that you have already retrieved. It
doesn't affect which messages Agent will retrieve the next time
you contact the server.

BTW, another way to catch up is to open the Default Group
Properties dialog and temporarily change the Limit number of headers
per session value. That way, you can catch up by retrieving, say,
no more than 50 of the most recent messages per group. 




How do the auto-thread-expand options work?

There are two options on the Navigation tab of the Options
| General Preferences dialog box that determine whether threads are
displayed in expanded or collapsed form:


Show threads initially Collapsed: If you check this option,
all threads will be shown collapsed when you first open a newsgroup. If
you un-check it, they will all be shown expanded.

Automatically expand threads containing new messages: If you
check this option, threads will be expanded when you jump into them with
the Skip to/View next unread commands. They're expanded only
if you've already retrieved and read the first message in the thread --
the idea here is to avoid expanding threads that you've never seen before
(and forcing you to step through them one message at a time). Only threads
that you've previously shown an interest in are expanded.


This feature has been confusing a lot of our users, and we're looking
at ways to make it simpler. In addition, the option to automatically expand
threads when you jump into them doesn't seem to work if you are in three-pane
mode and have the focus in the body pane. Keep watching these pages.




My messages aren't being marked as read
in the new release.

We have changed the criteria that Agent uses when automatically marking
a message as read. The following options have been added to
the Options | General Preferences | Navigation dialog: 

Automatically mark messages read: 
( ) Whenever the message body is visible in the Message pane 
(x) Only when the Message pane is selected 
( ) Never 

We have chosen the second option, Only when the Message pane
is selected, as the default in order to avoid inadvertently marking
articles read when you happen to select them in the Message List pane.
You can change it back to the old behavior by selecting the first option.




Why does it jump when I Mark or Ignore an
message?

This is caused by one of the new navigation features added in version
0.46. Agent automatically skips to the next unread message when
you mark a message for retrieval or ignore a thread. If you do not like
this behavior, you can disable it by selecting Options | Preferences
and clicking on the Navigation tab. Now click on the Marking
or ignoring a message skips to the next unread message option to remove
the check mark and press OK to dismiss the dialog box.




Why doesn't the date appear in the message list?

Actually, the date does appear to the right of the message header. If
you use the multi-paned view, it is probably off the right of your screen.
Try using Zoom mode. Choose the Navigate | Zoom Window menu item,
or click the maximize button in one of the individual panes. Agent
is pretty smart about switching back and forth between the panes automatically,
and you can switch manually by clicking on the tabs at the top of the window.





Why don't I see the Date or Author fields
in the browser? [Agent only]

Starting with Agent version .99a, we've made the Message List
pane sortable by Date, Author, Subject and Size, and allowed you to select
this by clicking on the respective column headers. For example, to sort
by Author you just click on the header for the Author column.

However, this required us to change the format somewhat, by adding an
Author column instead of simply appending the author's name to the end
of the message subject as we previously did. Depending on how you have
your screen layout set, this may cause some of the columns to not fit in
your window any more. To see them again, Zoom the pane to fill your screen
and readjust the column widths by using the mouse to drag the header separators
to the desired location. 


In 99e, I have to hit the 'N' key an
extra time when I reach the end of a group. Why? 

We changed the way Agent behaves at the end of a group when the Skipping
to next unread message jumps to first unread message in next group
option is unchecked. What prompted us to make the change was the new single
key navigation, which, in some cases, didn't work well with the old behavior.
The only drawback to the new method is that you have to hit 'n' (or 'b',
or whatever) one additional time.




Why can't I make the status column smaller?

In addition to the line count, the status column has to display all
of the message status icons (Mark, Watch, Ignore, Keep, Thread, Body).
We've limited the minimum size of the column so that there is room for
all of these. We found that if we didn't do that, new users would make
the column so small that some of the information would disappear and then
they'd get confused because it was missing. You can also use the Zoom command,
which can be handy to make the message browser fill the entire window and
give you maximum width for the subject column.




How do I suppress the header details when
I'm reading a message?

Remove the checkmark from the Message | Show All Header Fields
menu item (or use the right mouse button to bring up the speed menu and
remove the checkmark from the Show All Header Fields item). This
will start the message just after the header.

Note that this won't eliminate a header that somebody else quoted and
included in the message. That makes it into part of the message body, where
it is always displayed.




Why does some word-wrapped quoted text appear
in the wrong color?

When you're viewing a message that contains quoted text, you may sometimes
notice that the text is word-wrapped and that the wrapped lines appear
in black instead of blue (or whatever color you've chosen for quoted text).
This is actually a problem with the message itself, not with Agent.

This happens when the newsreader that created the message decides to
word-wrap the quoted text and does not put a  at the beginning
of the wrapped lines. Because they don't start with the quote character,
Agent has no way of knowing that they were originally part of the
quote, and so it displays them in black. (To prevent you from perpetrating
erroneous quotations like this, Agent doesn't wrap quoted text.
See the section on word-wrapping in the
editor for more information about that.)

If Agent wraps part of a quoted line, it does not provide a 
character but still displays it in blue. It can do this because it knows
that the new line is really part of the quoted line above it.




How does word-wrap work when I'm reading an
message?

The message | Word Wrap menu item (or the Word Wrap item
on the speed menu that you get by clicking the right mouse button while
viewing a message) determines whether the message text is displayed word-wrapped.
If word-wrap is on, all of the text will be visible no matter how small
your display window is, but it may be hard to determine the message's original
format. If word-wrap is off, the message will appear in its original format
but you may have to use the horizontal scroll bar to see all of it.




Why do long messages appear to be truncated?
[Free Agent only]

If you download a very large message, the display may only show the
first part of it (the first 60,000 characters), followed by the message

[Sorry!
 This version of Agent cannot display messages longer than 60k bytes.
 We will remove this restriction in a later version.
 In the meantime, you can view the entire message by
 printing it or by saving it as a file.]

The entire message has actually been downloaded, and if you save or
print it, it will appear in its entirety. The restriction affects only
the display, and will be fixed in a later release.




Why do I get This message is no longer
available errors?

This means that your news server no longer has the message that you
just tried to download. This can easily happen if you have your purging
settings defined to keep message headers for a fixed number of days or
to never purge them at all (see the Purging tab on the Group
| Properties dialog box). Because news servers keep messages for an
unpredictable amount of time, the only safe settings are Purge All
and Purge messages no longer available on server.

In earlier versions of Free Agent, misleading information from the server
could also cause this problem even if you had the Purge messages no
longer available on server option set. The following topic describes
the reason for this and the fix that we implemented in Free Agent 1.0 /
Agent .99.




Why do the latest versions retrieve headers
more slowly?

One of Agent's purging options is When the message is no longer
available on the server. In previous versions (prior to Free Agent
1.0 / Agent .99), it would do this by checking the range of available messages
reported by the server and purging all messages whose numbers were before
the available range. For example, if the server reported that messages
204-566 were available, Agent would purge all messages with numbers 203
or less.

But our beta testing showed that in many circumstances there would be
gaps in the reported range of messages. This would typically happen when
one message was posted in a way that would cause it to remain on the server
much longer than normal. This could happen if a message was posted with
an explicit expiration date, or if a message was cross-posted. (In many
cases, cross-posted messages are not deleted from any groups until they
are deleted from all groups.)

These gaps would cause Agent to think that messages were still available
when they really weren't. This would cause two problems for the user. First,
you might try to retrieve the body for one of these messages and then have
Agent report that the message was no longer available.
Second, Agent would fail to purge large numbers of messages if there were
really big gaps in the range.

In the latest release of Agent, we solved these problems by having Agent
request a complete list of messages from the server. With this list, Agent
is able to purge all messages no longer available, even if there are gaps
in the numbering range. Agent gets the list of messages as part of the
get-new-headers operation, after it has retrieved header information about
new messages.

Our tests showed that retrieving a complete list of messages adds only
a few seconds to the retrieval time for most groups. However, we have also
found that some news servers are very slow to return the complete message
list. If you've noticed that Agent pauses during get-new-headers, then
you probably have one of those servers. You can eliminate the delays by
turning off the Always get complete list of server's available messages
option on the Group Properties | What to Purge dialog. This will
make Agent work the way it used to. The downside to turning off the option
is that the no longer available purging option may fail to
purge all unavailable messages, leading to the problems discussed above.




Why does it take so long to update a group
after retrieving headers? [Agent only]

Agent now allows you to sort your newsgroups by Author, Date, Subject
and Size as well as by Thread. However, it needs to have the group in Thread
order to insert new headers into it, so it can do things like respect Ignored
and Watched threads. If you have the group sorted by anything except Thread,
Agent has to sort it into Thread order, update it with the new headers,
and then re-sort it back into your original order. On some systems this
can take a considerable time, especially with large newsgroups.

You can tell that this is happening if you have your newsgroup sorted
by something other than Thread, the actual header retrieval (with the moving
progress indicator) happens at the normal speed, and there is then a very
long pause while the status bar says Updating &lt;newsgroup.


What happened to my
highest retrieved counter? 

Agent now keeps track of ranges of retrieved messages instead of only
the highest message retrieved. This fixes the problem experienced by many
Demon users, where Agent was not retrieving all messages due to non-sequential
message IDs on the news server. 


But what if I want to re-retrieve
messages in a group? Before, I could decrement the highest message
retrieved number and then get new headers.

Sample Headers from Selected Groups (Online menu) has a new dialog which
provides a more convenient way to re-retrieve messages. You can choose
to sample the &lt;n most recent messages or messages from the last
&lt;n days. 


What's the option Server creates
messages out of order used for?

This option controls whether Agent records gaps in the retrieved message
range. For example, say you get headers in a group, and messages 100-120
and 150-200 are all that's on the server. 

- With the option checked, Agent will record the range as [100-120,150-200].
- With the option unchecked, Agent will record the range as [100-200].


Note: This option does not control whether Agent checks for missing
messages when it retrieves new headers. If Agent's list of retrieved messages
contains gaps, Agent will always check for messages in the gaps when retrieving
new headers. This option simply controls whether Agent records the gaps.



Do I need to check Server
creates messages out of order? 

If you use the Demon news server, you should probably check this option.
Otherwise, you can probably leave this option unchecked since most news
servers don't add messages out of order. Unchecking it will generally improve
performance. 


How come Agent says it's getting
up to 100 new headers, but only gets 7? 

The number of headers in Retrieving up to &lt;n headers
has always been an estimate based on the range of available messages reported
by the server. The number actually available may differ from this number.
In 99e, we added two features that may make this estimate off more of the
time: 

1. If you have the option Server creates messages out of order
checked, Agent will record gaps in the range of retrieved headers and check
these gaps when it gets new headers. The gaps will be included in the estimate.
For example, if your retrieved range is [10-20,25-30] and the server reports
headers 15-32 are available, Agent will report it is retrieving up to 6
new headers. Most likely, you'll only get 2 new headers (31-32) and not
headers 21-24. If you're not using the Demon news server, you probably
don't need this option checked and would be better off with it unchecked.


2. Another thing that might make the estimate appear to be off is Kill
filters. Agent may indeed get 430 new headers, but skip or mark read all
but 40. 


When sampling by date, Agent appears to
get all headers. Why? 

If you sample by number of days, Agent does indeed get a list of all
available messages, keeping only those newer than the given date. There
is a server command, NEWNEWS, that returns a list of messages newer than
a given date. The reason we don't use the NEWNEWS command is that it returns
a list of message-IDs. Agent would then have to request each message by
message-ID, which would be *very* slow. So, the method we use should generally
be much faster. 




What do I do about a too many messages
to retrieve error? [Free Agent only]

This error message is displayed if the sum of the messages currently
in Free Agent's database for the group and the total number of new messages
that may be retrieved (i.e. the total number of messages in the range of
new messages available from the server) is greater than 32,000. Of course,
the total number of messages you end up with after the retrieval may be
less than this. For example, Free Agent may end up purging some old messages,
and there may be gaps in the range of available messages. But Free Agent
has to prepare for the worst, which entails allocating enough space to
store all old and newly-retrieved messages. Here are the workarounds:


Tell Free Agent to retrieve a smaller number of messages. You can do
this with the Online | Sample... menu option, or by setting the
Limit number of headers retrieved per session parameter on the Retrieving
tab on the Group | Default Properties for All Groups dialog to a
value like 15,000. This works well if this is the first time you have visited
a group, and you are thus trying to retrieve all available messages. Once
you're caught up, the number of messages retrieved in future sessions will
be much smaller. (And besides, you're probably not going to read 32,000
messages anyway!)

Do a manual purge before getting new messages.


(After the above was written, we made the software smarter so that it
displays the error only in the rare cases when there really will
be 32,000 messages after the download. Because we did this between the
Free Agent 1.0 and Agent .99 releases, all Agent versions have the new,
improved logic but all Free Agent versions still have the old code. The
fix will automatically be included in the next Free Agent release, but
for now Free Agent users may need the above workaround.)

   FAQ: Posting

How do I have my signature added to the end
of my post?

The default signature is designated in the Group | Default Properties
for All Groups Dialog. Select the Posting tab on this dialog,
and then select the signature you want as your default signature. The signature
is automatically attached to all documents that you post or mail using
Agent.

If you would like to set up different signatures for each group, you
may override the default by first selecting the group whose properties
you are overriding, and then select Group | Properties for Selected
Groups. Go to the Posting tab, select Override Default
Settings, and then choose the signature to use when posting from
that group.

You can also override the default signature on an individual message
by pressing the All Fields button and changing the signature
field.


Why doesn't my signature appear in the
edit window?

Once you've set up your signature as described in the
topic above, you may be surprised when it still doesn't appear in the
edit window or in the messages in the Outbox. Don't worry - Agent appends
the signature at the time that it sends the message, although it never
appends it to the part that you see. If you want to verify that Agent is
going to append the correct signature to your post, press the All Fields
button. The name of the signature that Agent is going to use will appear
in the Signature field. If you want to use something other than
the default signature, you can change it here.

As a future enhancement, we're considering changing Agent to add the
signature to the editable text in the message window. This would allow
you to confirm that the signature really was there, and to edit it if necessary.




How does word-wrap work when I'm editing an
message?

For outgoing messages, there are two parameters that control wordwrap
-- the Message | Word Wrap menu option, and the Line Length
option on the Message Posting tab of the Preferences dialog
box.

When a message is transmitted, only the Line Length parameter
is used. All lines are wrapped at Line Length characters (remember,
posted messages are inherently fixed-pitch), with one exception:
Lines that begin with one of the quote characters are not wrapped, based
on the assumption that the original text was formatted correctly (or, at
least the way the author wanted) to begin with.

The display in the editing window itself is also affected by the Word
Wrap option. Lines will still wrap at the Line Length setting
(unless they're quoted), but if Word Wrap is set then all lines
also wrap as necessary to make them fit in the window. If you don't set
Word Wrap, then lines may be wider than the window and you'll have
to scroll horizontally to see parts of them.

If you want to see exactly what the message will look like when it's
posted, select a fixed-pitch font, make sure your window is wide enough
to display Line Length characters, and turn off Word Wrap.
OTOH, if you have a very narrow window and just want to see the text without
worrying about the final format, turn Word Wrap on, select the font
of your choice, and type away.




Do I have to re-type a failed post?

No. Whenever you attempt to post a message, Agent saves it in
the outbox. This means that if the post fails for any reason, the messageis still there and you can try to post it later. To do this, select the
Online | Post messages and Emails menu option.

To see the contents of the outbox, select Window | Open Outbox Window.
All of the messages and email messages that you have entered will be there,
with icons to show whether their posting was successful. A yellow smiling
face means that the message was posted successfully, while a red frowning
face means that the posting failed and will be tried again the next time
you select the Post messages and Emails menu option.




Why are my posts listed as having 0 lines?

Agent doesn't set the Lines field (the field that tells how many lines
there are in the message) when posting a message, because we thought all
news servers added it automatically. It turns out that some don't, so any
message posted through them will end up with a header claiming that it
has 0 lines. The message text is still there and can still be viewed, but
many newsreaders will display it in the browser with a line count of 0.

This problem will be fixed in a later release.

   FAQ: Miscellaneous
   
How do I decode and view binary files?

(This discussion is taken almost verbatim from the How to Retrieve
a Binary Attachment section of our online help. Whenever you don't
know how to do something, the How To button on the Help toolbar
is always a good place to start.)

The latest release of Agent has a greatly improved process for
retrieving, decoding, and viewing binary files. You can now get multiple
binaries in a single operation, and bypass most of the manual steps that
were necessary in our first release. To retrieve (and optionally view)
a binary posting from a newsgroup, follow the steps below:


Select the binary file(s) you want: Select at least one article
from each binary file you want to retrieve. In most cases, Agent
will be able to find all of the other articles that contain parts of the
binary file.

If you select articles for more than one binary file, Agent will
retrieve all of the articles for all of the files you selected.

Retrieve or view the files: Choose either File | Decode Binary
Attachments or File | Launch Binary Attachments. 

If you are configured for online operation, Agent will immediately
begin downloading and decoding the binary attachments. If you selected
the Launch... option, it will automatically run the Windows application
associated with the attachment's file type.

If you are configured for offline operation, Agent will mark
all articles containing the attachments for later downloading. The next
time you select the Online | Get Marked Article Bodies menu item,Agent
will download and decode the attachments.


Regardless of whether you chose the Decode... or Launch... option, Agent
will store the binary files in the directory entered in the Attachments
tab of the Group | Default Properties... dialog box, unless you've
overridden that with the Group | Properties... dialog box for the
specific group you're in.

If the automatic process doesn't work:

Occasionally, you may find multi-part attachments whose subject lines
don't match the standard conventions (they might not include the standard
Part 1 of 2 or [1/2] notation, for example). In
this case, Agent won't be able to find all of the articles for the
file or won't be able to get them in the correct order. This may announce
itself with a dialog box saying that Agent couldn't find all of
the articles, or with an error during the decoding process.

To decode such files, you'll need to select and order the articles manually:


Select all of the articles that contain parts of the binary
file. You can do this by selecting one article and then Ctrl-clicking on
the others to include them. Be sure to select articles for only one binary
file; you'll have to repeat this entire process for any others that you
want.

Select the File | Manually Decode Binary Attachment meu item.

Agent will display a dialog box showing the articles you selected.
Make sure they are all in order - if they aren't, use the Up and Down buttons
to order them correctly.

Launch or decode the attachment by pressing the corresponding button.
If you are offline and have not yet retrieved the articles, Agent
will immediately go online and download them.





When do articles get purged?

Like most things in Agent, this is configurable. By default,
Agent purges outdated articles from a group each time you tell it
to download new headers for the group, which you do with the various Get
... Headers commands in the Online menu.

You can also choose to have articles purged whenever you close Agent,
so that old articles will be gone the next time you start up.

This means that when you're through browsing a group, your articles
aren't purged when you leave the group as they are with most other newsreaders.
Instead they persist at least until you close Agent, and perhaps
until the next time you go online to get new headers, which might be several
days later.




How do I control which articles are purged?

Whenever Agent is purging articles for a group, it examines each
article to see if it should be deleted. It makes this decision based on
the settings in the What to Purge page of the Properties...
and Default Properties... dialog boxes (reached through the Group
menu).

These dialog boxes allow you to set different criteria for deleting
articles depending on whether you've previously downloaded the article
body and whether you've read the article. For example, most people set
these options so that articles with their full text are kept longer than
mere headers, since these are the articles that interested them enough
to read in the first place.

There are two main sections on this dialog box - one for articles that
you've already read, and one for articles that are still marked unread.
Within each section, there are separate options for articles without bodies
(i.e. headers only) and articles that do have bodies (i.e. whose text you've
previously downloaded).

You can choose to have articles with no bodies deleted:



When they're no longer available on the server

This option automatically deletes all headers that the news server
has already deleted from its own list of articles. Selecting this option
makes the list of articles displayed by Agent a mirror image of
the articles that are available from the server. This is probably the best
option for most groups.

When they're older than a specified threshold

This option deletes headers based on their age.

On every purge

This option deletes the headers on every purge. Selecting this will
make Agent work like most other newsreaders, although we think that
negates one of our big advantages.



For articles that do have bodies, you have the following options:



On every purge

This option deletes the articles before downloading any new headers.
As with headers, selecting this will make Agent work like most other
newsreaders.

On every purge, delete bodies only

This is like the previous option, but leaves the header in the database
so that you can download the article again if you choose.

When they're older than a specified threshold

This option deletes articles based on their age. You might specify
that you want articles with bodies kept for 30 days, and manually set the
Keep flag for any that you don't want automatically purged.

Never

If you select this option, Agent will never automatically delete
articles. They'll accumulate until you delete them manually, or until something
causes their purging status to change. (For example, you might set unread
articles to never be deleted, but read articles to be deleted after 30
days. This means that an unread article would never be purged, but when
you read it it will then be purged after 30 days.)



Regardless of how you set the above options, you can always override
them for an individual article. If you want to delete an article before
its time, simply delete it manually. If you want to keep an article longer,
set its Keep flag and Agent will never automatically
delete it.




How do I make purging work like other
newsreaders?

Agent maintains an intelligent database of headers and articles
that persists from session to session. This provides many advantages over
traditional newsreaders, like letting you see new messages in context with
older ones. We strongly suggest that you try using this for a while before
deciding to disable it; most of the people here who use Agent wonder
how we ever lived without it.

However, this feature does come at a cost in both downloading speed
and disk space usage, and it just isn't the way some people want to work.
Here's how to make Agent behave very much like ordinary newsreaders:


First, decide whether you want to revert to ordinary behavior
in all newsgroups or just some.


If you want to change all newsgroups, select the Group | Default
Properties... menu option.

If you want to change only certain groups, select them all in the Groups
pane and then select the Group | Properties... menu option


Whichever version of Step 1 you perform, you will now have a version
of the Group Properties dialog box displayed. Select the What to Purge
tab to bring up the first set of options.

If you're doing this for a subset of the groups, there will be an Override
default settings field at the top of the dialog box. Click on this
field until an X appears in the box.

There are four main fields in the dialog box: Read Articles Without
Bodies, Read Articles With Bodies, Unread Articles Without
Bodies, and Unread Articles With Bodies. Select the On every
purge option in all fields.

Click the OK button at the bottom of the dialog box.


Agent will now behave much more like an ordinary newsreader.
Whenever you download new headers for a group, it will delete all of the
existing headers and articles in that group (except those that you've explicitly
set to Keep), so that you see only the new ones. These new articles will
remain in the database until the next time you download more headers.

For an even closer simulation of a conventional newsreader, follow the
steps above and then continue on:


Select the When to Purge tab on the Preferences dialog
box

Go to the When to Purge section, remove the check from the When
Retrieving new headers option, and check the When Closing Agent
option instead.

Click the OK button at the bottom of the dialog box.


Agent will now behave as much like an ordinary newsreader as
it can. It will now delete all headers and messages in all newsgroups whenever
you close it, so the newsgroups will always be empty each time you start
the program (again, except for articles you've chosen to Keep).




Server Errors: 400 - 599

These are errors that the news server reports to Agent after
the connection has been completed.


441 400 Bad file number Writing history file - Throttling

441 400 loadav [innwatch.load] 305 gt 300

441 Can't send connect request to server, No such File or Directory


These errors all mean that the news server has an internal problem
unrelated to anything you are doing. Contact your service provider to have
it fixed. When this happens, Agent saves the article you were trying
to post in its Outbox (File | Open Outbox Window), so that you can try
to send it again later, after your news server is working properly.

441 Can't generate Message-ID Error 0 

The error is generated internally by the server either if the server
is unable to obtain the current date and time (from itself), or if it is
unable to find out its OWN host name. All of this happens after Agent
has posted the article to the server. We recommend that you contact your
service provider and tell them about the error, since it indicates a problem
with their server.

441 Posted in the Future

This error means the date/time on the article, as sent by Agent,
is more than 24 hours later than the current date/time on the news server.
You should double-check your PC's date and time, and the timezone setting
in Agent (on the System Profile page of the Preferences
dialog box).

441 437 Unwanted news group

The error means that the newsgroup is not carried by the news server.
Perhaps this is a group that used to be carried and was dropped.

480 Authentication required for command error trying to post

This error means that your news server requires you to provide authentication
before you can post. You need to check with your service provider to find
out exactly what is required. In most cases, you need to supply the server
a user name and password. Once you get this information from your provider,
you can enter it on the User Profile page of the Preferences
dialog box.

500 Command not Recognized 

Your news server is not configured to handle a command issued by Agent
(usually the XOVER or the XHDR commands for retrieving information about
articles). Agent requires that the server accept one of these commands.
You will need to contact your service provider and see if they can provide
a server that honors these commands. 

500 Error trying to connect to server 

This error means that Agent is attempting to log you into your
news server, but your server doesn't actually require a login. Go to the
User Profile page of the Preferences dialog box and uncheck
the Server requires authorization login option.

502 Authentication Error

Check to see if your news server really requires authentication. If
it doesn't or if you are not sure, open the Preferences dialog box,
go to the User Profile page, and uncheck the Server requires
authorization login option. If you know that your server does
require authentication, double-check your User Name and Password
on this dialog box.

502 You are not in my access file

502 You only have permission to transfer

502 You have no permission to talk

These all indicate that you are not properly set up as an authorized
user of the news server. You will have to contact your service provider
or news administrator to get this corrected.

550 Addressee unknown

Usually, this means you tried to send an email to someone whose email
address was unknown to the email server, and the server refused to try
to forward the mail to another server. 





Winsock Errors: 10000 - 11999

These are errors that your Winsock driver reports to Agent, and
usually indicate problems with the connection process.


10036 WSAEINPROGRESS

This occurs primarily with Spry (Internet in a box, CompuServe CID)
dialers. If you're using Free Agent version 0.55 or earlier, upgrade
to the latest version as described in the Winsock
Compatibility pages for those drivers.

10050, 20050 WSAENETDOWN

We have some new information from Novell regarding the errors 10050
and 20050 (WSAENETDOWN). This was an error in their first version of winsock.dll
and it is fixed in the most recent version available in LWP42T.EXE on ftp.novell.com.
Also, not having the file NOVASYNC.EXE in \net\bin or in your path will
cause this error. This file provides the asynchronous support for Novell's
winsock.dll.

10055 WSAENOBUFS

There is not enough memory available for WINSOCK.DLL to create any
buffers for Agent. The problem is with low memory (memory below
640k), not overall memory. Free up more conventional memory.

10060 WSAETIMEOUT 

This may be a case where Agent loads the winsock.dll, but the
winsock driver fails to load. Try loading the driver prior to Agent.
If this works, then make sure the winsock driver is in the DOS path. You
may also need to free more conventional memory.

10061 Connection refused by server

This error means that the server is either too busy to accept more
connections, or possibly has been taken down for maintenance.

11002 Host name not found

This errror indicates that the name lookup failed, but that it might
succeed if you try again. If you set the following AGENT.INI option, Agent
will do just that, until it times out. 
[Online] 
RetryGetHostName=1 
If that doesn't work, replace the news server's domain name with
its IP address, in the System Profile page of the Options | Preferences
dialog box, so as to skip the name lookup.

11004 Host Name not Found

This error means that the Winsock driver was unable to find the host
name for your news (NNTP) or mail (SMTP) server. Double-check the name
of these servers in the System Profile page of the Options |
Preferences dialog box. Usually, they will be something like news.company.com
and mail.company.com, where company.com is your
provider's domain name. As a workaround, try entering the numeric (IP)
address for the servers. 
This error can also occur if you run out of low memory. Try closing
another application or try loading your dialer and connecting to your news
server before running Agent.

11004 No Data of Requested type

An error occurred during initialization of the Winsock driver. Check
your Winsock driver setup.

20050 WSAENETDOWN

See the entry for 10050 above.





Other Errors

I get a 'HELO requires domain name error',
what do I do?

There are two things to try when you receive this error: 


If you are running Win95 (and using its winsock driver), go to Control
Panel | Network. Highlight the TCP/IP that you will see on the list and
click Properties. Go to the DNS Tab. Make sure DNS is enabled, and make
sure the host and domain name fields are filled out. Usually, you enter
your user id as the host (johndoe if your address was johndoe@provider.com)
and the remainder of your address without the @ symbol as the domain name
(provider.com using the previous example). Click OK to save the changes.
Windows might ask you to restart after making these changes. Now try Agent
and see what happens.

If this does not help, or you are not running Win95, edit your AGENT.INI
file and find the following: 

   [Online]
   UseGetHostName=0


Change the 0 to a 1 and restart Agent.



I get a 'Connection closed unexpectedly by
server' error, what now? 

The error message Connection closed unexpectedly by server
means that the server disconnected from your winsock driver without telling
your winsock driver that it was going to do so.

This is usually caused by an extremely busy server trying to free up
resources to handle tasks more efficiently, the server suddenly going offline
(because of a lockup, maintenance, power problem, etc.), or phone line
noise (which would cause the server to think that you weren't connected
anymore). There is not much you can do to address this problem, except
for making sure you have a clean phone line and contacting your provider
to see if they can help.

   FAQ: Miscellaneous (Part 2)
   

How do I receive email via SMTP? [Agent
only]

In general, it is impractical for a program like Agent to receive email
using SMTP (Simple Mail Transfer Protocol), although that is the protocol
used to send mail. A conventional SMTP server has no provision for queueing
email for later retrieval, so Agent would have to be online 24 hours a
day to avoid missing messages. For this reason almost all service providers
use the POP3 protocol for transferring email to their users, and that is
the default protocol that Agent uses.

However, a few service providers (most notably Demon in the U.K.) have
implemented an unconventional SMTP server that does queue email,
and that's how they provide incoming mail to their users. If your service
provider has such a setup, you must go to the System Profile tab
of the Options | Inbound Email dialog box and set the Receive
email with SMTP option.




How can I move items from the Outbox to a Folder?
[Agent only]

If you want to move messages into a new folder, first create the folder
by selecting Group | New Folder from the Newsgroup window, and enter
the name of the new folder. You can move messages from the Outbox to a
folder by opening the Outbox window and selecting Message | Move to
Folder | &lt;folder name. (Alternatively, you can right click the
mouse to bring up the Outbox's context-sensitive menu, on which the Move
to Folder command will appear.)




Can I have Agent automatically file
my outbound messages into a folder? [Agent only] 

Yes, Agent will automatically route sent messages into a folder that
you specify. The Outbox is a repository for items that are waiting to be
sent. Once they are successfully sent, they will be moved to a folder of
your choice. On the Group | Properties | Posting Tab, override the
default settings and set the field File sent Messages in folder
to the folder in which you want sent messages to be saved. 

Note: The only posts that will be left in the Outbox are those that
are queued for sending or those that have failed to send. Once a message
leaves the Outbox and is successfully sent out, if you have a folder set
up for filing, there will be only one copy of the message in the specified
folder. 

We are also considering some automatic routing schemes for your outbound
mail, similar to the inbound mail filtering that Agent already does.




Can I import my existing email database
into Agent? [Agent only]

If you're currently using Eudora or Pegasus as your email package, we
have written converter programs that allow you to import your existing
database into Agent. The programs are available as ftp.forteinc.com/pub/converters/eudora/emailcvt.zip
and ftp.forteinc.com/pub/converters/pegasus/emailcvt.zip,
respectively, and each includes a readme.txt file that describes how to
use it.

These programs work by reading your existing database and writing a
text file that you can import into Agent with the File | Import Messages
menu option. They will preserve any existing trays, folders, and mailboxes
that you had set up, converting them to Agent folders.

We will add converters for other email packages according to demand
(and resources). You can import new messages at any time without disturbing
your existing folders and messages, so you don't need to wait for a converter
before switching to Agent.




Why can't I select the Import Messages
menu item? [Agent only]

The File | Import Messages option is grayed if you have never
run the Options | Inbound Email dialog box to configure the system
for email. This is because import won't work until you've designated a
default inbound email folder.




How does the Manage Folders
menu work?

When you select either the Copy or Move to Folder menu
option the flyout menu will list up to nine folders that you
have specified, followed by a menu option All Folders.... You
should put the folders that you copy or move messages to most frequently
on the flyout menu so that they are easily accessible. 

To configure the flyout menu, select Options | Manage Folder Menus.
There are two listboxes shown on the Manage Folder Menus dialog
box. The left-most one shows a list of all folders that aren't already
displayed on the menu. The right-most one shows the folders that do appear
on the menu. To add a folder to the menu, select a folder from the Folder
listbox and click on Add. The folder name will appear in the Menu
listbox.




How do I make sure that addresses never appear
when I'm using field text for mailing lists??

When you define a Field Text value for an address book entry, Agent
uses that value in your messages' To, Cc, or Bcc fields in place of the
entry's real addresses. So, instead of seeing their own addresses in the
message, your recipients see the Field Text instead. This feature is useful
for sending messages to mailing lists, when you don't want the recipients
of the list to see the email addresses of the other recipients. 

But, if you use the Expand Addresses feature of the address book
when selecting your mailing list entry from the address book for use in
a message, Agent inserts all of the addresses from the list into the message,
and DOES NOT use the Field Text. The next release of Agent will warn you
when this is about to happen, to verify that you really want to expand
the addresses.

In the meantime: 

Don't use the expand addresses feature when inserting address book entries
that have the Field Text defined. Double-check the To, Cc, and Bcc fields
of your messages to be sure they contain the correct information. For a
mailing list with a Field Text defined, everything will work correctly
only if just the name of the entry appears in the message.




Why are some people posting with more recent
versions than I have?

If you think you're running the most recent version of Agent
or Free Agent, you may sometimes be surprised to see a newsgroup
posting by somebody with a higher version number than you have. What's
happening here - are these people somehow special? Why do they have something
that you don't have?

There are several possible reasons for this. You might have missed a
release announcement and are using outdated software. See our Release
History page to make sure you haven't missed anything.

If you're using the latest public version, something else is obviously
happening. The post may have come from someone who is beta-testing a new
version that we will be releasing in the near future, or they may have
a special version that fixes a specific bug they were encountering. If
the posting came from Fort (somebody@forteinc.com) then they're probably
just using an internal development version that hasn't even made it to
beta yet.




How do I cancel a connection attempt that's
obviously failing?

(From some of the bug reports we've seen, a better title for this one
might be Why doesn't Agent have a Cancel button on the Connecting
to Server dialog box?)

The Connecting to Server dialog box appears during the period
of time when Agent has passed control to the underlying winsock
driver, during the first call to the driver after it is loaded. Whether
or not this happens during the dial-in phase depends on the particular
winsock driver you are using. If you are using the Trumpet winsock, the
dial-in occurs as a side-effect of the first winsock call, which won't
return to Agent until the call either succeeds or fails.

That's why there is no cancel button on the dialog box - Agent
isn't in control of the process at this point, and has no way to tell the
winsock driver to cancel the connection attempt. With Trumpet Winsock,
as far as we know at present, the only way to cancel the call is to go
to TCPMAN and press ESC. That will cancel the connection attempt and return
control to Agent.

  
 Why doesn't the following filter expression
work: $* 

Wildcard expressions must have at least three characters preceding the
wildcard, where characters may be letters, numbers, or dollar signs ($).
Use the following expression instead: ($ or $$ or $$$*) 


 Why do I need three characters in a wildcard
expression?

By requiring three characters in wildcard expressions, we were able
to optimize Agent's filter performance significantly. 


 Can I use wildcards at the beginning of
words (e.g., *money)? 

No. Wildcards can only be used at the end of words. 


 Why doesn't the following filter expression
work: ***

Filter expressions are word-based, where a word is any sequence of letters,
numbers, and dollar signs ($). When comparing an expression to a message,
Agent compares complete words only, ignoring all spaces and punctuation
between words. If you want to match everything, use a single asterisk instead:
* 


 My filter expression is $$$*.
Why doesn't the wildcard work? 

Any punctuation inside quotes, except a dollar sign, is ignored. So,
any operators you want to use (*, &, |, etc.) must be outside of any
quotes or they won't work. Use the following expression instead: $$$* 


 I have Agent configured to get all bodies
in a group. How do I set a Kill filter to skip the bodies of some messages,
but still get the headers?

Instead of using the group property to retrieve all bodies for the group,
use a combination of Kill and Watch filters. For example, if you want to
kill all messages containing cash, but get bodies for all the
rest, set up group-specific filters as follows: 

Kill filter: Action=Mark Read, Priority=400, Search For=subject: cash
Watch filter: Action=Retrieve Body, Priority=0, Search For=* 

You can then add any number of Kill filters with a priority greater
than zero, and Agent will retrieve bodies for all the rest. 

 I've ignored a thread, but a Watch filter
hits on a message in the thread. What happens? 

It depends on what kind of Watch filter you've defined: 

- If the filter action is Watch thread, Agent will remove the ignore
tag for the entire thread and replace it with a watch tag. It will then
retrieve all previously unretrieved bodies for the entire thread. 

- If the filter action is Retrieve Body or Mark for later retrieval,
Agent will leave the ignore tag on the thread, but will still retrieve
the body for the message. However, the ignore tag still on the thread will
cause the message to be marked read. 


 Can I set one filter to apply to a subset
of my groups? 

No, you can't have a single filter apply to just some groups. 

OK then, how do I copy a filter from one
group to another? 

Follow these steps: 

1. Use the command Add Copy of Filter to make a copy of the filter you
want. Change the scope of the filter to Global before saving. 

2. Go to the newsgroup window, and highlight the group you want the
new filter to apply to. 

3. Open a new filter window (Group | Usenet Filters), and change the
view to all global filters (check Global in the Select View dialog box).


4. Edit the desired filter, changing the scope to the current newsgroup.


 Is 'subject: $' more efficient than
just '$'? 

Performance-wise, there should be no significant difference with or
without the subject: qualifier. Including it is probably a more accurate
representation of what you're actually trying to do. 

 Is 'subject: (A or B or C)' more efficient
than three separate filters? 

Actually, Agent is very clever about figuring out which filters it needs
to evaluate for each message. So you should notice very little performance
difference, whether you have one filter or a thousand. We recommend defining
filters in a way that makes it convenient to manage them, rather than worrying
about possible performance consequences. 


   FAQ: CompuServe
   

What names do I use for the news and mail servers?

The simple answer is to use news.compuserve.com for the news
server and mail.compuserve.com for the mail server. However, news.compuserve.com
may cause some trouble for you, especially if you use Agent in offline
mode. See the following topic for a discussion of the problem and its solution.




Why do I get This message is
no longer available errors?

In addition to the normal reasons
for getting this error, there is another problem that only affects CompuServe
users. As it turns out, news.compuserve.com is sort of a virtual
address, and when you connect to it you get randomly connected to one of
six physical servers they have installed to handle the load. These servers
are mostly synchronized with each other, but it seems to take several hours
for messages to reach all six of them.

This means that if you get headers from one server, go offline and mark
them, and then connect to a different server to download them, you may
get message not available on server errors for some of the
most recent messages.

The solution is to always connect to the same server, so that you're
always presented with a consistent set of messages. You can do this by
using one of the physical server names listed below, thus bypassing the
random-connection mechanism.

Note that this problem primarily affects Agent in offline mode.
Now that CompuServe has the servers synchronized to within several hours
of each other (and using the same message numbers), you may be able to
use news.compuserve.com reliably in online mode. That address
is a problem only when you go offline between downloading headers and bodies,
and your online browsing style may prevent that from ever happening. If
so, you may gain reliability and performance by using news.compuserve.com,
since the switching mechanism should connect you to the best available
server.

If you decide that you do want to use one of the physical servers, open
the Options | General | Preferences dialog box, go to the
System page, and set the News Server field to one of the
names below:


dub-news-svc-1.compuserve.com
dub-news-svc-2.compuserve.com
dub-news-svc-3.compuserve.com
dub-news-svc-4.compuserve.com
dub-news-svc-5.compuserve.com
dub-news-svc-6.compuserve.com



Once you've done this, disconnect from the server, select all of the
newsgroups you follow, and do an Online | Get All Headers in Selected
Groups operation. This will download all of the headers for
your groups, without regard for their message numbers, and will delete
any that are duplicates of ones you've already downloaded. It will also
reset the message-number counters so that you'll be able to properly retrieve
new messages in the future.




Why are some newsgroups missing?

If you've been using a CIS newsreader like WinCIM to do your Usenet
reading, you may discover that you can't access some of your regular newsgroups
through Agent. If this happens, the first thing to do is to make
sure you have the very latest newsgroup list from the server. To do this,
select the Online | Refresh menu option. 

If it still doesn't appear, that means the CompuServe server doesn't
carry that newsgroup. The CIS readers use a different server than the NNTP
servers that Agent (and all other Winsock newsreaders) do, and the
two sets of servers don't seem to carry the same newsgroups. You'll have
to ask CompuServe to start carrying your newsgroup on their NNTP servers.




Can I just type the name of a missing newsgroup?

The CIS newsreaders allowed you to type in the name of a newsgroup if
it didn't appear in the group list. This is because they don't display
the names of all available groups, so that is the only mechanism to access
some of them.

Because Agent always displays all the newsgroups available on
the server (if its copy of the list is up to date; do an Online | Refresh
if it isn't), there is no facility for manually entering a group name.
If it doesn't appear in the list, then the server doesn't carry it.




Can I receive email with Agent? [Agent only]

At the moment, you can't use Agent to receive email through CompuServe.
The problem is that CompuServe doesn't provide a POP3 server, but automatically
routes all incoming email to your CIS account. We have heard reports that
they will offer such service in the future, in which case Agent
should be compatible with it.




Which forums carry discussions about Agent?

Our official support area is Section 20 of the Windows Connectivity
(GO WINCON) forum. We monitor this regularly, replying to user
questions, and upload the most recent versions of Agent and the
downloadable FAQs in the library there.

We also monitor the Internet Resources (GO INETRE) and Internet
New User (GO INETNEW) forums, and respond to user questions there
as well. (We no longer provide support in the NetLauncher Support forum
(GO NLSUPPORT), as we've been advised that it's inappropriate
there.) If you want to post a question in one of these forums, it's best
to include the word Agent in the Subject line so that we'll be sure
to see it.


   FAQ: Configuration
   
How do I decompress the .zip files?

Both the Agent and Free Agent downloadable files have been compressed
with PKZIP v2.04g. You can decompress them with the corresponding PKUNZIP
program, or with any other decompression utility that is capable of reading
.zip files. One popular program for Windows is WinZip, a shareware utility
that can be obtained through its home page at http://www.winzip.com/.

Neither the Agent nor the Free Agent .zip files contain subdirectories,
so you don't need to specify subdirectory expansion when decompressing
them. Using PKUNZIP to decompress Free Agent, you would just need to type
the command


pkunzip fagent10


This would extract all of the files into the current directory.




How do I configure a GIF viewer to work with
Agent?

First, you have to have a GIF viewing program, such as LVIEW. What you'll
do is configure Windows so that when you press the View button on the View
Attachment dialog box, Agent will automatically launch your viewer and
pass the GIF file to it.

To configure Windows 3.1 to launch your viewer,


Run File Manager

Select option File | Associate... The Associate dialog will
appear. In the dialog...

For File with Extension, enter GIF.

For Associate With, enter the full path of your GIF viewer,
for example c:\bin\lview31.exe

Press OK


This works with other types of binaries. Simply substitute the correct
file extension in place of GIF.




How do I make Agent automatically launch
binaries in Windows 95?

In order for Agent to launch binaries with their associated applications
in Windows 95, you must set up an open action for the file
type. The steps below describe in detail how to do so:


Run the Win95 Explorer.

Choose the View | Options... menu item.

Choose the File Types tab in the resulting Options dialog.

Examine the Registered file types list to see if the file type
is already listed:


If it is, select it and press the Edit... button to open the
Edit File Type dialog. Then skip to step 5.

If not, press the New Type... button to open the Add New
File Type dialog. Then add the new association:


Enter a description of the file type in the Description of type
field. This is how the files will be identified in Explorer. For example,
you might enter JPEG image for .JPG files.

Enter the file type's extension (.JPG, for example) in the
Associated extension field.



Press the New... button below the Actions window.

Type the word open (without the quotes) in the
Action field of the resulting New Action dialog.

Enter the path and filename for the associated application in the Application
used to perform action field. You can use the Browse... button
to locate the program.

Press OK to close the New Action dialog.

(Optional: You can press the Change Icon... button to select
the icon Windows 95 will use to represent the file type. This doesn't affect
Agent, but may make manual operations with this file type easier.)

Press Close to dismiss the Add New (or Edit) File Type dialog.

Repeat the steps above for any other file types necessary.

Press Close to dismiss the Options dialog.





Can I make Agent automatically dial out in
Windows 95?

As of Agent .99d the 32-bit version of Agent not only invokes
Dial-Up Networking but also starts the dialing immediately, without making
you press the Connect button. It also takes full advantage of the advanced
features in Win95 like long file names and multi-threading.

Like all 16-bit Winsock applications, Free Agent and the 16-bit
version of Agent can't automatically invoke the Windows 95 Dial-Up
Networking feature. You'll have to manually connect to your service provider
before trying to go online with Free Agent. 




Which operating systems does Agent work with?

We've tested Agent and Free Agent with Windows 3.1, Windows
for Workgroups 3.11, Windows 95, and Windows NT 3.5, and they work fine
with all of them.

We haven't tested Agent or Free Agent under OS/2. Our
users are reporting very mixed results, but it is working fine for
some of them. See our OS/2 page for more details.




How do I configure Agent for offline operation?

Agent is designed to make offline newsreading as convenient as
possible. When used with an appropriate Winsock driver, it will automatically
connect to your service provider when it needs to go online and disconnect
as soon as it is through. This can save you both effort and money, but
you may need to do some careful configuring to make it work properly.

The first step is to configure Agent to go online only when it
needs to, and to immediately go offline when it is through. To do this,
select the Options | General Preferences menu item and click on
the Online tab on the resulting dialog box. This dialog box contains
several options that let you control the details of Agent's online
and offline modes. Although you may eventually want to customize these
to suit your own preferences, you can quickly set them for offline operation
by clicking the Use Offline Defaults button. 

Now that you've done that, Agent will attempt to load the Winsock
DLL whenever it needs to go online and will unload it as soon as it is
finished. For this to work, it has to be able to find the Winsock DLL;
the easiest way to ensure that is to put the DLL's directory in your PATH.

The final step is to configure your Winsock driver to automatically
connect and log in to your service provider when it is loaded, and to disconnect
when it is unloaded. There are too many combinations of Winsock drivers
and connection methods for us to describe them all, but we've included
detailed instructions for Trumpet Winsock on our Winsock
Drivers page.




What is CTL3DV2.DLL and how does Agent install
it?

CTL3DV2.DLL is a Microsoft DLL that gives dialog boxes that nifty 3D
look. It is supposed to reside in either your \windows or \windows\system
directory. Not all copies of Windows have the file, so we ship Agent
with a copy of it, so that we can install it if necessary. The copy we
ship is called CTL3DV2.DL_. We didn't want you to have to run an installation
program to get started with Agent, so we try to be clever and install
CTL3DV2.DLL when you run Agent, if necessary. We do that by checking
to see if CTL3DV2.DLL is already in either your \windows or \windows\system
directory. If it is not, we copy our version of the file into one of those
directories.

First, we try to copy it into the \windows\system directory,
because that's where Microsoft recommends putting it. If we are unable
to write to that directory, then probably the reason for the failure is
that you are running a network copy of Windows, and don't have rights to
the system directory. In that case, per Microsoft's recommendations, we
copy the file to the \windows directory. 

If you get the message CTL3DV2 was not correctly installed
when you start Agent, then it means that somehow a copy of CTL3DV2.DLL
got put in Agent's working directory or in some other directory
on your path. CTL3DV2 will display that message if you try to run it out
of any directory other than \windows or \windows\system.




How do I specify the directory for Agent's
database?

Generally, Agent looks for its .INI and database files in the directory
it is run in. You normally set this with the Working Directory field
in the Program Manager icon's File Properties dialog box. There are several
ways to override this and instruct Agent to place its data files in another
directory:


Agent now accepts a command line parameter to specify the location
of AGENT.INI. If AGENT.INI is not in the working directory, then Free Agent
will place its data files in the directory containing AGENT.INI. 

To use the command line parameter, specify agent.exe &lt;path
on the command line. The optional &lt;path argument can be either the
directory containing AGENT.INI or the name of the INI file to use as AGENT.INI.


If no &lt;path is specified, Agent looks for AGENT.INI in the current
working directory. If the file doesn't exist, Agent creates it.

If &lt;path is a filename, Agent uses that file as AGENT.INI. If
the file doesn't exist, Agent creates it.

If &lt;path is a directory, Agent looks for AGENT.INI in the specified
directory. If the file doesn't exist, Agent creates it. Note: If the directory
doesn't exist, Agent assumes that you are specifying a filename. You can
prevent this from happening by appending a '\' to the end of the directory
name to force Agent to always treat it as a directory. For example: c:\agent\.



You can also direct Agent to store its data files in a directory OTHER
than the one which contains AGENT.INI. To do this, update the [Directories]
section of your AGENT.INI and fill in the Home= parameter.
Here is an excerpt from the online help which describes this parameter.



Home=&lt;directory 
;This setting shows the directory where Agent's database files, custom

;dictionaries, address book, and Usenet filters are stored. If this
parameter's 
;value is blank (the default), Agent looks for these files in the directory

;containing AGENT.INI. Note: Changing this setting does not move your

;files. Use File Manager to move all the files (*.IDX, *.DAT, CUST*.TLX,
and 
;*.AAB) to the new location and then restart Agent for this change
to take effect. 


You can also specify the data directory simply by creating a
sub-directory called DATA under Agent's working directory and moving
AGENT.INI, *.IDX, *.DAT,CUST*.TLX, and *.AAB there. You should make sure
that the Home= parameter in AGENT.INI is blank if you want
Agent to default to the DATA directory.





Why is Agent putting files in the wrong directory?

As explained in the data directory topic,
when Agent is run it normally uses the current directory to store its data
files. If you don't specify this, it will put them someplace you don't
want them, often in your root or Windows directory.

Several users have noticed third-party shell programs or desktop managers
running Agent in unexpected working directories, with the data files
going into whatever directory that turns out to be. If the shell program
doesn't run it in the same directory each time, you'll also have the problem
described in the next section.

See the topic on data directory for specific
instructions on how to set this.




Why does Agent forget all my settings
each time I run it?

As explained in the section on the data directory,
Agent expects to find its setting and data files in the data directory.
If it can't find them, it assumes it is being run for the first time and
displays the registration screen.

You normally specify this directory in the Working Directory
field of the Program Manager icon that runs Agent, or through Agent's command-line
argument. If you don't specify this directory, or if you run Agent through
some third-party shell that doesn't properly set the working directory,
it may run in a different directory than it did the last time you ran it.
If there are no data files in that directory, you'll get the registration
screen again. (You'll also get a set of files created in that directory,
as explained in the previous section.)

See the topic on data directory for specific
instructions on how to set this.




How do I set up Agent for multiple users
or news servers?

As explained in the section on the data directory,
Agent stores its setting and data files in the directory specified
in its command line or set by the Program Manager when it runs. This means
that you can share a single copy of the program files among several independent
data directories.

This works well for multiple people using the program, since each directory
can have a completely different set of preferences and newsgroup files.
It also lets you use more than one news server; the multiple directories
are necessary because unless the two servers mirror each other, different
messages will be available on each at any given time. Also, the servers
will no doubt use different numbering schemes, making it impossible to
track read/unread counts.

To do this, create a single directory to hold the program files that
you download from us. Then create a separate directory for each user or
news server. Finally, create a separate Program Manager icon for each,
with the Command Line field pointing to the program itself (c:\windows\agent\agent.exe,
for example) and the server directory (c:\windows\agent\george,
perhaps) specified as a command-line argument or in the Working Directory
field. (See the topic on the data directory for
specific instructions on setting this.)




I don't understand the settings in AGENT.INI.
Where can I find an explanation of the settings?

A complete breakdown of the AGENT.INI file is available in the help
file by selecting Help | Search for help, typing in AGENT.INI, and then
double clicking on it when it appears in the help list.




How do I control where posts/emails are filed?

In Free Agent, your posts and emails are filed in the outbox.
In Agent, you can setup where your outgoing posts/emails are filed
on the Group | Default Properties | Posting Tab.

You can also set this up for individual groups or several groups at
a time by highlighting the group(s) and selecting Group | Properties
| Posting Tab. Check the 'override defaults' box and modify the settings
as you desire.




Why are my posts NOT showing up in the outbox?

There is a new setting under Group | Default Properties | Posting called
'File replies in same folder as original message'. If you remove the checkmark
from the box, Agent will file the message in the outbox.


How do I get a copy of these pages to read
offline?

A copy of our Agent Support pages, in their original HTML format, is
available for downloading. After all, any company that markets an offline
newsreader should have an offline way to read their Web pages!

To use them, create a directory to hold the pages, like c:\agent\html.
Then download the file support.zip and unzip
it into that directory. Finally, use your WWW browser to view the index.htm
file, using a URL like the following:


file:///c:/agent/html/index.htm


This will display the main Agent support page, and you can then use
the hotlinks to browse the individual sections. Most WWW browsers will
let you save this URL as a bookmark, so you can have it available for reference
without having to type it in every time.

Because of the way our links are defined, you'll get an error if you
try to follow a link to a page that's not included in the set you downloaded.
If this happens, just back up to the previous page (most WWW browsers have
a Back button for this).



How do I report problems or questions about
this FAQ page?

We consider these pages to be as important as the software itself; they're
all part of our commitment to providing the Usenet community with high-quality,
well-supported products. If you find any errors or confusing statements
in them, or have any suggestions about how to improve them, please send
a report to webmaster@forteinc.com. We may not be able to respond individually
to each message, but we will read them and attempt to update the pages
accordingly.


   Most-Requested Enhancements
   

Most-Requested Enhancements

We're committed to making our Agent products the very best newsreaders
available. We made beta versions freely available for months before the
Free Agent 1.0 release so that we could get the widest possible exposure
to the Usenet community, and we took the suggestions (and the occasional
complaint) very seriously. We have already incorporated many of them, and
the product is much better because of the input we got. Future versions
of the software will address as many of the remaining items as possible.
Here are the hot topics that we've seen in our in-box:


IMPROVED NAVIGATION FUNCTIONS

One of the more challenging design problems was identifying the various
ways that people would want to move from article to article and from group
to group. There are many combinations of moving to the next article or
the next unread article, in the current thread or the current newsgroup
or the entire list of subscribed newsgroups, viewing or not viewing the
destination article, etc. We provided what we thought was the best set
of commands for this, but people with different browsing styles are asking
for changes and enhancements. Agent .99e contains some improvements, including
single-key navigation.

SCHEDULED ACTIONS

Several people have asked for the ability to schedule retrieval operations
to take place at predefined times. This would allow you to do things like
retrieve the headers for all your subscribed groups shortly before you
arrived for work in the morning, so that they'd be waiting for you when
you got there.

MULTIPLE SUBSCRIPTION LISTS / GROUPS OF NEWSGROUPS

A number of people have asked for ways to organize their newsgroup
lists. The requests differ in detail, but the general theme is that they
read news at different times in different modes (business vs. personal,
for example), and want corresponding ways to group their subscribed newsgroup
list. One idea is to have multiple subscription lists, so that you could
retrieve headers for a specific subset of the groups you follow.

CUSTOMIZABLE TOOLBAR

We've had a number of requests for a user-customizable toolbar, where
you could choose which buttons appeared and perhaps map a set of keystroke
commands to a key. This feature is planned for Agent v1.0.

MORE STATUS DISPLAYS

People have asked for a variety of additional information to be displayed
in various places in the program: the total number of articles in a group;
the total number of newsgroups in the group list; the date the newsgroup
list was last updated; and indicators for new articles in addition to unread
articles.

GLOBAL SEARCH

You can search all of the article titles in a newsgroup, or all of
the text in an article, but there's currently no way to search the text
in all articles in a newsgroup (or even multiple newsgroups).

BETTER NEWSGROUP NAME SEARCH

Several people have suggested improvements here, including progressive
search or some other way to filter groups by name.

ENHANCED PRINTING FEATURES

These include printing group and/or article header lists, printing
selected text instead of the full article, and being able to add customizable
titles to a printout. In Agent .99e, you may select the range of pages
to be printed.

AUDIBLE ALERTS

Some operations take a long time to complete, especially when you're
using Agent in offline mode. If you could configure it to sound
an audible alert when it finished, you wouldn't have to constantly monitor
it to see if it had finished.

UNDO

We've had requests for an Undo option in several places: in the article
editor, when deleting a message or a group, when mass-marking articles
read or unread, etc.

CONFIGURABLE STARTUP ACTIONS

Several people have asked for the ability to have Agent automatically
perform some action whenever it was started (go online and download new
headers, for example). We're thinking about adding command-line options
to control this, which would then allow you to have multiple icons on your
desktop that did different things when you ran them.

MORE OUTBOX FUNCTIONALITY

People have asked for a variety of added features in the Outbox, including
printing and saving messages to a text file, an easy method of creating
a copy of an Outbox item, and different sorting capabilities.

EDITOR ENHANCEMENTS

These include an insert/overwrite toggle; various shortcuts such as
double-clicking to select a word, Control-Delete to delete an entire word,
and Control-Backspace to delete the previous word; displaying the signature
in the composition window; allowing indentation without line breaks; and
linking the editor to the user's word processor or text editor of choice.


We are actively evaluating all of these ideas for possible inclusion
in future releases. We will keep this list up to date as we receive new
suggestions and as we decide their disposition.

Remember that this list is just the ideas that have been widely requested;
it isn't a complete list of every feature that may be added to the product.
We frequently get ideas from only one or two people that turn out to be
worth implementing, so don't assume that a particular feature will never
be added just because it isn't on this list.

Commercial Features

Besides the enhancements listed above, we've received a number of requests
for features that we're already planning to include in our commercial Agent
product. Check our Agent page
for a list of those features.

These pages are copyright 1996 Forte Inc.