1998-05-25  Jonathan I. Kamens  <jik@kamens.brookline.ma.us>

	* Significant user-visible changes in XRN 9.01:

	** Bug fixes:

	* The amount of memory used when threading a newsgroup with many
	unavailable articles has been greatly reduced.

	* Threading while prefetching a newsgroup (i.e., threading
	newsgroup B in the background while reading newsgroup A) now works
	properly; previously, a newsgroup would not be threaded until the
	user actually went to read it.

	* Some minor improvements to newsgroup prefetching and fetching,
	including some speed improvements, have been made.

	* When the "Date" header field of articles is being converted into
	the local timezone, XRN will no longer delete the final newline
	from the field and thus cause it to be concatenated to the next
	line in the article header.

	* A newsrc corruption problem caused by a bug in gcc 2.8.1 on
	Solaris has been fixed by introducing a workaround.

	* The rot13 function will no longer rotate non-ASCII characters.

	* Some memory leaks and questionable memory references have been
	fixed.


	** Enhancements:

	* XRN is now compliant with the "Good Net-Keeping Seal of
	Approval" (<http://www.xs4all.nl/~js/gnksa/>).

	* Automatic scrolling of the Subject list in Article mode now
	notices what direction the cursor is moving and scrolls only in
	that direction.

	* The German language support in XRN has been improved.

	* Some support for a French version of XRN has been added,
	although it is incomplete (it will compile and run, but some
	messages will be in English rather than French).

	* A CREDITS file, listing all of the people who have contributed
	to XRN, has been added.

	* When composing a response to an article, the user can now switch
	between posting it, mailing it, and both posting and mailing it.

	* "From" lines in outgoing postings are now checked for validity
	before the messages are sent.

	* XRN now detects and warns about attempts to post or mail
	messages with no body.

	* XRN now detects and warns about attempts to post messages
	containing only included text.

	* When a message is both posted and mailed, XRN now inserts a note
	at the beginning of the mailed copy indicating that it is a
	courtesy copy of a message that was also posted.


	** Changes in functionality:

	* Instead of putting a long label on the Information window, it
	now displays a message the first time it pops up, informing the
	user that it can be left up or dismissed.

	* When the NNTP server name is appended to the newsrc file name,
	it is now also appended to the lock and save file names.  This
	makes it easier to run multiple XRNs at the same time talking to
	different NNTP servers.

1998-01-14  Jonathan I. Kamens  <jik@kamens.brookline.ma.us>

	*** Significant user-visible changes in XRN 9.00 (some changes are
	not listed; consult the XRN man page for additional information
	about these changes):


	** Enhancements:

	* Article threading and sorting

	The article subject list can be sorted by thread, in which case
	indentation is used to show thread nesting (see "sortedSubjects"
	in the man page).  A button/command has been added to find an
	article's parent.  Articles can be killed by thread or subthread.

	Also, the article subject list can now be sorted by date as well
	as by subject.

	Article sorting by subject has been sped up significantly.

	* Improved caching of fetched articles

	Article files are now stored in a rotating article cache whose
	size and number of files can be configured by the user (see
	"cacheFilesMaxFiles" and "cacheFilesMaxSize" in the man page).
	This means that XRN will exit newsgroups more quickly because it
	doesn't have to remove all of a newsgroup's article files when
	exiting a group.  It also means that articles won't be
	unnecessarily fetched multiple times from the server (for example,
	the current article no longer has to be refetched if you tell XRN
	to save or print it).

	* Improved authentication support

	Username/password authentication, using the "AUTHINFO USER" and
	"AUTHINFO PASS" NNTP commands, is now supported.  A new
	compile-time config.h option, ALLOW_RESOURCE_PASSWORDS, controls
	whether the user is allowed to encode passwords in X resources.

	* Improved-kill support

	Kill-file entries can now compare against the "Newsgroups",
	"Date", "Message-ID", "References", and "Xref" header fields in
	addition to the "From" and "Subject" fields.  Furthermore, the 'h'
	kill-file entry modifier can be used to compare against all of
	those fields

	Rather than having separate buttons for "session kill", "local
	kill", and "global kill", there is only one kill button for each
	field being killed, and different most buttons and/or modifier
	keys are used when hitting the button to signify whether the kill
	is for this session, the local kill file, or the global kill file.

	Automatic expiration of old kill-file entries has been added.  See
	"killTimeout" and "KILL FILE FORMAT" in the man page.

	A kill file can now include other kill files.

	* Enhancements to Article mode

	An error message is now displayed when the user attempts to cancel
	a message he is not authorized to cancel.

	A new "resort" command has been added, to allow the user to resort
	the article list.  Also, a button binding of ctrl-o was added to
	"unsort" the article list, i.e., to arrange the list the articles
	in numerical order.

	The "List old" button in article mode has been modified to allow
	the user to specify how far back to list, by holding down the ctrl
	key when executing the command.

	A new "artSub" button, which isn't in the default button list but
	which has a default key binding of '+', has been added.  This
	command subscribes the user to the current group if he isn't
	already subscribed (i.e., if he entered an unsubscribed group from
	All mode).

	* Enhancements to All mode

	A "Search" button and key binding ('/') has been added.

	A "Limit" button and corresponding 'l' binding has been added, to
	allow the user to limit the list to only newsgroups matching a
	specified regular expression.

	* Enhancements to multiple modes

	Newsgroup and subject list widths are now adjusted automatically
	when the XRN window is resized.

	Outgoing messages and postings can now be saved automatically into
	a folder.  See "saveSentMail" and "saveSentPostings" in the man
	page.

	Buttons whose functionality is disabled (e.g., the "Post" button,
	when the user is not allowed to post articles to the NNTP server)
	are no longer displayed, even if they are listed in a button list.

	A new "validNewsgroups" resource, complementing the old
	"ignoreNewsgroups" resource, has been added.

	XRN won't choke on NNTP servers which send multi-line responses
	for individual articles to XHDR requests.  A server shouldn't do
	that, but XRN tries to handle those that do.


	** Bug fixes:

	* Don't falsly claim that there are no articles in a newsgroup.

	* Don't hang forever when prefetching a newsgroup with lots of
	unread but unavailable articles in it.

	* Don't hang for a long time when the user attempts to visit a
	newsgroup that no longer exists with many unread articles in its
	active-file cache entry.

	* Don't do anything with the regular expressions of kill-file
	entries which contain unknown commands.  Previously, such regular
	expressions were compiled and compared against all unkilled
	articles, even though it didn't know what to do about any articles
	that matched.

	* Include "Sender:" in cancel messages when necessary.

	* When an external editor is being used for message composition
	and the user aborts the message, save the latest version of the
	article, rather than an old version, in the dead.letter file.

	* Handle lines longer than 1024 characters sent by the NNTP
	server.

	* Don't process individual articles' "Xref" headers multiple
	times.

	* Don't claim that an article was canceled when in fact its cancel
	message was mailed to a newsgroup moderator.

	* Inclusion of article text in a followup and reply will now
	always work, even if the article was canceled or the user has
	exited the newsgroup in which the original article is located.

	* Don't coredump when encountering newsgroups with really long
	names.


	** Changes in functionality:

	* To improve performance, NNTP_REREADS_ACTIVE_FILE is now defined
	by default in config.h.  Sites running very old NNTP servers which
	do not reread the active file each time the client sends a LIST
	command should comment out this definition before compiling XRN.

	* When comparing a kill file entry against the author of an
	article, the full contents of the article's "From" line are now
	used.  Previously, only the portion of the "From" line that was
	displayed in the Subject list was used.  This means, e.g., that
	you can set the authorFullName resource to "True" and still kill
	articles by user name, site name, etc.

	* Article mode is now more conservative about when the subject
	list is regenerated and which subject lines are added to it.  For
	example, when you attempt to go to an article that is not
	currently displayed in the subject list, only that article, rather
	than all articles after it, will be added to the list.

	* The IDENTIFY_VERSION_IN_MESSAGES compile-time configuration
	option is now enabled by default.

	* New newsgroups no longer show up after automatic rescans.  In
	order to discover new newsgroups, you have to execute the rescan
	command explicitly.

	* When displayLocalTime is true and the user asks to see the full
	article header, the article's actual "Date" field, rather than the
	converted date, is now displayed.

	* Conversion of backspace characters, pagebreak characters, or the
	"Date" field no longer takes place when an article is being saved
	or piped.

