NewsWatcher 2.0b25
==================

May 22, 1995

The major new features of this version are:

   * Open Transport support.
   * Balloon help and help topics in the Guide/Help menu.
   * New controls in article windows to go backward/forward one article.
   * Improved URL helper program configuration.
   * Optional labels for the three message window icons.
   * Courtesy notification of public posting in mailed copies of postings.
   * Improved handling of "Server too busy" errors at startup.
   * Good Net-Keeping Seal of Approval changes.
   * Many errors fixed and other minor changes.

WARNING: There is quite a bit of new code in this version. Based on past
experience, there may be errors which will have to be fixed. Treat this
version as the suspect beta release it is. If you rely on robust software
and don't feel like being a beta tester, keep using 2.0b24, wait a week or
so, and let other people find any problems. We definitely advise against
widespread redistribution of this version to unsuspecting novices and
other innocents. We'll keep version 2.0b24 available at the FTP site until
we're reasonably confident that the new version is solid.


Open Transport
--------------

NewsWatcher now supports Open Transport.

Open Transport is Apple's new networking architecture for the Mac. It
is currently in beta test. Apple has not yet released it to the public.
If you have a beta version of Open Transport installed, NewsWatcher
uses it. Otherwise, NewsWatcher uses MacTCP. This Open Transport
support is preliminary and experimental. We have tested it with version
1.0f3 of Open Transport. It has not, however, been widely tested yet,
and it hasn't been tested with any other versions of Open Transport.


Balloon Help and Help Topics
----------------------------

NewsWatcher now has full balloon help for all of its menus, menu items,
dialog items, and window elements.

There are also new NewsWatcher help topics in the Guide/Help menu.
These topics summarize how to get started using the program, how to
perform common tasks, and how to use all of NewsWatcher's shortcuts.
When read in order, they comprise a miniature user document and quick
overview of the program's main features. Although not a substitute for
the user document, we hope people will find them useful.

You can save and print help topics. Help topics are saved as SimpleText
picture files.

We hope to do a nice Apple Guide some day. For now, these help topics
will have to do.


Backward/Forward Controls in Article Windows
--------------------------------------------

Article windows have new up/down arrow controls in the upper right
corner of the panel area at the top of the window. To go backward one
article, click the up arrow. To go forward one article, click the down
arrow. Command-1 and Command-2 are keyboard shortcuts.

The "go backward one article" operation is particularly useful when you
are reading a thread and want to back up to a previous article in the
thread.

Note that the "go forward one article" operation is *not* the same as
the "next article" operation (the "Next Article" command in the "News"
menu or any of its keyboard shortcuts). The "go foward one article"
operation always goes to the next article in the group, whether you
have already read it or not. The "next article" operation always goes
to the next *unread* article in the group. These are often the same,
but not always.

NewsWatcher now keeps a cache in memory of the most recently read
articles (up to 50 of them, memory permitting). When you open an
article, if it's in the cache, NewsWatcher doesn't have to refetch it
over the network. In particular, in most contexts, the new "go backward
one article" operation should be very fast, with no network operation
required.


URL Helper Program Configuration
--------------------------------

The three old preference topics for URL helper programs have been
combined into a single new "URL Helper Programs" topic. The helpers are
displayed in a scrolling list. You can now define new helpers and
delete helpers.

If you use Internet Config, NewsWatcher's list of defined URL helpers
is kept sychronized with Internet Config's list of defined URL helpers.
If you add, change, or delete a URL helper in NewsWatcher, it is also
added, changed, or deleted in Internet Config, and vice-versa.


Message Window Icon Labels
--------------------------

New users often don't know what the three icons at the top of message
windows mean. In the new version, by default, NewsWatcher displays
descriptive labels beneath the icons. If you don't like the labels,
turn off the new "Show labels under icons" checkbox option in the
"Message Options" preferences topic.


Mailing Copies of Postings
--------------------------

