This is a list of changes to each version of xvnews. Most recent
changes are listed first:

Changes 2.2.1 -> 2.3
--------------------

User-visibly changes

o  The information in the header is displayed differently, and only
   displays the newsgroup name when reading a particular group.

o  "Next subject" now leaves the group when no unread articles remain,
   like "Next unread".

o  Added a "c" option to match case-sensitive kill-rules.
   Patch by John Durand.

o  The quit button is replced with a menu. This menu contains the
   default action "done", which iconifies xvnews, and a "quit" option,
   which quits xvnews. Both options update the .newsrc file. Partly
   based on a patch by John Durand.

o  When viewing groups the "goto group" button is only available when
   exactly one group is selected. Reported by Stefan Keuhnel.

o  Added patches by Alec Muffet to enhance the single newsgroup mode.
   Made a number of changes to make using xvnews with just a single
   group more consistent.

o  When a 'Kill Subject' was done with a number of articles already read,
   the next selected article would be the first article in the list,
   instead of the next unread article. Reported by Andrew Tefft.

o  Date: headers in articles are now converted to local time.
   Patch by D. Douglas Valkenaar.

o  The undelete popup doesn't pop up anymore. Use a new command line
   option (-u) to get the old behaviour. Patch by D. Douglas Valkenaar.

o  The name of the group is now listed in the header of window. Patch
   by D. Douglas Valkenaar.

o  The maximum rescan time is changed to 1440 minutes (24 hours). This
   longer rescan time allows for better use with dialup
   lines. Reported by Pete Delaney.

o  The Organization: header is no also shown in the abbreviated header.

o  Articles are now sorted in a more sane way, with replies following
   the original article. Also, numerical subjects are sorted properly.

Bug-fixes
---------

o  Imakefile should now work. Fixed mostly using Juergen Zimmermann's
   patches, but mistakes remaining are mine.

o  Rewrote the subject-sorting code, fixed some small bugs, and made
   some speedups in the sort routine.

o  When using an external editor the signature would always be
   appended regardless of the compile-time ADD_SIGNATURE
   option. Reported by Vidiot.

o  If no Follow-Up: header is present the Newsgroups: header is
   used. Includes code to reconnect to the server. Patch by Andrei
   Arkhipov.

o  Some of the properties are not written when they don't have a
   value. Patch by Andrei Arkhipov.

o  The article bookkeeping routines have been rewritten.  This should
   fix some odd crashes, and article renumbering problems.

o  Fixed a number of problems related to using an external
   editor. Reported by Vidiot.
   - A '%' in a .signature would be parsed as a format-string for
     printf, resulting in interesting random signatures. Could be
     considered a feature, but removed nonetheless. 
   - The "-- " separator for the signature, and the reference line
     would be missing

o  Fixed some additional inconsistencies with inclusion of signatures.
   ADD_SIGNATURE should now always result in the correct behaviour.

o  When an article would be printed (indicated by [print]), it could
   not be marked as unread anymore. Reported by Thomas Oliver. 

o  When USE_INEWS_TO_POST was defined, and an external editor was
   used, xvnews would use the internal posting method anyway, instead
   of inews as indicated. Fixed, reported by Mark McIntosh.

o  Fixed a bug where the next group would disappear from the display
   when the current group would be unsubscribed while reading its
   articles. Reported by Mark Jackson.

o  Fixed some bugs with the counting of unread articles.

o  Fixed some problems with newsgroups with names of more than 70
   characters. This still isn't fully fixed. See the TODO file.

o  The "all articles" button would not show all articles in the
   newsgroup. Fixed.

o  A infinite loop could happen while killing articles in a group.
   Patch by Alexander I. Murashkin.


Additional functionality
------------------------

o  xvnews now uses the LIST SUBSCRIPTIONS NNTP command to find the default
   subscription when no .newsrc is present. Patch by Dave Hill.

o  xvnews now uses the XGTITLE NNTP command. This command isn't
   standard, but it is present with INN. This conserves both memory
   and time, as descriptions of newsgroups are only read when
   needed. LIST NEWSGROUPS will be used as a backup. Patches by Leif
   Hedstrom.