Thu May  9 17:48:38 1996  Jonathan Kamens  <jik@annex-1-slip-jik.cam.ov.com>

	*** Significant user-visible changes in XRN 8.02:


	** Enhancements:

	* Various warnings have been added to prevent the user from
	accidentally cross-posting a followup to a large number of
	newsgroups, and to discourage the user from posting articles to a
	large number of groups.  Also, a facility has been added to allow
	the installer of XRN to configure a maximum number of newsgroups
	to which the user may post a single message, but this feature is
	disabled by default (because I don't believe that the maintainer
	of XRN should be trying to set policy of this sort for other
	sites).

	* When an articles says "Followup-To: poster" and the user
	attempts to post a followup, XRN now gives three options (post and
	mail, just post, or just mail), while it previously gave only two
	(just post or just mail).

	* If NEWUSER_GROUPS in config.h starts with "/", it is now treated
	as the name of a file to read as an initial .newsrc file, rather
	than as a string to put into the initial file. (submitted by John
	DiMarco <jdd@cdf.toronto.edu>).

	* The "hiddenHost" X resource, which performs the same function as
	the "HIDDENHOST" environment variable, has been added.  See the
	man page for more information.


	** Bug fixes:

	* The cursor was sometimes not being positioned correctly in the
 	Subject list in article mode when a backwards search resulted in a
	match on an article whose Subject was not displayed prior to the
	search.

	* When XRN was trying to pre-fetch a newsgroup in the background,
	and the newsgroup being fetched had lots of unavailable (but
	previously unread) articles, it would hang for a while until it
	found available articles, rather than breaking the search for
	available articles up into small chunks like a well-behaved
	background task.

	* When "cacheActive" was true and the user attempted to go to a
	group that was previously unsubscribed, XRN would sometimes claim
	that there were no articles in the group when in fact there were.

	* When "cacheActive" was true, XRN was confused by old cache
 	entries whose "last article" values were lower than the current
	first article in the newsgroup.

	* Articles with only one blank line separating their headers and
	bodies were displayed wrong and included incorrectly in followups
	and replies when the "leaveHeaders" resource was set to "none".
	(reported by Franz.Mauch@uni-konstanz.de)

	* Unpredictable incorrect behavior was occurring when
 	REALLY_USE_LOCALTIME was defined, and possibly in some other
 	as-yet-undetermined circumstances as well, because some files were
 	missing the inclusion of "config.h". (reported by Odd Einar
 	Aurbakken <oea@ifi.uio.no>)

	* The temporary file created while saving the .newsrc was not
	being deleted if writing to it failed (e.g., because the user
	exceeded his disk quota or the disk filled up). (reported by
	Philippe Brieu <philippe@pablo.physics.LSA.UMich.EDU>)

	* Some libraries and settings for SVR4 and Motorola computers were
	missing from Imakefile and config.h. (fixes by Albert Chin-A-Young
	<chinay@cig.mot.com>)

	* Some minor problems were preventing compilation on
 	FreeBSD. (fixes by "Adrian T. Filipi-Martin"
 	<atf3r@stretch.cs.virginia.edu>)


	** Changes in functionality:

	* Cancel messages are no longer cross-posted to the "control"
	newsgroup.  Such cross-posting is an anachronism which is no
	longer necessary. (reported by jb@falstaff.MAE.cwru.edu (Jim
 	Berilla))

	* Messages containing forwarded articles no longer mention the
	article number in their Subject lines.  The article number is only
	relevant for the News server from which the user read it, and more
	often than not articles will be forwarded to people who use other
	News servers, so there's no point in mentioning the article
	number.