When you send a message as both a news posting and as a mail message,
the copy sent via mail now has an extra line added to the beginning of
the message which reads as follows:

   (A copy of this message has also been posted to the following
   newsgroups: group1, group2, ...)

This new feature is a courtesy to alert the recipient of the mail
message to the fact that you also posted a public copy of the message.


Server Too Busy Errors
----------------------

NewsWatcher did not work properly with servers which returned the error
"400 Server too busy, try again later." There were various possible
symptoms, all of them bad, including running out of memory, unexpected
error codes, and bogus "lost connection" messages. These errors should
all be fixed.

If an error occurs when NewsWatcher tries to connect to your news
server at startup (e.g., a "server too busy" error), the program now
presents a dialog which lets you try again. The dialog has two buttons:
"Try Again" and "Cancel". You no longer have to quit the program and
rerun it to retry the initial connection. The dialog is movable modal,
so you can switch to some other program if you wish, do other work,
then come back to NewsWatcher later when you want to try again.


Good Net-Keeping Changes
------------------------

The following changes were made to make NewsWatcher more compliant with
Ron Newman's "Good Net-Keeping Seal of Approval" for Usenet Software.

When you enter your email address the first time you run the program,
or when you change it later in the preferences dialog, NewsWatcher now
checks to make certain it follows the syntax rules for valid addresses.
Your email address must be in the form "user@host", where "host" is a
"fully qualified domain name". For example, "j-doe@flunku.edu". This
doesn't guarantee that the mail address is valid, it doesn't prevent
forgery, and it's not any kind of authentication, but at least it
catches some of the common mistakes people make.

NewsWatcher no longer permits sending empty messages (no message body).

NewsWatcher no longer permits posting followup articles which contain
only quoted text.

In article windows, the Followup-To header is now displayed in the
panel area if  it is present and different from the Newsgroups header,
and the Reply-To header is displayed if it is present and different
from the From header.

If you're interested, Ron's seal document is available at:

   http://www.mit.edu:8001/people/rnewman/Good-Netkeeping-Seal

Note that NewsWatcher has not been "awarded" the seal. These changes
only bring NewsWatcher in closer compliance with the seal.


Errors Fixed and Other Changes
------------------------------

New users were often confused when they opened a group and didn't see
all of the articles. For this reason, the default for the "Maximum
number of articles to fetch" preference is now 15000 instead of 400.

NewsWatcher now works with mail servers on IBM VM/CMS systems.

If you changed one of the default folder preferences, then switched to
a different prefs topic, then switched back to the old topic,
NewsWatcher did not properly display the new folder you had selected.
Fixed.

If you toggled one of the three icons at the top of a message window,
or if you changed the tabbing, quote string, or wrap options,
NewsWatcher did not properly mark the window as "changed". In some
situations, this resulted in the "Save" command not being active when
it should have been. Fixed.

When sending a user group list file to a remote host, under some kinds
of rare circumstances, it was possible to get a "connection reset by
peer" server error message. Fixed.

The troubleshooting log is improved. Log messages now have date/time
stamps, show stream open and close operations, and show the server port
number and the local port number.

With authentication, if the username or password is incorrect,
NewsWatcher now displays a descriptive error message rather than
presenting a server error message dialog.

When you extract binaries, save articles, or print articles,
NewsWatcher marks the articles read. It was not, however, properly
decrementing the unread article count in group windows on these
operations. Fixed.

The network error messages have been improved (could not get address of
server, could not connect to server, and lost connection to server).
The messages now tell you the kind of server (news, mail, or FTP), give
the server address, and attempt to enumerate the most common causes of
the errors.

The remote host dialog did not permit spaces in the ".newsrc" file path
name. Fixed.

In a subject window, if you selected an article in an expanded thread
where the first article in the thread was not visible (was above the
top of the window), then you used Command-left arrow to collapse the
thread, NewsWatcher did not scroll the newly collapsed thread into
view. Fixed.