o  Support for LOCALE has been added. Default locale can be defined in
   config.h. Patch by Andrei Arkhipov.

o  Added support for handling of the nnrp passwd mechanism used by
   INN. See comments in config.h. Patch by D. Douglas Valkenaar

o  A new environment variable MAIL_ALIAS can be used to set the mail
   alias in postings and e-mail. This can be used to use an alias
   instead of a login name (which might be mandatory within a
   company), or it can be used to add additional system names, as
   happens with a number of Xerox machines.


Other
-----

o  The CHANGES file is now rewritten in a better format (I hope)

o  Changed put_server routine to use variable number of
   arguments. This make the code cleaner, and gets rid of a number of
   static buffers within the program.

o  To enhance portability the regular expression code has been rewritten.
   xvnews now uses internal routines, so that all portability dependencies
   are contained within one file: xv_regex.c.

o  Ported to FreeBSD, with help from James Robinson.

o  Added a patch by Doug Shuck, which streamlined several things when
   doing follow-ups.

o  Made several speed-ups to the kill-file code, patch by Andrew
   Tefft.

o  A define has been added to keep the article window editable. Patch
   by Bertrand Decouty.

--------------------
Changes 2.2 -> 2.2.1

o  Fixed a bug which caused problems with long subject lines.
o  Fixed a off-by-one bug which caused problems while sorting.

-------------------------
Changes 2.1betaPL4 -> 2.2

User-visible changes

o  Article window is now always read-only to avoid confusion.

o  '/usr/lib/sendmail -t' is now the default program to deliver mail.
   Note that this has some consequences for the use of aliases. See
   xconfig.h for details.

o  The Makefiles have been rewritten. Support is now available for
   sunos4, sunos5, and linux.
   - suos5 uses the -R option when linking.

o  All configurable options are now located in config.h.

o  The default location of the news.record file changed to
   $HOME/News/news.record. 

o  Changed the scanning routine for new news. xvnews now keeps
   scanning until new news is detected. Note that if there is still
   unread news, no scanning will occur at all. The previous behaviour
   was to only check twice after iconizing.

o  "Distribution: world" is not a valid distribution, and is being
   frowned upon by many knowledgable people. xvnews now proposes an
   empty Distribution: header. inews will handle its removal if
   needed, but we can still easily substitute it with a value from the
   menu.



Bug-fixes

o  Several kinds of crashes could occur when using the
   Search... menu. Fixed.

o  xvnews could crash when going to a next article. Fixed.

o  There is no longer a fixed boundary on the number of newsgroups and
   the number of articles per newsgroup. Initial estimates can be set
   in config.h. [Leif Hedstrom]

o  stdarg is now the prefered way to use variable arguments. varargs
   is only used is stdarg is not available.

o  The list of new groups in now invisible during updates. Cuts back
   on time, and looks much better. [Scott Hiles]

o  With some versions of XView the TEXTSW lock up when including text.
   Changed all places where text was loaded instead of included.
   See also the TODO file, which describes a few of the instances
   where this bug can still pop up. [Peter Maier]

o  If the last article was found during a search, then the list didn't
   always return to the currently selected article. Fixed. [Leif Neve]

o  The window footer would always tell you there were subscribed
   groups with unread articles, even if there weren't. [Doug Shuck]

o  The problem where the first line of a list was'nt displayed
   correctly also occured in the undelete popup. [Cyril Plisko]

o  xvnews now handles unexpected quits better.
   xvnews is now more carefull about trying to save the .newsrc file.
   If xvnews is quit through the window manager it saves the .newsrc
   file. However, I'm still not able to detect the window system itself
   quitting. xvnews just dies in this case. As a compromise the .newsrc
   is also saved whenever the window is iconified. [Douglas Shuck]

o  A bug in the sorting routine made the first group unsubscribed when
   sorting. [Douglas Shuck]

o  Fixed problems with fonts in scrolling lists. [Alan Snyder]

Additional functionality