Sat Dec  2 20:41:39 1995  Jonathan Kamens  <jik@annex-1-slip-jik.cam.ov.com>

	*** Significant user-visible changes in XRN 8.01:


	** Bug fixes:

	* XRN would sometimes enter a newsgroup even tnough there weren't
 	any articles in it, and when it did, it got wedged in article mode
 	and refused to accept any commands. (reported by Hugues Leroy
 	<Hugues.Leroy@irisa.fr>)

	* For users with an external editorCommand, XRN was coredumping on
 	attempts to post an article or send a mail message that was not a
 	response to a previous message. (reported by
 	dennett@image.Kodak.COM (Charles R. Dennett))

	* A couple of key bindings were inactive because of ambiguities in
 	the translation tables in the app-defaults file. (reported by
 	Wayne D Richardson <wdr@VNET.IBM.COM>).


	** Changes in functionality:

	* If the user had cacheActive set to True, and he read news using
 	a news reader other than XRN between two invocations of XRN, then
 	XRN's cache would become obsolete and XRN would become convinced
 	when it was run the second time that there were article numbering
 	problems and mark all articles unread in the groups that were read
 	by the other news reader.  Now, when XRN encounters an article
 	numbering problem in a cached active file entry, it will retrieve
 	new statistics about the group from the server, to see if they
 	agree with what's in the user's .newsrc, before deciding that
 	there is an article numbering problem. (reported by
 	dennett@image.Kodak.COM (Charles R. Dennett))


	** Enhancements:

	* 'l' has been added to the list of valid action characters in the
 	verboseKill option.  When 'l' is specified, each KILL-file pattern
 	is displayed as it is processed.

	* The buttonsOnTop X resource, which causes buttons to go above
 	the windows they modify rather than below them, primarily so that
 	the main button box won't change locations in between modes, has
 	been added.  (code submitted by nelson@lan.nsc.com
 	(Taed Nelson), with some additional changes by me).