In group and subject list windows, if you clicked at the very top or
bottom of the list (in the very top or bottom pixel), NewsWatcher
selected the wrong cell and unexpectedly scrolled the window. This is
actually a problem in Apple's List Manager. Fixed.

The Date header line is now the last header line displayed in the panel
area of article windows (Newsgroups used to be the last header line).
The reason for this is that the "Article x of y in thread" message is
also displayed on the right side of this line, and with cross-posted
articles the Date header line is less likely to need to be truncated in
case there isn't enough room on the line.

When you set a helper program using NewsWatcher's preferences dialog,
the program checks to see if the helper has a new enough version
number. The new version now checks the 'vers' id=2 resource to get the
version number if it can't find a 'vers' id=1 resource. The old version
gave an "unexpected error -192" in this situation. Fixed.

If you unsubscribed to a group while the subject window for the group
was still open, in some circumstances NewsWatcher could crash. Fixed.

When NewsWatcher was used with a news server which requires
authentication and with Internet Config, NewsWatcher was saving the
authentication password in Internet Config even when NewsWatcher's
"save password" option was off. This was wrong. Fixed.

If you added an STR# id=200 resource to NewsWatcher to add a custom
list of newsgroups to be added to the initial untitled user group list
window which appears when a user runs the program for the first time,
and if this list had more groups than would fit in the default small
window size, NewsWatcher did not properly zoom the user group list
window the first time the user ran the program. Fixed.

On a PowerMac running System 7.1.2, if you had an old version of the
Drag Manager (pre-1.1) improperly installed, NewsWatcher could crash
when you clicked in a text window. Fixed.

In 2.0b24, items in the "Windows" menu were truncated to 255
characters. The Menu Manager, however, does not properly handle very
long menu items, and they could cause crashes or other unexpected
behavior. The new version truncates the items to 200 characters. This
seems to have fixed the problem.

A new preference for listing window font and size has been added to
Internet Config version 1.1. NewsWatcher supports this additional
shared preference.

In text windows, Command-down arrow didn't work properly if the last
line in the window was blank, and Command-up arrow didn't work properly
if the first line in the window was blank. Fixed.

Using Shift-down arrow and Shift-up arrow in text windows to extend
text selections did not always properly include or exclude line breaks
in the extended selection. Fixed.

In the prefs window, NewsWatcher used up/down triangles to go backward
and forward one topic. In article windows with multiple sections,
NewsWatcher used similar left/right triangles to go backward and
forward one section. In the new version, we have changed the style of
these controls to arrows instead of triangles, and we use them in two
new places (in help topic windows to go backward/forward one topic, and
in article windows to go backward/forward one article). On color
monitors, the arrows are colored a light blue and are drawn in gray
(disabled) at the beginning and end of the range.

You couldn't pull down any menus when NewsWatcher presented standard
file dialogs. Fixed.

When the main keypad shortcuts are enabled, the space bar and 'w'
shortcuts now work in text windows.


Programmer Notes
----------------

The reusable low-level TCP/IP modules net.c, ftp.c, smtp.c, and nntp.c
are now reentrant. They may be used in situations where you want to
have multiple network operations running concurrently in separate
cooperative threads of execution under control of Apple's Thread
Manager. NewsWatcher does not yet use this feature, but when and if we
ever get around to making NewsWatcher threaded, it will be useful. (We
needed this for some other threaded programs which use these modules,
so that's why we've made the changes now.)

The net.c module also contains many changes to support Open Transport.

The net.c, ftp.c, smtp.c, and nntp.c modules have many other changes to
make them cleaner, leaner, and meaner.

The ftp.c module has been enhanced. The old version only supported
active mode text file transfers to and from memory. The new version
also supports deleting files, binary file transfers to and from memory,
getting directory listings, and passive mode data transfers.

The qsort.c module is now reentrant.