o  There are more configurable options available:
   - An inews-program can now be used for posting. It's location can be
     specified in config.h [Geoff Ballinger]
   - Specify the compress-program and extension. [Cyril Plisko]
   - The program to deliver mail can be configured in config.h.
   - Option to let xvnews include a signature or not. [Geoff
   Ballinger]

o  xvnews is now aware of INN, and will issue a "mode reader" command
   to get a copy of NNRP. [Rob Montjoy]

Other

o  Many code-changes to avoid warnings and enhance portability to
   Linux. Also incorporated some of the changes in the DevGuide 3.0.1
   libraries. Made Makefiles and rules work with GNU Make. Made xvnews
   compile with GCC.

o  Added a X-Newsreader: header to identify xvnews posts
   This header will only be used in beta-test version. The official
   release will not contain this header field.

o  There is just one Makefile, with targets for SunOS 4, SunOS 5, and
   Linux. 


----------------------
Version 2.1 (4/24/92):
----------------------

-------------
Enhancements:
-------------

Added the ability to sort subjects in alphabetical order. Check out
the resource XVnews.sortSubjects and the properties window.

xvnews now kills crossposted articles automatically after one of them is read.

The resource XVnews.postEditor defines a different editor to use for composing
articles and forwarding/replying through email. Just define an editor in
the properties window under Editor (eg. shelltool -Wx large vi). Default
is the built-in  xvnews post/email window.

If the xvnews window is iconic, upon the second automatic rescan xvnews will
disconnect from the news server until xvnews is opened again. There will then
be a rescan done when the window is opened. To change this time period, simply
adjust the auto rescan timer in the properties window. This helps save cpu
time and connections on the news server.

xvnews tries to remember what group was highlighted in the scrolling list
after an auto rescan or going to view groups.

When printing ([print]) or filtering ([filt]) an article, the correct
action is now displayed at the right hand edge of the article list.
Previously the messages were limited to [read], [unread], and [save].

You can now set the background color for the text window using the resource
XVnews.textback in the properties window.

Added file completion like action for matching groups.

Added support for extended GECO's format to postings.

The way an article's header is displyaed has changed slightly. The full header
option if the way the article header is stored on the news server, with no
changes. The abbreviated header should be mail compatible on all systems.

--------------------------
Bugs fixed in version 2.1:
--------------------------

Pinning up next or prev article menu and then exiting the group and then
selecting an entry from that menu would cause a crash.



Version 2.0 (2/11/92):
----------------------

patch2 bug fixes:
-----------------

Postings that had a line that began with a period should have been padded to
have 2 periods '..'.

Articles that were read in that had a line beginning with 2 periods should
have been edited to only have one period.

$NNTPSERVER would not override the default defined in xvnews.h

File chooser flashes during saves.

Added 'h' accelerator key as header toggle option.

When saving an article in mail format to a new file, a blank line would get 
inserted as the first line.

patch1 bug fixes:
-----------------

Fixed a memory leak that occured when viewing groups. Could have leaked ~100K
if 'all subscribed', or regex match was used.

Core dumps with .newsrc lines longer than 3K.

Could get the same article in the undelete window more than once.

The wrong article could get included when searching for an article and then
posting a reply. 

-------------
Enhancements:
-------------

[x]rn style kill files are now supported. Check under the Kill menu at the
article level.

Next and Previous article is now a menu which contains "next/prev article",
, "next unread", "next/prev subject", or "next/prev author". You can set
your favorite selection using ctrl-right mouse button and then xvnews will
save this as a resource when you hit the apply button in the properties
window.

Undelete popup was added that stores articles that have been killed. You can
add these killed articles back to the group. Check under the kill menu.

Added a "Load file..." option under include for posting. This allows you
to load a file as text, compressed & uuencoded, or just uuencoded to a 
posting. You will also be informed of how many lines and bytes were included
into this window.

xvnews now checks for new newsgroups when it rescans. Checking for new groups was
only done at startup before.

Added resources for menu defaults. Just set your default menu item
(right mouse button + ctrl key) for Next, Prev, and Search menus, and then apply
properties will store you default selections so the next time xvnews is
started there is no need to set these defaults again.