Thu Nov  2 21:25:22 1995  Jonathan Kamens  <jik@annex-1-slip-jik.cam.ov.com>

	*** Significant user-visible changes in XRN 8.00:


	** Major enhancements:

	* XRN no longer needs to read the entire newsgroup list from
	the NNTP server each time it starts up and each time the user
	requests a rescan.  Instead, if the "cacheActive" option is
	true, the complete newsgroup list is retrieved only when XRN
	determines that the active-file cache is missing information
	(e.g., the first time the user runs XRN when cacheActive is
	true, or when cacheActive is true and the user asks to go to a
	newsgroup that XRN doesn't know about) or when the user
	explicitly tells XRN to retrieve the entire list (with the
	"ngGetList" command in Newsgroup mode).

	When the user issues the "ngRescan" command when "cacheActive"
	is true, XRN does the rescan by querying the server explicitly
	about each subscribed newsgroup (and by using the NNTP
	NEWGROUPS command to ask the server if there are any new
	newsgroups), rather than by retrieving a complete newsgroup
	list.  Furthermore, since each group's query is independent of
	the others, the queries occur in the background and the user
	can actively read news while they are occurring.

	This functionality will probably be used most frequently by
	people reading news over a slow SLIP or PPP link who don't
	want to download a complete newsgroup list every time they
	check for new articles.  However, the fact that rescanning
	happens in the background when "cacheActive" is true may make
	this feature useful even to users with fast network
	connections.

	* XRN no longer needs all available newsgroups to be listed in
	the user's .newsrc file.  If the new "fullNewsrc" option is
	set to false (it is true by default, so XRN's old behavior
	remains the default), then only the newsgroups that the user
	wishes to list in the .newsrc file will be stored there.  The
	user can remove a newsgroup from the .newsrc by editing it
	outside of XRN in a text editor, or by setting the newsgroup's
	status to "ignored" in All mode.  When "fullNewsrc" is false,
	XRN can no longer use the contents of the .newsrc to determine
	when new newsgroups are created, so it instead uses the NNTP
	NEWGROUPS command to query the server about new groups.

	* Some sections of the man page have been reorganized or
	rewritten for increased clarity, and new sections dealing
	specifically with composing messages and with the format of
	KILL files (suggested by uri@watson.ibm.com) have been added.

	* Commands have been added to Article, All and Newsgroup modes
	to allow the user to both post and mail a single message or to
	just mail a message.

	* New functionality has been added to make it possible to move
	around in the subject list in Article mode without the
	displayed article following the subject cursor.  For the most
	part, this change will be transparent to people who don't want
	to use this functionality.  However, the one non-transparent
	aspect of it is that the up and down arrows no longer display
	the next and previous article; instead, they move the cursor
	without changing the displayed article.  The 'P' and 'N' keys
	retain the behavior which used to be bound to the arrow keys
	as well.  Users who prefer the old behavior can restore it by
	putting the following in their X resources:

		xrn*artFrame.subjects.translations: #override	\n\
			~Meta<Key>Up:	artPrev()		\n\
			~Meta<Key>Down:	artNext()		\n

	For more information about this new functionality, see the
	documentation about it near the beginning of the "ARTICLE
	MODE" section of the man page.


	** Changes in functionality:

	* In previous releases of XRN, all modes used the same widgets
	to display data in -- the top text window, info line, and
	button box, and the bottom text window, info line, and button
	box.  This structure took advantage of available screen real
	estate poorly (why should part of the XRN window be blank and
	unused in all modes except article mode?) and made code
	maintenance difficult.  The code has therefore been
	reorganized so that each mode has its own "Paned" widget which
	fills the entire XRN window when the mode is active.  There
	are probably numerous little user-visible aspects of this
	change, but the big ones are:

	(1) Screen real estate is utilized more fully -- for example,
	in newsgroup mode, there's no longer a bottom text window,
	info line or button box, which means that many more newsgroups
	can be listed in the same space.

	(2) The "Bindings" resources and command-line options have
	been removed.  Instead, users should use the "translations"
	resources for the various modes in order to set bindings.  The
	correct resource to use for customizing each mode's
	translations is given in the documentation for that mode in
	the man page.

	(3) Because each mode uses separate widgets, it is now
	possible to customize the appearance of modes separately --
	for example, you can use different fonts for the newsgroup or
	article lists in different modes.

	(4) Because the widget hierarchy has changed, the names of
	some widgets have changed, and therefore some user X resources
	which refer to those widgets might no longer work.  See the
	XRN source code or the application-defaults file to find out
	the new names of the various widgets.

	(5) The primary button box now changes locations depending on
	which mode XRN is in.  I've had some feedback from users who
	do not like this particular aspect of this change; I am
	contemplating addressing their complaints in the next release
	by adding an option which will reorder the widgets from top to
	bottom so that they are displayed "button box, info line, text
	widget", instead of "text widget, info line, button box", so
	that the button box will always be on top of the window and
	therefore will never move.

	* The "extraMailHeaders" option has been removed.  The
	behavior which was previously available only by setting it to
	true now occurs all the time.  This behavior is to add
	"X-Newsgroups" and "In-reply-to" lines to mailed replies,
	indicating the "Newsgroups" line and the message ID of the
	posting being replied to.  However, the "X-Newsgroups" and
	"In-reply-to" lines are no longer included in followups that
	are also being mailed, because they're redundant in that
	context (since the message contains "Newsgroups" and
	"References" lines).

	* Key bindings for all commands have been added, and all key
	bindings have been documented in the man page.

	* Two new commands ("allNext" and "allPrev") have been added
	in All mode, for moving the cursor to the next or previous
	newsgroup.

	* Default buttons lists which do not contain all available
	buttons have been added.  In previous releases of XRN, the
	default button lists for all modes contained all available
	buttons.  However, the number of available buttons has been
	steadily increasing, and many of them are not used by most
	people, so it is unnecessary for them to be taking up space in
	the default configuration.  Of course, users can still
	configure their own personal button lists to contain whatever
	buttons they list, and all commands are available through
	their key bindings even if they are not available as buttons.

	* XRN's title-bar functionality has been removed.  Title bars
	are the responsibility of the window manager, not of XRN.

	* XRN now checks for an empty "Subject" field and requires the
	user to fill it in if it is empty, whether or not INN is being
	used.  Previously, this check occurred only when INN was being
	used.

	* More characters have been added to the list of characters
	that may be special according to some regular-expression
	libraries and that therefore should be quoted by enclosing
	them in square braces when placing entries into KILL files.

	* When the signature file is too big to be included in a
	followup or reply, XRN will not display an error instead of
	ignoring it silently, so that the user knows why it was
	ignored.  This change was suggested by Harald Leinders
	<hl@arthur.ph2.Uni-Koeln.DE>.

	* A cancel button has been added to the "List old" command in
	Article mode, as suggested by George Ross <gdmr@dcs.ed.ac.uk>.
	It's not possible to do this really well until the NNTP code
	in XRN is multi-threaded or interrupt-driven, but in the
	meantime, this button allows the "List old" to be aborted one
	third or two third of the way through its work.

	* XRN will no longer let the user quit or exit while a
	composition is pending (the user must abort or send the
	message being composed before quitting).

	* As suggested by wilker@math.purdue.edu (Clarence
	W. Wilkerson), it is now possible to disable an external
	editor command specified in X resources or in the app-defaults
	file by specifying an empty-string value for the
	"editorCommand" option (in other words, an empty
	"editorCommand" is now the same as if it had not been
	specified at all).

	* When XRN creates a new RMAIL file to save a message in it,
	it now puts "-*- rmail -*-" on the first line of the file,
	just like recent versions of Emacs do, so that the file can be
	loaded into Emacs with C-x C-f and will automatically go into
	RMAIL mode.


	** Bug fixes:

	* When including an article in a followup or reply, the
	inclusion prefix was being inserted in the middle of lines
	longer than 256 characters, rather than being inserted only at
	line beginnings.  Also, in some cases, part of the header was
	being be included in the followup or reply, even when the
	"includeHeader" option was false.

	* Several minor memory leaks, temporary-file leaks and
	file-descriptor leaks.

	* Several instances in which a small amount of unnecessary
	traffic with the NNTP server was occurring.

	* Some minor non-portability problems which were preventing
	XRN from compiling (or compiling cleanly) on some platforms.

	* When there were new groups to be added to the .newsrc and
	the user selected "Add after group" and specified a
	nonexistent newsgroup in the dialog box, XRN ignored the
	problem and pretended that the group was added to the .newsrc,
	when in fact it wasn't, which made it come up as a new group
	again the next time the user ran XRN. (reported by
	philippe@pablo.physics.lsa.umich.edu (Philippe Brieu))

	* When the "MODE READER" command was sent to the NNTP server
	when connecting to it, XRN wasn't detecting when the server
	returned an access-denied error and aborting; instead, it was
	looping forever, disconnecting from and reconnecting to the
	server repeatedly.

	* Some of the German button labels and message strings were
	incorrect. (fixes by foks@iatge.de (Thomas Foks) and audited
	by kay@zhv.basf-ag.de (Kay Marquardt) (There are still some
	English label strings in the German labels, because I can't
	translate them myself since I don't know German, and noone who
	knows German has sent me translations for them.  Feel free to
	send me translations for them if you know German.)

	* The German message that is displayed when the app-defaults
	file is missing was incorrect and was causing a core-dump.

	* XRN was core-dumping when parsing "From" lines in articles
	when the "authorFullName" option was false. (fix by "David
	A. Curry" <davy@ecn.purdue.edu>)

	* On Linux, XRN was processing KILL files very slowly and
	coredumping when processing KILL files in some cases because
	of bugs in libc's regular-expression routines. (see README and
	README.Linux for more information)

	* XRN was coredumping when it encountered an error writing to
	a temporary file while trying to retrieve an article from the
	server.

	* Users that started XRN without a .newsrc file weren't seeing
	unread articles in news.announce.newusers (or whatever
	NEWUSER_GROUPS was set to) after startup, until after they
	executed a rescan, and if they exited from XRN immediately
	after it created their .newsrc without doing a rescan, it
	marked all of the articles in news.announce.newusers read.
	(reported by Michael Schmitz <schmitz@ph-cip.Uni-Koeln.DE>)

	* The "Cancel search" button wasn't popping up immediately at
	the start of the search, and in some cases it was popping up
	and then being deleted by XRN before it could be placed by the
	window manager, which caused the window manager to put up a
	button outline and require the user to place the outline, even
	though there was no longer actually a button associated with
	it.

	* XRN was attempting to pop up a confirmation box after an X
	IO error has occurred; on some systems, this was causing XRN
	to go into an infinite loop and consume resources after the
	user had logged out (or killed his X session, or killed
	XRN). (reported by George Ross <gdmr@dcs.ed.ac.uk>).

	* Additional bug fixes or bug reports which led to fixes were
	provided by: from philippe@pablo.physics.lsa.umich.edu
	(Philippe Brieu), dyson@sunfish.physics.uiowa.edu (Richard
	L. Dyson), Jean-Marc.Lasgouttes@inria.fr (Jean-Marc
	Lasgouttes), nissen@montefiore.ulg.ac.be (Alain Nissen),
	pawliger@mv.us.adobe.com (Marc Pawliger), "Ivar Ruyter"
	<ivarr@troll.hz.kfa-juelich.de>, "David W. Schuler"
	<dschuler@VNET.IBM.COM>, Masahiko Suenaga
	<f77266a@kyu-cc.cc.kyushu-u.ac.jp>, Tim <tda10@cus.cam.ac.uk>,
	Rein Tollevik <Rein.Tollevik@si.sintef.no>, Chris Torek
	<torek@purr.bsdi.com>.

Thu Apr  6 19:32:34 1995  Jonathan Kamens  <jik@annex-1-slip-jik.cam.ov.com>

	* Significant user-visible changes in XRN 7.03:

	Usages of assert() have been fixed so that they never contain side
	effects.  This is important on systems (like HP-UX) which define
	NDEBUG, and therefore disable assertions, by default.  Problem
	pointed out by Rein Tollevik <Rein.Tollevik@si.sintef.no>.

	When GENERATE_EXTRA_FIELDS is set when compiling XRN, the timezone
	inserted into the time string is now truncated after the first
	three characters, to work around systems which use timezone values
	that are longer than that.  Problem pointed out by
	nissen@montefiore.ulg.ac.be (Alain Nissen).

	A bug in XRN 7.02 which prevented article cancellation from
	working has been fixed.  The problem was pointed out by
	klaus@gauguin.legg.u-nancy.fr (Klaus Hartmuth).

	Two uninitialized memory references which might cause XRN to
	behave unpredictably on some systems have been fixed.

	A minor memory leak which occurs when XRN is started up iconified
	has been fixed.

Thu Mar 16 22:17:12 1995  Jonathan Kamens  <jik@annex-1-slip-jik.cam.ov.com>

	* Significant user-visible changes in XRN 7.02:

	The code that checks before displaying each article whether the
	user is allowed to cancel it is now disabled by default, because
	it causes significant performance degradation at some sites.  A
	CANCEL_CHECK compile-time symbol which enables the feature has
	been added to config.h, along with an explanation of the feature
	and why it's disabled by default.

	The COMMON-PROBLMS file now explains why the Subject index is
	occasionally redrawn wrong in article mode (it's because of an Xaw
	bug) and how to work around the problem.

	The COMMON-PROBLMS file now explains why the buttons disappear
	when the height of the XRN window is changed (again, it's because
	of an Xaw bug) and how to work around the problem.

	The way XRN decides if it's talking to a "fast" NNTP server or
	not, and therefore if it should prefetch articles, has been
	changed.  There is now a new "prefetchMinSpeed"
	resource/command-line option, which specifies the minimum
	kilobytes/second speed that the NNTP server network link must
	reach in order for article prefetching to be enabled.  The default
	is 3 kb/s, which should disable prefetching on most 14.4 or 28.8
	SLIP or PPP lines.

	The "Session kill" and "Author kill" buttons in article mode no
	longer cause non-malloc()ed memory to be free()d.  This fix
	prevents memory corruption on some systems which could cause XRN
	to hang, crash, or function incorrectly.

	A minor memory leak when the user tries to open a composition pane
	when one is already open has been fixed.

	If the user tries to open a composition pane or cancel a message
	when a composition pane with a followup or reply in it is open,
	XRN no longer gets confused about the header fields of the article
	currently being replied to in the composition pane.

	The man page now documents that artFedUp is one of the buttons
	that can be confirmed.  The missing documentation pointed out by
	philippe@umich.edu (Philippe Brieu).

	The "ngListOld" Xt action procedure was incorrectly named
	"ngToggleGroups".  It has been renamed "ngListOld".  Problem
	pointed out by philippe@umich.edu (Philippe Brieu).

Fri Mar  3 15:08:37 1995  Jonathan Kamens  <jik@annex-1-slip-jik.cam.ov.com>

	* Significant user-visible changes in XRN 7.01:

	Clicking on "List Old" in article mode no longer results in a
	large number of error messages about unavailable articles.  This
	problem was originally reported by Konstantin Laufer
	<laufer@math.luc.edu>.

	The main window is now mapped before connecting to the NNTP
	server, rather than afterwards.  This allows messages about
	problems connecting to the server and about reading or writing to
	the .newsrc file to be displayed in the Information window instead
	of as text in the window from which XRN was started.  Furthermore,
	this allows X-based interaction with the user, before the NNTP
	connection has been established, if necessary.  Finally, this
	allows messages about the status of the connection to the NNTP
	server to be displayed in the top information line in the XRN
	window.

	Article "Lines:" fields which start with extra whitespace are now
	parsed properly.  This problem was originally reported by
	dstarks@rc.tudelft.nl (D. Starks-Browning).

	The Information window has been cleaned up sigificantly: (1) Some
	messages in the Information window which used to be displayed on
	two lines are now displayed on a single line.  (2) Rather than
	displaying the entire date before each message, display just the
	current time.  The day of the week, current date and year are
	useless and take up space.  (3) Rather than resetting the entire
	contents of the window each time a new message is added, just
	append the new message.  This is a significant improvement when
	XRN is being run over a slow network (e.g., SLIP).  (4) Don't
	limit the amount of text in the window.  (5) Add a "Clear" button
	to erase the contents of the window without dismissing it.

	An erroneous "Article not available" message when doing "Subject
	search" in article mode has been fixed.

	In article mode, the Subject index is now displayed and sorted
	properly when the number of digits in the article numbers of
	listed articles is not constant (e.g., when the displayed articles
	range from 9990 to 10010).

	The watchUnread command-line option/X resource now takes a list of
	regular expressions rather than a list of newsgroup names.  The
	list of regular expressions can be separated by spaces, tabs,
	newlines and/or commas.

	In article mode, the status message in the bottom information line
	has been made more terse, so that information in it gets cut off
	less frequently.

	This bug is now fixed: "If I press the <Prev> button when I'm
	reading the first article in a newsgroup, I have to press <Next>
	twice before I get the next article.  Pressing <Prev> more than
	once have exactly the same effect."  Problem reported by
	sturle.sunde@usit.uio.no (Sturle Sunde)."

	XRN is now mostly internationalized; the supported languages are
	currently English and German.  Most of the internationalization
	work was done by kay@zhv.basf-ag.de (Kay Marquardt).

	The verboseKill command-line option/X resource is no longer a
	boolean.  Instead, it is a string containing zero or more of 'j',
	'm' and 's', to tell XRN which KILL messages the user wants to
	see.  For more information, see the man page.

	The NNTP AUTHINFO GENERIC protocol is now supported.  Changes from
	"chris (c.r.) lewis" <clewis@bnr.ca>, with some cleanup by me.

	The rescanOnEnter command-line option/X resource has been added.
	When true, XRN checks for new articles whenever entering a
	newsgroup, rather than only when rescanning all newsgroups.

	A file descriptor leak which could make XRN eventually
	unable to reconnect to the NNTP server if it ran for a long time
	has been fixed.

	When saving a message in an MX or RMAIL folder, an error is now
	displayed if the save fails, rather than just saying "done".

	In article mode, "Next group" now does the right thing even when
	"List old" was previously selected in newsgroup mode.  Previously,
	"Next group" would attempt to enter groups without unread articles
	and display lots of messages.

	In article mode, "Fed up" now finds the next group, rather than
	exiting into newsgroup mode, when "List old" has been selected in
	newsgroup mode.

	When verifying a message before sending it, check if there are
	duplicate fields that aren't allowed to be duplicated, and display
	an error message and refuse to send the message if there are.

	Don't truncate Subject lines unnecessarily when adding entries to
	KILL files.

	When adding an entry to a KILL file, quote special characters
	instead of replacing them with '.'.  This produces more accurate
	KILL file entries.

	The method by which the current position in the newsgroup index is
	stored in newsgroup mode has been completely reworked, to fix a
	large number of bugs with cursor positioning in newsgroup mode.

	Numerous changes related to prefetching: (1) The newsgroup index
	is now redrawn when we're done prefetching a newsgroup, because
	prefetching can change the index's contents.  (2) When XRN is
	prefetching a gropu and it discovers that the group has no unread
	articles in it, it immediately initiates a prefetch of the next
	group.  This means that once prefetching starts, it will continue
	until it finds a group with unread articles in it.  (3) XRN now
	displays messages in the top information line about the progress
	of prefetching and of processing KILL files.  (4) Previously, XRN
	would not prefetch the next group when a group was entered with
	"Goto group".  This restriction is now unnecessary and has been
	removed.  (5) Prefetching and KILL-file processing has been broken
	up into small chunks, the size of which are adjusted dynamically
	to prevent significant delays during prefetching.  (6) Newsgroup
	mode now prefetches the current group automatically whenever the
	current group changes.  This means, among other things, that a
	newsgroup will be prefetched immediately when XRN starts up and
	when the user rescans.  (7) Because prefetching is now much more
	efficient, prefetchMax has been set to 0 by default, i.e., by
	default, there is no size limit on which newsgroups can be
	prefetched.  (8) XRN now keeps track of whether it's talking to a
	"fast" NNTP server, and only prefetches articles in article mode
	if we are.

	XRN now keeps track of which articles have been KILLed (in the
	current XRN session only), so that the same article won't have
	KILL files run on it twice in a single XRN session.  XRN still
	doesn't update THRU in the KILL files, though. 

	The handling of host names that appear in messages posted and
	mailed by the user has been changed somewhat.  The most noticeable
	effect of this change is that the real host from which the user is
	posting is now more likely to appear in the header of a posted
	message.

	Automatic periodic rescanning is now disabled by default.  See the
	documentation for the rescanTime option in the man page for
	information on how to enable it.

	Fixed a number of bugs in "List old" in article mode, including:
	(1) If you've read articles first through n-1 and n+1 through last
	in a newsgroup, and you entered the newsgroup so that you're
	viewing only article n, and you click on "List old", it will list
	only articles first through n, and not n+1 through list. (2) when
	you click on "List old", the current article is changed to the
	first article in the newsgroup.  That shouldn't happen.  It should
	list old articles but leave you on the same article you were on
	before.

	When XRN can't connect to the NNTP server, instead of looping
	forever as it used to, it displays a dialog and asks the user
	whether or not it should continue trying or exit.

	When an error is returned by the NNTP server in response to an
	attempt by XRN to post a message, XRN now states explicitly that
	it is an error from the NNTP server rather than a local error.
	This is useful if, e.g., the NNTP server's disk is full and it
	displays "No space left on device", which the user might wrongly
	interpret as an error about a local disk being full.

	Articles are now marked saved properly when they are saved in MH
	or RMAIL folders, in addition to when they're saved in plain
	files.

	All temporary files created by XRN are now created with mode 600,
	for privacy and security reasons.  Problem pointed out by Philippe
	Michel <michel@thomson-lcr.fr>.

	A KILL file entry containing "\\" at the end of its regular
	expression will now work properly.

	The newsgroup mode buttons are now removed when entering all mode,
	to make more space for the all mode listing.  Furthermore, the
	"All groups" newsgroup mode button now unhighlights properly after
	it is selected.

	The geometry of the Information window is no longer specified
	explicitly in XRN's application defaults.  If a user wants the
	window to appear in a specific location, its geometry can be set
	in a personal .Xresources or .Xdefaults file.  It's not the place
	of XRN to set the location of the window explicitly.

	When the user clicks on "Exit" in article mode, the newsgroup's
	status just before the user started reading articles in it is
	restored.  Previously, all articles in the Subject index would be
	marked unread when "Exit" was used, which meant (for example) that
	if the user clicked on "List old" and then "Exit", all articles in
	the newsgroup would be marked unread, which is obviously wrong.

	The code which adjusts the displayed text in the newsgroup or
	subject index to keep the number of lines above and below the
	cursor within a certain range has been improved in a number of
	ways, including: maxLines can now be negative in order to specify
	a minimum number of lines below the cursor, rather than a maximum
	number of lines above the cursor;, the index will never scroll
	past the end of the available text, i.e., once the last line of
	available index text is displayed in the last line of the index
	widget, scrolling will stop, even if the minLines/maxLines
	constraints aren't met.

	When a newsgroup is entered from all mode, it is no longer
	subscribed automatically.  The new behavior is what was in XRN
	6.17, but it was changed in XRN 7.00 to subscribe automatically.
	This is arguably wrong, because users often use all mode to
	"browse", visiting newsgroups without subscribing to them.

	Window redraws have been optimized in a number of places.

	The NNTPSERVER environment variable now takes precedence over the
	nntpServer X resource, but not over the nntpServer command-line
	option.  Change suggested by Reg Clemens <reg@dwf.com>.

	The amount of memory taken up by XRN while it is running has been
	greatly reduced, especially for users who subscribe to many
	newsgroups or who subscribe to newsgroups with many articles in
	them.

	When a newsgroup is subscribed in add mode, XRN now immediately
	updates its idea of the first and last articles in the newsgroup,
	so that it shows up in the newsgroup mode index immediately (as
	opposed to after the next rescan) if it has unread articles in it.

	The width of the lines in the newsgroup index in newsgroup mode,
	the Subject index in article mode, and the newsgroup list in all
	mode, is now adjusted dynamically based on the width of the XRN
	window.  The indexLineLength command-line option/X resource has
	therefore been removed.

	When XRN creates a file name in which to store the .newsrc file
	temporarily while updating it, it now puts ".temp-" at the
	beginning of the last component of the temporary file name, rather
	than appending "-temp" to the end of it.  This means that the
	temporary file name will still be unique on systems which have
	short file names.  Problem pointed out by kay@zhv.basf-ag.de (Kay
	Marquardt).

	Remove the hard-coded limit of 127 characters on newsgroup names.
	There is no longer any limit (except for the amount of memory
	available to XRN, of course :-) on newsgroup name lengths.

	Aborted messages are now saved in the user's deadLetters file, so
	that they aren't lost if the "Abort" button is clicked
	accidentally.

	The behavior of killing a subject in article mode is now exactly
	the same as when it is killed from a KILL file.  I.e., when you
	kill a subject in article mode, exactly the same articles will be
	marked read as would be if you had selected "Local kill" on the
	same subject in a previous invocation of XRN.  Previously,
	interactive subject killing used a different algorithm from
	KILL-file killing.

	A new subjectScrollBack command-line option/X resource has been
	added.  When it is true (which is the default, XRN will always
	scroll back to the current article in the subject index after
	doing operations on other articles.  When it is false, XRN will
	attempt to maintain the position you scrolled to before performing
	the operation.

	If XRN encounters a system error while getting an article, it
	displays a retry notifier instead of just claiming that the
	article is unavailable.  This is important when, e.g., the
	disk on which the temporary directory is located fills up.

	Some buttons are now made insensitive when they can't currently be
	used: allPost, artPost, artFollowup, artFollowupAndReply, and
	ngPost when the news server doesn't allow the user to post;
	allMove and ngMove when no groups are currently selected;
	artHeader when stripHeaders and leaveHeaders aren't set; artLast,
	ngPrevGroup when there isn't any previous article or group to go
	to; artContinue when no previous search has been done; artListOld
	when it has already been clicked on once; artCancel when the
	current user isn't allowed to cancel the article.

	The onlyShow X resource's behavior has been modified so that it
	actually displays the number of articles specified, even if some
	of the articles at the end of the newsgroup are unavailable or
	have already been read.  Furthermore, although only the number of
	articles requested with onlyShow are displayed, the other articles
	are not marked read, so if you read the displayed articles and
	then exit and reenter the newsgroup, they'll be available (or if
	you click on "List old" in the newsgroup, or if you do a subject
	search backwards).  If you want the earlier articles to be marked
	read automatically, you now have to use the new `discardOld'
	option.

Tue Nov  8 18:30:03 1994  Jonathan I. Kamens  <jik@cam.ov.com>

	* Significant user-visible changes in XRN 7.00 (this list is
	incomplete):

	There are now key bindings for the arrow keys in newsgroup and
	article modes.

	Instead of always leaving five spaces for the article numbers in
	the subject index and putting a tab after the number on each line,
	figure out how many digits the last article number in the
	newsgroup has, and use that many digits as the width of the column
	for the article number, and put a space after it instead of a tab.
	This allows more of the Subject to be displayed when the article
	numbers have less than five digits, and prevents lots of
	whitespace because of the tab when the article numbers have more
	than five digits.  Problem pointed out by per@erix.ericsson.se
	(Per Hedeland).

	If the Subject or Newsgroups field is missing or empty when the
	user attempts to send a message, display an error, and refuse to
	send the message.

	Fix the following bug: compose a posting to two newsgroups, the
	first of which you don't get at your site and the second of which
	you do.  When you click on "Send", instead of posting the message,
	XRN will claim that you have no postable newsgroups on the
	Newsgroups line, because it misses the last newsgroup on the line.

	Add support for X-newsreader and X-mailer headers in outgoing
	messages, but disable them by default.  Suggested by Michael
	Salmon <Michael.Salmon@eos.ericsson.se>.

	The Distribution: header included in a cancel message should be
	identical to the Distribution: header in the article being
	cancelled, or shouldn't be there at all if there is no
	Distribution: header in the article being cancelled.  The default
	distribution in app_resources.distribution shouldn't have anything
	to do with what goes into a cancel message.  Pointed out by
	archer@cett.alcatel-alsthom.fr (Vincent ARCHER).

	There is no longer a default distribution (unless the person
	installing XRN expicitly compiles one into the program.

	Related messages in the Information window are now appended to
	each other correctly in more cases.

	There are now buttons in newsgroup mode to scroll the newsgroup
	list.  Patches from per@erix.ericsson.se (Per Hedeland).

	Support to use application contexts and to support the X11R6
	session manager has been added.  Patches from "Ralph R. Swick"
	<swick@x.org>.

	Files in the XRN source distribution which might cause problems on
	systems with short file names have been renamed.

	A "MODE READER" command is now sent to the NNTP server upon
	startup, in case it's an INN-like server which needs to be told
	explicitly to go into news-reader mode.  Problem pointed out by
	archer@cett.alcatel-alsthom.fr
	(Vincent ARCHER).

	Fixed a bug that was preventing ignoreNewsgroups from working
	under SYSV_REGEX.  Fix submitted by Michel Eyckmans (MCE)
	<eyckmans@imec.be>.

	MAX_SIGNATURE_SIZE has been changed so that it's closer to 320,
	which is 80*4 (i.e., allow a four-line signature).  Pointed out by
	archer@cett.alcatel-alsthom.fr (Vincent ARCHER).

	Free memory returned by regcmp() when it is no longer needed.
	Leak pointed out by Michel Eyckmans (MCE) <eyckmans@imec.be>.

	When creating a regular expression to add to a KILL file, protect
	the ')' and ']' characters in addition to '(' and '['.  Suggested
	by Michel Eyckmans (MCE) <eyckmans@imec.be>.

	Clean up the code for getting the time zone when
	REALLY_USE_LOCALTIME is defined.  The SOLARIS part of the fix was
	initially suggested by mitchell@aol14.wff.nasa.gov (Richard
	Mitchell 1026).

	Change the print command for UNIX to "lp -sc" (for SYSV) or "lpr"
	(for non-SYSV).  It used to be "enscript -g", but far more sites
	have lpr and lp than have enscript.  Suggested by Michel Eyckmans
	(MCE) <eyckmans@imec.be>.

	Change the message in the info line when KILL file processing is
	done.  Suggested by Michel Eyckmans (MCE) <eyckmans@imec.be>.

	Say in the info line message what newsgroup's KILL file is being
	processed.

	Always include article text when calling an external editor
	command.  Fix from per@erix.ericsson.se (Per Hedeland).

# $Id: ChangeLog,v 1.127 1998/05/25 14:34:03 jik Exp $