Confirmation for catchup was added to the newsgroup level.

When using goto group, mark unread now works correctly and actually adds the article
back into the unread list.

Space bar is a keyboard accelerator that works similar to the space bar in [x]rn. 

The environment variable DOTDIR can now be used to specify the directory that your
.newsrc is in.

xvnews now has 2 icons, one when there is unread news, one when there is no unread news.

The ability to have different .newsrc files for different news servers is now present.
First .newsrc-$NNTPSERVER is checked to see if it exists, if not, xvnews defaults 
to .newsrc.

The environment variable SAVEDIR is used for specifying the default directory for
xvnews to save articles as well as load and store KILL files. If unset, the default 
is ~/News.

When posting an article you now have the option of copying the article to a log
file, defined by the resource XVnews.logFile. The default file is $HOME/news.record.

Added an option to the Save menu "filter". This allows you to pipe articles
through a command when it is saved. The article is filtered in edited form.

xvnews now checks to see if you are running on a NNTP server or a INN server.
When an INN server is found, some things can be done for xvnews to run faster
which are automatically enabled. Examples are that with an INN server, you do 
not have to close and reopen connections whenever you rescan for new groups
and articles. Also, xvnews uses the XPAT command for matching articles
This make searching much faster, but only allows the use of wildmat style
matching as opposed to regular expressions. For this reason, XPAT 
searching is only used for searching for subject and author pervious
Still, the speedups from these searches are significant.

When posting or following up to an article when you are reading a group, xvnews
will look in $SAVEDIR/group first to try and find a .signature file. This is handy
for people who want to have different .signature files for different groups.
For example: To have a custom signature for sci.military, put a .signature
file in $SAVEDIR/sci/military.

The defaults NNTPSERVER, DOMAIN, and ORGANIZATION or now settable at compile
time by a couple of defines in xvnews.h.

--------------------------
Bugs fixed in version 2.0:
--------------------------

The tempfile used by xvnews is now /tmp/.xvnews.file.getpid(). This allows
you to have multiple programs running without conflicting with each other.

Saving article that had the full header displayed was incompatible with 
mailtool.

Searching previous archives would fail to find original article. randolph@cognito

Some users have .newsrc lines greater than 2K which was the default. Bertrand.Decouty@irisa

A Summary line was added to the header for post-followup. randolph@cognito

Retrieving an article from the articles using the previous button would
sometimes cause a bus error due to using strcpy() as opposed to strncpy().

When reading a group and hitting all articles more than once, xvnews get confused
very quickly. 

Some users had problems with certain security programs and xterminals not setting
the environment LOGNAME which xvnews looked for. exudnw@exu.ericsson.se

Some people get Memory insertion errors when reading articles if they don't have
Text.MaxDocumentSize set. many

Some machines seem to close socket connections rather quickly, so I changed the
parameters of the socket to hoepfully keep the connection alive longer. cary@scripps.edu

xvnews would sometimes crash on an unsubscribe function if no groups were
selected.

Keyboard accelerators would not function if goto group had been used to view
the news group.

If you unsubscribed to a group that you were reading, your .newsrc would not
have the articles that were read updated by that change. randolph@cognito.Eng

If xvnews.displaysize was set to a negative number, xvnews could crash in strange
places. Bertrand.Decouty@irisa.fr

When regex searching for articles, sometimes the article ordering would get
screwed up.

Version 1.1:
------------

-------------
Enhancements:
-------------

Major performance improvements for using goto group feature. Also speedups
should be noticed when you exit a view groups option.

Drag and Drop is back and should work for both V2 and V3 applications.

Changed the timeout parameters a little, xvnews now tries to connect to the
server 10 times before it times out. The wait time is 20 seconds * number
of tried connections so that the wait is gradually increasing.

--------------------------
Bugs fixed in version 1.1:
--------------------------

If the server you are on is running the new INN s/w, some articles
previously read may return after a rescan on high volume groups. naughton@green

Searching for subjects would find previously read articles. naughton@green

If your NNTP server returned a status of no posting(201), xvnews would fail
to connect to the server. lwv27@cas.org

Some groups with no articles read would be saved by xvnews as "group! 0-0".
This would cause certain versions of rn to give warning messages. bkm@wintermute

Hitting return on the Search string line for all matching groups should retrieve
the groups similar to hitting the view groups button. was@thresher

A subscribed newsgroup that has a number of cancelled articles, and when read in
had no article subjects available would sometimes crash.

Some domains would have the first character missing. Chris.Crampton@ecrc.de

Fixed a few more make clean problems.

Version 1.0:
Patch 1:
------------

--------------------------
Bugs fixed in version 1.0: 
--------------------------

Some NNTP servers don't have the DISTRIBUTIONS files installed.
Symptoms were that posting would hang, or xvnews would hang on startup.
cflatter@zia.aoc.nrao.edu

If you had a zero length .newsrc or one that had no valid groups, xvnews
would crash. almo@usops.ebay.sun.com

make clean removed xvnews_ui.c xvnews_ui.h and xvnews_stubs.c.
Chris.Crampton@ecrc.de

If you hit unread on an article that was marked unread, it continued to decrement
the unread article counter. 

Various Imakefile problems installing on certain machines. numerous people

Cursor was not placed properly in post/email popup. 

If no .newsrc is found, the new .newsrc should be sorted in alphabetical order. 

Otherwise, same as 0.8PL1. I just had to make xvnews version 1.0 to release xvnews.

---------------------------
Changes for xvnews 0.8 PL1:
---------------------------

Kill article now goes to the next unread article.

Kill understands that "foo" and "Re: foo" are the same subject.

Save->save in the articles panel saves to the file in the file saver popup
if the popup is displayed.

Posting now recongizes "&" in the fullname field of the password file as the login name of the user.

Catchup removes the save popup if it is up, just like next and done do.

Followup is now the default action under Post/E-Mail.

Followup windows now have the References line filled in correctly.

If you save an article using the file saver, if the file was new, the saver
would delete the filename making it difficult to save multiple articles
to one file. This is now fixed.

Regular expression searching for article text was kind of broken.

Regular expression searching for article text now highlights the text
you were searching for and scrolls to that point of the article.

Under Search->*prev, a prompt now asks you to confirm searching previously
read articles.

Searching for subject/author next/previous now goes to next unread article
after the current article you started at or are now reading. This works much
better for following threads.

Keyboard accelerators are available for  certain  functions.
Make sure that keyboard focus is in the center button panel (Click in it)
and accelerators can be used for:

          Subscribed Groups:

               'n'  -- next group
               'p'  -- previous group
               'L3' -- Properties popup

          Unread Articles:

               'n'  -- next article
               'p'  -- previous article
               'f'  -- scroll text one page forward
               'b'  -- scroll text one page backward
               's'  -- save article
               'q'  -- exit reading articles
               'k'  -- kill current subject
               'L3' -- Properties popup
               'L9' -- Find next subject


Drag and Drop under OpenWindowsV2 no longer works.

-----------------------
Changes for xvnews 0.8:
-----------------------

Double click opens newsgroups as opposed to single clicks.

Support for unread articles in .newsrc file similar to rn/xrn(comma seperated list).

Change of save popup to use Guide file chooser.

No limit to number of e-mail/post popups open at one time, used to be 1.

Regular expression searching for newsgroups to be displayed.

Catchup now doesn't mark read articles marked as unread.

Catchup has a menu that allows catching up to the current article.

Deleted skip group (kludgy) button

Fixed some bugs with searching and group descriptions.

Change kill button to a menu and have subject and author options.

Allow to regular expression search on body of articles and entire header.

Changed including article to a button on popup window, similar to mailtool.

The biggest change is the support for the comma seperated list in the
.newsrc file. This means that any articles not marked read or saved will be
considered unread and will appear the next time you open the newsgroup.  If
you are done with all the articles in any group, you should hit catchup to
leave the group.

The other change that will be immediatly noticable is the you have to dbl.
click to open a newsgroup now. That allows you to catchup or unsubscribe to
groups without opening them.

