2002-07-08  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/queue.c (queue_run_thread): do not retry tasks that we've marked
	as 'TASK_FAIL_HOPELESS'. Thanks to Carl Hudkins for reporting this.
	(#86795)

	* pan/task-header.s (task_headers_run): if requested, get bodies for 
	all headers. Previously, we were only getting the bodies for the newly
	retrieved headers: already downloaded headers would not have their
	bodies retrieved. Thanks to Si for reporting this. (#72555)
	
2002-07-06  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/gui.c (warn_about_tasks_running): remove the 'are you sure you
	want to quit' dialog after the response. Thanks to spider for 
	reporting this. (#87518)

2002-07-05  Christophe Lambin <clambin@easynet.be>

	(Charset Fun)

	* pan/text.c (set_text_from_article_nolock): when 'show all headers'
	is active, convert them to UTF-8 before displaying them. This handles
	those (now much cursed) newsagents that put 8bit text in headers.

2002-07-04  Christophe Lambin <clambin@easynet.be>

	(Charset Fun)

	* pan/message-window (append_signature): convert the signature to UTF-8
	before appending it to the message. This fixes a problem where 8bit
	characters were corrupted in follow-ups, replies and forwards when
	the signature also contained 8bit characters.  Thanks to Alexander
	Skwar for reporting this problem. (#85502)

	* pan/base/pan-glib-extensions.c (pan_header_to_utf8): re-ordered to
	avoid missing a quote-encoded header.

	* pan/articlelist.c: removed calls to pan_utf8ize when the text is 
	already in UTF-8.

	* pan/message-window.c (make_reply_window): working out the charset
	of the text isn't possible (idiot!:)). Use the group's charset instead.

2002-07-04  Jeffrey Stedfast  <fejj@ximian.com>

	* gmime/gmime-iconv-utils.c (g_mime_iconv_utils_strndup):
	Multibyte charsets need to be nul-terminated by more than just a
	single nul byte (duh!).

2002-06-30  Christophe Lambin <clambin@easynet.be>

	(Charset Fun)

	* pan/message-window.c (make_reply_window): when creating a follow-up,
	a reply or a forward, propose a charset that fits the text we're
	creating, rather than just the default.

	* pan/text.c (text_get_message_to_reply_to): when creating a follow-up,
	reply or forward, and we don't have a part selected, get the text
	from the GtkTextBuffer, rather than reconstructing it through GMime.
	Since the buffer's already in UTF-8, we don't need to worry about
	charsets.

2002-06-28  Christophe Lambin <clambin@easynet.be>

	(Bug fixes)

	* pan/message-window.c (text_inserted_cb): changed implementation of 
	the automatic wrapping code: since we're in UTF-8, we can't rely on 
	pointer arithmetic to tell us where we are. This fixes a problem where 
	the automatic wrapping would corrupt a message if it contained high
	ascii characters.  Thanks to Alexander Skwar for reporting this. 
	(#85508)

2002-06-27  Christophe Lambin <clambin@easynet.be>

	(Charset Fun)

	* pan/base/pan-glib-extensions.c (pan_header_to_utf8): new function
	to convert a header to UTF-8. This handled both compliant headers
	(pure 7bit or quote-encoded) and non-compliant headers (8bit 
	non-encoded).

	* pan/nntp.c (nntp_download_headers): import headers using 
	 pan_header_to_utf8(). Subjects & authors are now guaranteed to be 
	in UTF-8, making them display nicely in the articlelist and also makes
	them filterable. (#80002, #81181, #85510)

	* pan/gui-headers.c (get_and_add_header_nolock): same.

2002-06-26  Christophe Lambin <clambin@easynet.be>

	(Charset Fun)

	* pan/pan-charset-picker.c: added 'windows-1251' as yet another 
	Cyrillic charset. Thanks to gaw zay for suggesting this.

	(Bug Fixes)

	* pan/smtp.c (smtp_send_article): added the character encoding to
	outgoing email. Thanks to Alexander Skwar for suggesting this. (#85503)

2002-06-25  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/articlelist.c (articlelist_repopulate_nolock): don't process any
	'tree-select-row' events while we're repopulating the articlelist.
	This fixes a bug where sorting the list would also read the selected
	article, which in tabbed view implies switching tabs. Thanks to 
	Fred Fraley for reporting this bug. (#86409)
	
2002-06-24  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/rules/rule-edit-ui.c (rule_from_newsgroup_tab): fixed bug that
	made it impossible to attach a rule to a renamed newsgroup. Thanks to
	Carl Hudkins for reporting this bug. (#85725)

2002-06-23  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/base/file-headers.c: bumped up file version number to 7 and 
	added the Article field `state' again. Without it, we'd lose the state
	when switching out of a group and back again, making it difficult 
	to see which articles have been saved already. Thanks to Gabi Davar
	for reporting this. (#85445)
	
2002-06-22  Christophe Lambin <clambin@easynet.be>

	(Build Fixes)

	* gmime/gmime-part.c: build fixes for Alpha. (#85968)

	* Makefile.am/configure.in: added intltool input files to tarball. 
	Thanks to Pierre Beaumadier for reporting this. (#86203)
	
2002-06-21  Christophe Lambin <clambin@easynet.be>

	(Charset Fun)

	* pan/pan-charset-picker: new module that holds the charset picker.
	* pan/message-window.c: sync.
	* pan/dialogs/dialog-group-props.c: now uses the above charset picker
	to specify the charset, rather than a simple (unvalidated) text field.

	* pan/base/pan-glib-extensions.c (get_charset_from_locale): moved this
	code from message-window..
	* pan/base/group.c (group_get_default_charset): use the locale to
	determine the group's default charset. Thanks to Martin Tomasek for
	suggesting this. (#84995)

2002-06-19  Charles Kerr <charles@rebelbase.com>

	(Typo Fixes)

	* fix spelling mistakes: "Cancelled", "Cancelling",
	"Portugese", "totalling", "Aricle", "likey".

2002-06-19  Christophe Lambin <clambin@easynet.be>

	(Build Fix)

	* gmime/gmime-multipart.c: build fixes for Alpha. (#85968)

2002-06-18  Charles Kerr <charles@rebelbase.com>

	* 0.12.0 Released!

2002-06-16  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/pan-glib-extensions.c (pan_gmtime_r):
	fixed compile-time bug on OS X rpeorted by Max Horn.

2002-06-14  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/nntp.c: looks like writing zeroes to the end of
	acache files isn't such a great idea after all -- it's
	corruping the file stream decodes.  We no longer write
	zeroes to the end of the message.

	* pan/base/acache.c (acache_get_message): added argument
	flag, "need zero termination", to work around above for
	clients that just want to read the message as a sz.  This is a
	temporary fix to get us to 0.12.0 inside the string freeze.

	* pan/base/article.c: sync.

2002-06-13  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c (set_group_mainthread_end): don't try to
	get new headers for the group if the group is a folder.
	Thanks to Frederic Crozat for reporting this bug. (#84991)

	* pan/base/acache.c (acache_file_checkout_fps): log an error
	if we can't open all the files specified.  This is important
	when decoding big multiparts on systems that set a low max
	number of file descriptors.

	* pan/base/util-mime.c (pan_g_mime_parser_construct_message_from_file):
	added sanity clause to make sure that each FILE* passed in is
	non-NULL.  This fixes a crasher when too many fds are open.
	(Solaris users: try "ulimit -n 512" before running Pan. ;)

	* pan/base/decode.c (decode_article): Free all the FILE*'s if
	pan_g_mime_parser_construct_message_from_file() fails.  (If it
	succeeds then the FILE*'s become owned by the GMimeMessage's
	streams, so it closes them itself.)

2002-06-12  Jeffrey Stedfast  <fejj@ximian.com>

	* configure.in: Add $LIBICONV to LDFLAGS before detecting
	preferred iconv charset formats.

	* gmime/gmime-table-private.h: Synced with gmime.

	* gmime/gmime-utils.c (quoted_decode): Oops. ESPECIALs are allowed
	inside of the encoded-text section of the encoded-word. Fixes bug
	#84987.

2002-06-10  Charles Kerr <charles@rebelbase.com>

	* pan/text.c: fix URL for bug reporting page.  Thanks to
	Carl Hudkins for reporting this bug. (#84620)

2002-06-07  Charles Kerr <charles@rebelbase.com>

        * 0.11.94 Released!

2002-06-04  Jeffrey Stedfast  <fejj@ximian.com>

	* configure.in: Perform an AM_ICONV() test as well, so we can get
	ICONV_CONST defined.

	* gmime/gmime-iconv-utils.c (g_mime_iconv_strndup): Sync up with
	gmime cvs. Should fix the hang in bug #84056.

2002-06-03  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c (clear_group_nolock): made clear_group(), which
	runs in the main thread, to avoid possible contention with other
	threads trying to modify the articlelist state.

	* pan/articlelist.c (articlelist_set_group_nolock): is now
	articlelist_set_group().

2002-06-03  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/rules/rule-manager.c: mutex the init code to prevent it being 
	executed multiple times in parallel (corrupting the data structure in
	the process). The most likely scenario is doing a get-new-for-all,
	where each thread tries to apply the rules, calling
	rule_manager_module_init() to initialise the rule base.

	* pan/filters/filter-manager.c (filter_manager_init): same for filters.

	(Packaging)

	* pan.spec.in: new spec file for gtk2 and friends.

2002-06-02  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/gnksa.c (rfc822_date_generate): handle DST properly.

2002-06-01  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* gmime/gmime-stream-cat.c:
	* gmime/gmime-stream-file.c:
	* gmime/gmime-stream-fs.c: sync with fejj's changes in GMime CVS.
	It's crazy how fast decoding is now.

	* pan/base/decode.c: removed the one-decode-at-a-time mutes.

2002-05-31  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/queue.c (real_queue_insert_tasks): fix GSList bug that caused
	tasks whose status != queued to get marked as queued.  This was
	especially nasty if the same task started being run twice.
	Thanks to verdurin to reporting this bug.

	* pan/base/newsrc.c (newsrc_init): gracefully handle NULL newsrcs
	being passed in, which can happen if there is corruption in the
	grouplist file.  Thanks to Adam M for reporting this bug. (#72435)

	* pan/dialog/dialog-log-viewer.c (dialog_viewer_add_entry_nolock):
	check for "state & ERROR", rather than "state == ERROR", so that
	LOG_ERROR|LOG_URGENT messages will still get the error icon in the
	first column.

	* pan/base/file-grouplist.c (read_group_data): if the file has
	corrupt groups, notify the user in an error dialog.

2002-05-30  Charles Kerr <charles@rebelbase.com>

	(Fun)

	* configure.in: add a place to define the release title.
	* pan/message-send.c: put the release title in the User-Agent string.

	(Requirements)

	* configure.in: bumped requirements for glib2, gtk2, and libxml2.
	The treadmill will continue until 0.12.0.

2002-05-29  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/gui.c: moved the pan error/info dialogs into an idle func
	for thread/lock safety.

	* pan/dialogs/dialog-log-viewer.c (log_list_appended_cb): moved
	the appending into the GUI into an idle func for thread/lock safety.

2002-05-29  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/base/message-check.c (check_body): check that the article's 
	charset is valid for the body. If not, warn the user and propose
	a better charset. Thanks to Frank Van Damme for reporting this. (#83045)

2002-05-29  Charles Kerr <charles@rebelbase.com>

	(Tweaks)

	* pan/base/article-thread.c (thread_articles): use a hashtable for
	Message-ID lookups.  this shaves about 8% off of threading time.

	* pan/gui.c: no code changes, but reorganized the functions in this
	file, which had been ordered mostly at random.

	* pan/prefs.c: added the `automatically remove failed tasks' button
	back in; some people use it to requeue after their servers refresh.
	<shrug>

2002-05-28  Charles Kerr <charles@rebelbase.com>

	(Tweaks)

	* pan/base/file-headers.c (file_headers_save_group): use the same
	hash table for all fields.  This lets the Message-ID and References
	strings be shared, making the headers.dat a little smaller.

	* pan/nntp.c (nntp_download_headers): only remember the xref header if
	the number of crossposts>1; we already know it was posted in the
	group we're downloading it from.  This too should help to make
	headers.dat a little smaller.

	* pan/base/article.h: remove crosspost_qty from the Article struct.
	It's only ever used in filters that count crossposts, which is
	fairly rare, so we put off computing it until the user needs it.

	* pan/base/file-headers.c: remove the `crosspost_qty' field from
	the file-headers data format, because it doesn't exist in Article
	anymore.
	* pan/base/file-headers.c: the Article field `state' is a transient
	field, so shave off a few cycles & bytes in the file by not saving it.
	Bumped file format version number to 6.

	* pan/base/thread-articles.c (sort_articles): removed an unnecessary
	malloc/free for each article when sorting by author.

2002-05-27  Charles Kerr <charles@rebelbase.com>

	(Code Cleanup)

	* pan/articlelist.c: grouped related functions together in
	the source code; there had been some drift since the last cleanup.

	* pan/articlelist.c (articlelist_set_selected_nodes_nolock): removed
	a hack that worked around a gtk 1.2.10 bug which is fixed in gtk 2.0.

	* pan/util-mime.c: made the uu functions static, now that decode.c no
	longer needs them.

	* pan/util-mime.c (separate_encoded_parts): remove an unnecessary
	strlen() on each line.

	* pan/article-thread.c (normalize_subject): remove an unnecessary
	strlen() on each subject header.

	(Bug Fixes)

	* pan/text.c (set_next_article_impl): added Sam Solon's patch to
	prevent jumping to the group pane when the current article is
	cleared out (such as when switching groups).

	* pan/articlelist.c (articlelist_update_articles): fix potential
	latency problem: the group's contents could change between here
	and the idle func articlelist_update_articles_idle, so wait until
	then to decide which of the articles passed in are still active and
	need to be redrawn.

	* pan/articlelist.c (articlelist_groups_removed_cb): fix potential
	thread bug by calling articlelist_set_group_nolock in an idle func
	instead of directly.

	(Experimenting, just to make Christophe nervous before a release)

	* pan/queue.c: use a GThreadPool for the queue's worker threads.

2002-05-26  Charles Kerr <charles@rebelbase.com>

	(Usability)

	* pan/queue.c: _always_ remove fail_hopeless tasks.
	* pan/prefs.c: sync: remove `delete_failed_tasks' pref
	* pan/task-manager.c: changed the xfer column format a little.
	* pan/pan.c (main): added "--debug-object"

	(Code Cleanup)

	* pan/queue.c: cleaned up the Todo struct
	* pan/task-save.c (task_save_run): fixed small memory leak.
	* pan/task-manager.c: added debug_enter/debug_exit calls.

	(Redundancies)

	* pan/task-manager.c (periodic_update_timer): remove redundant
	pan_object_ref/pan_object_unref calls.
	* pan/gui.c (gui_add_status_item_idle): remove redundant pan_object_ref
	* pan/gui.c (gui_remove_status_item_idle): remove redundant unref


2002-05-25  Charles Kerr <charles@rebelbase.com>

	* pan/base/group.c (group_remove_crossposts): fixed a ref-count bug
	that could cause Pan to crash while deleting articles in one group
	that had crossposts in another group that was being unloaded.
	Thanks to bickingd for reporting this bug. (#82865)

2002-05-24  Christophe Lambin <clambin@easynet.be>

	* pan/task-manager.c: fixed a ref-count bug that could cause Pan 
	to crash when reading news while the task manager dialog was open. 

	* pan/task-manager.c (tasks_removed_idle): moved deleting the task
	to the main thread. This fixes a problem introduced yesterday whereby
	tasks could remain stranded in the task list, since deleting the task
	(called in the worker thread) could be called before the task was added
	(called in the main thread).

2002-05-24  Charles Kerr <charles@rebelbase.com>

	* pan/articlelist.c: cleanup of copying articles to a folder.
	Thanks to Himanshu J. Gohel for suggesting this. (#64867)

	* pan/articlelist.c: added watch/ignore/bozo to the
	popup menu. (#78006)

	* pan/article.c (article_get_extra_header): lessen the number of
	stress checks in article_get_extra_header() so that incorrect articles
	being posted can still give enough information to give users the right
	error message.  Thanks to John LeMay for reporting this bug. (#82828)

2002-05-23  Christophe Lambin <clambin@easynet.be>

	(Usability)

	* pan/articlelist.c (articlelist_set_group_nolock): When loading a
	group for the first time, ask the user what to do instead of downloading
	all headers.  (#82092)

2002-05-23  Charles Kerr <charles@rebelbase.com>

	* pan/task-manager.c: Fixed long-standing bug that could
	cause Pan to crash when adding new tasks while the task manager dialog
	was open.  Thanks to Thomas Gamble for reporting this bug. (#82262)

	* pan/queue.c: replaced insert_task() with insert_tasks() to batch
	up changes to the queue.
	* pan/task-save.c: sync.
	* pan/task-manager.c: sync.
	* pan/articlelist.c: sync.
	* pan/article-actions.c: sync.

2002-05-21  Charles Kerr <charles@rebelbase.com>

	0.11.93 Released!

	* pan/text.c: fix gmime2 runtime warning.

2002-05-20  Charles Kerr <charles@rebelbase.com>

	(GMime2)

	* pan/base/util-mime.c:  Finished plugging it in, including noisy UU
	detection in separate_encoded_parts().  A little cleanup might be
	nice, but the important thing is that the decode regression tests
	are passing.

2002-05-20  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/message-check.c (check_mail_addresses): use GMime's
	InternetAddress class to parse and validate addresses.
	This fixes a problem where Pan refused to post an article if the 
	first word of the author's name contained a non-7bit us-ascii character.

	* pan/gnksa.c (read_plain_word): fixed a parsing bug found while
	debugging the problem above.

	* pan/gui.c (text_fill_body_changed_cb): fixed a crash when setting 
	'wrap article body'.

2002-05-20  Charles Kerr <charles@rebelbase.com>

	* pan/base/util-mime.c: futzing around with message/partial.
	Lots of space savings, lots of new possibilities, lots of bugs. :)

2002-05-19  Charles Kerr <charles@rebelbase.com>

	* configure.in: bumped version number to 0.11.93.

	* pan/message-window.c: changed rot13 shortcut to Shift-Ctrl-R
	because Ctrl-R is reserved by the GNOME HiG.
	* pan/gui.c:  changed rot13 shortcut to Shift-Ctrl-R for
	consistency with message-window.

	* pan/gui.c: made the `tabbed layout' a checkbox.

	* pan/filter-edit-ui.c:
	* pan/filter-current-ui.c:
	* pan/filters/filter-new.c:
	* pan/filters/filter-xml.c:
	* pan/prefs.c: replace strings `old' with `read', which is clearer.

	* pan/prefs.[ch]:
	* pan/gui-paned.c:
	* pan/gui-notebook.c:
	* pan/grouplist.c:
	* pan/text.c:
	* pan/prefs.c:
	* pan/gui.c:  pan had differing, inconsistent names in code and
	user-visible strings for the three panes; made everything consistent
	with `groups pane', and 'headers pane', 'body pane'.

2002-05-19  Christophe Lambin <clambin@easynet.be>

	(Bugfixes)

	* pan/message-window.c: changed shortcut for 'rot13' to Ctrl-R, so
	that uppercase 'R' can be typed as text.

	* pan/message-send.c (build_nntp_header): that change to put the 
	architecture in the User Agent string doesn't seem to work on all
	platforms (different versions of autoconf?). Fall back to 'Unix'
	if it doesn't work on the target platform.  One more problem with 
	this featurette and I'm stripping the whole lot. :-)
	* pan/smtp.c (smtp_send_article): same.

	* pan/base/article-thread.c (normalize_subject): fixed small buffer
	overrun.

2002-05-18  Charles Kerr <charles@rebelbase.com>

	(Bugfixes)

	* pan/article-toolbar.c (merge_filter_with_phrase): fix memory leak.
	* pan/base/util-mime.c (pan_g_mime_parser_construct_message_from_file):
	fix another memory leak.  Memprof found these leaks.

	(Small Speed Tweaks)

	* pan/gui.c (menu_update_idle): don't bother enabling buttons
	that are always enabled.

	* pan/queue.c (queue_wakeup): only wakeup the queue if the todo
	list is nonempty.

	* pan/queue.c (queue_do_todo): batch up `queue_wakeup' calls so that
	we only have to wake it up once instead of N times for N inserted
	items.

2002-05-17  Charles Kerr <charles@rebelbase.com>

	* pan/base/acache.c:
	* pan/base/server.c:
	* pan/server-ui.c:
	* pan/task-grouplist.c: use g_ptr_array_sort().

	* pan/gui.c: avoid some unnecessary calls made during startup.

	* pan/grouplist.c:
	* pan/articlelist.c:
	* pan/prefs.c: added a single-click-selects-instead-of-activates
	prefence togglebutton to mollify the people who missed 0.11.3's
	mouse-button-1 vs. mouse-button-2 misfeature .

	* pan/base/article-thread.c (normalize_subject): attempt to speed
	up this performance hotspot a little.

2002-05-16  Jeffrey Stedfast  <fejj@ximian.com>

	* gmime/gmime-parser.c (parser_scan_mime_part_content): Only
	compensate for the '\n' if we found a boundary.

	* pan/base/decode.c (decode_article): After writing the
	data-wrapper to the stream, make sure to flush the stream so that
	any remaining filter buffers get flushed.

2002-05-16  Charles Kerr <charles@rebelbase.com>

	* pan/base/decode.c: append a carriage return at the end
	of the `one big file' that we make to pass into gmime.
	This is a temporary workaround of a gmime2 bug.

	* gmime/gmime-filter-yenc.c: fixed regression that caused
	end line of yenc encoding to not be detected.  This was
	causing crc errors in Pan.

	* pan/gui.c: sync with the draft 0.12.0 shortcut list.

	* pan/base/acache.c: fix cache bug introduced a few days ago.

	* pan/gui.c (Delete Last Task): add a shortcut (control-delete)
	and desensitize the button when there are no active tasks.

	* pan/message-window.c: added keyboard shortcuts to match the
	Gnome human interface guidelines.

	* pan/text.c: strike off a handful of pixels each time we
	page-down, so that the line that was at the bottom of the page
	is still visible at the top of the page after scrolling.
	Thanks to William Wu for suggesting this.

2002-05-15  Jeffrey Stedfast  <fejj@ximian.com>

	* pan/base/decode.c (get_array_of_decodable_parts_func): We don't
	need to check the content-type for multipart/* anymore.

2002-05-15  Charles Kerr <charles@rebelbase.com>

	(New Features)

        * pan/text.c: Tweak to `space reading': if a user selects an
	article without reading it, pressing the space key will then
	display that selected article.  And if the group selection
	changes, pressing the space key will load that group.
	Thanks to William Wu for reporting issues that led to these
	changes. (#81868)

	(Bug Fixes)

	* pan/gui-notebook.c: make the tab names map to the View menu's
	terminology.

	* pan/gui.c: added `space reading' back in the main menu.

	* pan/text.c: pay attention to the users' color preferences
	in the article pane on startup.

2002-05-14  Jeffrey Stedfast  <fejj@ximian.com>

	* pan/base/decode.c (get_array_of_decodable_parts_func): Ignore
	multipart parts.

2002-05-14  Jeffrey Stedfast  <fejj@ximian.com>

	* iconv-detect.c: Added (needed by the iconv detection
	configure.in script foo).

2002-05-14  Charles Kerr <charles@rebelbase.com>

	* configure.in: added gmime's iconv detection code to make
	Solaris happy.

	* pan/base/acache.c: convert all messages to utf-8 before
	saving them to the article cache.
	* pan/nntp.c: sync.

	* gmime/*: fix compiler warnings.

2002-05-14  Jeffrey Stedfast  <fejj@ximian.com>

	* gmime/gmime-stream-filter.c (stream_destroy): Removed (stale).

	* gmime/gmime-charset.c: Remove #include <unicode.h>. How did this
	ever compile for me?

	* gmime/gmime.h: Remove some #includes that Pan doesn't want.

2002-05-13  Jeffrey Stedfast  <fejj@ximian.com>

	* configure.in: Change GLIB_LIBS to include -lgobject-2.0 since
	GMime2 needs that.

	* gmime/*: Synced with HEAD gmime (aka GMime2)

	* pan/text.c (set_text_from_article_nolock): We can only do a
	part_foreach on multiparts now.

	* pan/base/decode.c (get_array_of_decodable_parts_func): Updated
	for gmime2.

	* pan/base/article.c (article_set_from_raw_message): Avoid
	directly accessing the message headers, instead use the accessor
	methods. This has the added benefit of making it so that changes
	to the location of these fields won't break this code :-)

	* pan/base/util-mime.c (construct_message_impl): Updated to use
	gmime2's API.
	(handle_inline_encoded_data): New function to convert text parts
	with inline encoded blocks (uu/yenc) into a multipart of encoded
	blocks.
	(look_for_uuencoded_data): Removed. Replaced by
	handle_inline_encoded_data.

	* pan/text.c (insert_part_partfunc): Updated to use gmime2's API.

2002-05-13  Charles Kerr <charles@rebelbase.com>

	(New Features)

	* pan/prefs.c: added another new prefs option, `get headers & bodies
	from subscribed groups at startup'.  This is the price for getting
	rid of rarely-used functions from the main menu. :)
	Thanks to Toby Inkster for suggesting this. (#81278)

2002-05-13  Pablo Saratxaga  <pablo@mandrakesoft.com>

	* configure.in: Added Vietnamese (vi) to ALL_LINGUAS

2002-05-12  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/acache.c: fixed a couple of potential overflow and
	implicit conversion errors.  This fixes the acache-never-shrinks
	bug reported by Bernard Debreil.  (#81464)

2002-05-11  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/text.c (set_current_article_impl): fix bug that caused
	long articles to scroll to the bottom when viewed in zoom mode.
	Thanks to Kang Jeong-Hee for reporting this bug. (#76110)

	(UI Tweaks)

	* made various strings more consistent

2002-05-09  Christophe Lambin <clambin@easynet.be>

	(i18n)

	* pan/message-window.c (build_nntp_message): if we're posting an
	article with more than just 7bit us-ascii, we end up with a blank 
	article, caused by a failed g_convert(UTF-8 -> charset). 

2002-05-08  Charles Kerr <charles@rebelbase.com>

	(UI Tweaks)

	* pan/prefs.c: made the preference dialog look a little bit nicer,
	cleaned up some of the phrasing, etc.

2002-05-08  Charles Kerr <charles@rebelbase.com>

	Pan 0.11.92 Released!

2002-05-07  Christophe Lambin <clambin@easynet.be>

	(UI Tweaks)

	* pan/message-send.c: Pan now puts the architecture in the User Agent
	header. Thanks to Colin Leroy for contributing this code. (#81029)
	* pan/smtp.c: same.
	* configure.in: sync.
	* pan/Makefile.am: sync.

	(Bug Fixes)

	* pan/thread-watch.c (thread_shutdown_module): fixed bug that caused 
	a segfault on shutdown when we could not write the 'threads.txt' file.
	Thanks to Corey Rogers for reporting this bug. (#81080)

2002-05-06  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/article-thread.c (normalize_subject): fixed bug that
	caused some articles to not be threaded properly.  Thanks to
	gauze for reporting this bug. (#80901)

	* pan/articlelist.c: fixed prev-article-read bug I introduced with
	last night's commit.  Colin called me on this one. :)  (#80893)

	(Queue)

	* pan/queue.c: updated some of the functions (abort, remove, move)
	to take a GSList of tasks so that these functions can be batched
	and only one change event instead of N can be fired to listeners.
	This fixes some of the responsiveness problems in the task manager.
	* pan/task-manager.c: sync.
	
2002-05-05  Charles Kerr <charles@rebelbase.com>

	(Article Selection & Activation)

	Now that there's a real offline mode, we can get rid of the last
	crackpipe feature in the menu: the "Download Bodies Too" button.
	Things should `just work'.  See articlelist_selection_changed_cb()
	and gui_page_activate_nolock() for the nasty state machines. :)

2002-05-04  Charles Kerr <charles@rebelbase.com>

	(More Offline)

	* pan/gui.c: added the often-requested "oops button",
	"File|Delete Last Task", to delete the currently-running task.
	* pan/queue.c: differentiate between deleting and aborting a task.
	* pan/task-manager.c: same.

2002-05-04  Charles Kerr <charles@rebelbase.com>

	(Xref speedups)

	* pan/base/server.c (server_has_group_in_type):
	* pan/base/server.c (server_get_named_group): removed.
	* pan/base/server.c (server_get_named_group_in_type): new function
	which fills the role of both previous functions.  In practice 
	has_group() was called before get_group(); merging the two functions
	avoids one search through the server's group list.
	* pan/base/article.c (article_xref_foreach): sync.
	* pan/base/message-check.c: sync.


2002-05-04  Charles Kerr <charles@rebelbase.com>

	(Online / Offline)

	* pan/prefs.c:
	* pan/base/gui.c:
	* pan/base/queue.c:
	* pan/base/server.c:
	* pan/base/task-manager.c:  Tore out all the old crap that pretended
	to be online/offline -- prompt before going online, per-server online
	settings, and code that equated zero connections with being offline --
	and replaced it with the one thing Pan _didn't_ have, which was a
	keyboard-accessable main menu button "File|Work _Online" which toggles
	Pan online/offline.  The queue knows the difference, as do the task
	manager and the main window's status bar.  It couldn't be simpler.

2002-05-03  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c: never disable the popup menu buttons in the
	header pane.  (#80275)

	* pan/message-window.c:  The compose window should have the same
	colors as the article pane.  Thanks to kingleo for reporting this
	and submmiting a patch.  (#80470)

2002-05-03  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/base/article.c (article_get_body): when the body's hidden in a
	header (i.e. article's in a folder), convert it to the right charset.
	This fixes cancelling articles in anything other that us-ascii.

2002-05-02  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/gui.c (gui_set_title_idle): fix small signed/unsigned bug
	in the number-of-articles-selected feature.

2002-05-02  Charles Kerr <charles@rebelbase.com>

	(Usability)

	* pan/gui.c: icon & shortcut tweaks from mdew and me.
	* pan/message-window.c: icon tweaks.
	* pan/pan.c: implement "--help" command-line argument
	* pan/xpm/: resize some icons to fit better in the menus.

2002-05-02  Charles Kerr <charles@rebelbase.com>

	(Useless Tweaking :)

	* pan/base/util-file.c (read_file): eh, you're right, we don't need
	to log an error each time we can't find a file -- some files don't
	exist unless the user has specific preferences set.  And if we're
	not going to log errors all the time, there's no point in keeping
	read_file() around, we can just call g_file_read_contents() directly.

2002-05-01  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/base/util-file.c (read_file): re-fixed to ensure that the file 
	string is zero-terminated. This was originally fixed in 0.11.1.92,
	but broken again in 0.11.90.

	* pan/dialogs/dialog-log-viewer.c (dialog_log_viewer): protected
	against starting multiple copies of the log viewer. Closing any
	of the additional viewers would result in a segfault.

	(Tweaks)

	* pan/message-window.c (append_signature): added an entry in the
	log if we can't read the signature file.

2002-04-30  Christophe Lambin <clambin@easynet.be>

	(UI Tweaks)

	* pan/gui.c (gui_set_title_idle): Added the number of selected articles
	to Pan's window title. This makes life easier when checking to see if 
	all the parts of a rar post are present. (#79338)

	* pan/articlelist.[ch] (articlelist_get_selected_count_nolock):
	New helper function to count the number of selected nodes.

2002-04-30  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/task-save.c (task_save_set_bodies): fix 0.11.91 cut-and-paste
	bug.  Thanks to Colin Leroy for reporting this bug. (#75591)

	* pan/task-save.c (task_save_run): fixed bug that didn't create new
	directories when specified to by the user to save article bodies.
	Thanks to Colin Leroy for reporting this bug and submitting
	a patch. (#80292)

	* pan/gui.c: fixed two menu typos reported by Marcel Telka.
	* pan/articlelist.c: fixed another menu typo reported by Marcel.

2002-04-29  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/articlelist.c (articlelist_set_selected_nodes_nolock): fixed 
	0.11.91 bug that would cause threads sometimes not to get expanded.
	Thanks to Frank Van Damme for reporting this bug.

2002-04-29  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/text.c: fixed 0.11.2.90 bug that failed to deccode yEnc-encoded
	text messages (such as .nfo files) properly when the user tried to
	read them inside Pan's text pane.  Thanks to William McBrine for
	reporting this bug. (#75136)

	* pan/message-window.c (create_body_pane_nolock): all quote levels
	have the same foreground color in the message composer. (#75999)

	* pan/identities/identity-ui.c: fixed 0.11.90 bug that kept new
	profiles from being saved.  This was just like the rule-ui.c bug
	that Chris found last week.
	
	* pan/identities/identity-edit-ui.c: fixed 0.11.90 bug that kept
	users from being able to edit their profile's custom headers.

2002-04-29  Abel Cheung  <maddog@linux.org.hk>

	* pan.desktop: Removed.
	* pan.desktop.in: New file.
	* Makefile.am: Add desktop rule.
	* autogen.sh: Replaced with GNOME 2 version.
	* configure.in: Add gettext related macros.
	* pan/pan.c: Use GETTEXT_PACKAGE for *textdomain*() calls.

2002-04-28  Charles Kerr <charles@rebelbase.com>

	Pan 0.11.91 Released!

2002-04-27  Charles Kerr <charles@rebelbase.com>

	(UI Tweaks)

	* pan/message-window.c: boldfaced the From:, Subject:, etc. headers.
	Thanks to mdew for suggesting this and mailing in a patch.

2002-04-26  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/task-manager.c: make the UI's contents utf-8 friendly.
	Thanks to Kang Jeong-Hee for reporting this bug.  (#80004)

	(Usability)

	* pan/gui.c: removed the `download bodies too:' checkbutton in the
	Newsgroup menu.  The checkbuttons were an experiment to reduce the
	number of menu options, but nobody understood them, so out they go.
	So I've re-added the "get new headers and bodies" action back.

	(Tweaks)

	* pan/articlelist.c (articlelist_set_selected_nodes_nolock): added
	major speedup for selecting threads and subthreads.

2002-04-25  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/text.c: if a message lies about its charset, fall back to the
	group's default charset.  Chris found this for me.  (#79377)

	(Usability)

	* pan/message-send.c (task_send_run): if posting fails, tell the user
	to check in the log for more information on why the posting failed.
	Thanks to Ville Ranki for suggesting this. (#69390)

	* pan/prefs.c: added "%G" and "%g", and a help button to explain what
	they mean, to the download_dir field for saving articles.
	Thanks to Hans Verkuil for suggesting this feature. (#75591)

2002-04-24  Charles Kerr <charles@rebelbase.com>

	(Rot13)

	* pan/gui.c: changed the rot13 code from rot13'ing the entire message
	to just the selected text, because usually just a punchline or spoiler
	paragraph is rot13'ed rather than the whole body.  You can still do
	"select article body" first if you want to do the entire message.
	Thanks to Jim at cosx for suggesting this. (#72015)

2002-04-23  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/rules/rule-ui.c (rule_dialog_new): fix bug where we weren't
	saving any new/deleted rules.

2002-04-23  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/text.c: fixed major memory leak that didn't free inline images.
	* gmime/gmime-utils.c: fixed minor memory leak.
	Thanks to Chris Lambin for reporting these bugs.

	* pan/filters/filter-new.c (filter_new_test_articles): fix 0.11.90 bug
	that caused filtering between new/unread/old to not work properly.
	Thanks to Philip Langdale for reporting this bug. (#79669)

	(Accelerators)

	* pan/gui.c: more cleanup of menus/accelerators/icons.
	* docs/pan_accelerators.txt: sync.

2002-04-22  Charles Kerr <charles@rebelbase.com>

	(Accelerators)

	* pan/article-toolbar.c: workaround the accelerator problem.
	This is a hack, but it's better than using ctrl-n to read each friggin
	article, or adding overriding accelerators in every darn pane. :P
	* pan/grouplist.c: same.
	* pan/gui.c: add the non-mondifier accelerators back in.
	* docs/pan_accelerators.txt: sync.

2002-04-22  Charles Kerr <charles@rebelbase.com>

	(Bug Fix)

	* pan/article-filter-ui.c: the close button didn't work on
	the help dialog.

	(Gnome2 Menus)

	* pan/gui.c: rearranged menus slightly, adding "Go" and "Tools",
	for slightly better Gnome2ness.

	(Cruft Removal)

	* pan/articlelist.c (articlelist_read_next): remove `cached only'
	* pan/articlelist.c (articlelist_read_next_unread): same.
	* pan/articlelist.c (articlelist_read_next_thread): same.
	* pan/articlelist.c (articlelist_read_next_unread_thread): same.
	* pan/articlelist.c (articlelist_read_prev_thread): same.

	* pan/article-actions.c: removed "save articles"
	* pan/article-actions.c: removed "delete selected threads"
	* pan/articlelist.c (articlelist_mark_read_thread_nolock): removed.
	* pan/articlelist.c (articlelist_mark_unread_thread_nolock): same.
	* pan/articlelist.c (articlelist_selected_copy_to_folder_deep_nolock): same.
	* pan/articlelist.c (articlelist_selected_move_to_folder_deep_nolock): same.
	* pan/articlelist.c (articlelist_selected_move_to_folder_nolock): same.
	* pan/articlelist.c (articlelist_selected_thread_download_nolock): same.
	* pan/group-action.c (group_action_download_all): same.
	* pan/group-ui.c (group_empty_dialog): same.
	* pan/base/newsrc-port.c: remove "do-backup" flag, just always do backup.
	* pan/prefs.c: sync.
	* pan/task-save.c: remove the select-parts dialog that nobody uses anymore.

2002-04-21  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/message-window.c (run_external_editor): fix 0.11.90 bug that
	didn't clear out the previous contents of the compose window before
	adding the contents from the external editor.
	Thanks to Kang Jeong-Hee for reporting this bug. (#74885)

	(Portability)

	* pan/base/util-file.c (pan_make_temp): use g_file_open_tmp().
	* pan/message-window.c (run_external_editor): use g_spawn_sync().

2002-04-20  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/text.c (insert_part_partfunc): If the message is of text/html,
	show it anyway.  Some idiots are posting to Usenet in HTML, and while
	blanking out their messages (the unintional behavior in 0.11) may be
	satisfying, it's probably better to let Pan users at least try to read
	the person's message.  Thanks to Himanshu J. Gohel for reporting this
	bug.  (#78723)

2002-04-19  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c: If an article was selected (for, say, a context
	menu operation), then clicking on the same article again wouldn't
	download & display the article; you had to double-click, which was
	nonintuitive.  Now clicking on an already-selected article will
	download & display the article.  Thanks to Dan Hensley for reporting
	this bug. (#78557)
	* pan/grouplist.c: ditto for groups. 

2002-04-19  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/group.h: added default_charset argument to Group struct.
	* pan/base/group.c (group_get_default_charset): new function which,
	if the user hasn't specified a default, returns "iso-8859-1".
	* pan/base/file-grouplist.c: bump file version number to 11 for the
	group's default charset
	* pan/text.c (insert_part_partfunc): when converting to UTF-8, if
	there's no charset specified for the article, use the group's
	default charset as the source charset.   Previously Pan defaulted to
	the user's charset, which doesn't necessarily match the group's
	language.  Thanks to Frank Van Damme for reporting this bug. (#79275)

	(Locale)

	* pan/pan.c (main): call setlocale (LC_ALL, "") after textdomain()
	to force the locale setments to update from the environment.  
	This fix was found in gnumeric.
	* configure.in: if we can't find bind_textdomain_codeset in libc,
	fall back to libintl.

	(Tweaks)

	* pan/base/util-mime.c: merge some tweaks from 0.11.3.

2002-04-13  Charles Kerr <charles@rebelbase.com>

	* pan/pan.c (main):  call bind_textdomain_codeset (PACKAGE,"UTF-8").
	Thanks to Kang for suggesting this. (#78158)

2002-04-10  Charles Kerr <charles@rebelbase.com>

	* sync with 0.11.3: gnksa_check_message_id was too strict on domains.

	* sync with 0.11.3: crash in util-mime. (#78287)

	* pan/base/pan-config.c: Fixed compile error on platforms that
	couldn't take NULL in a function expecting a va_list.  Thanks to
	chaton.jm for reporting this bug. (#78112)

2002-04-08  Christophe Lambin <clambin@easynet.be>

	* sync: with pan-0-11-fix 'edit rule' filter scroll bar.  (#62909)

2002-04-06  Christophe Lambin <clambin@easynet.be>

	* sync: with pan-0-11-fix 'save articles' dialog box title. 

	* sync: with pan-0-11-fix socket handling.  (#73179)

	* sync: with pan-0-11-fix pan.spec.in for gettext 0.11.

	(Build Fixes)

	* tests/test-filters.c: removed filter-read.h

2002-04-05  Charles Kerr <charles@rebelbase.com>

	Pan 0.11.90 Released!

2002-04-04  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/text.c (append_text_buffer_nolock): fixed bug that prevented
	URLs from being colorized.

	* pan/article-toolbar.c: only fire one "user changed filter" event
	if the user hits return multiple times, or just adds trailing spaces,
	or other things that don't affect the filter.

2002-04-03  Charles Kerr <charles@rebelbase.com>

	(Tweaks)

	* pan/identities/identity-ui.c: added mnemonics.

	(Bug Fixes)

	* pan/util.c (pan_dialog_parented): didn't call gtk_widget_show(),
	so the dialog never appeared.
	* pan/identities/identity-edit-ui.c: fixed GtkTextView->GtkEditable
	cast.

	(Filter)

	* pan/articlelist.c:
	* pan/article-toolbar.c:
	* pan/filter-current-ui.c:  Landed new filter code.

2002-03-30  Charles Kerr <charles@rebelbase.com>

	* pan/text.c: bugfixes.

2002-03-29  Christophe Lambin <clambin@easynet.be>

	* sync: with pan-0-11-fix to add server_is_valid/server_get_name.
	(70052)

2002-03-29  Christophe Lambin <clambin@easynet.be>

	Pan 0.11.2.91 Released!

2002-03-27  Charles Kerr <charles@rebelbase.com>

	(Bug Fix)

	* pan/xpm/Makefile.am: fix parallel builds.  Thanks to Artur Skawina
	for reporting this bug and proving a patch.

	(Tweak)

	* pan/save-ui.c: use pan_file_entry fields to let the user specify
	where to save articles/attachments.

2002-03-26  Charles Kerr <charles@rebelbase.com>

	(Tweaks)

	* pan/text.c: drop ~100 loc by adding text & image attachments
	in a cleaner way.
	* pan/prefs.c: fix oops

2002-03-25  Charles Kerr <charles@rebelbase.com>

        * sync: with pan-0-11-fix message-window size and
	"previous read article" changes. (75716, 76062)

	(Bug Fixes)

	* pan/group-ui.c: reorder the ``Empty Group'' dialog buttons to
	follow the g2 convention.  Thanks to Kang for reporting
	this bug.  (76217)

	* bugfix: coloring of quoted text in utf8 messages was wrong.
	Thanks to Tivo Leedjrv for reporting this bug. (74866)

2002-03-24  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/base/decode.c (decode_article): don't try to decode
	if all the necessary info is not available. This fixes a segfault
	when decoding a multi-part yEnc-encoded file that misses the 
	first part.

	* pan/base/nntp.c (nntp_download_headers): small cosmetic fix,
	calculating the number of articles that will be retrieved from the
	server. (75527)

2002-03-24  Jeffrey Stedfast  <fejj@ximian.com>

	upgrading gmime's charset support with a few slight mods to use
	g_alloca and the glib utf8 functions rather than gmime's own.

	* gmime-charset-map-private.h: New tables with some multibyte
	charsets: iso-2022-jp, shift-jis, euc-jp, euc-kr, iso-2022-kr,
	gb2312, Big5, and euc-tw. This should suffice for now.

	* gmime-charset.c: Updated code to generate the new tables.

	* gmime-utils.c: rfc2047 encoding now merges like-words.

	* pan/grouplist.c (grouplist_dialog_response_cb): Destroy the
	dialog no matter what the response. The user hath spoken.

2002-03-23  Charles Kerr <charles@rebelbase.com>

	* bugfix: highlighting of URLs in utf8 messages was wrong.
	Thanks to Kang Jeong-Hee for reporting this bug. (74866)

2002-03-22  Charles Kerr <charles@rebelbase.com>

	* all: Sync with pan-0-11-fix branches' quoted text patch.
        Now nonconformists not using '>' to quote text will still
	have their articles colored right in Pan. :) Thanks to Colin
	Leroy for contributing this code.  (68159, 75916)

2002-03-21  Charles Kerr <charles@rebelbase.com>

	* all: Sync with pan-0-11-fix branches' yenc & x-uuencode
	code.  (70368, 71330, 74798)

	* bugfix: Pan was crashing when leaving focus from either
	the grouplist or articlelist filter entry widget.

2002-03-20  Charles Kerr <charles@rebelbase.com>

	* gmime/*: update to gmime-1 snapshot that supports utf8
	* pan/pan.c: call gmime_init() for utf8

2002-03-19  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/queue.c (queue_get_socket_for_task): fixed crash that happens
	when Pan can't connect to the newsserver. Thanks to Aurelien Gouny
	for reporting this bug. (70858)

	(Tweaks)

	* pan/prefs.[ch]: new preference option, dictating whether failed tasks
	should be kept in the Task Manager. Thanks to Aric Campling for
	suggesting this. (75186)
	* pan/queue.c: sync.

2002-03-18  Charles Kerr <charles@rebelbase.com>

	* pan/message-send.c (build_nntp_message): convert the body from
	UTF-8 to the user-specified charset.

	* pan/dialogs/dialog-log-viewer.c (log_viewer_add_entry_nolock):
	convert strings to utf8 before adding to clist.  Tivo again.
	* pan/task-manager.c: rearranged the buttons.

	* pan/text.c: removed unused code.
	* pan/util.h: removed redundant macro.
	* pan/base/util-file.c: use g_alloca() instead of alloca().

	* pan/base/message-check.c: encode the From: header before
	testing it for validity.  Thanks to Tivo for reporting this bug.

	* pan/base/pan-glib-extensions.c: fixed bug in get_next_token_str()
	that I introduced yesterday.  Thanks to Tivo for reporting this bug.

	* pan/tests/test-glibext.c: added Tivo's sanity checks to
	ensure that utf8 tokenizing works correctly.

2002-03-17  Charles Kerr <charles@rebelbase.com>

	* pan/gui.c: cleaned up accelerators s.t. all of them
        require modifiers.

	* pan/message-window.c: let the users specify the charset they want
	to post with.  (Defaults to the one corresponding to their locale)
	* pan/message-send.c: set the charset="%s" accordingly.

	* pan/base/pan-glib-extensions.c: made is_nonempty_string(),
	pan_skip_token(), and pan_get_next_token_*() utf8-friendly

2002-03-16  Charles Kerr <charles@rebelbase.com>

	* pan/text.c: fix double-popup in text.c's GtkTextView.  Thanks to
	Kang Jeong-Hee for reporting this bug. (74867)

2002-03-15  Charles Kerr <charles@rebelbase.com>

	Upgrading from gmime 0.7.5 to 0.8.0...

	* gmime-charset: better charset support.

	* gmime-data-wrapper.c: adds uu support
	* gmime-filter-basic.c: same.
	* gmime-part.c: same (including "x-uuencode").
	* gmime-utils.c: sync.

	* gmime-filter-charset.c: added.
	* gmime-filter-yenc.c: added.
	* gmime-iconv-utils.c: added.
	* gmime-iconv.c: added.

2002-03-15  Christophe Lambin <clambin@easynet.be>

	Pan 0.11.2.90 Released!

2002-03-11  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/message-window.c: fixed memory leaks.
	* pan/identities/identity.c: fixed memory leaks.

2002-03-10  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/smtp.c (smtp_handshake): fixed a crash when posting from a
	system that doesn't have a resolvable hostname. Thanks to T'aZ for
	reporting this problem. (74129)

2002-03-09  Christophe Lambin <clambin@easynet.be>

	(Tweaks)

	* pan/dialogs/dialog-headers.c (download_headers_clicked_cb): the
	'Download Articles' dialog now switched the articlelist to the group
	when the headers have been downloaded. Since this dialog is mostly
	used to sample a (potentially large) group, this seems the more
	intuitive approach. Thanks to Himanshu J. Gohel for suggesting this.
	(66510)

	* pan/base/group.c (group_remove_articles): removed debugging info.

2002-03-08  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/article-actions (find_matching_sent_article): trying to cancel
	an unread article failed, as some information hadn't been downloaded
	from the server yet.  Thanks to Kerstin Rohlfs for leading me to
	this bug.  (64287)

2002-03-08  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/message-check-ui.[ch] (check_article_and_prompt): rewrite to
	avoid the use of gnome_dialog_run_and_close(). This fixes some
	potential threading issues (or does this potentially fix ... :-))
	(71440).
	* pan/message-send.[ch]: sync.
	* pan/message-window.c: sync.

2002-03-03  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/base/group.c (group_mark_all_read): ref the articles before
	marking as read. This fixes a 'group->_articles == NULL' assertion
	failure when marking as read a group that hadn't been loaded yet.

	* pan/queue.c (real_queue_set_paused): wake up the queue when
	it gets unpaused.

2002-03-02  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/prefs.c: fixes signal handling for several spinboxes so that
	changing the value directly always activates the OK button. (73180)

2002-02-28  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/article-thread.c (compare_pA_to_pA_by_part): new threading
	function for multi-parts. This takes care of the case where
	the part numbers aren't zero-padded (e.g. 1/10, i.s.o 01/10).
	Previously, this caused Pan to see those as incomplete binaries.
	(71647)

2002-02-27  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/message-window.c (populate_post_info_pane): send replies via
	email if the author specified an email address in the Followup-To
	header. (72608)

2002-02-26  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/base/group.c (group_empty): reset the counters when emptying
	the group. This ensures the grouplist counters are updated even
	when the group isn't loaded. (71645)

	* pan/prefs.c (edit_profile_dialog): when editing an exiting server
	profile, make the profile name non-editable. (72432)

	* pan/queue.c (queue_run_thread): if a task failed hopelessly, remove
	it from the queue, since there's no point in keeping it around. (71992)

2002-02-10  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes) 

	* pan/identities/identity-edit-ui.c (identity_edit_dialog_get_identity):
	If a profile's real name contains double quotes, convert them into
	single quotes and warn the user. Thanks to bruxy for reporting this.
	(68770)
	* pan/identities/identity.c (identity_set_author_real): same.
	* pan/identities/identity-xml.c (create_identity): sync.

2002-02-09  Christophe Lambin <clambin@easynet.be>

	(UI Tweaks)

	* pan/article-find.c: added Message-ID to the search criteria to align
	with the articlelist's phrase filter. Thanks to Pascal Valois for
	suggesting this. (68332)

2002-02-07  Charles Kerr <charles@rebelbase.com>

	(Tweaks)

	* pan/base/util-file (read_file): use a char* instead of a GArray
	if we know the size of the file in advance (ie, it isn't a FIFO file).
	* pan/base/acache.c:
	* pan/thread-watch.c:
	* pan/message-window.c:
	* pan/base/newsrc-port.c:
	* pan/base/file-headers.c:
	* pan/base/file-grouplist.c: sync.

2002-02-07  Charles Kerr <charles@rebelbase.com>

	Pan 0.11.2 Released!

2002-02-06  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/text.c (set_text_from_article_nolock): fix bug that caused
	"show all headers" to not display mime headers.

2002-02-05  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c (set_group_mainthread_end): fixed small 0.11.1
	memory leak.  This doesn't break the string freeze.

	(Tweaks)

	* pan/gui.c: small speedup.  Doesn't break string freeze.
	* pan/base/serverlist.c: ditto.

	* pan/base/server.c: use a GMime MemChunk instead of a GMemChunk
	for creating Group objects.

2002-02-03  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/group.c: broke the string freeze after only a few hours
	with this showstopper bugfix.  Sorry about that; no further changes
	planned. (70457)

2002-02-03  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/message-window.c: call strsplit_command_line_arguments()
	instead of g_strsplit() to ensure that quoted arguments are
	grouped together properly.  This fixes a problem with the external
	editor not working properly.
	* pan/base/pan-glib-extensions: added strsplit_command_line_arguments.

	(UI Tweaks)

	* pan/prefs.c: updated the list of external web browsers and
	external editors.

2002-02-01  Christophe Lambin <clambin@easynet.be>

	Pan 0.11.1.94 Released!
	
2002-01-31  Christophe Lambin <clambin@easynet.be>

	(Build Fixes)

	* pan/articlelist.c (articlelist_read_selected): build fix for
	yesterday's commit.
	* pan/gui.c (gui_page_activate_nolock): same.

2002-01-30  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/text.c (text_realize_cb): don't show the welcome message if
	an article has already been downloaded.  This keeps the welcome
	message from popping up over the first article for users who live
	in zoom mode.  Thanks to Stefan Van Theemsche and
	Douglas Bollinger for reporting this bug.

	* pan/gui.c (gui_queue_add): created a FIFO queue for processing
	async gui updates in the main thread.  Unlike run_in_main_thread(),
	which is replaced by this function, gui_queue_add() doesn't require
	a gdk lock.  Thanks to Gabi Davar for reporting the bug that led to
	this function being written.
	* pan/util.c (run_in_main_thread_nolock): removed obsolete function.
	* pan/grouplist.c:
	* pan/articlelist.c:
	* pan/status-item-view.c:
	* pan/text.c: sync.

	* pan/text.c: listen for group_emptied signals so that the text pane
	can call set_article(NULL) if the group that the curent article
	belongs to is cleared.  Thanks to Jean Ribiere for reporting this bug.

2002-01-29  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/util-file.c: Pan now handles '~' characters in
	the TMPDIR variable when creating temporary files.
	Thanks to Jukka Salmi for suggesting this change.
	* pan/message-window.c: same.

2002-01-28  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c (group_articles_removed_cb): fixed 0.10.0.93
	bug that caused the GUI to sometimes lock up when pulling down
	new headers.

2002-01-28  Christophe Lambin <clambin@easynet.be>

	Pan 0.11.1.93 Released!

2002-01-27  Charles Kerr <charles@rebelbase.com>

	(UI Tweak)

	* pan/articlelist.c:  leave the "delete all" button enabled
	even if no articles are selected.
	* pan/gui.c: same.

2002-01-24  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c (articlelist_articles_removed_cb): defer the
	"group == my_group" check to the mainthread function.  This is
	to settle contention with anything in the mainthread which could
	be changing the value of my_group.

2002-01-23  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/text.c: make sure an article is marked as read when it's read.
	Previously this was done in task-body, which is no longer called when
	the article is already cached.  Thanks to Tivo Leedjrv and
	Adrian von Bidder for reporting this bug.
	* pan/task-body.c: don't mark the article as read here; it's now
	done in pan/text.c as described above.

2002-01-22  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/queue.c (queue_run_thread): if a task fails, delete the socket
	connected with it, instead of reusing it, because the readbuf on that
	socket could be in a corrupted state.  This should fix some of the
	corrupted connection bugs reported recently (but is hard to test :(

	* pan/util.c (pan_lock_from): A handful of functions called from _idle
	funcs had been calling pan_lock() instead of pan_lock_unconditional(),
	so they were making gtk+ updates without a gtk+ lock.  Having the
	caller track which function to call is too error-prone, so pan_lock()'s
	been changed to handle all callers properly. 

2002-01-21  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c (articlelist_selection_changed_cb): added
	call to article_is_valid().  The previous sanity check would
	crash if the article was invalid.  See next bug.

	* pan/articlelist.c (articlelist_select_row_cb): add a
	group_ref_articles() before delegating to the main thread.
	Matching unref added to articlelist_select_row_idle.
	This fixes the "why was the article invalid in the first place"
	of the bug mentioned above.

	(UI Tweaks)

	* pan/filter-edit-ui.c (filter_edit_dialog_new): more gui work
	based on user feedback.

2002-01-21  Christophe Lambin <clambin@easynet.be>

	(Housekeeping)

	* configure.in: Bump version number to 0.11.1.92 to sync w/ tarball.

	(Bug Fixes)

	* pan/base/util-wrap.c (fill_body): silence an assertion failure
	when an article doesn't contain any text (other than the sig).

2002-01-20  Charles Kerr <charles@rebelbase.com>

	(GConf / gnome_config?)

	* pan/base/pan-config: new module that is currently just a thin
	wrapper around gnome_config.  This will get #ifdeffed in the future
	to add some basic functionality for a Windows build of Pan.

2002-01-20  Christophe Lambin <clambin@easynet.be>

	Pan 0.11.1.92 Released!

2002-01-20  Christophe Lambin <clambin@easynet.be>

	(UI Tweaks)

	* pan/filter-edit-ui.c (filter_edit_dialog_new): new layout to fit
	the 'Edit Filter' dialog in 800x600.

	(Bug Fixes)

	* pan/gui-headers.c (get_and_add_header_nolock): make sure to 
	decode 8bit-encoded headers before displaying them.

2002-01-19  Charles Kerr <charles@rebelbase.com>

	(Bug Fix)

	* pan/sockets.c (pan_socket_constructor): point SIGPIPE to SIG_IGN
	when each socket is constructed.  Calling just once at the start
	of the program reportedly doesn't stick in a pthreaded application.
	Thanks to Alen Williams for reporting this bug.

2002-01-18  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/group.c: added _deleted_articles field.  When
	an article is removed from a group, it's added to this list
	so that we can be sure to call the article_destructor when
	the group's article refcount goes to zero.  This fixes a fairly
	big memory leak.

	* pan/group.c (group_add_articles_remove_unused_impl): call
	the article destructor for each article that we're not keeping.
	This fixes a related memory leak.

	(Tweaks)

	* pan/base/util-wrap.c (rot13): rot13 inplace, instead of
	allocating a new string, to avoid an unnecessary
	malloc/free.

	* pan/base/gnksa.c:
	* pan/base/util-file.c:
	* pan/base/file-grouplist.c:
	* pan/articlelist.c: use a local buffer and g_snprintf for
	strings that we know will be small.  This is more anal-useless
	avoidance of malloc/free calls.

	* pan/base/article.c (articles_remove_flag):
	* pan/base/article.c (articles_add_flag): check to see which
	articles already had the flag so that fire_articles_changed()
	will only fire the articles that actually changes.

	* pan/base/article.c (article_has_body): small speed tweak.

2002-01-17  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/nntp.c (nntp_article_download_to_gstr): fix 0.11.1.91 bug
	that caused the zero termination to not get saved at the end of
	the acache file.

2002-01-17  Christophe Lambin <clambin@easynet.be>

	(UI Tweaks)

	* pan/articlelist.c: added 'read selected article' back to the
	thread list's popup menu.

2002-01-17  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/nntp.c (nntp_download_headers): fixed stupid bug that
	caused the crosspost header to not be saved.

	* pan/base/util-file.c (read_file): ensure that the file string
	is zero-terminated.  This fixes a bug that caused Pan to crash
	when decoding files. Thanks to Alen Williams for reporting this
	bug.

	* pan/base/group.c (group_mark_all_read): delgate the mark-read
	code out to articles_mark_read().  This fixes a bug that caused
	the "Mark Group as Read" menu button to not also mark crossposts
	as read.  As a side-effect of this change, the "group marked read"
	callback is no longer needed.

	(Housekeeping)

	* pan/articlelist.c (articlelist_group_marked_read_cb):
	* pan/base/group.c (group_get_group_marked_read_callback):
	* pan/base/group.c (fire_group_marked_read): removed unused function.

	(Attachments)

	* pan/message-window.c: more love to the attachments tab.
	It now shows what the estimated file size will be for base64,
	uuenc, and yenc.

2002-01-15  Charles Kerr <charles@rebelbase.com>

	(Attachments)

	* pan/message-window.c: Posting Attachments, part one:  this is
	how I'd like the attachments tab to look and behave.  It's all
	#ifdeffed out for now so as not to spoil 0.11.2.  Uncomment
	ATTACHMENTS on line 60 to try it out.

2002-01-15  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c (map_articlelist_cb): fixed 0.11.1.91 gui double
	lock bug.  Thanks to Douglas Bollinger for reporting this bug.

	(Tweaks)

	* pan/base/group.c (group_isolate_article): remove unused function.
	This used to be a poor-man's resync'ing for when articles were
	removed from a group.  However now that we call thread_articles()
	each time articles are removed, this is no longer necessary.

2002-01-15  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/prefs.c: removed the 'max. connections' from the 'Edit Server'
	dialog, since it's also available in the Online Settings' pane
	(which has a nicer UI :)). This fixes some inconsistent behaviour. 
	Thanks to Joseph Turian for reporting this.
	
	(Code Cleanup)

	* pan/prefs.[ch]: extra_posting_headers is obsolete.
	* pan/message-window.c (populate_post_info_pane): same.

2002-01-15  Charles Kerr <charles@rebelbase.com>

	(Bug Fix: grouplists being saved on load)

	* pan/base/file-grouplist.c: call server_init_groups() instead of
	server_add_groups().
	* pan/base/server.c (server_init_groups): new function like
	server_add_groups() that doesn't set the grouplist dirty flag.
	* pan/base/server.c (server_add_groups_impl): new function that
	now has most of the code that used to be in server_add_groups().
	server_add_groups() and server_init_groups() wrap around this.

        (Expand Threads by Default)

	* pan/prefs.h:
	* pan/prefs.c:
	* pan/articlelist.c: applied Bas Mevissen's patch to add this feature.

	(Tweaks)

	* pan/save-ui.c (save_attachment_as_dialog_clicked_cb): if the user
	specified a ~ in the save directory, replace the tilde with the
	user's home directory.

	* pan/prefs.c:
	* pan/base/gnksa.c:
	* pan/base/acache.c:
	* pan/task-manager.c:
	* pan/base/pan-glib-extensions.c:
	* pan/message-window.c: use g_snprintf instead of sprintf just to
	make the flawfinder tool's buffer overflow checker happy.

2002-01-14  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/nntp.c: Fixed obscure authentication bug introduced by
        0.11.1.90's SPA support.  Thanks to Avtar Marwaha for reporting
	this bug and to Marc Prud'hommeaux for providing this patch.

	(Housekeeping)

	* tests/test-gnksa.c: added a new regression test (which passes)
	to test a bug report that was sent in recently.

2002-01-14  Charles Kerr <charles@rebelbase.com>

	Pan 0.11.1.91 Released!

2002-01-13  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/gui.c (gui_set_page): defer this to a gui_set_page_idle func.
	This function can be (and is) called from outside the main thread.
	This was the cause of at least one "Xlib: async reply!" bug in
	0.11.1.90.

	* pan/gui.c (status_item_active_changed_cb): make sure the calls to
	run_in_main_thread_nolock() are wrapped in calls to pan_lock() and
	pan_unlock().  This is important because this is most often called
	from queue_run_thread(), which executes outside of the main thread.

	(Tweaks)

	* pan/base/article.c (article_xref_foreach): use alloca instead of
	g_strdup() to try to avoid avoidable heap memory management.

	(Code Cleanup)

	* pan/articlelist.c: made more variables const where possible.

	* pan/articlelist.c (articlelist_selection_changed_cb): removed
	redundant gui_page_set (MESSAGE_PAGE).  The page is set in text.c
	when the article is done downloading.

2002-01-12  Charles Kerr <charles@rebelbase.com>

	(Code Cleanup)

	* pan/articlelist.c: made some arguments const where possible.

	* pan/base/file-headers.c: removed the "Hello CVS Users!" error
	message; Chris' fix last week seems to have fixed this bug
	for good.

	* pan/articlelist.c: don't update the unread_children and
	new_children fields anymore; it's done in group_mark_all_read.
	* pan/base/group.c (group_mark_all_read): update the articles'
	unread_children and new_children fields appropriately when this
	is called.

2002-01-10  Charles Kerr <charles@rebelbase.com>

        (Bug Fix)

	* pan/base/article.c (articles_mark_read): when a set of articles are
	marked as read, then update the parents' "unread_children" field.
	This step was still tied to the GUI as a leftover from the days of
	Pan where the model and UI were lumped together.  This 'fixes' a race
	condition between model threads and the GUI main thread.
	* pan/base/article.c (articles_mark_new): same.
	* pan/articlelist.c (articlelist_unread_inc_nolock): increment code
	moved to articles_mark_read() (see above).
	* pan/articlelist.c (articlelist_new_inc_nolock): increment code
	moved to articles_mark_new() (see above).

	(Code Cleanup)

	* pan/base/group.c: now whenever a group has articles added to it or
	removed from it, the group is rethreaded s.t. it is always in a correct
	threading state.  When articles are removed, only the relatives of
	the removed articles need rethreading.
       	* pan/base/group.c (group_thread_articles_if_needed): removed.
       	* pan/base/group.h (Group): removed "articles_threading_dirty" field.

2002-01-09  Charles Kerr <charles@rebelbase.com>

	(UI Tweaks)

	* pan/task-save.c: feed all the articles to nntp_download_bodies(),
	since it will skip the ones in the local article cache anyway.  This
	fixes a small UI bug that, when a task was stopped and restarted,
	it would appear to begin again from zero.  Thanks to Ron KA4INM Youvan
	for reporting this.

	* pan/grouplist.c: when the group filter loses focus, activate the
	filter.  This prevents a situation where, when changing the filter
	without pressing enter and move on to another action, the filter isn't
	activated even though the Find: box shows the new filter.  Thanks to
	Jeff Lightfoot for suggesting this change.
	* pan/article-toolbar.c: same.

2002-01-09  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/articlelist.c (articlelist_set_filter_bits_nolock): don't check 
	my_group, since it is only set up on set_group_mainthread_end.
	This prevented the first group loaded from having the correct filter 
	settings applied. Thanks to Douglas Bollinger, Dan Hensley (among
	others) for reporting this.

	* pan/articlelist.c (set_group_mainthread_end): only get new headers
	once the articlelist is fully built.

2002-01-09  Charles Kerr <charles@rebelbase.com>

	(UI Tweaks)

	* pan/grouplist.c: keep the filter string when switching between the
	various view modes. This undoes the change made on 2002-01-05.

	(Housekeeping)

	* pan/gmime/internet-address.c: removed compiler warnings.
	* pan/gmime/gmime-param.c: same.
	* pan/acconfig.h: added #include <alloca.h> if system has alloca.h.

	* gmime/strlib.[ch]: removed gmime's reinvention of ANSI C functions.
	If a platform doesn't have strlen(), then it's just screwed. :)
	Removed: strncat, strcat, strchr, strrchr, strcpy, strncpy, strlen,
	memchr, strstr, strftime, localtime.
	* configure.in: sync.
	* acconfig.h: sync.

	* gmime/strlib.c (strncasecmp): replaced with a call to g_strncasecmp.
	* gmime/strlib.c (strcasecmp): replaced with a call to g_strcasecmp.

2002-01-08  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/base/group.c (group_ref_articles): lock the article_mutex while
	ref'ing the group. This fixes a number of threading issues, among
	which is the 'group->_article == NULL' assertion failure.

	* pan/base/group.[ch] (group_init_articles): non-locking version of 
	group_add_articles_remove_unused(). 

	* pan/base/file-headers.c (file_headers_load_{group|folder}): since 
	these are called from group_ref_articles, call group_init_articles() 
        to prevent a dead-lock.

2002-01-07  Christophe Lambin <clambin@easynet.be>

	Pan 0.11.1.90 Released!

2002-01-05  Christophe Lambin <clambin@easynet.be>

	(UI Tweaks)

	* pan/grouplist.c: clear the filter string when switching between the
	various view modes. Thanks to John LeMay Jr. for suggesting this.

	* pan/text.c (text_button_pressed): double-clicking a URL would open
	up to three browsers if the browser wasn't already running.  Thanks to
	Mart van de Wege for reporting this problem.

2002-01-04  Jeffrey Stedfast  <fejj@ximian.com>

	* gmime/memchunk.c (memchunk_clean): Oops, when tree_search()
	returns 0 we want to prune it, not the other way around :-)

2002-01-03  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/filters/filter-phrase.c (filter_phrase_set): use POSIX Extended 
	Regular Expression syntax, giving us support for operators like '?'.
	Thanks to Chris Petersen for reporting this problem.

2002-01-02  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/base/util-mime.c (look_for_uuencoded_data): Fixed a memory
	leak.

	* pan/message-window.c (populate_post_info_pane): Fixed two unitialised
	pointers that would cause Pan to segfault when posting. Thanks to
	John LeMay Jr. and Frank Van Damme for reporting this problem.

2002-01-02  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/util-mime.c (uu_get_char_len): fix bug that caused the
	wrong character length to be returned.

	* pan/base/util-mime.c (is_uu_len): fix bug that caused lines of
	nntp-server-generated taglines that began with a ' ' character
	to return TRUE.  Thanks to dave at dalrun for reporting this bug.

	(Tests)

	* tests/test-decode.c: added test to make sure that attachements
	with the character  in the filename will be decode properly.

	* tests/data/cache/noisy_*_2.msg: added a leading space in the
	nntp-server-generated taglines as a regression test against the
	decode bug fixed today.

	* pan/base/decode.c:
	* pan/base/acache.c: check the return value of fwrite to see if
	the entire content got written.  Thanks to Andrew May for
	suggesting this.

2002-01-01  Charles Kerr <charles@rebelbase.com>

	(SPA support)

	* pan/auth-spa.c: added support for Microsoft SPA authentication
        so that Pan will work with Microsoft NNTP servers.  Thanks to the
        Samba team for writing SPA authentication code and to
        Marc Prud'hommeaux for patching it into Pan!

2001-12-30  Jeffrey Stedfast  <fejj@ximian.com>

	* gmime/memchunk.c (memchunk_clean): Prune 'cleaned' nodes from
	our free-node list. Thanks to Charles Kerr for discovering this
	bug.

	* gmime/strlib.c (strncasecmp): Moved the return calculation to
	within the loop so as to only take a difference if the strings are
	not identical. This also fixes a bug that would falsely return
	non-zero for strings that were identical for the first n bytes.

2001-12-30  Charles Kerr <charles@rebelbase.com>

	(Bug Fix)

	* pan/queue.c (queue_init): added pthread_mutex_init() call for
	the task_lock mutex.  Thanks to Christian Suder for reporting
	this bug.

	* pan-images.spec.in: removed file.  Thanks to Bas Mevissen for
	reminding me about this.

2001-12-29  Charles Kerr <charles@rebelbase.com>

	(Tweak)

	* pan/sockets.c (socket_constructor): only call sigaction()
	the first time we open a socket; duplicate calls are unnecessary.
	Thanks to Kari Hameenaho for suggesting this.

2001-12-28  Charles Kerr <charles@rebelbase.com>

	(Bug Fix)

	* pan/base/pan-glib-extensions.c (pan_str_unescape): don't crash if
	the input string is NULL.  Thanks to Roger Gregory for reporting
	this bug.

	(Tweak)

	* pan/rules/rule-xml.c (get_attributes): don't add NULL strings
	into the properties hash table; it's unnecessary.

2001-12-28  Christophe Lambin <clambin@easynet.be>

	(Tweaks)

	* pan/identities/identity-xml.c (identity_xml_write): first write
	the profiles to a temp file and then rename to profiles.xml. This
	avoids corrupted profiles as a result of problems during write.
	* pan/filters/filter-xml.c (filter_xml_write): same.
	* pan/rules/rule-xml.c (rule_xml_write): same.

2001-12-28  Charles Kerr <charles@rebelbase.com>

	(Bug Fix)

	* pan/queue.c (queue_run_thread): fixed crash that occurred
	when cancelling some tasks.

2001-12-28  Simos Xenitellis  <simos@hellug.gr>

	* CREDITS: Addition of myself to section TRANSLATION of 0.11.1.   
	* configure.in: Added "el" to ALL_LINGUAS.

2001-12-21  Jeffrey Stedfast  <fejj@ximian.com>

	(GMime)

	* acconfig.h: Include more defines for GMime, hopefully this will
	fix the cvs compile problem some people are having...

	* gmime/memchunk.c (memchunk_clean): Fixed a memory leak.

2001-12-20  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/acache.c (acache_expire_messages): add a mutex lock
	where needed.

	* pan/identities/identity-edit-ui.c (identity_from_identity_tab):
	strip out leading/trailing spaces on names, email addresses, etc.

	* pan/identities/identity-ui.c (edit_dialog_clicked_cb): instead
	of crashing, give a warning dialog if the edited profile is
	incomplete.  Fixes bug 67311.

2001-12-19  Charles Kerr <charles@rebelbase.com>

	(New/Unread/Old)

	* pan/base/group.c (group_mark_all_read): don't bother marking
	articles as old here.

	* pan/base/file-headers.c (file_headers_load_group): if the article
	is read, then turn off the is_new flag.

2001-12-18  Charles Kerr <charles@rebelbase.com>

	(GMime)

	* pan/gmime/*: updated GMime snapshot.

	(Regression Tests)

	* pan/tests/test-filter.c: started filling out the filter tests.

	(Lots More Tweaks)

	* pan/base/acache.c: use gmime's MemChunk instead of GMemChunk.
	* pan/base/file-headers.c: same.
	* pan/base/group.c: same.
	* pan/base/log.c: same.
	* pan/base/server.c: same.

	* pan/base/article.c (article_get_header): renamed
	article_get_extra_header for pulling out unusual headers;
	all the common headers should be fetched directly from 
	the Article struct's fields.

	* pan/base/article.c (article_get_author_str): use an inbuf
	instead of allocating from the heap.

	* pan/base/gnksa.c (is_*_char): avoid strchr calls.

	* pan/base/gnksa.c (gnksa_do_check_from): use an inbuf for the
	address and realname instead of allocating off the heap.

	* pan/base/gnksa.c: use alloca where sensible.

	* pan/status-item-view.c: removed unused field `of_100'.
	
2001-12-18  Christophe Lambin <clambin@easynet.be>

	(Build Fix)

	* po/POTFILES.in: small fix for the moved filter files.

2001-12-17  Charles Kerr <charles@rebelbase.com>

	(Even More Tweaks)

	* pan/articlelist.c (articlelist_get_subject): now takes an inbuf
	to avoid another malloc/free.

	* pan/queue.c (queue_new_todo): use g_new instead of g_new0 because
	we fill in all the fields by hand anyway.
	* pan/queue.c (queue_get_socket_for_task): same.

	* pan/status-item-view.c: make the 'last_status' field a GString
	instead of a gchar*, so that when a new one comes in we can reuse
	the gstring's buffer via g_string_assign(), avoiding a free/malloc.

	* pan/status-item-view.c (string_shorten_nolock): avoid a pile full
	of strlen() calls by keeping track of the length each time we remove
	a character.

	* pan/text.c (make_clickable_parts): for each hardcoded needle,
	also hardcode the strlen() of the needle so that we don't have
	to constantly recalculate it.

2001-12-17  Charles Kerr <charles@rebelbase.com>

	(More Tweaks)

	* pan/base/article-thread.c (thread_articles): Added a GString so
	that we can reuse its buffer in the march-through-references loop.

	* pan/base/group.c (group_alloc_new_article): use g_new instead of
	g_new0, because article_constructor initializes the fields anyway.
	* pan/base/server.c (server_alloc_new_group): same.

	* pan/base/status-item.c (status_item_emit_status_va): since these
	are short fits-in-a-gtkprogress messages, use a stack buffer and
	g_vsnprintf() instead of the more expensive g_strdup_vprintf().
	* pan/base/status-item.c (status_item_emit_error_va): same.

2001-12-17  Charles Kerr <charles@rebelbase.com>

	(Tweaks)

	* pan/base/acache.c (get_file_message_id): remove two strlen calls.

	* pan/base/acache.c (acache_set_message): new argument passes in the
	message len so that we don't have to calculate its length.
	* pan/nntp.c (nntp_article_download): we know the length; pass it in.

	* pan/base/acache.c (acache_get_message): call acache_has_message()
	first, as it's much cheaper than testing the filesystem for the file.

	* pan/base/acache.c (acache_has_message): added sanity check.

	* pan/nntp.c (set_header_if_match): pass in the length of the key
	we're looking for so that we don't have to recalculate it.
	* pan/nntp.c (nntp_article_download): we know the length; pass it in.

2001-12-14  Charles Kerr <charles@rebelbase.com>

	(Housekeeping)

	* pan/filters/filter-*-ui.[ch]: moved thes files up into the GUI
	directory so that libfilters won't have to link against gui libs.
	* pan/test/test-filter.c: added a boilerplate for filter unit tests.

2001-12-14  Charles Kerr <charles@rebelbase.com>

	* pan/base/file-grouplist.c: fixed some issues with the grouplist
	file format 10 commited yesterday.

2001-12-13  Christophe Lambin <clambin@easynet.be>

	(Stable 'two-key' Sorting)

	* pan/group.[ch]: added the old sort key.
	* pan/file-grouplist.c: bumped up version number to 10 for the 'old 
	sort key' field. We now save both the old and new sort keys for each 
	group to keep the sort settings across Pan sessions.
	* pan/articlelist.c: sync.

2001-12-13  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/util-mime.c (pan_g_mime_parser_construct_message): ensure
	that the article body is non-NULL before calling strlen() on it.
	This fixes bugzilla #66853.

	* pan/base/article.c (article_get_body): If the article is invalid,
	return an empty string instead of a NULL pointer, so that clients
	can safely assume that no matter what they'll have a string to use.

2001-12-12  Charles Kerr <charles@rebelbase.com>

	(UI Tweaks)

	* pan/articlelist.c: since Christophe fixed my bugs from yesterday,
	now I have to introduce new bugs.  This changes the subjects of
	collapsed threads from "subject" to "subject (u)" where u is the
	number of new replies.  I haven't decided if I like this or not
	and am committing to get some feedback from the pan-users CVS users.

2001-12-12  Christophe Lambin <clambin@easynet.be>

	(Message IDs)

	* pan/identities/identity.[ch]: added a field to hold a custom fqdn
	for Message ID generation. 
	* pan/identities/identity-xml.c: sync.
	* pan/identities/identity-edit-ui.c: sync.

	* pan/message-window.c (populate_article_from_mw): if the selected
	profile has a fqdn, use it to generate the MessageID.

	(Bug Fixes)

	* pan/prefs.c (prefs_apply_cb): fixed a crash when trying to set
	custom foreground and/or background colors. This seems to be related
	to some GTK themes causing gtk_rc_get_style() to return NULL.
	Thanks to T'Az and Krishna Naik for reporting this problem.

	* pan/prefs.c: fixed some issues with yesterday's commits.

2001-12-11  Charles Kerr <charles@rebelbase.com>

	(UI Tweaks)

	* pan/prefs.c: added a help dialog to show the date format strings.
	* pan/prefs.c: moved "Layout" to the "Display" section
	* pan/prefs.c: moved News/Mail to "Servers - News" and "Servers - Mail"

        * pan/message-window.c: Clicking on the "Use External Editor" in the
	message composer now desensitizes the entire message composer window
	until the external editor has been closed.  This fixes all kinds of
	possible issues such as pressing the edit button twice, or hitting
	send while the external editor's still open, etc.

2001-12-09  Charles Kerr <charles@rebelbase.com>

	(New/Unread/Old/Read)

	Committed first draft of the changes described on pan-users.

2001-12-09  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/message-window.c (populate_post_info_pane): if Followup-To is
	set to 'poster', only send the article as an email. Thanks to 
	Christian Lohmaier for reporting this.

2001-12-07  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/task-headers.c: after deleting all headers, 'Get New Headers'
	would download an old header.

2001-12-06  Christophe Lambin <clambin@easynet.be>

	(UI Tweaks)

	* pan/prefs.c: modified the layout somewhat to make the Preferences
	window smaller. It now fits on a screen running at 800x600.

2001-12-06  Charles Kerr <charles@rebelbase.com>

	(GUI Headers)

	* pan/base/article.h (article_get_newsreader): removed unused func.
	* pan/base/article.h (article_get_header_run_hash): new function.
	* pan/base/run.[ch]: new module.
	* pan/gui-headers.c: use article_get_header_run_hash.

	(Strings on the Stack)

	* pan/base/pan-glib-extensions.h: pan_strdup_a: new alloca macro.
	* pan/base/pan-glib-extensions.h: pan_strndup_a: same.

2001-12-06  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/article.h: the replaced 'supercede' with 'supersede'.
	Apparently my "fix" for 0.11.1 was wrong.  son-of-1036 is explicit
	that there is no 'c' in supersede. :)

	(Usability)

	* pan/base/acache.c (acache_init): log a warning if the cache
	directory can't be read.  

	* pan/base/util-file.c (directory_check): log a warning if the
	directory can't be found and/or created.

2001-12-05  Charles Kerr <charles@rebelbase.com>

	Pan 0.11.1 Released!

2001-12-05  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/file-grouplist.c: fixed bug that caused upgrading from
	really old versions of Pan difficult.  Thanks to Brandon McCombs
	for reporting this bug.

2001-12-04  Charles Kerr <charles@rebelbase.com>

	(Housekeeping)

	* NEWS:
	* README:
	* configure.in: Bump version number to 0.11.1.

	(Bug Fixes)

	* pan/queue.c: fix a handful of mutex-related bugs.

2001-12-04  Duarte Loreto <happyguy_pt@hotmail.com>

        * configure.in: Updated to add new translation to Portuguese (pt) in ALL_LINGUAS.
        * NEWS: added pt translation to New features (as told in po/README_TRANSLATORS.txt)
        * CREDITS: Added pt translation to credits for 0.11.1

2001-11-03  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/util-file.c (check_directory): make sure there's always
	a G_DIR_SEPARATOR at the end of the path before we call mkdir.
	Apparently Mac OS X hates the trailing /.  Thanks to Max Horn
	for reporting this.

	* pan/test (Makefile.am): explicitly link against $(INTLLIBS).
	Thanks to Max Horn for reporting this.

	* pan/all-over-the-place: changed invocations of ctype's
	isxxx(*pch) from isxxx((int)*pch) to the correct
	isxxx((guchar)*pch).  Thanks to Morten Welinder for reporting
	this bug.

2001-12-02  Wang Jian  <lark@linux.net.cn>

	* configure.in(ALL_LINGUAS): Added zh_CN for Simplified Chinese.

2001-11-28  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/article.h (HEADER_SUPERSEDES): s/supersede/supercede/.
	* pan/article-actions.c: same

2001-11-27  Christophe Lambin <clambin@easynet.be>

	(GUI Headers)

	* pan/gui-headers.c (gui_headers_set_nolock): added the newsreader as
	one of the displayable headers. This basically looks for the article's
	'User Agent', 'X-Newsreader' or 'X-mailer' header and displays the
	value.  Thanks to Jim22 for requesting this feature.
	* pan/gui-headers.h: same.
	* pan/prefs.c (prefs_text_page): same.

	* pan/base/article.c (article_get_newsreader): new function for
	easily extracting the above.
	* pan/base/article.h: same.

2001-11-27  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/gnksa.c (gmtime_r): fix typo that caused Pan to not
	compile on Mac OS X.  Thanks to Max Horn for reporting this.

	(UI Tweaks)

	* pan/articlelist.c: the left/right arrow keys now collapse/expand
	the currently-selected threads.  Thanks to Chris Petersen and
	Martin Wulffeld for suggesting this.

	(Housekeeping)

	* configure.in: bumped version number.
	* README: same.
	* Makefile.am: added depcomp because automake is only human.

2001-11-26  Charles Kerr <charles@rebelbase.com>

	(Acache Tweaks)

	* pan/base/acache.c: changed the lookup table's key from filename to
	Message-Id.  We always have the Message-Id, but the filename is
	derived, so this saves needless derivation cycles.

	* pan/base/acache.c: removed "filename" from acache's internal tables.
	The filename was only used when removing an article from the cache,
	which is uncommon enough that we're better off deriving the filename
	at that point instead of using memory & cycles to keep it all the time.

	(Small Bugfixes)

	* pan/base/article.c (articles_set_read): add missing debug_exit().

	* pan/base/decode.c: cast to avoid Solaris warning.

	* pan/gui.c (navigation_menu): Fix typo.  Thanks to Nam SungHyun for
	reporting this bug.

2001-11-25  Charles Kerr <charles@rebelbase.com>

	(Paranoia)

	* pan/base/article.c (article_set_from_raw_message): new safety checks.
	* pan/base/article.c (set_from_raw_init_header_gmhfunc): same.

	* pan/base/gnksa.c (generate_message_id_from_email_addr): added
	g_warning if an invalid email address is passed in.

	(Random Tweaks)

	* pan/base/pan-glib-extensions.c (get_next_token_range): renamed to
	the more-accurately-named get_next_token_run, 

2001-11-24  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c (fire_group_chnaged): since this is an idle func,
	we need to return 0 here or the function will keep being fired
	forever, pegging the CPU when the user hits "empty group".

	* pan/message-send.c: when sending articles, make sure to ref/unref
	PAN_SENT's articles, because the article being sent is placed into
	that folder, and the article needs to stay alive for the entire span
	of the task.

	* pan/base/article.c (article_is_valid): the group-has-a-memchunk
	check was not valid for folders, which prevented articles from being
	posted correctly.  Moved the group check up to a call to
	group_is_valid(), which is a better place to keep group's
	implementation details.

	* pan/base/group.c (group_is_valid): if the group isn't a folder and
	the article refcount is >0, make sure _article_chunk!=NULL.

2001-11-24  Christophe Lambin <clambin@easynet.be>

	(Bug Fix)

	* pan/base/newsrc-port.c (newsrc_import): fixed segfault when the
	newsrc file exists, but Pan is unable to read it (e.g. permissions).
	Thanks to Joris Lambrecht for reporting this bug.
	
2001-11-23  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/article-thread.c (check_multipart_articles): now parts 2..n
	are marked MULIPART_ALL or MULTIPART_SOME.  Previously only the first
	article was marked this way, which caused troubles when filters looked
	at individual articles to see if they were complete/incomplete.

2001-11-22  Charles Kerr <charles@rebelbase.com>

	(Random Tweaks)

	* pan/base/util-mime.c (pan_header_is_8bit_encoded): new function.
	* pan/base/article.c (article_set_author_from_header_impl): remove
	at least six malloc/free calls per call.
	* pan/nntp.c (nntp_download_headers): remove at least four malloc/free
	calls per header downloaded.
	* pan/nntp.c (nntp_article_downloaded): remove at least nine
	malloc/free calls per article body.  Yes, I know this is unimportant,
	I just don't want to start anything big before family gets here. :)

2001-11-21  Charles Kerr <charles@rebelbase.com>

	(Build Fix)

	* pan/thread-watch.c (thread_set_state): renamed pan_thread_set_state
	to avoid name collision with Mac OS X.
	* pan/thread-watch.c (thread_get_state): renamed pan_thread_get_state
	to avoid name collision with Mac OS X.
	* pan/articlelist.c: sync.
	* pan/filters/filter-thread.c: sync.
	* pan/rules/rule-action.c: sync.

	* configure.in: added gmtime_r and localtime_r checks.
	* pan/base/gnksa.c:  If gmtime_r or localtime_r aren't available,
	define them here.  Thanks to Max Horn for these Mac OS X fixes.

	(Random Tweaks)

	* pan/base/pan-callback.c: try to handle the steady state without any
	heap memory allocation or mutexes.

2001-11-21  Christophe Lambin <clambin@easynet.be>

	(Bug Fix)

	* pan/filters/filter-xml.c (populate_top): fixed a bug that caused 
	non-visible filters to reappear after restarting Pan. Thanks to
	Douglas Bollinger for reporting this.

2001-11-20  Christophe Lambin <clambin@easynet.be>

	(Filters)

	* pan/base/file-grouplist.c (read_group_data/write_groups): bumped up 
	file version to 8. We now also save the group's filter_show field 
	('Which Articles to Show').  Thanks to Uli Wachowitz for suggesting 
	this.

2001-11-20  Charles Kerr <charles@rebelbase.com>

        * If some bozo includes a windows pathname in the filename of an
          attachment, strip out that pathname.

2001-11-19  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

        * pan/articlelist.c (headers_fetched) fixed 0.11.0 bug that, when an
	empty group was activated, Pan would go to the server twice for new
	headers instead of once.  In addition to pointless load, if you were
	really unlucky there would be one or two new articles in the second
	load, marking the ones from the first run and leaving you scratching
	your head "how did I just download a batch of old articles from a
	new group?" :)

	(Usability)

	* pan/task-save.c (task_save_run):  Don't fail the task if we fail to
	decode an article that appears to not have attachments: the user may
	have left the "save attachment" button on in the "save article" dialog
	and shouldn't be penalized for that.

	(Safety Checks)

	* pan/base/article.c: added more sanity checks to check the validity
	of arguments passed in to artcile functions.

2001-11-18  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/save-ui.c: commit bugfix patch provided by Joseph Turian.

	* pan/task-save.c: fix a memory leak reported by Rick at mynet.dhs.org.

2001-11-17  Charles Kerr <charles@rebelbase.com>

	(Fixes for Terrible Bugs)

	* pan/base/file-headers.c (file_headers_save_group):
	* pan/base/file-headers.c (file_headers_save_folder): call
	directory_check() to ensure that the directory exists before
	we open the save file.
	* pan/base/file-headers.c (file_headers_save_group):
	* pan/base/file-headers.c (file_headers_save_folder): changed the
	return val from void to boolean so that the caller can know if the
	save failed.
	* pan/base/file-headers.c (file_headers_save_group):
	* pan/base/file-headers.c (file_headers_save_folder): log an error
	to the Pan Error Log if the save failed.
	* pan/base/util-file.c (pan_rename): return a gboolean, instead
	of a void, so that the caller can know if the rename was successful
	or not and take appropriate actions.
	* pan/base/util-file.h: sync.

	(Save State)

	* pan/base/server.c (server_add_groups): save the server's grouplist
	to disk whenever groups are added.
	* pan/base/serverlist.c (server_folders_load): when adding Pan's
	builtin folders, make sure to batch them up into a single call to
	server_add_groups() s.t. the grouplist is only saved once.  All other
	callers already batched the added groups...
	* tests/test-newsrc.c:
	* tests/test-decode.c:
	* tests/test-message-check.c: turn off autosaving off in places of
	regression tests where it makes no sense.

	(Usability)

	* pan/task-grouplist.c: make some status messages clearer.
	* pan/task-headers.c: same.


2001-11-16  Charles Kerr <charles@rebelbase.com>

	(Clear Groups)

	* pan/group-ui.c (group_empty_dialog): reworked this to handle
	multiple groups in a single dialog, instead of having one dialog
	per group.  Thanks to Vadim Berezniker and Jim Henderson for
	suggesting this feature.

2001-11-15  Christophe Lambin <clambin@easynet.be>

	(Bug Fix)

	* pan/queue.c (queue_run_thread): when a task fails, give the queue
	a nudge. This should fix the stalled queue problem reported by
	Alex V Flinsch, Alan Young and Gabi Davar.

2001-11-14  Charles Kerr <charles@rebelbase.com>

	(More Build Fixes courtesy of Alan Young)

	* pan/articlelist.c: changed some "g*array->len > 0" to
	"g*array->len > 0u" to make Compaq's C compiler happy.
	* pan/text.c: same.

	* pan/base/Makefile.am: add GTK_CFLAGS to INCLUDES.
	* pan/filters/Makefile.am: same.
	* pan/identities/Makefile.am: same.
	* pan/rules/Makefile.am: same.

2001-11-14  Charles Kerr <charles@rebelbase.com>

	(Pedantic)

	* pan/base/argset.h: the function passed to pthread_create()
	needs to return a void*, not void.
	* pan/rules/rule-ui.c: worker thread func return a void*, not void.
	* pan/grouplist.c: same.
	* pan/queue.c: same.

	* pan/base/decode.c: changed some C++-style comments to C-style.
	* pan/article-toolbar.c: same.
	* pan/gui.c: same.

	* pan/base/article.c: added explicit uchar/char casts.
	* pan/base/util-mime.c: same.
	* pan/filters/filter-xml.c: same.
	* pan/filters/rule-xml.c: same.
	* pan/filters/identity-xml.c: same.
	* pan/nntp.c: same.
	* pan/text.c: same.

	* pan/base/article.h: removed a comma from end of an enum list.
	* pan/base/article-thread.h: same.
	* pan/base/message-check.h: same.
	* pan/filters/filter-phrase.h: same.

	* pan/articlelist.c: "static struct arrayname [];" isn't legal --
	  remove the static keyword to make ansi happy.
	* pan/text.c: same.

2001-11-13  Charles Kerr <charles@rebelbase.com>

	(Layout)

	* pan/gui.c (gui_shutdown): fix bug that incorrectly saved the
	hpaned/vpaned values for layout type 5 (3 vertically stacked panes).
	Thanks to Douglas Bollinger and Erik W. Hanson for reporting this bug.

	* pan/gui.c (toggle_pane_visiblity): only rebuild the layout if the
	new state != the old state.  This prevents the layout from being
	rebuilt three unnecessary times during startup when initializing the
	menu widgets.
	* pan/gui-paned.c: sync.

	(GUI Paned/Notebook)

	* pan/gui.c: rewrote all the crufty gui-paned/gui-notebook code.  Now
	keyboard activation is be more consistent between the two layouts.
	* pan/gui-notebook.c: same.
	* pan/gui-paned.c: same.

	(Thread/Unthread Header Pane)

	* pan/prefs.c (header_pane_is_threaded): new variable for prefs_init().
	* pan/gui.c: save header_pane_is_threaded to gnome_config() on exit.
	* pan/articlelist.c: use header_pane_is_threaded.  This solves a bug
	with having to press the thread/unthread button twice before it would
	work properly.  Thanks to Jed Baer for reporting this bug.

	(Grouplist Usability Changes)

	* pan/grouplist.c: remembering the last Pan session's group_mode is
	not really in sync with what would be most usable -- almost always
	people want to see "subscribed" for daily use, and then look at "all"
	if want to subscribe to a group.  The new scheme uses this fact to
	decide the mode: when bootstrapping/switching to a server, if the
	server has subscribed groups, we set the view to "subscribed".
	Otherwise it's likely the user wants to subscribe to some, so we set
	the view to "all", and if there are no groups, also show the
	"download group list?" dialog.

	* pan/grouplist.c: whenever loading a server and we can't find any
	groups for that server, show the "download group list?" dialog.
	Previously this was only done the first time, for new users.

	(Plumbing)

	* pan/base/file-grouplist.c (file_grouplist_exists): now returns a
	ServerGroupsType instead of a bool so that you can tell what _type_
	of groups exist.

	* pan/base/file-grouplist.c (save_groups_to_file): if no articles
	exist in a grouptype, unlink the corresponding .dat, .idx files.

	* pan/base/group.c (groups_set_subscribed): when the subscribed
	state of groups change, save the affected grouplists for safekeeping.

2001-11-12  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c (articlelist_selection_changed_cb): ack,
	we were leaking a GPtrArray each time we read an article!

	(Usability)

	* pan/gui.c (view_menu): renamed the 'zoom' functions' menu text to
	to something more easily understood.  Thanks to Cory Dodt for this
	suggestion.

	* pan/article-toolbar.c (article_toolbar_new): added "filter by
	message-id" to the article toolbar's filter.

	* pan/gui.c (gui_key_press_cb): shift-delete will delete threads
	again now.  This went away for awhile for no apparent reason.  Thanks
	to Kevin (kevlinux) for bringing this to my atttention.

	* pan/dialogs/dialog-newuser.c (get_default_news_server):  If the
	environment variable NNTPSERVER isn't set, get the host's domain and
	prepend it with "news.".  This should correctly guess the news server
	for most .edu sites and domestic cable modem users.

2001-11-11  Charles Kerr <charles@rebelbase.com>

	(Usability)

	* pan/gui-paned.c (gui_paned_enter_clicked_nolock): if >1 article
	is selected when Return is pressed, download & show the first article
	as before, but also download articles 2..n in a second task.  Thanks
	to Cory Dodt for suggesting this improvement.

	* pan/base/article.c (article_get_unique_threads): the return array
	should maintain the sort order of the incoming articles, instead
	of in an unordered bag.  For example when the user hits "Download
	Threads", one wants to see the articles download from the top article
	on down, rather than in a random pattern.  Thanks to Cory Dodt for
	suggesting this improvement.

	(Bug Fixes)

	* pan/base/acache.c (acache_set_message): fix bug that caused the
	article cache to grow larger than the user-specified maximum.
	Thanks to Muralito and Alan Young for reporting this bug.

	* pan/base/article.c (article_get_thread_message_id): return the right
	message-id even if the Article passed in has a broken References:
	header.  We do this by walking up the article hierarchy (because
	article_thread does a pretty good job of threading even without
	References) before looking at the References: header.  This fixes a
	bug that kept some threads from being Watched or Ignored properly
	when the user hit Watch or Ignore.  Thanks to David Watson for
	reporting this bug.

2001-11-10  Charles Kerr <charles@rebelbase.com>

	(Usability)

	* pan/base/decode.c: if the decode file can't be created for whatever
	reason (for example, the specified directory isn't writable) then send
	an error to the Pan log and fail the task.  Thanks to Sebastien Leclair
	for suggesting this.
	* pan/task-save.c: sync.
	* pan/base/util-file.c (directory_check): change retval from void to a
	gboolean that tells whether or not the specified directory exists.

2001-11-09  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/pan.c: moved PAN_SENT and PAN_SENDLATER to pan/base/serverlist.c,
	so that they will be defined in the lowest-level library in which
	they're used.  This fixes a compile error reported by Francesco Lamonica
	and Gavi Dabar.

	(GUI Tweaks)

	* pan/gui.c: replaced "Get Specific Articles..." with
	"Download Articles..." by popular demand from Jake Zhukov and
	Alex Flinsch.

	(Save Setup)

	* pan/base/save-setup.c: removed -- it's too risky in a threaded app.
	* pan/articlelist.c (clear_group_nolock): save here instead.
	* pan/articlelist.c (set_group_mainthread_end): and here.
	* pan/task-headers.c (task_headers_run): and here.
	* pan/base/group.c (group_unref_articles): and here.

	* pan/file-headers.c (file_headers_save): added a mutex s.t. only one
	group can be saved at a time.  This prevents the same group from being
	saved twice at the same time and seems to make Pan run a little more
	smoothly too.

	(Watch / Ignore Threads)

	* pan/articlelist.c (articlelist_selected_thread_watch_nolock):
	faster watching of multiple threads.

	* pan/articlelist.c (articlelist_selected_thread_watch_nolock):
	if two articles in a thread were selected when 'watch' was hit,
	the thread wasn't watched (actually, it was watched, then unwatched
	when the second article was checked).

2001-11-08  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/save-setup.c (save_setup_impl): put a mutex in here so
	that we don't get two threads saving the setup concurrently.

	* pan/group.c (group_unref_articles): fix thread issue with calling
	save_setup().  This was causing all kinds of problems yesterday.

	* pan/group.c (group_destructor): correct the order in which items
	are freed.  This fixes a barrelful of FMR, FMW, ABR, and ABW errors.

	* pan/text.c (text_pane_popup_menu): added "GNOMEUIINFO_END" to
	the end of this array.  Fixes ABR and ABW errors.

	* pan/acache.c (acache_set_message): Fix memory leak.

	* pan/prefs.c (prefs_servers_changed): If the server list has changed,
	make sure it's saved to disk for posterity when user hits Apply or OK.

	(Testing)

	* pan/base/article.c (article_is_valid): add more tests.
	* pan/base/article.c (articles_are_valid): new convenience function
	for sanity checks.
	* pan/base/group.c: sync.
	* pan/base/article-thread.c: sync.

	(Save Setup)

	* pan/save-setup.c: save_setup now comes in two flavors,
	save_setup_now() and save_setup_idle(), to distinguish priority.

2001-11-07  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/group.c: call save_setup() whenever a group's article
	refcount goes to zero.  This is 'crash insurance' was discussed on
	pan-users.

	* pan/nntp.c (nntp_download_headers): don't call
        group_set_articles_dirty() here -- that should be (and is) done
	when group_add_articles() in called with the headers generated
	by nntp_download_headers().

	* pan/base/log.c: added a thread mutex to control access to the
	Pan log.  This solves a bug reported by Jed Baer where one thread
	was halfway through shutting down the Pan log when another thread
	logged a shutdown message and confused everything.

	(Menu Changes)

	* pan/gui.c: moved "Delete all Articles" to "Empty ..." next to
	"Delete" in the group menu.  Thanks to jzhukov for suggesting that
	this be moved.

	* pan/articlelist.c: added "Delete All" next to "Delete" and
	"Delete Thread" in the article menu & popup menu.  Thanks to
	jzhukov for suggesting that this be moved.
      
2001-11-06  Charles Kerr <charles@rebelbase.com>

	(Widen the filter_bits to hold the new "by me/by others")

	* pan/base/group.h: (filter_bits): widened from guint16 to guint32

	* pan/base/file-grouplist.c: bumped format version number to 7.  The
	only change is that if the loaded version <= 6, we turn on the widened
	filter bits with |= 0xFFFF8000 to make sure the "by me" and "by others"
	bits are turned on by default.

2001-11-06  Christophe Lambin <clambin@easynet.be>

	(Filters - Articles by me)

	* pan/article-toolbar.c: added new filter to the toolbar.
	* pan/article-list-toolbar-mediator.c: sync.
	* pan/base/group.h: sync.

	* pan/xpm/by_me.xpm: new icon for toolbar filter.
	* pan/xpm/by_others.xpm: same.

	* pan/filters/filter.dtd: added new filter definition.

2001-11-05  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/group.c (group_ref_articles): only call
	group_set_article_qty if we've just loaded headers from disk and
	therefore have idea to believe that the article qty has changed.
	This prevents a gui double lock in rare circumstances.

	* pan/base/group.c (group_thread_if_needed): put the mutex lock
	before the (if_article_threading_dirty) check instead of after,
	so that multiple threads don't hit that and both, hitting the
	dirty flag, think that they need to thread the articles.  Threading
	once in enough.

	* pan/base/article-thread.c (thread_articles): slightly faster
	threading of articles.

2001-11-05  Christophe Lambin <clambin@easynet.be>

	(Filters)

	* pan/filters/filter-mine.[ch]: implemented a new filter to
	automatically select articles posted by the user. This is done
	by cross-referencing the article's author with those in the user's
	Profile(s).

	* pan/filters/filter-edit-ui.c: sync.
	* pan/filters/filter-xml.c: sync.
	* pan/filters/Makefile.am: sync.

2001-11-03  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c: flag/unflag thread didn't work properly.
	Thanks to Peter Borgmann for reporting this bug.

	* pan/nntp.c: when collapsing a double period as described
	in RFC977 2.4.1, only erase one of the damn periods instead
	of both of them.  Thanks to Thomas K. Gamble for reporting
	this embarassing bug.

2001-11-02  Charles Kerr <charles@rebelbase.com>

	Pan 0.11.0 Released!

2001-10-31  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/group.c: silenced three glib warnings.  Thanks to
	David Oberbeck for reporting this bug.

2001-10-30  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/message-window.c (create_body_pane_nolock): ensure that
	control+return is a shortcut for "Send Now" as in Agent & Gravity.
	Thanks to Himanshu J. Gohel for reporting this bug.

2001-10-29  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/article-toolbar.c (article_toolbar_set_filter): when the
	caller sets a new filter in the toolbar, make sure to update
	the GnomeEntry search field to reflect the new filter.

	* pan/base/util-wrap.c (rot13): Fixed bug in the rot13 code that
	truncated lines when they encountered characters like , , or .
       	Thanks to Nightshade for reporting this bug.
	* pan/tests/test-wrap.c: added regression test to ensure that 
	characters like , , or  don't truncate lines.

2001-10-26  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/artlclelist.c: Fixed 0.10.0.93 that didn't properly show
	new articles added to the active group.

	(Housekeeping)

	* po/et.po: added new Estonian translation by Tivo Leedjrv.

	* gmime: sync with fejj's code.

2001-10-25  Christophe Lambin <clambin@easynet.be>

	(Bugfix)

	* pan/queue.c (queue_run_thread): fixed thread bug that caused
	tasks to get stuck in 'queued' state. Thanks to Frederik 
	Vanrenterghem, Jed S. Baer and Alan Young for reporting this.

2001-10-25  Charles Kerr <charles@rebelbase.com>

	(FreeBSD Build Fixes)

	* pan/filters/filter-phrase.h: #include <sys/types.h> before
	#include <regex.h> to compile under FreeBSD.  Thanks to Christian
	Kuhtz for this suggestion.

	* pan/text.c: removed #include <alloca.h>, which doesn't exist on
	FreeBSD -- instead, just prototype it directoy.  Thanks to
	Christian Kuhtz for this suggestion.

	* pan/base/gnksa.c: use gettimeofday() instead of ftime().  Thanks
	to Christian Kuhtz for this suggestion.

2001-10-22  Charles Kerr <charles@rebelbase.com>

	(Popup Menus)

	* pan/articlelist.c: added popup menus back in.
	* pan/text.c: same.

2001-10-22  Christophe Lambin <clambin@easynet.be>

	(bye bye libESMTP)

	* pan/smtp.c: restored the pre-libESMTP version of SMTP support.
	LibESMTP definitely seems like a good candidate for enhancing Pan's 
	support for SMTP. However, at this time there remain too many
	packaging issues. Too bad. Maybe later.
	* pan/Makefile.am: same.
	* configure.in: same.
	* pan.spec.in: same.
	* acconfig.h: same.

2001-10-21  Charles Kerr <charles@rebelbase.com>

	(UI Tweaks)

	* pan/prefs.c: added a third quoted depth ">>>" color.
	* pan/text.c: sync.

2001-10-21  Christophe Lambin <clambin@easynet.be>

	(Profiles)

	* pan/message-window.c: implemented a PanCallback to keep in sync
	with the Profiles while writing an article. This fixes a segfault
	when we remove an profile, while writing an article using that
	profile. Thanks to lduperval for reporting this bug.

	* pan/identities/identities-manager.[ch]: same.

2001-10-20  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c (articlelist_set_sort_type): when the sort type
	changes, make sure the change is propagated back into the group's
	settings where it will be remembered.  Thanks to Alen Williams for
	reporting this bug.

	* pan/message-send.c (build_nntp_header): Use GMime's InternetAddress
	object when composing the From: header so that we get the right
	encoding.  Thanks to Julien Plissonneau Duquene for reporting
	this bug.  (TODO: migrate the entire posting to GMimeMessage)

	* pan/tests: forgot to sync the tests with the new two-argument
	group_new() function.  Thanks to Laurent Duperval for reporting
	this bug.

	(Delete/Mark Read Crossposts)

	* pan/base/article.c (article_xref_foreach): now takes a
	ServerGroupsType argument s.t. we only traverse groups in
	that set.
	* pan/base/article.c (articles_set_read): only also mark read
	crossposts in subscribed groups.  It's not worth the load to
	mark in groups that the user will never look at.
	* pan/article-actions.c (delete_articles): when deleting an
	article, only delete crossposts in subscribed groups.  Same
	reason.
	* pan/base/server.c (server_get_named_group_impl): take an
	argument of ServerGroupsType so that we know which types to
	look through for this group.
	* pan/base/server.c (server_has_group_in_type): new function.

	(Speedups)

	* pan/base/article.c (article_set_header_impl): if we're initing
	this header then we know there's no current value for the header,
	so don't bother calling article_remove_header() first.

2001-10-19  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/message-window.c: fixed a couple of cases where Articles
	were still being pan_object_{un}ref()ed, even though Article is
	no longer a PanObject.  C++ would've been helpful here. :)

	(More snubbing of PanObject)

	* pan/base/group.[ch]: Group's no longer a PanObject either.  Its
	memory management is controlled by the parent Server object, just
	as Groups control their Article objects.
	* pan/articlelist.c: sync.

2001-10-18  Charles Kerr <charles@rebelbase.com>

	Pan 0.10.0.93 Released!

2001-10-17  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/gui-notebook.c:  Fix crash-on-zoomed-startup bug.  Thanks to
	Leo Lipelis for reporting this bug.

	* gmime/gmime-charset.c:  Upgrade this file to get a fix for Debian
	and Solaris charsets.  Thanks to Jeffrey Stedfast for writing GMime.

	(Dethreading)

	* pan/grouplist.c: Make grouplist's updates operate in the mainthread
	too.  Similar to earlier updates to text.c and articlelist.c.

	(Code Cleanup)

	* pan/article-toolbar.c: removed unnecessary #includes.
	* pan/sockets.c: same.

2001-10-17  Christophe Lambin <clambin@easynet.be>

	(libESMTP)

	* configure.in: now using libESMTP 0.8.6.
	* pan.spec.in: same.

2001-10-17  Charles Kerr <charles@rebelbase.com>

	(Bug "Fixes")

	* pan/base/decode.c: shut up compiler warning.
	* pan/base/util-mime.c: same.

	* pan/status-item-view: try harder to make this threadsafe.

2001-10-15  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/queue.c (queue_mainloop): patch for signals-get-lost bug
	reported by Himanshu J. Gohel, Jed S. Baer, John LeMay, and
	Douglas Kilpatrick.

2001-10-13  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/smtp.c: #include <pan/base/log.h>.  Ooops.

	* pan/articlelist.c (articlelist_set_group_nolock): if the user has
	selected to fetch the group's new headers on load, make sure we do
	that.

	* pan/queue.c (queue_run_what_we_can): fixed thread bug that caused
	some tasks to get stuck in an "Abort" state even if they completed 
	successfully.

	* pan/task-save.c (task_save_run): fix small but ugly FMR/FUM bug.

	(UI Tweaks)

	* pan/task-headers.c: made some of the status messages a little
	shorter so that they'll fit in the progressbar better.

2001-10-12  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c (add_article_to_ctree_nolock): when calculating
	the linecount of a multipart binary, don't double the count for parts
	that have a repost too.

	(Dethreading)

	* pan/text.c: decrufting.  Renamed & reorganized inscrutably-named
	functions that have grown like mold over time.  Sorted the code into
	less irrational groupings.  Decreased the number of thread steps
	needed to update the text pane.  Fixed thread concurrency bug reported
	by war@starband.net.

	* pan/articlelist.c (articlelist_set_sort_type): throw away the old
	implementation and just call refresh (REFRESH_SORT) instead.

	(Code Tweaks)

	* pan/nntp.c (nntp_download_headers): remove 5 g_strdup()/g_free()
	pairs for each header downloaded.  Probably an unimportant change,
	but every little bit helps.

2001-10-11  Christophe Lambin <clambin@easynet.be>

	(Dethreading)

	* pan/articlelist.c: fixed crash when selecting an empty folder.

	(libESMTP)

	* pan.spec.in: added libESMTP to BuildRequires & Requires.
	* configure.in: include libESMTP's CFLAGS to cover non-standard 
	installations. Thanks to war@starband.net for reporting this.
	* pan/Makefile.am: sync.

2001-10-10  Charles Kerr <charles@rebelbase.com>

	(Dethreading)

	* pan/articlelist.c: rewrote the ways in which the articlelist's
	group is set and refreshed.  This simpler and cleaner now, at least
	as much as possible in threads.  This should ameliorate some of the
	"pan's threading is unstable!" complaints.

	* pan/base/group.[ch]: added an Article GMemChunk + accessor.
	* pan/base/article.[ch]: Article is no longer a PanObject; instead,
	its life cycle is tied to the article_refcount of the Group which
	owns it.  This resolves the Article life cycle issues like "what
	happens if a rule deletes an article that articlelist is drawing?"
	and "what if an article is expired while a person's reading it?" etc.

2001-10-10  Christophe Lambin <clambin@easynet.be>

	(libESMTP)

	* pan/smtp.c: rewrite, using Brian Staffort's libESMTP library.

	* configure.in: build with libESMTP.
	* acconfig.h: same.
	* pan/Makefile.am: build with libESMTP.

2001-10-09  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/gui-headers.c (gui_headers_set): wrap the author to cope with
	excessively long email addresses. Thanks to David Watson for
	reporting this.

2001-10-09  Charles Kerr <charles@rebelbase.com>

	(Dethreading)

	* pan/base/argset.c: new module.

	* pan/base/group.c (group_remove_articles): don't unset the group
	pointer when we remove the article from the group's article list --
	The group is still managing the article's memory during its lifespan.

	* pan/base/status-item.c (status_item_new_with_description): new
	constructor that lets the client pass in a description string at
	creation time.

	* pan/base/status-item.c (status_item_destructor): don't set the
	status-item to inactive here; this causes an unhappy feedback loop.
	A status item should be inactive before it's destroyed.

	* pan/status-item-view.c (status_cb_nolock): new impl function.

2001-10-07  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/filters/filter-top.c (filter_top_dup): initialise 'negate'
	so we can create negative aggregate filters. Thanks to Jed S. Baer
	for reporting this.

2001-10-04  Charles Kerr <charles@rebelbase.com>

	(UI: Text Pane Colors)

	* pan/pan.c (main): get the "cmap" variable before calling prefs_init
	so that we can alloc colors inside prefs_init.

	* pan/prefs.c: added two new preferences to toggle on/off using
	the gtkrc colors vs. custom colors in the article view window.

	* pan/text.c: fixed color-assignment bugs.  Thanks to war@starband.net
	for reporting this bug.

	(Code Tweaks)

	* pan/prefs.c (update_entry_and_bool_from_toggle_button): return
	a gboolean flag to indicate if the value has changed.

	* pan/base/debug.c (debug_printf): added "function" argument that
	uses gcc's PRETTY_FUNCTION if we're using gcc.
	* pan/debug.h: sync debugN and odebugN macros.

	* pan/base/util-mime.c: small cleanup.

2001-10-03  Christophe Lambin <clambin@easynet.be>

        * pan/articlelist.c (article_toolbar_set_filter): better fix
        for the Xlib async error.

2001-10-03  Charles Kerr <charles@rebelbase.com>

	* gmime/gmime-filter-basic.c: fix some compiler warnings.
	Also, add in a g_message couting the number of streams alive.
	There's a stream leak somewhere in Pan that I haven't been able
	to track down yet.  (fejj if you want to look at this -- do you
	have a news server?  If not, news.ou.edu is public -- go to
	alt.binaries.picture.fractals and start reading messages.
	Each read message leaves two dangling streams.)

2001-10-03  Jeffrey Stedfast  <fejj@ximian.com>

       * pan/base/util-mime.c (look_for_uuencoded_data): After splitting
       out the uu parts, reset the stream immediately so that if/when we
       write out the content stream, it will write from the
       beginning. This should also make it so any substreams created from
       this stream will be reset. Move the in_stream unreffing action to
       right after we create in_buf since we don't need to hold a ref any
       longer - this doesn't really change anything, it's more for
       peace-of-mind. Once in the for-loop, do proper unreffing of
       streams.

2001-10-03  Charles Kerr <charles@rebelbase.com>

	* pan/Makefile.am: update static libraries for Purify.

	* pan/articlelist.c: removed some debugging g_messages.
	* pan/nntp.c: same.

	* pan/text.c: sync with gmime update.
	* pan/base/article.c: same.
	* pan/base/decode.c: same.
	* pan/base/util-mime.c: same.

2001-10-03  Charles Kerr <charles@rebelbase.com>

	* pan/rules/rule-manager.c (add_any_needed_canned_rules): fix small
	memory leaks.  Thanks to Richard Deken for reporting these bugs.

	* pan/gui.c (edit_menu): added "Select message body" back into menu.
	Thanks to David Oberbeck for requesting this.

2001-10-02  Charles Kerr <charles@rebelbase.com>

	* pan/article-toolbar.c (sensitize_builtin_filters): fix
	Xlib async error.

	* pan/task-save.c: remove unused debugging statement
	* pan/base/serverlist.c: thread safety safeguard.

	* pan/articlelist.c (filter_changed_thread): some pthread safety
	checks when applying a filter to a set of articles.

2001-10-01  Christophe Lambin <clambin@easynet.be>

	* pan/message-window.c (apply_identity): don't add an attribution
	line for new posts & emails.

2001-09-28  Charles Kerr <charles@rebelbase.com>

	* pan/text.c: dead code removal.

	* pan/identities/identity.c (identity_dup): fixed small memory leak.
	Thanks to Richard Deken for reporting this bug.

2001-09-27  Charles Kerr <charles@rebelbase.com>

	* pan/text.c (append_text_cb): new function to display all text
	attachments instead of just the first one.  Thanks to Robert Tilley
	for reporting this bug.

	* pan/base/acache.c (acache_init): don't bother regenerating the
	message-id list if acache_init()'s already been called.

	* pan/base/article.c (article_get_header): fix for getting xrefs.
	This gets "when article is deleted/read/unread, propagate that
	to its crossposts" working again.

	* pan/status-item-view.c: fix problem that caused the progress bars
	to not always be cleared out when a task ended.

	* pan/text.c: unset the text widget's usize height when we're
	not showing pictures.  Thanks to Jed S. Baer for reporting this
	bug.

2001-09-23  Charles Kerr <charles@rebelbase.com>

	* pan/nntp.c (nntp_article_download): That fix in for version 1.197
	wasn't such a great idea; it created a new bug. Try a different
	fix instead.

2001-09-22  Charles Kerr <charles@rebelbase.com>

	0.10.0.91 Released!

2001-09-20  Charles Kerr <charles@rebelbase.com>

	* pan/articlelist.c: don't set the CTreeNodes' fonts when
	we can't load the font (user has selected a font that doesn't
	exist, etc).

	* pan/gui.c (navigate_menu): added new shortcuts for parent
	article and top-of-article.

	* pan/status-item-view.c: fixed crash that occurred when updating
	the gtkprogressbar in a non-gtk thread under pixmapped gtk themes.

	* pan/text.c (set_text_from_article_idle): silenced gtk warning.

	* pan/queue.c (queue_get_tasks): Made this function a little
	safer: we now return a newly-allocated array, instead of the
	queue's private GSList.  We also ref() each task in case it
	would otherwise be destroyed by the time the caller is done
	with the task list.  This new task array is created and reffed
	inside the queue_lock mutex.

	* pan/message-window.c (create_body_pane_nolock): always use a
	monospace font when posting, even if the user uses a variable
	width font when reading.  Thanks to Christian Lohmaier for
	reporting this.

2001-09-18  Fatih Demir <kabalak@gtranslator.org>

	* ABOUT-NLS & config.h.in: Removed from CVS.

2001-09-17  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* configure.in: use gdk-pixbuf-config, rather than gnome-config,
	when detecting the cflags/version/libs for gdk-pixbuf.  Thanks to
	Justin Piszcz for reporting this bug.

2001-09-16  Charles Kerr <charles@rebelbase.com>

	(GMime file support)

	* gmime/gmime-content.[ch]: new files that abstract out how a
	GMimePart's content is held - in a memory array or in a temporary
	file.  Being able to use temporary files lets us decode those
	iso-image attachments without running out of memory.

	* pan/base/decode.c: sync.

	* pan/base/util-mime.c: sync.  This actually lets us drop a couple
	of intermediate steps that used to be needed to massage the data
	into the right shape.

	* pan/text.c: sync.

2001-09-11  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/smtp.c: Fixed problem with date header not being sent when
	sending mail from Pan.  Thanks to Derek Poon for reporting this
	problem and submitting a fix.
			     
	* pan/base/newsrc-port.c: Fixed problem with importing an empty
	.newsrc file.  Thanks to Derek Poon for reporting this problem and
	submitting a fix.
							 
	* pan/queue.c: Fix problem with the queue running away with the
	CPU in 0.10.0.90.  Thanks to Chris Vance for reporting this bug and
	submitting a fix.

	* pan/text.c: Silence a g_warning.  Thanks to Muralito for reporting
	this bug.

	* pan/prefs.c: Fix a couple of typos in the preferences dialog.
	Thanks to Jacob Ils Christensen for posting this patch.

	* pan/dialogs/dialog-newuser.c: Hide the password when the user types
	it in.  Thanks to Jacob Ils Christensen for posting this patch.

2001-09-07  Charles Kerr <charles@rebelbase.com>

	(Goodbye, gtkhtml)

	* configure.in: remove gtkhtml checks, add gdk-pixbuf instead.
	* pan/text.c: gdk_pixbuf for inline images; homebrew clickable URLs
	* pan/prefs.c: add user-configurable URL link color, 2nd quote color

2001-09-07  Charles Kerr <charles@rebelbase.com>

	(Safeguards)

	* pan/base/pan-object.c (pan_object_is_valid): new sanity check func.
	* pan/base/group.c (group_is_valid): new sanity check func.
	* pan/base/group.c (most functions): g_return_if_fail(group_is_valid())
	in most of the function entry assertions.
	* pan/base/articlec (article_is_valid): call pan_object_is_valid().

2001-09-05  Christophe Lambin <clambin@easynet.be>

	(Profiles)

	* pan/message-window.c (post): if we're cross-posting, remember
	the used profile for all newsgroups we just posted too.

	(Bug Fix)

	* pan/message-window.c: avoid duplicate attribution lines if the
	current profile gets changed while writing an article.

2001-09-05  Charles Kerr <charles@rebelbase.com>

	(Tweak)

	* pan/grouplist.c (-grouplist_get_group_readable_name): use a buffer
	instead of a lot of alloc/free's.

	(Safety)

	* pan/file-headers.c: added some extra g_return_if_fail()s to be safe.
	* pan/file-grouplist.c: same.

2001-09-04  Charles Kerr <charles@rebelbase.com>

	(Usability)

	* pan/articlelist.c (group_articles_removed_cb): select, but
	don't activate, the next article after one's deleted.  This
	was intended to be a feature but got negative feedback.

	(Bug Fix)

	* pan/group-actions.c (delete_groups_dialog_cb): don't delete the
	groups if the user hit "no, don't do it".  D'oh!  Thanks to
	Mike Robinson for reporting this bug and submitting a patch.

	(Tweak)

	* pan/nntp.c (nntp_article_download): reuse a buffer, rather than
	alloc/free'ing a new string for each line we read from the server.

	* pan/text.c: sync with some of the gtkhtml-less text.c codebase.
   
2001-09-04  Christophe Lambin <clambin@easynet.be>

	(UI Tweak)

	* pan/articlelist.c: in unthreaded mode, set the article's style
	to reflect only the status of the article itself, not of the replies.
	
2001-09-03  Charles Kerr <charles@rebelbase.com>

	* pan/gui.c: added accelerators for getting articles & sub/unsub
	from group, by request.

2001-09-03  Charles Kerr <charles@rebelbase.com>

	* pan/gui.c: added shortcut for thread/unthread the header pane.

	* pan/base/article-thread.c: have threads with more unread/new
	children show up higher in the sort.

	* configure.in: lowered glib requirement to 1.2.8, since that's
	what gtk 1.2.10 requires.

2001-09-02  Charles Kerr <charles@rebelbase.com>

	(Collapse Group Name)

	* pan/gui.c: added to navigate menu: "Collapse names in group pane".
	* pan/prefs.c: sync.
	* pan/gropulist.c: sync.

2001-09-02  Charles Kerr <charles@rebelbase.com>

	(Save Dialog)

	* pan/save-ui.c: new file, replacing save.c, which integrates the
	"Save Article" and "Save Attachments" dialogs together.
	* pan/task-save.c: new file, replacing task-decode.c, which
	not only decodes articles but optionally saves the article bodies too.
	* pan/article-actions.c: sync.

	(Bug Fixes)

	* pan/nntp.c (nntp_download_body): if we somehow get fed a blank line
	from the server, don't crash.

2001-09-02  Charles Kerr <charles@rebelbase.com>

	(UI Tweaks)

	* pan/gui.c: added "space reading" into the navigational menu.

	(tmp dir)

	* pan/base/base-prefs.h: we no longer define our own tmp dir variable.
	Use g_get_tmp_dir() instead so that we can behave more like other glib
	apps.
	* pan/base/util-file.c: sync.
	* pan/prefs.c: sync.

	(portability (!))

	* pan/base/serverlist.c: use G_DIR_SEPARATOR where appropriate.
	* pan/base/ufil-file.c: same.
	* pan/base/file-grouplist.c: same.
	* pan/base/file-headers.c: same.
	* pan/base/acache.c: same.
	* pan/identities/identity-manager.c: same.
	* pan/filters/filter-manager.c: same.
	* pan/rules/rule-manager.c: same.
	* pan/prefs.c: same.
	* pan/thread-watch.c: same.
	* pan/save.c: same.

2001-09-02  Charles Kerr <charles@rebelbase.com>

	(Sorting)

	* pan/base/article-thread.c (sort_articles): added sorting by article
	raad state (new, unread, new replies, etc) and by action state
	(flagged, queued, etc).  This is triggered by clicking on columns 0
	and 1 in the thread tree.

2001-09-02  Charles Kerr <charles@rebelbase.com>

	(Living with Threads)

	* pan/articlelist.c: keep an array of all the articles we're using.
	Each article's refcount is raised by 1 as long as articlelist is using
	it.  (This has a nice side-effect of letting articlelist to stable
	sorting again)
	* pan/articlelist.c (clear_article_buffer): sync.
	* pan/articlelist.c (articles_added_cb): sync.
	* pan/articlelist.c (articles_removed_cb): sync.
	* pan/articlelist.c (articlelist_set_contents): sync.
	* pan/articlelist.c (articlelist_set_group_maybe): sync.

	* pan/articlelist.c (articlelist_update_articles): ref the
	articles before passing them along to an idle function, just
	to make sure they're still alive when the idle function's run.
	* pan/articllist.c (artlclelist_articles_read_changed): same.

	* pan/group.c: added a field "article_mutex" used whenever the group
	is doing heavy manipulation of its article list: for example, we don't
	want one thread Threading the articles while another is expiring old
	articles, etc.

2001-09-01  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c (articlelist_articles_read_changed_idle):
	A GPtrArray and its buffer were being leaked each time an article's
	read state changed, yuck.

	* pan/text.c (text_create): fix problem with changing the background
	color of the gtkhtml pane.  Thanks to Tivo Leedjrv for providing
	this fix.

	* pan/base/group.c (group_inc_article_read_qty): return if
	group==NULL.  This was triggering a crash in articlelist under
	torture conditions.

	* pan/base/pan-glib-extensions.c (pan_str_unescape): fixed unescaping
	bug.  Thanks to Tivo Leedjrv for reporting this bug and providing
	a fix.

	* tests/test-pan-callback.c: sync the callback functions' signatures
	to match the PanCallback changes made earlier in the week.

	* pan/base/pan-glib-extensions.c (get_next_token_range): don't
	dereference a NULL pointer.

2001-08-31  Christophe Lambin <clambin@easynet.be>

	(Bug fix)

	* pan/base/file-headers.c (file_headers_save_folder): don't complain
	so loudly when an article has no body.

2001-08-30  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/util-mime.c (look_for_uuencoded_data): small memory leak.

	* pan/gmime/gmime-utils.c: update snapshot to fix encoding bug.
	Thanks to Christian Lohmaier for reporting this bug.

2001-08-30  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/message-window.c (article_gen_attribution_string): fixed
	corruption of the short author name.

	* pan/message-window.c (post): record the profile before we
	destroy the message window.

2001-08-29  Charles Kerr <charles@rebelbase.com>

	(Profiles)

	* pan/pan.c (shutdown): call identity_manager_shutdown_module().

	(Usability)

	* pan/gui.c: more descriptive tooltips for the task/connections
	buttons.

	* pan/prefs.c: made the default news server behavior to go online
	without being asked.  Most users seem to be online, rather than
	offline users, so this should be the default.

	(Stupid Tweaks)

	* pan/acache.c (acache_get_filename): use a buffer on the stack
	to avoid unnecessary malloc/free in some frequently-called funcs.
	* pan/util.c (get_date_display_string): same.
	* pan/article.c (article_get_short_author_str): same.

2001-08-29  Christophe Lambin <clambin@easynet.be>

	(Profiles)

	* pan/message-window.c (determine_default_identity): improved logic
	for guessing the default profile to propose. This mainly helps when
	writing a new email (e.g. Feedback).

	* pan/identities/identity-manager.c: new helper function to find
	a profile with matching author name & email address.
	* pan/identities/identity-manager.h: sync.

2001-08-29  Charles Kerr <charles@rebelbase.com>

	* pan/docs/faq.html: updated faq.

	* pan/configure.in: bumped glib/gtk requirements to 1.2.10

	* pan/identities/identity.c (identity_constructor): g_strdup() the
	default attribution string so that it doesn't get free()d later.
	This is my bug.

	* pan/xpm/pan_druid.xpm: new watermark for the new user screen.

	* pan/dialogs/dialog-new-user.c: added new information on the new
	user druid's welcome screen.

2001-08-28  Christophe Lambin <clambin@easynet.be>

	(Profiles)

	* pan/base/file-grouplist.c: bumped file format version number to 6.
	We now also store the last used profile for each group. 

	(Bug fixes)

	* pan/message-window.c (remove_signature): handle articles that are
	empty except for a signature.

	* pan/gui.c (send_feedback_cb): use the default profile for email.

	* pan/base/file-grouplist.c: fixed reading back the group's active
	filter name.

2001-08-28  Charles Kerr <charles@rebelbase.com>

	(Profiles)

	* pan/identities/identity-edit-ui.c: added in a default Attribution
	value when creating a new Profile.

	(Code Cleanup: PanCallback)

	* pan/base/pan-callback.h: made the cb return type void, not int.
	* pan/article-actions.c: sync.
	* pan/article-toolbar.c: sync.
	* pan/articlelist.c: sync.
	* pan/gui.c: sync.
	* pan/dialogs/dialog-log-viewer.c: sync.
	* pan/rules/rule-edit-ui.c: sync.

	(Code Cleanup: Menus)

	* pan/gui.c: use gnome menu macros for slightly less code sprawl.
	* pan/articlelist.c: same.
	* pan/message-window.c: same.

	(Code Cleanup: Dead Code Removal)

	* pan/articlelist.c (articlelist_sort_changed): removed dead code.
	* pan/articlelist.c (articlelist_all_download): same.
	* pan/articlelist.c (purge_articles): same.
	* pan/articlelist.c (articlelist_selected_purge_bodies): same.
	* pan/articlelist.c (articlelist_selected_purge_bodies_deep): same.
	* pan/articlelist.c (articlelist_all_purge_bodies): same.
	* pan/articlelist.c (articlelist_all_purge_bodies): same.
	* pan/util.c (test_linkify_text): same.
	* pan/message-window.c: removed appbar code.
	* pan/util.c (check_and_warn_if_version_change): same.

2001-08-28  Charles Kerr <charles@rebelbase.com>

        (Profiles)
	 
	* pan/gui.c (send_feedback_cb): now uses identity-manager
	* pan/smtp.c: same.
			 
	* pan/prefs.c: removed the Posting pieces from here, now that they're
	handled in Christophe's identity module. 

	* pan/util.c (get_host_name): this isn't needed; we use Identities now.
       	* pan/util.c (get_fqdn): same.
       	* pan/util.c (get_default_author_address): same.
       	* pan/util.c (get_default_author_from): same.

	(UI Tweaks)
	
	* pan/prefs.c: added a history pulldown with standard choices for
	external editors & external browsers.
       	* pan/prefs.h: same.

2001-08-27  Christophe Lambin <clambin@easynet.be>

	(Profiles)

	* pan/identities/identity-edit-ui.c: implemented the 'Custom Headers' 
	tab for Profiles: each profile can now hold its own set of custom 
	headers.

	* pan/message-window.c (revoke_identity/apply_identity): set the
	article's custom headers based on the Profile's custom headers.

	* pan/identities/identity-xml.c (write_identity): small bugfix in
	writing the custom headers to the data file.

	* pan/identities/identity.c (identity_find_custom_header_by_name):
	removed obsolete function.

2001-08-27  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/identities/identity-manager.c (construct_identity_from_prefs):
	fix scope problem that prevented creating a new identity from prefs.

	(Tweaks)

	* pan/article-filter-ui.c: added #include to make gcc happy.
	* pan/identities/identity-edit-ui.c: same.
	* pan/identities/identity.c (identity_find_custom_header_by_name):
	commented out unused function.

2001-08-27  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/text.c (text_read_more): fix bug that caused space reading to
	cause small articles to scroll off-window, then back again, before
	reading the next article.

	(External Editor)

	* pan/message-window.c: added External Editor support, finally.
	This is taken lock, stock, and barrel from Sylpheed.

	(Action Shuffling)

	* pan/article-actions.c: moved article deletion functions here from
	articlelist.c.  Added code to remove from acache any deleted article.

	* pan/articlelist.c: when articles are removed, check & see if the
	selected message is one of them.  If so, update the selection and,
	if "read on select" is turned on by the user, read the next message.

2001-08-27  Christophe Lambin <clambin@easynet.be>

	(Identities / Profiles)

	* pan/gui.c: renamed identities to profiles.
	* pan/identities/identity-edit-ui.c: same.
	* pan/identities/identity-ui.c: same.
	* pan/identities/identity-xml.c: same.
	* pan/identities/identity-manager.c: same.

	* pan/pan.c: first time a user starts Pan, we'll now create a default
	Profile, instead of writing the info into gnome_config.
	* pan/dialogs/dialogs-newuser.c: same.
	* pan/identities/identity-manager.c: sync.
	* pan/identities/identity-manager.h: sync.

2001-08-26  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c: fixed the skips-last-thread navigation error.
	Thanks to Adrian von Bidder for reporting this bug.

	(Identities)

	* pan/identities/identity.c (identity_is_valid): new sanity check
	function.

	* pan/identities/identity-edit-ui.c (identity_edit_dialog_get_identity):
	if the identity is incomplete/invalid, return a NULL instead.
	* pan/identities/identity-ui.c (add_dialog_clicked_cb): add check to
	see if identity_edit_dialog_get_identity() returned NULL.

2001-08-26  Christophe Lambin <clambin@easynet.be>

	(Identities)

	* pan/message-window.c: activated Identities.
	* pan/gui.c: same.
	* pan/Makefile.am: same.
	* configure.in: same.

	* pan/identities/identity-edit-ui.c: don't use the identity manager 
	to get the default news & mail identities.
	* pan/identities/identity-ui.c: sync.

	* pan/identities/identity-manager.c: API change for setting defaults.
	* pan/identities/identity-manager.h: sync.
	* pan/identities/identity-ui.c: sync.

	* pan/base/group.c: added 'identity_name' to remember the last 
	identity used to post to that group.
	* pan/base/group.h: same.

2001-08-24  Charles Kerr <charles@rebelbase.com>

	(GUI)

	* pan/gui.c: updated shortcuts & hotkeys; some were in conflict.
	* pan/articlelist.c: same.

	(Bugfix)

	* pan/text.c fontname(): Moved out of the #ifdef GTK_HTML block so
	that Pan will build for test users too.  Thanks to Jed S. Baer for
	reporting this problem.

	(Speedups)

	* pan/base/group.c: replace the group_changed() callback with a
	groups_changed() callback so that we can batch updates of changed
	groups.  This is useful when mass subscribing/unsubscribing during
	importing .newsrc files.

	* pan/base/group.c: replaced group_set_subscribed() with
	groups_set_subscribed().

	* pan/grouplist.c: listen for groups_changed instead of
	group_changed.

2001-08-24  Christophe Lambin <clambin@easynet.be>

	(Bug fixes)

	* pan/articlelist.c: make sure to clear 'unread_children' when
	marking all articles as read. 

	* pan/gui.c: set the correct state on 'use monospace font' on
	startup.

	(Identities)

	* pan/identities/identity-edit-ui.c: code cleanup & memory leaks.
	* pan/gui.c: prepare for integration into the GUI.

2001-08-23  Charles Kerr <charles@rebelbase.com>

	(Show/Hide)

	* pan/gui-paned.c: added code to show/hide various panes based
	on user choice.
	* pan/gui.c: sync.
	* pan/prefs.c: sync.

	(Menu)

	* pan/gui.c: plugged back in the menu sensitive/insensitive code.
	Menus should be good to go now.


2001-08-23  Christophe Lambin <clambin@easynet.be>

	(Identities)

        * pan/identities/*[ch]: added user interface for managing identities

2001-08-23  Charles Kerr <charles@rebelbase.com>

	* configure.in: bumped version number to 0.10.90

	* pan/Makefile.am: tweaks to make automake 1.5 happy

	* pan/text.c (text_get_article_body): fix tab damange.

	* pan/articlelist.c: when user selects an empty group,
	automatically go to download new headers, rather than
	popping up a 'download headers' dialog.

	(Menus)

	* pan/articlelist.c: added accelerators, shortcuts for
	the shiny new menu items.
	* pan/gui.c: same.  Also plugged in everything except
	the three toggle-pane-visible buttons.
	
	(Navigation)

	* pan/articlelist.c: added small correctness checks.

2001-08-23  Charles Kerr <charles@rebelbase.com>

	(Navigation)

	* pan/gui.c: updated the Navigation menu based on user
	suggestions.
	* pan/prefs.c: added 'skip uncached' and 'load on select'
	preferences for the navigation menu.
	* pan/gui.c: sync.
	* pan/articlelist.c: rewrote most of the navigation code.

	(Cleanup)

	* pan/article-filter-ui.c: include libgnomeui.h instead of gnome.h
	* pan/article-find.c: same.
	* pan/article-toolbar.c: same.
	* pan/articlelist.c: same.
	* pan/group-action.c: same.
	* pan/gruop-ui.c: same.
	* pan/grouplist.c: same.
	* pan/gui-headers.c: same.
	* pan/gui-notebook.c: same.
	* pan/message-check-ui.c: same.
	* pan/message-window.c: same.
	* pan/save.c: same.
	* pan/server-ui.c: same.
	* pan/status-item-view.c: same.
	* pan/task-decode.c: same.
	* pan/task-manager.c: same.
	* pan/text.c: same.
	* pan/dialogs/dialog-about.c: same.
	* pan/dialogs/dialog-group-props.c: same.
	* pan/dialogs/dialog-headers.c: same.
	* pan/dialogs/dialog-log-viewer.c: same.
	* pan/dialogs/pan-about.c: same.


2001-08-22  Charles Kerr <charles@rebelbase.com>

	(Group Actions)

	* pan/grouplist.c: removed the group 'action' functions for
	downloading messages/headers, subscribing/unsubscribing,
	deleting groups, and so forth.
	* pan/group-action.c: this is where the grouplist's 'action'
	functions get moved.

	(Menu Update)

	* pan/gui.c: updated Group menu based on feedback from the
	pan-users mailing list.
	* pan/prefs.c: added 'download_bodies_too' handling.
	* pan/gui.c: sync.

	(Bugfixes)

	* pan/task-headers.c (task_headers_run): small bugfix to
	remove glib warning.

	(Cleanup)

	* pan/dialogs/dialog-newuser: code cleanup.

	* pan/articlelist.c: removed debugging statements.

	* pan/grouplist.c: removed unused functions, made functions
	private where appropriate

2001-08-21  Charles Kerr <charles@rebelbase.com>

	(Removing Useless Junk)

	* pan/message-window.c: removed "open article in new window"
	* pan/articlelist.c: sync.
	* pan/task-body.c: sync.
	* pan/text.c: sync.

	(UI: Menus)

	* pan/articlelist.c: a little more menu work.

2001-08-21  Charles Kerr <charles@rebelbase.com>

	(Bug Fix)

	* pan/article-toolbar.c (custom_filter_selected_cb): fix bug
	that caused the articlelist to not be re-filtered when the
	user switched between Author and Subject filtering.

	(UI: Menus)

	* pan/gui.c: started the menu redesign discussed in pan-users.
	added some select-group, select-articles functions, regrouped
	other menu items in a way that makes more sense.
	* pan/gui-notebook.c: removed layout-specific selection code.
	* pan/gui-paned.c: same.
	* pan/server-ui.c: changed search path of where to insert the
	server menu buttons in the main menu.
	* pan/text.c: removed popup menu.

	(UI: Filter History)

	* pan/article-toolbar.c: added a popdown w/history in the
	article subject/author filter.  Thanks to Adam Nevins for
	making this suggestion.
	* pan/grouplist: added a popdown w/history here too.

	(Feature: Use Monospace Font)

	* pan/prefs.c: added new preferences option: whether or
	not to use a monospace font in the body pane.  You can
	configure both fonts in the preferences dialog.
	* pan/text.c: sync.
	* pan/gui.c: sync.

2001-08-20  Christophe Lambin <clambin@easynet.be>

	(bug fix: send pending messages)

	* pan/base/article.c: make sure to save *all* headers to
	'sendlater', so we have all the information to send them later.
	Thanks to T'aZ and Frank Van Damme for reporting problems in
	this area.
	* pan/base/article.h: same.

	(Identities)

        * pan/identities/*[ch]: landed initial data structures into CVS.

2001-08-18  Charles Kerr <charles@rebelbase.com>

	(bug fix: i18n)

	* pan/gmime: updated snapshot of GMime to get the g_mime_charset
	functions.  According to fejj the CODESET patch in 0.10.0 has some
	issues.
	* pan/message-send.c: sync.

	(bug fix: font size in gtkhtml pane)

	* pan/text.c (colorize_html): work around apparent gtkhtml
	font-tags-can't-be-nested brane damage.  Thanks to David Watson
	for reporting this bug.

2001-08-16  Charles Kerr <charles@rebelbase.com>

	Pan 0.10.0 Released!

2001-08-16  Charles Kerr <charles@rebelbase.com>

	(Bug Fix)

	* pan/task-group-count.c: don't update the group article low/high
	from this information, because that screws up counting of which
	articles are new the next time you fetch headers.

2001-08-15  Charles Kerr <charles@rebelbase.com>

	(Bug Fix)

	* pan/rules/rule-ui.c (apply_now_thread): Fix crash that occurred
	when applying rules to selected groups, when no group was loaded in
	the thread view pane.  Thanks to T'aZ for reporting this.

	(Sanity Checks)

	* pan/nntp.c (nntp_article_download): better sanity checks.
	* pan/nntp.c (nntp_download_bodies): same.
	* pan/nntp.c (nntp_cancel): same.
	* pan/article-find.c (compare_article): same.
	* pan/article-actions.c (find_matching_sent_article): same.
	* pan/filters/filter-cached.c (filter_cached_test_articles): same.
	* pan/rules/rule-action.c (rule_action_apply): same.

2001-08-13  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/gui.c: the "Message" menu shortcut key conflicted with
	the "Edit" shortcut.  Thanks to David Oberbeck for reporting
	this bug.

	* pan/articlelist.c (build_article_ctree_recursive): fix bug
	that caused follow-ups to a multipart post to not be added to
	the ctree.  Thanks to Jed S. Baer for reporting this bug.

	* pan/text.c (add_inline_images_mpfunc): go ahead and show
	images even if they're not flagged as "inline".  This is usenet,
	chances are the poster intended for them to be inline anyway.

	(GMime update)

	* gmime: update of gmime-parser.c and gmime-utils.c
	* pan/base/util-mime.c (pan_g_mime_parser_construct_message): sync.

2001-08-10  Charles Kerr <charles@rebelbase.com>

	(Release)

	* README
	* configure.in
	* NEWS
	* TODO
	* CREDITS
	* pan/dialogs/dialog-about.c: Updated for 0.10.0 release

2001-08-09  Christophe Lambin <clambin@easynet.be>

	(Task Manager)

	* pan/task-manager.c: added keyboard shortcuts to cancel and reorder
	tasks.  Thanks to Ryan Daniels for suggesting this.
	
2001-08-08  Christophe Lambin <clambin@easynet.be>

	(Bug fixes)

	* pan/gui-paned.c (gui_paned_construct): allow the grouplist pane
	to shrink beyond its requisition size to account for people running
	under lower resolutions. Thanks to mdew for reporting this problem.

2001-08-06  Charles Kerr <charles@rebelbase.com>

	(Prefs UI)

	* pan/prefs.c: committed patch written by Mike Robinson to make
	the cache tab look a little cleaner.  Thanks!

2001-08-06  Charles Kerr <charles@rebelbase.com>

	(Icons)

	* pan/gui.c: refresh icons for Help|Manual, Help|Feedback
	* pan/articlelist.c: added evo's icons for move/copy-to-folder.
	* pan/article-toolbar.c: added 'glasses' icon for watched threads.

2001-08-06  Stanislav Visnovsky  <visnovsky@nenya.ms.mff.cuni.cz>

	* pan.desktop: Added Slovak messages from Marcel Telka <marcel@telka.sk>

2001-08-06  Stanislav Visnovsky  <visnovsky@nenya.ms.mff.cuni.cz>

	* CREDITS, NEWS: Added credits for translation by Marcel Telka.
	* configure.in: Added sk to ALL_LINGUAS
	* po/sk.po: Added Slovak translation from Marcel Telka <marcel@telka.sk>

2001-08-02  Charles Kerr <charles@rebelbase.com>

        (Posting Headers)

	* pan/message-send.c: added support for pumping the charset from
	nl_langinfo instead of just hardcoding the charset.  Thanks to
	Volodymyr M . Lisivka for the patch.

	* pan/message-window.c: in the "Extra Headers" field on a follow-up,
	try to add the X-Comment-To: header for Fido users.  Thanks again to
	Volodymyr M . Lisivka for the patch.

	(UI Improvements)

	* pan/rules/rule-edit-ui.c: if the rule that the user selects for
	this filter is an empty filter, a warning is given.

2001-07-31  Christophe Lambin <clambin@easynet.be>

	(Bug fixes)

	* pan/prefs.c (prefs_newsrc_page): toggling the 'subscribed groups
	only' and 'backup .newsrc' switches wasn't activating the 'Apply'
	button.

2001-07-31  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/text.c (update_body_pane_nolock): small cleanup.  This seems
	to Make Gtk 1.2's GtkText widget a little happier.

	(UI Changes)

	* pan/base/file-grouplist.c: if we get an unsupported file format,
	ask "are you using an old version of Pan by accident?" because this
	is the typical cause for this error
	* pan/base/file-headers.c: sync.

	* pan/xpm/old_binary_complete.xpm:
	* pan/xpm/old_binary_incomplete.xpm:
	* pan/xpm/binary_complete.xpm:
	* pan/xpm/binary_incomplete.xpm: increase contrast with the new/old
	text article icons to make them easier to notice at-a-glance.

	* pan/xpm/filters.xpm: added a black triangle pointing down to
	indicate that this is a popdown menu button.

	* pan/gui.c: moved "task manager" to the top of the online menu
	to make it easier to find.  Some people still don't know you can
	stop a running task.

2001-07-30  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c (articlelist_repopulate): fix array-bounds-write
	error introduced late last week.  Thanks to Adrian von Bidder for
	leading me to this bug.

2001-07-29  Christophe Lambin <clambin@easynet.be>

	(Text Wrapping)

	* pan/prefs.c: new feature to disable wrapping the body of a message 
	when replying. Thanks to Twigboy for suggesting this feature.
	* pan/prefs.h: sync.
	* pan/message-window.c: sync.

2001-07-28  Charles Kerr <charles@rebelbase.com>

	(UI Changes)

	* pan/xpm/old_binary_complete.xpm: new icon.
	* pan/xpm/old_binary_incomplete.xpm: new icon.
	* pan/articlelist.c: sync.

	* pan/prefs.c: changed some of the new features' phrasing at
	Christophe's suggestion.

	(Canned Rules)

	* pan/rules/rule-manager.c: brought into sync with filter-manager
	with the graceful restoring of canned rules that have somehow been
	lost.

2001-07-28  Christophe Lambin <clambin@easynet.be>

	(UI Changes)

	* pan/articlelist.c (articlelist_set_node_style_nolock): implemented
	coloring watched & ignored threads.

	(Bug Fixes)

	* pan/gui-paned.c (gui_paned_construct): Pan wasn't restoring its
	column widths for the article list.
	* pan/gui-notebook.c (gui_notebook_contruct): same.

	* pan/rules/rule-ui.c (apply_now_thread): refresh the article list
	when we manually apply a rule to the active group.
	* pan/rules/rule.c (rule_apply): return the number of articles matched,
	so that callers know whether they need to take some action.
	* pan/rules/rule.h: sync.

2001-07-27  Charles Kerr <charles@rebelbase.com>

	(Rule/Filter Changes)

	* pan/rules/rule-manager.c: replaced "Ignore Bozos" with
	"Delete Bozos".  This way if a bozo posts in an interesting
	thread then we'll still have the interesting thread and only
	the bozo will get thrown out.

2001-07-27  Christophe Lambin <clambin@easynet.be>

	(Filters)

	* pan/article-toolbar.c: new approach to setting custom filters.
	Custom filters can now be switching on and off in one click.

	(Bug Fixes)

	* pan/article-toolbar.c: when switching to custom filters, remove
	the filter phrase, since we're not filtering on that anymore.

	* pan/prefs.c: applying changes would change the font of all
	articles in the active group to bold.

2001-07-27  Charles Kerr <charles@rebelbase.com>

	(UI Changes)

	* pan/text.c: borrowed Sylpheed's "smooth scrolling" for the
	text window on space reading.
	* pan/prefs.c: added prefs to turn smooth scrolling on/off.

	* pan/article-toolbar.c: updated to the new envelope icons.
	* pan/xpm: removed unused xpm files.

2001-07-26  Charles Kerr <charles@rebelbase.com>

	(UI Changes: Colors, Icons, Fonts)

	* pan/article.h: added "new_children" field, mirroring
	"unread_children".  Used in articlelist when boldfacing articles
	that have new replies.
	* pan/article.c: sync.
	* pan/article-thread.c (thread_articles): populate new_children

	* pan/articlelist.c: removed "new children" column
	* pan/articlelist.c: added new icon/color/font scheme for showing
	the user which threads have new replies, which threads have unread
	replies, which articles are new, which articles are read, etc.
	* pan/articlelist.c: added some icons to the articlelist menu
	* pan/prefs.c: sync in color/font settings for thread pane.

	* pan/grouplist.c: changed the "subscribed group" icon.
	* pan/gui.c: sync in the "subscribed group" menu buttons.

	* pan/gui.c: added the unread/total article qty to the titlebar

	* pan/gui.c (widget_set_font): rewritten as pan_widget_set_font()
	* pan/message-window.c: sync.
	* pan/text.c: sync.

	(Better Tracking of New Articles)

	* pan/file-grouplist.c: bumped file format version number to 5.
	The new version stores article_high_old.  This way 'new' articles
	are 'new' until you fetch new headers from that group, EVEN IF
	you quit & restart Pan or leave the group and then come back later.

	(Email Addresses)

	* pan/*: replaced superpimp.org with rebelbase.com

2001-07-25  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/article-toolbar.c (article_toolbar_set_filter): didn't fire
	a `filter changed' event when the toolbar was set to a custom
	filter.  Thanks to Christophe for noticing this.

	(Space Reading)

	* pan/text.c: the happy return of space reading!

	(Read Next/Prev Thread)

	* pan/articlelist.c (articlelist_view_prev_thread): new func.
	* pan/articlelist.c (articlelist_view_next_thread): new func.
	* pan/gui.c (navigate_menu): added buttons for these.

	(Usability)

	* pan/gui.c: added keyboard accelerators to every button in the
	main menu.  Most buttons didn't have one.
	* pan/articlelist.c: same.

	* pan/articlelist.c (articlelist_delete_articles): when we delete
	articles from the articlelist, make sure select the next article.
	This makes deleting articles from the keyboard friendlier.

	(Safety Checks)

	* pan/articlelist.c (articlelist_set_selected_nodes): behave
	gracefully even if an array of NULL nodes gets passed in.

2001-07-24  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/article-list-toolbar-mediator.c: use the `rebuild' variable
	properly to avoid having an articlelist populated twice when a
	group is loaded.

	(Safety Checks)

	* pan/rules/rule.c (rule_apply): log an error if the filter which this
	rule relies on isn't found.  In this case, all articles fail the
	filter.

	* pan/filters/filter.c (filter_remove_failures): in the case that a
	NULL filter is passed in, all articles should be removed.

	* pan/filters/filter-manager.c: By Christophe's suggestion, we now
	gracefully recreate builtin filters if they get deleted accidentally.

2001-07-24  Charles Kerr <charles@rebelbase.com>

	(Code Cleanup: gnksa_generate_message_id)

	* pan/base/gnksa.c (gnksa_generate_message_id): add a millisecond part
	to improve chances of uniqueness.

	* pan/base/gnksa.c (gnksa_generate_message_id_from_email_addr): new
	function that safely extracts a domain from an email address and
	passes it along to gnksa_generate_message_id().  Previously calls to
	gnksa_generate_message_id() did this on their own without any
	error-checking.
	* pan/base/article.c: sync.
	* pan/message-send.c: sync.
	* pan/message-window.c: sync.
	* pan/article-actions.c: sync.

	* pan/tests/test-gnksa.c: added tests for Message-ID generation.

2001-07-23  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/pan-glib-extensions.c (get_next_token_g_str): fixed bug
	that caused Pan to crash when a NULL string was passed in.  Thanks to
	Shawn Lindsay for reporting this bug. 
	* pan/tests/test-gnksa.c: added regression test to exercise
	get_next_token_g_str a little more.

	(Tweaks)

	* pan/article-toolbar.c (create_filter_from_ulong): smarter creating
	of filters from the filter_bits variable.  Fewer filters when
	possible.

2001-07-23  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/filters/filter-aggregate.c: fix bug that resulted in 
	no articles being shown when all filter buttons were selected.

2001-07-22  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/gui-paned.c (gui_paned_construct): fix bug that caused
	the slider to get lost under the buttons at the top of the panes.
	Thanks to Owen Taylor for reporting & fixing this bug.

2001-07-22  Christophe Lambin <clambin@easynet.be>

	(Rules)

	* pan/rules/rule-edit-ui.c: implemented applying rules on a subset 
	of subscribed rules.

	* pan/rules/rule-xml.c: stores scope of each rule (i.e., using
	a wildcard, or a subset of subscribed newsgroups).
	* pan/rules/rules.dtd: sync.

2001-07-21  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/rules/rule-xml.c (create_rule): fix bug that caused
	apply_to_incoming to be set to true even when it was false.

	* pan/rules/rule-edit-ui.c (dialog_close_cb): make sure to
	unregister from the pan_callbacks() that we registered for
	when the dialog was created.

	* pan/thread-watch.c (thread_set_state): make sure the article's
	group gets its articles-dirty flag set.

	* pan/gui.c (rules_cb): ensure that only one rule dialog at a time
	gets popped up from the gui menu.

	* pan/gui.c (filter_cb): ensure that only one rule dialog at a time
	gets popped up from the gui menu.

	(Usability Tweaks)

	* pan/prefs.c: acache_flush_on_exit now defaults to FALSE for new
	users.  Too many people didn't understand where their articles were
	going.

	* pan/gui.c: added a shortcut (ctrl-f) for the filter editor.

	* pan/filter/filter-aggregate.c (filter_aggregate_test_articles):
	return FALSE when no children in the filter, just for safety.

	(Filters & Rules)

	* pan/filters/filter-manager.c: implemented the canned filters: now
	when a new user starts Pan, "Bozos" and "Spam" filters are created.

	* pan/rules/rule-manager.c: implemented the canned rules: now when
	new users start Pan, "Ignore Bozos" and "Ignore Spam" rules are
	created.

	* pan/article-filter-ui.c: new file.  It's a dialog for adding the
	current article to the spam and/or bozo filter in an easy way.
	* pan/articlelist.c: sync.
	* po/POTFILES.in: sync.

	* pan/filters/filter-manager.h: added "bozo_filter_name" global.
	* pan/filters/filter-manager.h: added "spam_filter_name" global.

	* pan/bozo.[ch]
	* pan/bozo-ui.[ch]
	* pan/filters/filter-bozo.[ch]
	* pan/dialogs/bozo-dialog.[ch]: removed obsolete files.  Bozos are
	finally integrated into the Filter/Rule system.
	* pan/gui.c: sync.
	* pan/articlelist.c: sync.
	* pan/rules/rule-action.c: sync.
	* pan/rules/rule-edit-ui.c: sync.
	* pan/rules/rule-xml.c: sync.
	* pan/filters/filter-edit-ui.c: sync.
	* pan/filters/filter-xml.c: sync.
	* po/POTFILES.in: sync.

	(New Internal Utilities)

	* pan/util.c (pan_error_dialog_parented): new function.

2001-07-20  Christophe Lambin <clambin@easynet.be>

	(Filters)

	* pan/article-list-toolbar-mediator.c: save and restore filter
	settings for individual groups.
	* pan/article-toolbar.c: sync.
	* pan/base/group.h: sync.
	* pan/base/group.c: sync.

2001-07-19  Charles Kerr <charles@rebelbase.com>

	(URL Viewing)

	* pan/util.c (pan_url_show): new wrapper around gnome_url_show that
	looks at user's local settings and BROWSER variable before punting
	to gnome_url_show.
	* pan/gui.c (pan_manual_url): sync.
	* pan/gui.c (pan_homepage_url): sync.
	* pan/text.c: (on_link_clicked): sync.
	* pan/prefs.c: added support for editing/saving external_web_browser.

2001-07-18  Charles Kerr <charles@rebelbase.com>

	(Threading)

	* pan/base/article-thread.c (thread_articles): Better threading of
	articles where the parent of a followup's message isn't available
	but one of its ancestors is.

2001-07-18  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/acache.c (acache_init): handle readdir failure without
	crashing -- occurred when the cache directory didn't exist & couldn't
	be created.

	* pan/base/acache.c (acache_shutdown): acache's two PanCallback objects
	weren't freed.

	* pan/base/newsrc-ui.c: fixed a small memory leak in the
	import/export dialog -- the path string wasn't freed.

	* pan/rules/rule-edit-ui.c (filter_to_string_recursive): fix small
	memory leak.  The rule strings weren't freed.

	(Small Improvements)

	* pan/base/util-file.c (pan_make_temp): if the temp directory can't
	be used, fall back to $TMPDIR or just /tmp.

2001-07-18  Christophe Lambin <clambin@easynet.be>

	(Filters)

	* pan/article-toolbar.c: clear the 'use custom filter' toggle
	when we're not using one.

2001-07-17  Charles Kerr <charles@rebelbase.com>

	* pan/base/newsrc-port.c: fixed a small memory leak in newsrc_export;
	lots of code cleanup & added comments.

	* pan/base/pan-glib-extensions.c (pan_strstr): added a NULL-friendly
	version of strstr.  The rest of the code now uses this instead of
	strstr().   Pan was passing NULL to strstr() when the cache disk was
	full.

2001-07-17  Fatih Demir <kabalak@gtranslator.org>

	* .cvsignore, pan/base|filters|rules/.cvsignore:
	Added/extended the cvsignores.

2001-07-16  Charles Kerr <charles@rebelbase.com>

	(Bugfixes)

	* pan/gui.c (widget_set_font_on_realize): fix free-memory-read and
	free-memory-write bug.  This fixes the ever-popular "1z" bug.  Adam
	Huffman should get the credit for this one since he tracked it down
	to the font-setting code.

	* pan/filters/filter-xml.c: make filter_xml_read check the return
	code from xmlParseFile.  Same as yesterday's fix, applied to a
	different potential bug.

	* tests/test-message-check.c: added a test to make sure that Adrian
	von Bidder's followup message doesn't get marked with a "new new
	content" message.  This is just a regression test for the code fixed
	by Christophe yesterday.

	(Filters)

	* pan/base/group.c: free the filter_name string in the group's
	destructor.
	* pan/base/file-grouplist.c: save & restore the filter_name in the
	grouplist file; bumped the file format version to 4.

	(Tweak)

	* pan/configure.in: Tell what version of gnome-libs we're looking for.

	* pan/configure.in: We were looking for libxml >= 1.8.11; this has
	been fixed to look for [1.8.11....2.0.0).  Got this idea from gal.

2001-07-16  Christophe Lambin <clambin@easynet.be>

	(Bugfixes)

	* pan/rules/rule-ui.c: 'Add New' crashed when no filters were
	defined.  Thanks to Jed S. Baer for reporting this problem.

	* pan/rules/rule-xml.c: cleaner way of handling 'no rules'.
	* pan/filters/filter-xml.c: cleaner way of handling 'no filters'.

2001-07-15  Adam Huffman <bloch@verdurin.com>

	(Bugfixes)

	* pan/rules/rule-xml.c: make rule_xml_read check the return code 
	from xmlParseFile. 
	Thanks to Jed S. Baer for reporting this problem.
	
2001-07-15  Christophe Lambin <clambin@easynet.be>

	(Bugfixes)

	* pan/base/message-check.c: under certain conditions, Pan could
	erroneously decide that there's no new content in a posting.
	Thanks to  Adrian von Bidder for reporting this problem.

2001-07-12  Christophe Lambin <clambin@easynet.be>

	(Bugfixes)

	* pan/text.c: improve our handling of an article's References,
	where some newsreaders use multiple spaces to separate MessageIDs.
	Thanks to Adrian von Bidder for reporting this problem.

2001-07-10  Christophe Lambin <clambin@easynet.be>

	(Filters)

	* pan/filters/filter-ui.c: don't delete a filter if there are still
	rules using that filter.
	* pan/rules/rule-manager.c: sync.
	* pan/rules/rule-manager.h: sync.

	* pan/rules/rule-edit-ui.c: set the active filter in the menu.

2001-07-04  Christophe Lambin <clambin@easynet.be>
 
	(Bugfixes)
	 
	* pan/task-headers.c: only update the range of a group once we've
	removed expired articles, so that we can detect whether these
	articles were read or not.
       	* pan/base/file-headers.c: sync.
       	* pan/base/group.c: sync.
       	* pan/base/group.h: sync.
       	* pan/base/newsrc.c: sync.

2001-06-27  Charles Kerr <charles@rebelbase.com>

	(Filters)

	* pan/articlelist.c: in the filtering task description, give the
	name of the filter (if the filter has a name).

	* pan/article-toolbar.c: now handles going from one custom filter
	to another correctly.

	* pan/article-toolbar.c: cleaned up some of the text messages.

	(Bozo Dialog)

	* po/POTFILES.in:
	* pan/gui.c:
	* pan/bozo-ui.c: new file -- added the bozo dialog back in.

	* po/POTFILES.in:
	* pan/dialogs/rules.glade:
	* pan/dialogs/rules_interface.[ch]: 
	* pan/dialogs/rules_callbacks.[ch]: removed dead files.

2001-06-26  Charles Kerr <charles@rebelbase.com>

	* configure.in: halfway updated to autoconf 2.50.  Didn't change to
	configure.ac, as automake's patches seem to not handle it completely.

2001-06-23  Charles Kerr <charles@rebelbase.com>

	(Filters & Rules)

	* pan/rules/rule-ui.c: added "apply to selected groups" button.
	* pan/rules/rule-ui.c: added "apply to subscribed groups" button.
	* pan/rules/rule-xml.c: fix bug in loading rules, to see if the rule
	should be applied to incoming messages or not.
	* pan/rules/rule-edit-ui.c: added "apply to incoming" button.
	* pan/rules/rule-ui.c: added hit ratio column in clist.
	* pan/rules/rule-ui.c: make the edit/remove/apply buttons insensitive
	whenever no rule is selected.
	* pan/filters/filter-ui.c: make the edit/remove buttons insensitive
	whenever no filter is selected.

2001-06-20  Charles Kerr <charles@rebelbase.com>

	(Filters)

	* pan/filters/filter-saved.c: new Filter
	* pan/filters/filter-edit-ui.c: sync.
	* pan/filters/filter-xml.c: sync.

	* pan/article-toolbar.c: sync. Now we can finally plug the
	saved/queued/idle buttons into the rule generator.

2001-06-20  Christophe Lambin <clambin@easynet.be>

	* Remove reference to task's high_priority field where appropriate

	* Posted articles are now added to the front of the queue.

2001-06-20  Charles Kerr <charles@rebelbase.com>

	(Filter Usability)

	* pan/article-toolbar.c: made the way of toggling between custom filters
	and the builtin filter flags a little nicer.

	(Filter Matches - What to Show)

	* pan/articlelist.c:
	* pan/article-list-toolbar-mediator.c:
	* pan/article-toolbar.c: added ability on what articles to show on a
	filter match: article, article+references, article+replies, or entire
	thread.

2001-06-15  Charles Kerr <charles@rebelbase.com>

	(Rules & Filters)

	* pan/article-toolbar.c: more love.

	* pan/rules/rule-xml.c:
	* pan/rules/rule-ui.c:
	* pan/rules/rule-edit-ui.c:
	* pan/rules/rules.dtd: landed new rules code into CVS.  The new rules
	are integrated with the new filters landed last week, yay!

	* pan/pan.c:
	* pan/gui.c: sync.
	* pan/task-headers.c: sync.

2001-06-14  Charles Kerr <charles@rebelbase.com>

	(Filter Memory Management)

	* pan/article-toolbar.c (create_filter_from_ulong): make the resulting
	filter a little smaller.
	* pan/article-toolbar.c (update_custom_menus): fix FMR error.
	* pan/filters/filter-ui.c (filter_dialog_close_cb): fix memory leak.

	(XML Utilities)

	* pan/pan-glib-extensions.c (pan_str_escape):
	* pan/pan-glib-extensions.c (pan_str_unescape): new utility function.
	* pan/test.c (make_safe_for_html): superceded by pan_str_escape
	* pan/filters/filter-xml.c (pan_g_string_append_escaped): now use
	pan_str_escape.

2001-06-13  Charles Kerr <charles@rebelbase.com>

	(Filter Memory Management)

	* pan/filter-xml.c: make sure we unref articles after adding them as
	children to filter_aggregate.
	* pan/article-toolbar.c: same.

	* pan/article-toolbar.c: refer to the filters by name, rather than by
	pointer value, because filters are all copy-by-value and so the
	pointers are not reliable.

        * pan/article-list-toolbar-mediator.c: make sure we unref the filter
	when we're done with it.

2001-06-13  Charles Kerr <charles@rebelbase.com>

	(Author Name Attribution)

	* pan/message-window.c: added Christophe Lambin's patch for %n being
	replaced with the short author name string in the attribution lines.
	* pan/prefs.c: sync.

	(Filters)

	* pan/filters/filter.c (filter_test_articles): new virtual function.
	This lets us test batches of articles recursively in a slightly more
	efficient way.
	* pan/filters/filter-aggregate.c (filter_aggregate_test_articles):
	if there's only one filter in the aggregate, just call
	filter_test_articles() for the aggregate.

	* pan/filters/filter-phrase.c: allow filtering on the Message-ID field.

	* pan/article-toolbar.c: polish, polish, polish.

2001-06-12  Charles Kerr <charles@rebelbase.com>

	(Filters)

	* pan/filters/filter-thread.c: added "neither watched nor ignored"
	state in filter-thread.
	* pan/filters/filter-edit-ui.c: sync.
	* pan/filters/filter-xml.c: sync.

	(Filter UI)

	* pan/article-toolbar.c: more love.  About 90% ready.
	The traditional FILTER_STATE filters are faster; you can edit
	filters from the cascading menu; the code's been tidied up some more.

	* pan/articlelist.c: emit a status message telling the user when the
	articles are being filtered.  This is as much for my benifit as the
	user's: this is a useful way of seeing how long filtering takes.

	(Dialogs)

	* pan/gui.c (filter_cb): parent the dialog before showing it.
	* pan/dialogs/rules_callbacks.c (dialog_rules): same.
	* pan/dialogs/rules_callbacks.c (dialog_edit_rule): same.

	(Cleanup)

	* pan/acache.c: use the acache_flush_on_exit global instead of using
	gnome_config.

2001-06-10  Charles Kerr <charles@rebelbase.com>

	* pan/filters/*[ch]: landed filters into CVS.

2001-06-08  Charles Kerr <charles@rebelbase.com>

	* pan/group.h (group_chunk_string): added boolean specifying whether
	or not to try to share the string.  Common strings such as author name,
	Subject, References should be shared, but strings unique in the group
	such as Message-ID or Xref shouldn't be.

	* pan/article.c (article_set_header): the HeaderAction argument now has
	two possible values: DO_CHUNK and DO_CHUNK_SHARE, which decide how to
	call group_chunk_string().  The old behavior of sharing all strings
	added unneeded overhead for the group's GStringChunk.
	* pan/gui.c:
	* pan/nntp.c:
	* pan/message-window.c: sync.

	(Message IDs)

	* pan/identities/identity.[ch]: added a field to hold a custom fqdn
	for Message ID generation. 
	* pan/identities/identity-xml.c: sync.
	* pan/identities/identity-edit-ui.c: sync.

	* pan/message-window.c (populate_article_from_mw): if the selected
	profile has a fqdn, use it to generate the MessageID.

	(Bug Fixes)

	* pan/prefs.c (prefs_apply_cb): fixed a crash when trying to set
	custom foreground and/or background colors. This seems to be related
	to some GTK themes causing gtk_rc_get_style() to return NULL.
	Thanks to T'Az and Krishna Naik for reporting this problem.

	* pan/prefs.c: fixed some issues with yesterday's commits.

2001-12-11  Charles Kerr <charles@rebelbase.com>

	(UI Tweaks)

	* pan/prefs.c: added a help dialog to show the date format strings.
	* pan/prefs.c: moved "Layout" to the "Display" section
	* pan/prefs.c: moved News/Mail to "Servers - News" and "Servers - Mail"

        * pan/message-window.c: Clicking on the "Use External Editor" in the
	message composer now desensitizes the entire message composer window
	until the external editor has been closed.  This fixes all kinds of
	possible issues such as pressing the edit button twice, or hitting
	send while the external editor's still open, etc.

2001-12-09  Charles Kerr <charles@rebelbase.com>

	(New/Unread/Old/Read)

	Committed first draft of the changes described on pan-users.

2001-12-09  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/message-window.c (populate_post_info_pane): if Followup-To is
	set to 'poster', only send the article as an email. Thanks to 
	Christian Lohmaier for reporting this.

2001-12-07  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/task-headers.c: after deleting all headers, 'Get New Headers'
	would download an old header.

2001-12-06  Christophe Lambin <clambin@easynet.be>

	(UI Tweaks)

	* pan/prefs.c: modified the layout somewhat to make the Preferences
	window smaller. It now fits on a screen running at 800x600.

2001-12-06  Charles Kerr <charles@rebelbase.com>

	(GUI Headers)

	* pan/base/article.h (article_get_newsreader): removed unused func.
	* pan/base/article.h (article_get_header_run_hash): new function.
	* pan/base/run.[ch]: new module.
	* pan/gui-headers.c: use article_get_header_run_hash.

	(Strings on the Stack)

	* pan/base/pan-glib-extensions.h: pan_strdup_a: new alloca macro.
	* pan/base/pan-glib-extensions.h: pan_strndup_a: same.

2001-12-06  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/article.h: the replaced 'supercede' with 'supersede'.
	Apparently my "fix" for 0.11.1 was wrong.  son-of-1036 is explicit
	that there is no 'c' in supersede. :)

	(Usability)

	* pan/base/acache.c (acache_init): log a warning if the cache
	directory can't be read.  

	* pan/base/util-file.c (directory_check): log a warning if the
	directory can't be found and/or created.

2001-12-05  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/file-grouplist.c: fixed bug that caused upgrading from
	really old versions of Pan difficult.  Thanks to Brandon McCombs
	for reporting this bug.

2001-12-04  Charles Kerr <charles@rebelbase.com>

	(Housekeeping)

	* NEWS:
	* README:
	* configure.in: Bump version number to 0.11.1.

	(Bug Fixes)

	* pan/queue.c: fix a handful of mutex-related bugs.

2001-12-04  Duarte Loreto <happyguy_pt@hotmail.com>

        * configure.in: Updated to add new translation to Portuguese (pt) in ALL_LINGUAS.
        * NEWS: added pt translation to New features (as told in po/README_TRANSLATORS.txt)
        * CREDITS: Added pt translation to credits for 0.11.1

2001-11-03  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/util-file.c (check_directory): make sure there's always
	a G_DIR_SEPARATOR at the end of the path before we call mkdir.
	Apparently Mac OS X hates the trailing /.  Thanks to Max Horn
	for reporting this.

	* pan/test (Makefile.am): explicitly link against $(INTLLIBS).
	Thanks to Max Horn for reporting this.

	* pan/all-over-the-place: changed invocations of ctype's
	isxxx(*pch) from isxxx((int)*pch) to the correct
	isxxx((guchar)*pch).  Thanks to Morten Welinder for reporting
	this bug.

2001-12-02  Wang Jian  <lark@linux.net.cn>

	* configure.in(ALL_LINGUAS): Added zh_CN for Simplified Chinese.

2001-11-28  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/article.h (HEADER_SUPERSEDES): s/supersede/supercede/.
	* pan/article-actions.c: same

2001-11-27  Christophe Lambin <clambin@easynet.be>

	(GUI Headers)

	* pan/gui-headers.c (gui_headers_set_nolock): added the newsreader as
	one of the displayable headers. This basically looks for the article's
	'User Agent', 'X-Newsreader' or 'X-mailer' header and displays the
	value.  Thanks to Jim22 for requesting this feature.
	* pan/gui-headers.h: same.
	* pan/prefs.c (prefs_text_page): same.

	* pan/base/article.c (article_get_newsreader): new function for
	easily extracting the above.
	* pan/base/article.h: same.

2001-11-27  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/gnksa.c (gmtime_r): fix typo that caused Pan to not
	compile on Mac OS X.  Thanks to Max Horn for reporting this.

	(UI Tweaks)

	* pan/articlelist.c: the left/right arrow keys now collapse/expand
	the currently-selected threads.  Thanks to Chris Petersen and
	Martin Wulffeld for suggesting this.

	(Housekeeping)

	* configure.in: bumped version number.
	* README: same.
	* Makefile.am: added depcomp because automake is only human.

2001-11-26  Charles Kerr <charles@rebelbase.com>

	(Acache Tweaks)

	* pan/base/acache.c: changed the lookup table's key from filename to
	Message-Id.  We always have the Message-Id, but the filename is
	derived, so this saves needless derivation cycles.

	* pan/base/acache.c: removed "filename" from acache's internal tables.
	The filename was only used when removing an article from the cache,
	which is uncommon enough that we're better off deriving the filename
	at that point instead of using memory & cycles to keep it all the time.

	(Small Bugfixes)

	* pan/base/article.c (articles_set_read): add missing debug_exit().

	* pan/base/decode.c: cast to avoid Solaris warning.

	* pan/gui.c (navigation_menu): Fix typo.  Thanks to Nam SungHyun for
	reporting this bug.

2001-11-25  Charles Kerr <charles@rebelbase.com>

	(Paranoia)

	* pan/base/article.c (article_set_from_raw_message): new safety checks.
	* pan/base/article.c (set_from_raw_init_header_gmhfunc): same.

	* pan/base/gnksa.c (generate_message_id_from_email_addr): added
	g_warning if an invalid email address is passed in.

	(Random Tweaks)

	* pan/base/pan-glib-extensions.c (get_next_token_range): renamed to
	the more-accurately-named get_next_token_run, 

2001-11-24  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c (fire_group_chnaged): since this is an idle func,
	we need to return 0 here or the function will keep being fired
	forever, pegging the CPU when the user hits "empty group".

	* pan/message-send.c: when sending articles, make sure to ref/unref
	PAN_SENT's articles, because the article being sent is placed into
	that folder, and the article needs to stay alive for the entire span
	of the task.

	* pan/base/article.c (article_is_valid): the group-has-a-memchunk
	check was not valid for folders, which prevented articles from being
	posted correctly.  Moved the group check up to a call to
	group_is_valid(), which is a better place to keep group's
	implementation details.

	* pan/base/group.c (group_is_valid): if the group isn't a folder and
	the article refcount is >0, make sure _article_chunk!=NULL.

2001-11-24  Christophe Lambin <clambin@easynet.be>

	(Bug Fix)

	* pan/base/newsrc-port.c (newsrc_import): fixed segfault when the
	newsrc file exists, but Pan is unable to read it (e.g. permissions).
	Thanks to Joris Lambrecht for reporting this bug.
	
2001-11-23  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/article-thread.c (check_multipart_articles): now parts 2..n
	are marked MULIPART_ALL or MULTIPART_SOME.  Previously only the first
	article was marked this way, which caused troubles when filters looked
	at individual articles to see if they were complete/incomplete.

2001-11-22  Charles Kerr <charles@rebelbase.com>

	(Random Tweaks)

	* pan/base/util-mime.c (pan_header_is_8bit_encoded): new function.
	* pan/base/article.c (article_set_author_from_header_impl): remove
	at least six malloc/free calls per call.
	* pan/nntp.c (nntp_download_headers): remove at least four malloc/free
	calls per header downloaded.
	* pan/nntp.c (nntp_article_downloaded): remove at least nine
	malloc/free calls per article body.  Yes, I know this is unimportant,
	I just don't want to start anything big before family gets here. :)

2001-11-21  Charles Kerr <charles@rebelbase.com>

	(Build Fix)

	* pan/thread-watch.c (thread_set_state): renamed pan_thread_set_state
	to avoid name collision with Mac OS X.
	* pan/thread-watch.c (thread_get_state): renamed pan_thread_get_state
	to avoid name collision with Mac OS X.
	* pan/articlelist.c: sync.
	* pan/filters/filter-thread.c: sync.
	* pan/rules/rule-action.c: sync.

	* configure.in: added gmtime_r and localtime_r checks.
	* pan/base/gnksa.c:  If gmtime_r or localtime_r aren't available,
	define them here.  Thanks to Max Horn for these Mac OS X fixes.

	(Random Tweaks)

	* pan/base/pan-callback.c: try to handle the steady state without any
	heap memory allocation or mutexes.

2001-11-21  Christophe Lambin <clambin@easynet.be>

	(Bug Fix)

	* pan/filters/filter-xml.c (populate_top): fixed a bug that caused 
	non-visible filters to reappear after restarting Pan. Thanks to
	Douglas Bollinger for reporting this.

2001-11-20  Christophe Lambin <clambin@easynet.be>

	(Filters)

	* pan/base/file-grouplist.c (read_group_data/write_groups): bumped up 
	file version to 8. We now also save the group's filter_show field 
	('Which Articles to Show').  Thanks to Uli Wachowitz for suggesting 
	this.

2001-11-20  Charles Kerr <charles@rebelbase.com>

        * If some bozo includes a windows pathname in the filename of an
          attachment, strip out that pathname.

2001-11-19  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

        * pan/articlelist.c (headers_fetched) fixed 0.11.0 bug that, when an
	empty group was activated, Pan would go to the server twice for new
	headers instead of once.  In addition to pointless load, if you were
	really unlucky there would be one or two new articles in the second
	load, marking the ones from the first run and leaving you scratching
	your head "how did I just download a batch of old articles from a
	new group?" :)

	(Usability)

	* pan/task-save.c (task_save_run):  Don't fail the task if we fail to
	decode an article that appears to not have attachments: the user may
	have left the "save attachment" button on in the "save article" dialog
	and shouldn't be penalized for that.

	(Safety Checks)

	* pan/base/article.c: added more sanity checks to check the validity
	of arguments passed in to artcile functions.

2001-11-18  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/save-ui.c: commit bugfix patch provided by Joseph Turian.

	* pan/task-save.c: fix a memory leak reported by Rick at mynet.dhs.org.

2001-11-17  Charles Kerr <charles@rebelbase.com>

	(Fixes for Terrible Bugs)

	* pan/base/file-headers.c (file_headers_save_group):
	* pan/base/file-headers.c (file_headers_save_folder): call
	directory_check() to ensure that the directory exists before
	we open the save file.
	* pan/base/file-headers.c (file_headers_save_group):
	* pan/base/file-headers.c (file_headers_save_folder): changed the
	return val from void to boolean so that the caller can know if the
	save failed.
	* pan/base/file-headers.c (file_headers_save_group):
	* pan/base/file-headers.c (file_headers_save_folder): log an error
	to the Pan Error Log if the save failed.
	* pan/base/util-file.c (pan_rename): return a gboolean, instead
	of a void, so that the caller can know if the rename was successful
	or not and take appropriate actions.
	* pan/base/util-file.h: sync.

	(Save State)

	* pan/base/server.c (server_add_groups): save the server's grouplist
	to disk whenever groups are added.
	* pan/base/serverlist.c (server_folders_load): when adding Pan's
	builtin folders, make sure to batch them up into a single call to
	server_add_groups() s.t. the grouplist is only saved once.  All other
	callers already batched the added groups...
	* tests/test-newsrc.c:
	* tests/test-decode.c:
	* tests/test-message-check.c: turn off autosaving off in places of
	regression tests where it makes no sense.

	(Usability)

	* pan/task-grouplist.c: make some status messages clearer.
	* pan/task-headers.c: same.


2001-11-16  Charles Kerr <charles@rebelbase.com>

	(Clear Groups)

	* pan/group-ui.c (group_empty_dialog): reworked this to handle
	multiple groups in a single dialog, instead of having one dialog
	per group.  Thanks to Vadim Berezniker and Jim Henderson for
	suggesting this feature.

2001-11-15  Christophe Lambin <clambin@easynet.be>

	(Bug Fix)

	* pan/queue.c (queue_run_thread): when a task fails, give the queue
	a nudge. This should fix the stalled queue problem reported by
	Alex V Flinsch, Alan Young and Gabi Davar.

2001-11-14  Charles Kerr <charles@rebelbase.com>

	(More Build Fixes courtesy of Alan Young)

	* pan/articlelist.c: changed some "g*array->len > 0" to
	"g*array->len > 0u" to make Compaq's C compiler happy.
	* pan/text.c: same.

	* pan/base/Makefile.am: add GTK_CFLAGS to INCLUDES.
	* pan/filters/Makefile.am: same.
	* pan/identities/Makefile.am: same.
	* pan/rules/Makefile.am: same.

2001-11-14  Charles Kerr <charles@rebelbase.com>

	(Pedantic)

	* pan/base/argset.h: the function passed to pthread_create()
	needs to return a void*, not void.
	* pan/rules/rule-ui.c: worker thread func return a void*, not void.
	* pan/grouplist.c: same.
	* pan/queue.c: same.

	* pan/base/decode.c: changed some C++-style comments to C-style.
	* pan/article-toolbar.c: same.
	* pan/gui.c: same.

	* pan/base/article.c: added explicit uchar/char casts.
	* pan/base/util-mime.c: same.
	* pan/filters/filter-xml.c: same.
	* pan/filters/rule-xml.c: same.
	* pan/filters/identity-xml.c: same.
	* pan/nntp.c: same.
	* pan/text.c: same.

	* pan/base/article.h: removed a comma from end of an enum list.
	* pan/base/article-thread.h: same.
	* pan/base/message-check.h: same.
	* pan/filters/filter-phrase.h: same.

	* pan/articlelist.c: "static struct arrayname [];" isn't legal --
	  remove the static keyword to make ansi happy.
	* pan/text.c: same.

2001-11-13  Charles Kerr <charles@rebelbase.com>

	(Layout)

	* pan/gui.c (gui_shutdown): fix bug that incorrectly saved the
	hpaned/vpaned values for layout type 5 (3 vertically stacked panes).
	Thanks to Douglas Bollinger and Erik W. Hanson for reporting this bug.

	* pan/gui.c (toggle_pane_visiblity): only rebuild the layout if the
	new state != the old state.  This prevents the layout from being
	rebuilt three unnecessary times during startup when initializing the
	menu widgets.
	* pan/gui-paned.c: sync.

	(GUI Paned/Notebook)

	* pan/gui.c: rewrote all the crufty gui-paned/gui-notebook code.  Now
	keyboard activation is be more consistent between the two layouts.
	* pan/gui-notebook.c: same.
	* pan/gui-paned.c: same.

	(Thread/Unthread Header Pane)

	* pan/prefs.c (header_pane_is_threaded): new variable for prefs_init().
	* pan/gui.c: save header_pane_is_threaded to gnome_config() on exit.
	* pan/articlelist.c: use header_pane_is_threaded.  This solves a bug
	with having to press the thread/unthread button twice before it would
	work properly.  Thanks to Jed Baer for reporting this bug.

	(Grouplist Usability Changes)

	* pan/grouplist.c: remembering the last Pan session's group_mode is
	not really in sync with what would be most usable -- almost always
	people want to see "subscribed" for daily use, and then look at "all"
	if want to subscribe to a group.  The new scheme uses this fact to
	decide the mode: when bootstrapping/switching to a server, if the
	server has subscribed groups, we set the view to "subscribed".
	Otherwise it's likely the user wants to subscribe to some, so we set
	the view to "all", and if there are no groups, also show the
	"download group list?" dialog.

	* pan/grouplist.c: whenever loading a server and we can't find any
	groups for that server, show the "download group list?" dialog.
	Previously this was only done the first time, for new users.

	(Plumbing)

	* pan/base/file-grouplist.c (file_grouplist_exists): now returns a
	ServerGroupsType instead of a bool so that you can tell what _type_
	of groups exist.

	* pan/base/file-grouplist.c (save_groups_to_file): if no articles
	exist in a grouptype, unlink the corresponding .dat, .idx files.

	* pan/base/group.c (groups_set_subscribed): when the subscribed
	state of groups change, save the affected grouplists for safekeeping.

2001-11-12  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c (articlelist_selection_changed_cb): ack,
	we were leaking a GPtrArray each time we read an article!

	(Usability)

	* pan/gui.c (view_menu): renamed the 'zoom' functions' menu text to
	to something more easily understood.  Thanks to Cory Dodt for this
	suggestion.

	* pan/article-toolbar.c (article_toolbar_new): added "filter by
	message-id" to the article toolbar's filter.

	* pan/gui.c (gui_key_press_cb): shift-delete will delete threads
	again now.  This went away for awhile for no apparent reason.  Thanks
	to Kevin (kevlinux) for bringing this to my atttention.

	* pan/dialogs/dialog-newuser.c (get_default_news_server):  If the
	environment variable NNTPSERVER isn't set, get the host's domain and
	prepend it with "news.".  This should correctly guess the news server
	for most .edu sites and domestic cable modem users.

2001-11-11  Charles Kerr <charles@rebelbase.com>

	(Usability)

	* pan/gui-paned.c (gui_paned_enter_clicked_nolock): if >1 article
	is selected when Return is pressed, download & show the first article
	as before, but also download articles 2..n in a second task.  Thanks
	to Cory Dodt for suggesting this improvement.

	* pan/base/article.c (article_get_unique_threads): the return array
	should maintain the sort order of the incoming articles, instead
	of in an unordered bag.  For example when the user hits "Download
	Threads", one wants to see the articles download from the top article
	on down, rather than in a random pattern.  Thanks to Cory Dodt for
	suggesting this improvement.

	(Bug Fixes)

	* pan/base/acache.c (acache_set_message): fix bug that caused the
	article cache to grow larger than the user-specified maximum.
	Thanks to Muralito and Alan Young for reporting this bug.

	* pan/base/article.c (article_get_thread_message_id): return the right
	message-id even if the Article passed in has a broken References:
	header.  We do this by walking up the article hierarchy (because
	article_thread does a pretty good job of threading even without
	References) before looking at the References: header.  This fixes a
	bug that kept some threads from being Watched or Ignored properly
	when the user hit Watch or Ignore.  Thanks to David Watson for
	reporting this bug.

2001-11-10  Charles Kerr <charles@rebelbase.com>

	(Usability)

	* pan/base/decode.c: if the decode file can't be created for whatever
	reason (for example, the specified directory isn't writable) then send
	an error to the Pan log and fail the task.  Thanks to Sebastien Leclair
	for suggesting this.
	* pan/task-save.c: sync.
	* pan/base/util-file.c (directory_check): change retval from void to a
	gboolean that tells whether or not the specified directory exists.

2001-11-09  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/pan.c: moved PAN_SENT and PAN_SENDLATER to pan/base/serverlist.c,
	so that they will be defined in the lowest-level library in which
	they're used.  This fixes a compile error reported by Francesco Lamonica
	and Gavi Dabar.

	(GUI Tweaks)

	* pan/gui.c: replaced "Get Specific Articles..." with
	"Download Articles..." by popular demand from Jake Zhukov and
	Alex Flinsch.

	(Save Setup)

	* pan/base/save-setup.c: removed -- it's too risky in a threaded app.
	* pan/articlelist.c (clear_group_nolock): save here instead.
	* pan/articlelist.c (set_group_mainthread_end): and here.
	* pan/task-headers.c (task_headers_run): and here.
	* pan/base/group.c (group_unref_articles): and here.

	* pan/file-headers.c (file_headers_save): added a mutex s.t. only one
	group can be saved at a time.  This prevents the same group from being
	saved twice at the same time and seems to make Pan run a little more
	smoothly too.

	(Watch / Ignore Threads)

	* pan/articlelist.c (articlelist_selected_thread_watch_nolock):
	faster watching of multiple threads.

	* pan/articlelist.c (articlelist_selected_thread_watch_nolock):
	if two articles in a thread were selected when 'watch' was hit,
	the thread wasn't watched (actually, it was watched, then unwatched
	when the second article was checked).

2001-11-08  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/save-setup.c (save_setup_impl): put a mutex in here so
	that we don't get two threads saving the setup concurrently.

	* pan/group.c (group_unref_articles): fix thread issue with calling
	save_setup().  This was causing all kinds of problems yesterday.

	* pan/group.c (group_destructor): correct the order in which items
	are freed.  This fixes a barrelful of FMR, FMW, ABR, and ABW errors.

	* pan/text.c (text_pane_popup_menu): added "GNOMEUIINFO_END" to
	the end of this array.  Fixes ABR and ABW errors.

	* pan/acache.c (acache_set_message): Fix memory leak.

	* pan/prefs.c (prefs_servers_changed): If the server list has changed,
	make sure it's saved to disk for posterity when user hits Apply or OK.

	(Testing)

	* pan/base/article.c (article_is_valid): add more tests.
	* pan/base/article.c (articles_are_valid): new convenience function
	for sanity checks.
	* pan/base/group.c: sync.
	* pan/base/article-thread.c: sync.

	(Save Setup)

	* pan/save-setup.c: save_setup now comes in two flavors,
	save_setup_now() and save_setup_idle(), to distinguish priority.

2001-11-07  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/group.c: call save_setup() whenever a group's article
	refcount goes to zero.  This is 'crash insurance' was discussed on
	pan-users.

	* pan/nntp.c (nntp_download_headers): don't call
        group_set_articles_dirty() here -- that should be (and is) done
	when group_add_articles() in called with the headers generated
	by nntp_download_headers().

	* pan/base/log.c: added a thread mutex to control access to the
	Pan log.  This solves a bug reported by Jed Baer where one thread
	was halfway through shutting down the Pan log when another thread
	logged a shutdown message and confused everything.

	(Menu Changes)

	* pan/gui.c: moved "Delete all Articles" to "Empty ..." next to
	"Delete" in the group menu.  Thanks to jzhukov for suggesting that
	this be moved.

	* pan/articlelist.c: added "Delete All" next to "Delete" and
	"Delete Thread" in the article menu & popup menu.  Thanks to
	jzhukov for suggesting that this be moved.
      
2001-11-06  Charles Kerr <charles@rebelbase.com>

	(Widen the filter_bits to hold the new "by me/by others")

	* pan/base/group.h: (filter_bits): widened from guint16 to guint32

	* pan/base/file-grouplist.c: bumped format version number to 7.  The
	only change is that if the loaded version <= 6, we turn on the widened
	filter bits with |= 0xFFFF8000 to make sure the "by me" and "by others"
	bits are turned on by default.

2001-11-06  Christophe Lambin <clambin@easynet.be>

	(Filters - Articles by me)

	* pan/article-toolbar.c: added new filter to the toolbar.
	* pan/article-list-toolbar-mediator.c: sync.
	* pan/base/group.h: sync.

	* pan/xpm/by_me.xpm: new icon for toolbar filter.
	* pan/xpm/by_others.xpm: same.

	* pan/filters/filter.dtd: added new filter definition.

2001-11-05  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/group.c (group_ref_articles): only call
	group_set_article_qty if we've just loaded headers from disk and
	therefore have idea to believe that the article qty has changed.
	This prevents a gui double lock in rare circumstances.

	* pan/base/group.c (group_thread_if_needed): put the mutex lock
	before the (if_article_threading_dirty) check instead of after,
	so that multiple threads don't hit that and both, hitting the
	dirty flag, think that they need to thread the articles.  Threading
	once in enough.

	* pan/base/article-thread.c (thread_articles): slightly faster
	threading of articles.

2001-11-05  Christophe Lambin <clambin@easynet.be>

	(Filters)

	* pan/filters/filter-mine.[ch]: implemented a new filter to
	automatically select articles posted by the user. This is done
	by cross-referencing the article's author with those in the user's
	Profile(s).

	* pan/filters/filter-edit-ui.c: sync.
	* pan/filters/filter-xml.c: sync.
	* pan/filters/Makefile.am: sync.

2001-11-03  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c: flag/unflag thread didn't work properly.
	Thanks to Peter Borgmann for reporting this bug.

	* pan/nntp.c: when collapsing a double period as described
	in RFC977 2.4.1, only erase one of the damn periods instead
	of both of them.  Thanks to Thomas K. Gamble for reporting
	this embarassing bug.

2001-11-02  Charles Kerr <charles@rebelbase.com>

	Pan 0.11.0 Released!

2001-10-31  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/group.c: silenced three glib warnings.  Thanks to
	David Oberbeck for reporting this bug.

2001-10-30  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/message-window.c (create_body_pane_nolock): ensure that
	control+return is a shortcut for "Send Now" as in Agent & Gravity.
	Thanks to Himanshu J. Gohel for reporting this bug.

2001-10-29  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/article-toolbar.c (article_toolbar_set_filter): when the
	caller sets a new filter in the toolbar, make sure to update
	the GnomeEntry search field to reflect the new filter.

	* pan/base/util-wrap.c (rot13): Fixed bug in the rot13 code that
	truncated lines when they encountered characters like , , or .
       	Thanks to Nightshade for reporting this bug.
	* pan/tests/test-wrap.c: added regression test to ensure that 
	characters like , , or  don't truncate lines.

2001-10-26  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/artlclelist.c: Fixed 0.10.0.93 that didn't properly show
	new articles added to the active group.

	(Housekeeping)

	* po/et.po: added new Estonian translation by Tivo Leedjrv.

	* gmime: sync with fejj's code.

2001-10-25  Christophe Lambin <clambin@easynet.be>

	(Bugfix)

	* pan/queue.c (queue_run_thread): fixed thread bug that caused
	tasks to get stuck in 'queued' state. Thanks to Frederik 
	Vanrenterghem, Jed S. Baer and Alan Young for reporting this.

2001-10-25  Charles Kerr <charles@rebelbase.com>

	(FreeBSD Build Fixes)

	* pan/filters/filter-phrase.h: #include <sys/types.h> before
	#include <regex.h> to compile under FreeBSD.  Thanks to Christian
	Kuhtz for this suggestion.

	* pan/text.c: removed #include <alloca.h>, which doesn't exist on
	FreeBSD -- instead, just prototype it directoy.  Thanks to
	Christian Kuhtz for this suggestion.

	* pan/base/gnksa.c: use gettimeofday() instead of ftime().  Thanks
	to Christian Kuhtz for this suggestion.

2001-10-22  Charles Kerr <charles@rebelbase.com>

	(Popup Menus)

	* pan/articlelist.c: added popup menus back in.
	* pan/text.c: same.

2001-10-22  Christophe Lambin <clambin@easynet.be>

	(bye bye libESMTP)

	* pan/smtp.c: restored the pre-libESMTP version of SMTP support.
	LibESMTP definitely seems like a good candidate for enhancing Pan's 
	support for SMTP. However, at this time there remain too many
	packaging issues. Too bad. Maybe later.
	* pan/Makefile.am: same.
	* configure.in: same.
	* pan.spec.in: same.
	* acconfig.h: same.

2001-10-21  Charles Kerr <charles@rebelbase.com>

	(UI Tweaks)

	* pan/prefs.c: added a third quoted depth ">>>" color.
	* pan/text.c: sync.

2001-10-21  Christophe Lambin <clambin@easynet.be>

	(Profiles)

	* pan/message-window.c: implemented a PanCallback to keep in sync
	with the Profiles while writing an article. This fixes a segfault
	when we remove an profile, while writing an article using that
	profile. Thanks to lduperval for reporting this bug.

	* pan/identities/identities-manager.[ch]: same.

2001-10-20  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c (articlelist_set_sort_type): when the sort type
	changes, make sure the change is propagated back into the group's
	settings where it will be remembered.  Thanks to Alen Williams for
	reporting this bug.

	* pan/message-send.c (build_nntp_header): Use GMime's InternetAddress
	object when composing the From: header so that we get the right
	encoding.  Thanks to Julien Plissonneau Duquene for reporting
	this bug.  (TODO: migrate the entire posting to GMimeMessage)

	* pan/tests: forgot to sync the tests with the new two-argument
	group_new() function.  Thanks to Laurent Duperval for reporting
	this bug.

	(Delete/Mark Read Crossposts)

	* pan/base/article.c (article_xref_foreach): now takes a
	ServerGroupsType argument s.t. we only traverse groups in
	that set.
	* pan/base/article.c (articles_set_read): only also mark read
	crossposts in subscribed groups.  It's not worth the load to
	mark in groups that the user will never look at.
	* pan/article-actions.c (delete_articles): when deleting an
	article, only delete crossposts in subscribed groups.  Same
	reason.
	* pan/base/server.c (server_get_named_group_impl): take an
	argument of ServerGroupsType so that we know which types to
	look through for this group.
	* pan/base/server.c (server_has_group_in_type): new function.

	(Speedups)

	* pan/base/article.c (article_set_header_impl): if we're initing
	this header then we know there's no current value for the header,
	so don't bother calling article_remove_header() first.

2001-10-19  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/message-window.c: fixed a couple of cases where Articles
	were still being pan_object_{un}ref()ed, even though Article is
	no longer a PanObject.  C++ would've been helpful here. :)

	(More snubbing of PanObject)

	* pan/base/group.[ch]: Group's no longer a PanObject either.  Its
	memory management is controlled by the parent Server object, just
	as Groups control their Article objects.
	* pan/articlelist.c: sync.

2001-10-18  Charles Kerr <charles@rebelbase.com>

	Pan 0.10.0.93 Released!

2001-10-17  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/gui-notebook.c:  Fix crash-on-zoomed-startup bug.  Thanks to
	Leo Lipelis for reporting this bug.

	* gmime/gmime-charset.c:  Upgrade this file to get a fix for Debian
	and Solaris charsets.  Thanks to Jeffrey Stedfast for writing GMime.

	(Dethreading)

	* pan/grouplist.c: Make grouplist's updates operate in the mainthread
	too.  Similar to earlier updates to text.c and articlelist.c.

	(Code Cleanup)

	* pan/article-toolbar.c: removed unnecessary #includes.
	* pan/sockets.c: same.

2001-10-17  Christophe Lambin <clambin@easynet.be>

	(libESMTP)

	* configure.in: now using libESMTP 0.8.6.
	* pan.spec.in: same.

2001-10-17  Charles Kerr <charles@rebelbase.com>

	(Bug "Fixes")

	* pan/base/decode.c: shut up compiler warning.
	* pan/base/util-mime.c: same.

	* pan/status-item-view: try harder to make this threadsafe.

2001-10-15  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/queue.c (queue_mainloop): patch for signals-get-lost bug
	reported by Himanshu J. Gohel, Jed S. Baer, John LeMay, and
	Douglas Kilpatrick.

2001-10-13  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/smtp.c: #include <pan/base/log.h>.  Ooops.

	* pan/articlelist.c (articlelist_set_group_nolock): if the user has
	selected to fetch the group's new headers on load, make sure we do
	that.

	* pan/queue.c (queue_run_what_we_can): fixed thread bug that caused
	some tasks to get stuck in an "Abort" state even if they completed 
	successfully.

	* pan/task-save.c (task_save_run): fix small but ugly FMR/FUM bug.

	(UI Tweaks)

	* pan/task-headers.c: made some of the status messages a little
	shorter so that they'll fit in the progressbar better.

2001-10-12  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c (add_article_to_ctree_nolock): when calculating
	the linecount of a multipart binary, don't double the count for parts
	that have a repost too.

	(Dethreading)

	* pan/text.c: decrufting.  Renamed & reorganized inscrutably-named
	functions that have grown like mold over time.  Sorted the code into
	less irrational groupings.  Decreased the number of thread steps
	needed to update the text pane.  Fixed thread concurrency bug reported
	by war@starband.net.

	* pan/articlelist.c (articlelist_set_sort_type): throw away the old
	implementation and just call refresh (REFRESH_SORT) instead.

	(Code Tweaks)

	* pan/nntp.c (nntp_download_headers): remove 5 g_strdup()/g_free()
	pairs for each header downloaded.  Probably an unimportant change,
	but every little bit helps.

2001-10-11  Christophe Lambin <clambin@easynet.be>

	(Dethreading)

	* pan/articlelist.c: fixed crash when selecting an empty folder.

	(libESMTP)

	* pan.spec.in: added libESMTP to BuildRequires & Requires.
	* configure.in: include libESMTP's CFLAGS to cover non-standard 
	installations. Thanks to war@starband.net for reporting this.
	* pan/Makefile.am: sync.

2001-10-10  Charles Kerr <charles@rebelbase.com>

	(Dethreading)

	* pan/articlelist.c: rewrote the ways in which the articlelist's
	group is set and refreshed.  This simpler and cleaner now, at least
	as much as possible in threads.  This should ameliorate some of the
	"pan's threading is unstable!" complaints.

	* pan/base/group.[ch]: added an Article GMemChunk + accessor.
	* pan/base/article.[ch]: Article is no longer a PanObject; instead,
	its life cycle is tied to the article_refcount of the Group which
	owns it.  This resolves the Article life cycle issues like "what
	happens if a rule deletes an article that articlelist is drawing?"
	and "what if an article is expired while a person's reading it?" etc.

2001-10-10  Christophe Lambin <clambin@easynet.be>

	(libESMTP)

	* pan/smtp.c: rewrite, using Brian Staffort's libESMTP library.

	* configure.in: build with libESMTP.
	* acconfig.h: same.
	* pan/Makefile.am: build with libESMTP.

2001-10-09  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/gui-headers.c (gui_headers_set): wrap the author to cope with
	excessively long email addresses. Thanks to David Watson for
	reporting this.

2001-10-09  Charles Kerr <charles@rebelbase.com>

	(Dethreading)

	* pan/base/argset.c: new module.

	* pan/base/group.c (group_remove_articles): don't unset the group
	pointer when we remove the article from the group's article list --
	The group is still managing the article's memory during its lifespan.

	* pan/base/status-item.c (status_item_new_with_description): new
	constructor that lets the client pass in a description string at
	creation time.

	* pan/base/status-item.c (status_item_destructor): don't set the
	status-item to inactive here; this causes an unhappy feedback loop.
	A status item should be inactive before it's destroyed.

	* pan/status-item-view.c (status_cb_nolock): new impl function.

2001-10-07  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/filters/filter-top.c (filter_top_dup): initialise 'negate'
	so we can create negative aggregate filters. Thanks to Jed S. Baer
	for reporting this.

2001-10-04  Charles Kerr <charles@rebelbase.com>

	(UI: Text Pane Colors)

	* pan/pan.c (main): get the "cmap" variable before calling prefs_init
	so that we can alloc colors inside prefs_init.

	* pan/prefs.c: added two new preferences to toggle on/off using
	the gtkrc colors vs. custom colors in the article view window.

	* pan/text.c: fixed color-assignment bugs.  Thanks to war@starband.net
	for reporting this bug.

	(Code Tweaks)

	* pan/prefs.c (update_entry_and_bool_from_toggle_button): return
	a gboolean flag to indicate if the value has changed.

	* pan/base/debug.c (debug_printf): added "function" argument that
	uses gcc's PRETTY_FUNCTION if we're using gcc.
	* pan/debug.h: sync debugN and odebugN macros.

	* pan/base/util-mime.c: small cleanup.

2001-10-03  Christophe Lambin <clambin@easynet.be>

        * pan/articlelist.c (article_toolbar_set_filter): better fix
        for the Xlib async error.

2001-10-03  Charles Kerr <charles@rebelbase.com>

	* gmime/gmime-filter-basic.c: fix some compiler warnings.
	Also, add in a g_message couting the number of streams alive.
	There's a stream leak somewhere in Pan that I haven't been able
	to track down yet.  (fejj if you want to look at this -- do you
	have a news server?  If not, news.ou.edu is public -- go to
	alt.binaries.picture.fractals and start reading messages.
	Each read message leaves two dangling streams.)

2001-10-03  Jeffrey Stedfast  <fejj@ximian.com>

       * pan/base/util-mime.c (look_for_uuencoded_data): After splitting
       out the uu parts, reset the stream immediately so that if/when we
       write out the content stream, it will write from the
       beginning. This should also make it so any substreams created from
       this stream will be reset. Move the in_stream unreffing action to
       right after we create in_buf since we don't need to hold a ref any
       longer - this doesn't really change anything, it's more for
       peace-of-mind. Once in the for-loop, do proper unreffing of
       streams.

2001-10-03  Charles Kerr <charles@rebelbase.com>

	* pan/Makefile.am: update static libraries for Purify.

	* pan/articlelist.c: removed some debugging g_messages.
	* pan/nntp.c: same.

	* pan/text.c: sync with gmime update.
	* pan/base/article.c: same.
	* pan/base/decode.c: same.
	* pan/base/util-mime.c: same.

2001-10-03  Charles Kerr <charles@rebelbase.com>

	* pan/rules/rule-manager.c (add_any_needed_canned_rules): fix small
	memory leaks.  Thanks to Richard Deken for reporting these bugs.

	* pan/gui.c (edit_menu): added "Select message body" back into menu.
	Thanks to David Oberbeck for requesting this.

2001-10-02  Charles Kerr <charles@rebelbase.com>

	* pan/article-toolbar.c (sensitize_builtin_filters): fix
	Xlib async error.

	* pan/task-save.c: remove unused debugging statement
	* pan/base/serverlist.c: thread safety safeguard.

	* pan/articlelist.c (filter_changed_thread): some pthread safety
	checks when applying a filter to a set of articles.

2001-10-01  Christophe Lambin <clambin@easynet.be>

	* pan/message-window.c (apply_identity): don't add an attribution
	line for new posts & emails.

2001-09-28  Charles Kerr <charles@rebelbase.com>

	* pan/text.c: dead code removal.

	* pan/identities/identity.c (identity_dup): fixed small memory leak.
	Thanks to Richard Deken for reporting this bug.

2001-09-27  Charles Kerr <charles@rebelbase.com>

	* pan/text.c (append_text_cb): new function to display all text
	attachments instead of just the first one.  Thanks to Robert Tilley
	for reporting this bug.

	* pan/base/acache.c (acache_init): don't bother regenerating the
	message-id list if acache_init()'s already been called.

	* pan/base/article.c (article_get_header): fix for getting xrefs.
	This gets "when article is deleted/read/unread, propagate that
	to its crossposts" working again.

	* pan/status-item-view.c: fix problem that caused the progress bars
	to not always be cleared out when a task ended.

	* pan/text.c: unset the text widget's usize height when we're
	not showing pictures.  Thanks to Jed S. Baer for reporting this
	bug.

2001-09-23  Charles Kerr <charles@rebelbase.com>

	* pan/nntp.c (nntp_article_download): That fix in for version 1.197
	wasn't such a great idea; it created a new bug. Try a different
	fix instead.

2001-09-22  Charles Kerr <charles@rebelbase.com>

	0.10.0.91 Released!

2001-09-20  Charles Kerr <charles@rebelbase.com>

	* pan/articlelist.c: don't set the CTreeNodes' fonts when
	we can't load the font (user has selected a font that doesn't
	exist, etc).

	* pan/gui.c (navigate_menu): added new shortcuts for parent
	article and top-of-article.

	* pan/status-item-view.c: fixed crash that occurred when updating
	the gtkprogressbar in a non-gtk thread under pixmapped gtk themes.

	* pan/text.c (set_text_from_article_idle): silenced gtk warning.

	* pan/queue.c (queue_get_tasks): Made this function a little
	safer: we now return a newly-allocated array, instead of the
	queue's private GSList.  We also ref() each task in case it
	would otherwise be destroyed by the time the caller is done
	with the task list.  This new task array is created and reffed
	inside the queue_lock mutex.

	* pan/message-window.c (create_body_pane_nolock): always use a
	monospace font when posting, even if the user uses a variable
	width font when reading.  Thanks to Christian Lohmaier for
	reporting this.

2001-09-18  Fatih Demir <kabalak@gtranslator.org>

	* ABOUT-NLS & config.h.in: Removed from CVS.

2001-09-17  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* configure.in: use gdk-pixbuf-config, rather than gnome-config,
	when detecting the cflags/version/libs for gdk-pixbuf.  Thanks to
	Justin Piszcz for reporting this bug.

2001-09-16  Charles Kerr <charles@rebelbase.com>

	(GMime file support)

	* gmime/gmime-content.[ch]: new files that abstract out how a
	GMimePart's content is held - in a memory array or in a temporary
	file.  Being able to use temporary files lets us decode those
	iso-image attachments without running out of memory.

	* pan/base/decode.c: sync.

	* pan/base/util-mime.c: sync.  This actually lets us drop a couple
	of intermediate steps that used to be needed to massage the data
	into the right shape.

	* pan/text.c: sync.

2001-09-11  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/smtp.c: Fixed problem with date header not being sent when
	sending mail from Pan.  Thanks to Derek Poon for reporting this
	problem and submitting a fix.
			     
	* pan/base/newsrc-port.c: Fixed problem with importing an empty
	.newsrc file.  Thanks to Derek Poon for reporting this problem and
	submitting a fix.
							 
	* pan/queue.c: Fix problem with the queue running away with the
	CPU in 0.10.0.90.  Thanks to Chris Vance for reporting this bug and
	submitting a fix.

	* pan/text.c: Silence a g_warning.  Thanks to Muralito for reporting
	this bug.

	* pan/prefs.c: Fix a couple of typos in the preferences dialog.
	Thanks to Jacob Ils Christensen for posting this patch.

	* pan/dialogs/dialog-newuser.c: Hide the password when the user types
	it in.  Thanks to Jacob Ils Christensen for posting this patch.

2001-09-07  Charles Kerr <charles@rebelbase.com>

	(Goodbye, gtkhtml)

	* configure.in: remove gtkhtml checks, add gdk-pixbuf instead.
	* pan/text.c: gdk_pixbuf for inline images; homebrew clickable URLs
	* pan/prefs.c: add user-configurable URL link color, 2nd quote color

2001-09-07  Charles Kerr <charles@rebelbase.com>

	(Safeguards)

	* pan/base/pan-object.c (pan_object_is_valid): new sanity check func.
	* pan/base/group.c (group_is_valid): new sanity check func.
	* pan/base/group.c (most functions): g_return_if_fail(group_is_valid())
	in most of the function entry assertions.
	* pan/base/articlec (article_is_valid): call pan_object_is_valid().

2001-09-05  Christophe Lambin <clambin@easynet.be>

	(Profiles)

	* pan/message-window.c (post): if we're cross-posting, remember
	the used profile for all newsgroups we just posted too.

	(Bug Fix)

	* pan/message-window.c: avoid duplicate attribution lines if the
	current profile gets changed while writing an article.

2001-09-05  Charles Kerr <charles@rebelbase.com>

	(Tweak)

	* pan/grouplist.c (-grouplist_get_group_readable_name): use a buffer
	instead of a lot of alloc/free's.

	(Safety)

	* pan/file-headers.c: added some extra g_return_if_fail()s to be safe.
	* pan/file-grouplist.c: same.

2001-09-04  Charles Kerr <charles@rebelbase.com>

	(Usability)

	* pan/articlelist.c (group_articles_removed_cb): select, but
	don't activate, the next article after one's deleted.  This
	was intended to be a feature but got negative feedback.

	(Bug Fix)

	* pan/group-actions.c (delete_groups_dialog_cb): don't delete the
	groups if the user hit "no, don't do it".  D'oh!  Thanks to
	Mike Robinson for reporting this bug and submitting a patch.

	(Tweak)

	* pan/nntp.c (nntp_article_download): reuse a buffer, rather than
	alloc/free'ing a new string for each line we read from the server.

	* pan/text.c: sync with some of the gtkhtml-less text.c codebase.
   
2001-09-04  Christophe Lambin <clambin@easynet.be>

	(UI Tweak)

	* pan/articlelist.c: in unthreaded mode, set the article's style
	to reflect only the status of the article itself, not of the replies.
	
2001-09-03  Charles Kerr <charles@rebelbase.com>

	* pan/gui.c: added accelerators for getting articles & sub/unsub
	from group, by request.

2001-09-03  Charles Kerr <charles@rebelbase.com>

	* pan/gui.c: added shortcut for thread/unthread the header pane.

	* pan/base/article-thread.c: have threads with more unread/new
	children show up higher in the sort.

	* configure.in: lowered glib requirement to 1.2.8, since that's
	what gtk 1.2.10 requires.

2001-09-02  Charles Kerr <charles@rebelbase.com>

	(Collapse Group Name)

	* pan/gui.c: added to navigate menu: "Collapse names in group pane".
	* pan/prefs.c: sync.
	* pan/gropulist.c: sync.

2001-09-02  Charles Kerr <charles@rebelbase.com>

	(Save Dialog)

	* pan/save-ui.c: new file, replacing save.c, which integrates the
	"Save Article" and "Save Attachments" dialogs together.
	* pan/task-save.c: new file, replacing task-decode.c, which
	not only decodes articles but optionally saves the article bodies too.
	* pan/article-actions.c: sync.

	(Bug Fixes)

	* pan/nntp.c (nntp_download_body): if we somehow get fed a blank line
	from the server, don't crash.

2001-09-02  Charles Kerr <charles@rebelbase.com>

	(UI Tweaks)

	* pan/gui.c: added "space reading" into the navigational menu.

	(tmp dir)

	* pan/base/base-prefs.h: we no longer define our own tmp dir variable.
	Use g_get_tmp_dir() instead so that we can behave more like other glib
	apps.
	* pan/base/util-file.c: sync.
	* pan/prefs.c: sync.

	(portability (!))

	* pan/base/serverlist.c: use G_DIR_SEPARATOR where appropriate.
	* pan/base/ufil-file.c: same.
	* pan/base/file-grouplist.c: same.
	* pan/base/file-headers.c: same.
	* pan/base/acache.c: same.
	* pan/identities/identity-manager.c: same.
	* pan/filters/filter-manager.c: same.
	* pan/rules/rule-manager.c: same.
	* pan/prefs.c: same.
	* pan/thread-watch.c: same.
	* pan/save.c: same.

2001-09-02  Charles Kerr <charles@rebelbase.com>

	(Sorting)

	* pan/base/article-thread.c (sort_articles): added sorting by article
	raad state (new, unread, new replies, etc) and by action state
	(flagged, queued, etc).  This is triggered by clicking on columns 0
	and 1 in the thread tree.

2001-09-02  Charles Kerr <charles@rebelbase.com>

	(Living with Threads)

	* pan/articlelist.c: keep an array of all the articles we're using.
	Each article's refcount is raised by 1 as long as articlelist is using
	it.  (This has a nice side-effect of letting articlelist to stable
	sorting again)
	* pan/articlelist.c (clear_article_buffer): sync.
	* pan/articlelist.c (articles_added_cb): sync.
	* pan/articlelist.c (articles_removed_cb): sync.
	* pan/articlelist.c (articlelist_set_contents): sync.
	* pan/articlelist.c (articlelist_set_group_maybe): sync.

	* pan/articlelist.c (articlelist_update_articles): ref the
	articles before passing them along to an idle function, just
	to make sure they're still alive when the idle function's run.
	* pan/articllist.c (artlclelist_articles_read_changed): same.

	* pan/group.c: added a field "article_mutex" used whenever the group
	is doing heavy manipulation of its article list: for example, we don't
	want one thread Threading the articles while another is expiring old
	articles, etc.

2001-09-01  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c (articlelist_articles_read_changed_idle):
	A GPtrArray and its buffer were being leaked each time an article's
	read state changed, yuck.

	* pan/text.c (text_create): fix problem with changing the background
	color of the gtkhtml pane.  Thanks to Tivo Leedjrv for providing
	this fix.

	* pan/base/group.c (group_inc_article_read_qty): return if
	group==NULL.  This was triggering a crash in articlelist under
	torture conditions.

	* pan/base/pan-glib-extensions.c (pan_str_unescape): fixed unescaping
	bug.  Thanks to Tivo Leedjrv for reporting this bug and providing
	a fix.

	* tests/test-pan-callback.c: sync the callback functions' signatures
	to match the PanCallback changes made earlier in the week.

	* pan/base/pan-glib-extensions.c (get_next_token_range): don't
	dereference a NULL pointer.

2001-08-31  Christophe Lambin <clambin@easynet.be>

	(Bug fix)

	* pan/base/file-headers.c (file_headers_save_folder): don't complain
	so loudly when an article has no body.

2001-08-30  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/util-mime.c (look_for_uuencoded_data): small memory leak.

	* pan/gmime/gmime-utils.c: update snapshot to fix encoding bug.
	Thanks to Christian Lohmaier for reporting this bug.

2001-08-30  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/message-window.c (article_gen_attribution_string): fixed
	corruption of the short author name.

	* pan/message-window.c (post): record the profile before we
	destroy the message window.

2001-08-29  Charles Kerr <charles@rebelbase.com>

	(Profiles)

	* pan/pan.c (shutdown): call identity_manager_shutdown_module().

	(Usability)

	* pan/gui.c: more descriptive tooltips for the task/connections
	buttons.

	* pan/prefs.c: made the default news server behavior to go online
	without being asked.  Most users seem to be online, rather than
	offline users, so this should be the default.

	(Stupid Tweaks)

	* pan/acache.c (acache_get_filename): use a buffer on the stack
	to avoid unnecessary malloc/free in some frequently-called funcs.
	* pan/util.c (get_date_display_string): same.
	* pan/article.c (article_get_short_author_str): same.

2001-08-29  Christophe Lambin <clambin@easynet.be>

	(Profiles)

	* pan/message-window.c (determine_default_identity): improved logic
	for guessing the default profile to propose. This mainly helps when
	writing a new email (e.g. Feedback).

	* pan/identities/identity-manager.c: new helper function to find
	a profile with matching author name & email address.
	* pan/identities/identity-manager.h: sync.

2001-08-29  Charles Kerr <charles@rebelbase.com>

	* pan/docs/faq.html: updated faq.

	* pan/configure.in: bumped glib/gtk requirements to 1.2.10

	* pan/identities/identity.c (identity_constructor): g_strdup() the
	default attribution string so that it doesn't get free()d later.
	This is my bug.

	* pan/xpm/pan_druid.xpm: new watermark for the new user screen.

	* pan/dialogs/dialog-new-user.c: added new information on the new
	user druid's welcome screen.

2001-08-28  Christophe Lambin <clambin@easynet.be>

	(Profiles)

	* pan/base/file-grouplist.c: bumped file format version number to 6.
	We now also store the last used profile for each group. 

	(Bug fixes)

	* pan/message-window.c (remove_signature): handle articles that are
	empty except for a signature.

	* pan/gui.c (send_feedback_cb): use the default profile for email.

	* pan/base/file-grouplist.c: fixed reading back the group's active
	filter name.

2001-08-28  Charles Kerr <charles@rebelbase.com>

	(Profiles)

	* pan/identities/identity-edit-ui.c: added in a default Attribution
	value when creating a new Profile.

	(Code Cleanup: PanCallback)

	* pan/base/pan-callback.h: made the cb return type void, not int.
	* pan/article-actions.c: sync.
	* pan/article-toolbar.c: sync.
	* pan/articlelist.c: sync.
	* pan/gui.c: sync.
	* pan/dialogs/dialog-log-viewer.c: sync.
	* pan/rules/rule-edit-ui.c: sync.

	(Code Cleanup: Menus)

	* pan/gui.c: use gnome menu macros for slightly less code sprawl.
	* pan/articlelist.c: same.
	* pan/message-window.c: same.

	(Code Cleanup: Dead Code Removal)

	* pan/articlelist.c (articlelist_sort_changed): removed dead code.
	* pan/articlelist.c (articlelist_all_download): same.
	* pan/articlelist.c (purge_articles): same.
	* pan/articlelist.c (articlelist_selected_purge_bodies): same.
	* pan/articlelist.c (articlelist_selected_purge_bodies_deep): same.
	* pan/articlelist.c (articlelist_all_purge_bodies): same.
	* pan/articlelist.c (articlelist_all_purge_bodies): same.
	* pan/util.c (test_linkify_text): same.
	* pan/message-window.c: removed appbar code.
	* pan/util.c (check_and_warn_if_version_change): same.

2001-08-28  Charles Kerr <charles@rebelbase.com>

        (Profiles)
	 
	* pan/gui.c (send_feedback_cb): now uses identity-manager
	* pan/smtp.c: same.
			 
	* pan/prefs.c: removed the Posting pieces from here, now that they're
	handled in Christophe's identity module. 

	* pan/util.c (get_host_name): this isn't needed; we use Identities now.
       	* pan/util.c (get_fqdn): same.
       	* pan/util.c (get_default_author_address): same.
       	* pan/util.c (get_default_author_from): same.

	(UI Tweaks)
	
	* pan/prefs.c: added a history pulldown with standard choices for
	external editors & external browsers.
       	* pan/prefs.h: same.

2001-08-27  Christophe Lambin <clambin@easynet.be>

	(Profiles)

	* pan/identities/identity-edit-ui.c: implemented the 'Custom Headers' 
	tab for Profiles: each profile can now hold its own set of custom 
	headers.

	* pan/message-window.c (revoke_identity/apply_identity): set the
	article's custom headers based on the Profile's custom headers.

	* pan/identities/identity-xml.c (write_identity): small bugfix in
	writing the custom headers to the data file.

	* pan/identities/identity.c (identity_find_custom_header_by_name):
	removed obsolete function.

2001-08-27  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/identities/identity-manager.c (construct_identity_from_prefs):
	fix scope problem that prevented creating a new identity from prefs.

	(Tweaks)

	* pan/article-filter-ui.c: added #include to make gcc happy.
	* pan/identities/identity-edit-ui.c: same.
	* pan/identities/identity.c (identity_find_custom_header_by_name):
	commented out unused function.

2001-08-27  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/text.c (text_read_more): fix bug that caused space reading to
	cause small articles to scroll off-window, then back again, before
	reading the next article.

	(External Editor)

	* pan/message-window.c: added External Editor support, finally.
	This is taken lock, stock, and barrel from Sylpheed.

	(Action Shuffling)

	* pan/article-actions.c: moved article deletion functions here from
	articlelist.c.  Added code to remove from acache any deleted article.

	* pan/articlelist.c: when articles are removed, check & see if the
	selected message is one of them.  If so, update the selection and,
	if "read on select" is turned on by the user, read the next message.

2001-08-27  Christophe Lambin <clambin@easynet.be>

	(Identities / Profiles)

	* pan/gui.c: renamed identities to profiles.
	* pan/identities/identity-edit-ui.c: same.
	* pan/identities/identity-ui.c: same.
	* pan/identities/identity-xml.c: same.
	* pan/identities/identity-manager.c: same.

	* pan/pan.c: first time a user starts Pan, we'll now create a default
	Profile, instead of writing the info into gnome_config.
	* pan/dialogs/dialogs-newuser.c: same.
	* pan/identities/identity-manager.c: sync.
	* pan/identities/identity-manager.h: sync.

2001-08-26  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c: fixed the skips-last-thread navigation error.
	Thanks to Adrian von Bidder for reporting this bug.

	(Identities)

	* pan/identities/identity.c (identity_is_valid): new sanity check
	function.

	* pan/identities/identity-edit-ui.c (identity_edit_dialog_get_identity):
	if the identity is incomplete/invalid, return a NULL instead.
	* pan/identities/identity-ui.c (add_dialog_clicked_cb): add check to
	see if identity_edit_dialog_get_identity() returned NULL.

2001-08-26  Christophe Lambin <clambin@easynet.be>

	(Identities)

	* pan/message-window.c: activated Identities.
	* pan/gui.c: same.
	* pan/Makefile.am: same.
	* configure.in: same.

	* pan/identities/identity-edit-ui.c: don't use the identity manager 
	to get the default news & mail identities.
	* pan/identities/identity-ui.c: sync.

	* pan/identities/identity-manager.c: API change for setting defaults.
	* pan/identities/identity-manager.h: sync.
	* pan/identities/identity-ui.c: sync.

	* pan/base/group.c: added 'identity_name' to remember the last 
	identity used to post to that group.
	* pan/base/group.h: same.

2001-08-24  Charles Kerr <charles@rebelbase.com>

	(GUI)

	* pan/gui.c: updated shortcuts & hotkeys; some were in conflict.
	* pan/articlelist.c: same.

	(Bugfix)

	* pan/text.c fontname(): Moved out of the #ifdef GTK_HTML block so
	that Pan will build for test users too.  Thanks to Jed S. Baer for
	reporting this problem.

	(Speedups)

	* pan/base/group.c: replace the group_changed() callback with a
	groups_changed() callback so that we can batch updates of changed
	groups.  This is useful when mass subscribing/unsubscribing during
	importing .newsrc files.

	* pan/base/group.c: replaced group_set_subscribed() with
	groups_set_subscribed().

	* pan/grouplist.c: listen for groups_changed instead of
	group_changed.

2001-08-24  Christophe Lambin <clambin@easynet.be>

	(Bug fixes)

	* pan/articlelist.c: make sure to clear 'unread_children' when
	marking all articles as read. 

	* pan/gui.c: set the correct state on 'use monospace font' on
	startup.

	(Identities)

	* pan/identities/identity-edit-ui.c: code cleanup & memory leaks.
	* pan/gui.c: prepare for integration into the GUI.

2001-08-23  Charles Kerr <charles@rebelbase.com>

	(Show/Hide)

	* pan/gui-paned.c: added code to show/hide various panes based
	on user choice.
	* pan/gui.c: sync.
	* pan/prefs.c: sync.

	(Menu)

	* pan/gui.c: plugged back in the menu sensitive/insensitive code.
	Menus should be good to go now.


2001-08-23  Christophe Lambin <clambin@easynet.be>

	(Identities)

        * pan/identities/*[ch]: added user interface for managing identities

2001-08-23  Charles Kerr <charles@rebelbase.com>

	* configure.in: bumped version number to 0.10.90

	* pan/Makefile.am: tweaks to make automake 1.5 happy

	* pan/text.c (text_get_article_body): fix tab damange.

	* pan/articlelist.c: when user selects an empty group,
	automatically go to download new headers, rather than
	popping up a 'download headers' dialog.

	(Menus)

	* pan/articlelist.c: added accelerators, shortcuts for
	the shiny new menu items.
	* pan/gui.c: same.  Also plugged in everything except
	the three toggle-pane-visible buttons.
	
	(Navigation)

	* pan/articlelist.c: added small correctness checks.

2001-08-23  Charles Kerr <charles@rebelbase.com>

	(Navigation)

	* pan/gui.c: updated the Navigation menu based on user
	suggestions.
	* pan/prefs.c: added 'skip uncached' and 'load on select'
	preferences for the navigation menu.
	* pan/gui.c: sync.
	* pan/articlelist.c: rewrote most of the navigation code.

	(Cleanup)

	* pan/article-filter-ui.c: include libgnomeui.h instead of gnome.h
	* pan/article-find.c: same.
	* pan/article-toolbar.c: same.
	* pan/articlelist.c: same.
	* pan/group-action.c: same.
	* pan/gruop-ui.c: same.
	* pan/grouplist.c: same.
	* pan/gui-headers.c: same.
	* pan/gui-notebook.c: same.
	* pan/message-check-ui.c: same.
	* pan/message-window.c: same.
	* pan/save.c: same.
	* pan/server-ui.c: same.
	* pan/status-item-view.c: same.
	* pan/task-decode.c: same.
	* pan/task-manager.c: same.
	* pan/text.c: same.
	* pan/dialogs/dialog-about.c: same.
	* pan/dialogs/dialog-group-props.c: same.
	* pan/dialogs/dialog-headers.c: same.
	* pan/dialogs/dialog-log-viewer.c: same.
	* pan/dialogs/pan-about.c: same.


2001-08-22  Charles Kerr <charles@rebelbase.com>

	(Group Actions)

	* pan/grouplist.c: removed the group 'action' functions for
	downloading messages/headers, subscribing/unsubscribing,
	deleting groups, and so forth.
	* pan/group-action.c: this is where the grouplist's 'action'
	functions get moved.

	(Menu Update)

	* pan/gui.c: updated Group menu based on feedback from the
	pan-users mailing list.
	* pan/prefs.c: added 'download_bodies_too' handling.
	* pan/gui.c: sync.

	(Bugfixes)

	* pan/task-headers.c (task_headers_run): small bugfix to
	remove glib warning.

	(Cleanup)

	* pan/dialogs/dialog-newuser: code cleanup.

	* pan/articlelist.c: removed debugging statements.

	* pan/grouplist.c: removed unused functions, made functions
	private where appropriate

2001-08-21  Charles Kerr <charles@rebelbase.com>

	(Removing Useless Junk)

	* pan/message-window.c: removed "open article in new window"
	* pan/articlelist.c: sync.
	* pan/task-body.c: sync.
	* pan/text.c: sync.

	(UI: Menus)

	* pan/articlelist.c: a little more menu work.

2001-08-21  Charles Kerr <charles@rebelbase.com>

	(Bug Fix)

	* pan/article-toolbar.c (custom_filter_selected_cb): fix bug
	that caused the articlelist to not be re-filtered when the
	user switched between Author and Subject filtering.

	(UI: Menus)

	* pan/gui.c: started the menu redesign discussed in pan-users.
	added some select-group, select-articles functions, regrouped
	other menu items in a way that makes more sense.
	* pan/gui-notebook.c: removed layout-specific selection code.
	* pan/gui-paned.c: same.
	* pan/server-ui.c: changed search path of where to insert the
	server menu buttons in the main menu.
	* pan/text.c: removed popup menu.

	(UI: Filter History)

	* pan/article-toolbar.c: added a popdown w/history in the
	article subject/author filter.  Thanks to Adam Nevins for
	making this suggestion.
	* pan/grouplist: added a popdown w/history here too.

	(Feature: Use Monospace Font)

	* pan/prefs.c: added new preferences option: whether or
	not to use a monospace font in the body pane.  You can
	configure both fonts in the preferences dialog.
	* pan/text.c: sync.
	* pan/gui.c: sync.

2001-08-20  Christophe Lambin <clambin@easynet.be>

	(bug fix: send pending messages)

	* pan/base/article.c: make sure to save *all* headers to
	'sendlater', so we have all the information to send them later.
	Thanks to T'aZ and Frank Van Damme for reporting problems in
	this area.
	* pan/base/article.h: same.

	(Identities)

        * pan/identities/*[ch]: landed initial data structures into CVS.

2001-08-18  Charles Kerr <charles@rebelbase.com>

	(bug fix: i18n)

	* pan/gmime: updated snapshot of GMime to get the g_mime_charset
	functions.  According to fejj the CODESET patch in 0.10.0 has some
	issues.
	* pan/message-send.c: sync.

	(bug fix: font size in gtkhtml pane)

	* pan/text.c (colorize_html): work around apparent gtkhtml
	font-tags-can't-be-nested brane damage.  Thanks to David Watson
	for reporting this bug.

2001-08-16  Charles Kerr <charles@rebelbase.com>

	Pan 0.10.0 Released!

2001-08-16  Charles Kerr <charles@rebelbase.com>

	(Bug Fix)

	* pan/task-group-count.c: don't update the group article low/high
	from this information, because that screws up counting of which
	articles are new the next time you fetch headers.

2001-08-15  Charles Kerr <charles@rebelbase.com>

	(Bug Fix)

	* pan/rules/rule-ui.c (apply_now_thread): Fix crash that occurred
	when applying rules to selected groups, when no group was loaded in
	the thread view pane.  Thanks to T'aZ for reporting this.

	(Sanity Checks)

	* pan/nntp.c (nntp_article_download): better sanity checks.
	* pan/nntp.c (nntp_download_bodies): same.
	* pan/nntp.c (nntp_cancel): same.
	* pan/article-find.c (compare_article): same.
	* pan/article-actions.c (find_matching_sent_article): same.
	* pan/filters/filter-cached.c (filter_cached_test_articles): same.
	* pan/rules/rule-action.c (rule_action_apply): same.

2001-08-13  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/gui.c: the "Message" menu shortcut key conflicted with
	the "Edit" shortcut.  Thanks to David Oberbeck for reporting
	this bug.

	* pan/articlelist.c (build_article_ctree_recursive): fix bug
	that caused follow-ups to a multipart post to not be added to
	the ctree.  Thanks to Jed S. Baer for reporting this bug.

	* pan/text.c (add_inline_images_mpfunc): go ahead and show
	images even if they're not flagged as "inline".  This is usenet,
	chances are the poster intended for them to be inline anyway.

	(GMime update)

	* gmime: update of gmime-parser.c and gmime-utils.c
	* pan/base/util-mime.c (pan_g_mime_parser_construct_message): sync.

2001-08-10  Charles Kerr <charles@rebelbase.com>

	(Release)

	* README
	* configure.in
	* NEWS
	* TODO
	* CREDITS
	* pan/dialogs/dialog-about.c: Updated for 0.10.0 release

2001-08-09  Christophe Lambin <clambin@easynet.be>

	(Task Manager)

	* pan/task-manager.c: added keyboard shortcuts to cancel and reorder
	tasks.  Thanks to Ryan Daniels for suggesting this.
	
2001-08-08  Christophe Lambin <clambin@easynet.be>

	(Bug fixes)

	* pan/gui-paned.c (gui_paned_construct): allow the grouplist pane
	to shrink beyond its requisition size to account for people running
	under lower resolutions. Thanks to mdew for reporting this problem.

2001-08-06  Charles Kerr <charles@rebelbase.com>

	(Prefs UI)

	* pan/prefs.c: committed patch written by Mike Robinson to make
	the cache tab look a little cleaner.  Thanks!

2001-08-06  Charles Kerr <charles@rebelbase.com>

	(Icons)

	* pan/gui.c: refresh icons for Help|Manual, Help|Feedback
	* pan/articlelist.c: added evo's icons for move/copy-to-folder.
	* pan/article-toolbar.c: added 'glasses' icon for watched threads.

2001-08-06  Stanislav Visnovsky  <visnovsky@nenya.ms.mff.cuni.cz>

	* pan.desktop: Added Slovak messages from Marcel Telka <marcel@telka.sk>

2001-08-06  Stanislav Visnovsky  <visnovsky@nenya.ms.mff.cuni.cz>

	* CREDITS, NEWS: Added credits for translation by Marcel Telka.
	* configure.in: Added sk to ALL_LINGUAS
	* po/sk.po: Added Slovak translation from Marcel Telka <marcel@telka.sk>

2001-08-02  Charles Kerr <charles@rebelbase.com>

        (Posting Headers)

	* pan/message-send.c: added support for pumping the charset from
	nl_langinfo instead of just hardcoding the charset.  Thanks to
	Volodymyr M . Lisivka for the patch.

	* pan/message-window.c: in the "Extra Headers" field on a follow-up,
	try to add the X-Comment-To: header for Fido users.  Thanks again to
	Volodymyr M . Lisivka for the patch.

	(UI Improvements)

	* pan/rules/rule-edit-ui.c: if the rule that the user selects for
	this filter is an empty filter, a warning is given.

2001-07-31  Christophe Lambin <clambin@easynet.be>

	(Bug fixes)

	* pan/prefs.c (prefs_newsrc_page): toggling the 'subscribed groups
	only' and 'backup .newsrc' switches wasn't activating the 'Apply'
	button.

2001-07-31  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/text.c (update_body_pane_nolock): small cleanup.  This seems
	to Make Gtk 1.2's GtkText widget a little happier.

	(UI Changes)

	* pan/base/file-grouplist.c: if we get an unsupported file format,
	ask "are you using an old version of Pan by accident?" because this
	is the typical cause for this error
	* pan/base/file-headers.c: sync.

	* pan/xpm/old_binary_complete.xpm:
	* pan/xpm/old_binary_incomplete.xpm:
	* pan/xpm/binary_complete.xpm:
	* pan/xpm/binary_incomplete.xpm: increase contrast with the new/old
	text article icons to make them easier to notice at-a-glance.

	* pan/xpm/filters.xpm: added a black triangle pointing down to
	indicate that this is a popdown menu button.

	* pan/gui.c: moved "task manager" to the top of the online menu
	to make it easier to find.  Some people still don't know you can
	stop a running task.

2001-07-30  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/articlelist.c (articlelist_repopulate): fix array-bounds-write
	error introduced late last week.  Thanks to Adrian von Bidder for
	leading me to this bug.

2001-07-29  Christophe Lambin <clambin@easynet.be>

	(Text Wrapping)

	* pan/prefs.c: new feature to disable wrapping the body of a message 
	when replying. Thanks to Twigboy for suggesting this feature.
	* pan/prefs.h: sync.
	* pan/message-window.c: sync.

2001-07-28  Charles Kerr <charles@rebelbase.com>

	(UI Changes)

	* pan/xpm/old_binary_complete.xpm: new icon.
	* pan/xpm/old_binary_incomplete.xpm: new icon.
	* pan/articlelist.c: sync.

	* pan/prefs.c: changed some of the new features' phrasing at
	Christophe's suggestion.

	(Canned Rules)

	* pan/rules/rule-manager.c: brought into sync with filter-manager
	with the graceful restoring of canned rules that have somehow been
	lost.

2001-07-28  Christophe Lambin <clambin@easynet.be>

	(UI Changes)

	* pan/articlelist.c (articlelist_set_node_style_nolock): implemented
	coloring watched & ignored threads.

	(Bug Fixes)

	* pan/gui-paned.c (gui_paned_construct): Pan wasn't restoring its
	column widths for the article list.
	* pan/gui-notebook.c (gui_notebook_contruct): same.

	* pan/rules/rule-ui.c (apply_now_thread): refresh the article list
	when we manually apply a rule to the active group.
	* pan/rules/rule.c (rule_apply): return the number of articles matched,
	so that callers know whether they need to take some action.
	* pan/rules/rule.h: sync.

2001-07-27  Charles Kerr <charles@rebelbase.com>

	(Rule/Filter Changes)

	* pan/rules/rule-manager.c: replaced "Ignore Bozos" with
	"Delete Bozos".  This way if a bozo posts in an interesting
	thread then we'll still have the interesting thread and only
	the bozo will get thrown out.

2001-07-27  Christophe Lambin <clambin@easynet.be>

	(Filters)

	* pan/article-toolbar.c: new approach to setting custom filters.
	Custom filters can now be switching on and off in one click.

	(Bug Fixes)

	* pan/article-toolbar.c: when switching to custom filters, remove
	the filter phrase, since we're not filtering on that anymore.

	* pan/prefs.c: applying changes would change the font of all
	articles in the active group to bold.

2001-07-27  Charles Kerr <charles@rebelbase.com>

	(UI Changes)

	* pan/text.c: borrowed Sylpheed's "smooth scrolling" for the
	text window on space reading.
	* pan/prefs.c: added prefs to turn smooth scrolling on/off.

	* pan/article-toolbar.c: updated to the new envelope icons.
	* pan/xpm: removed unused xpm files.

2001-07-26  Charles Kerr <charles@rebelbase.com>

	(UI Changes: Colors, Icons, Fonts)

	* pan/article.h: added "new_children" field, mirroring
	"unread_children".  Used in articlelist when boldfacing articles
	that have new replies.
	* pan/article.c: sync.
	* pan/article-thread.c (thread_articles): populate new_children

	* pan/articlelist.c: removed "new children" column
	* pan/articlelist.c: added new icon/color/font scheme for showing
	the user which threads have new replies, which threads have unread
	replies, which articles are new, which articles are read, etc.
	* pan/articlelist.c: added some icons to the articlelist menu
	* pan/prefs.c: sync in color/font settings for thread pane.

	* pan/grouplist.c: changed the "subscribed group" icon.
	* pan/gui.c: sync in the "subscribed group" menu buttons.

	* pan/gui.c: added the unread/total article qty to the titlebar

	* pan/gui.c (widget_set_font): rewritten as pan_widget_set_font()
	* pan/message-window.c: sync.
	* pan/text.c: sync.

	(Better Tracking of New Articles)

	* pan/file-grouplist.c: bumped file format version number to 5.
	The new version stores article_high_old.  This way 'new' articles
	are 'new' until you fetch new headers from that group, EVEN IF
	you quit & restart Pan or leave the group and then come back later.

	(Email Addresses)

	* pan/*: replaced superpimp.org with rebelbase.com

2001-07-25  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/article-toolbar.c (article_toolbar_set_filter): didn't fire
	a `filter changed' event when the toolbar was set to a custom
	filter.  Thanks to Christophe for noticing this.

	(Space Reading)

	* pan/text.c: the happy return of space reading!

	(Read Next/Prev Thread)

	* pan/articlelist.c (articlelist_view_prev_thread): new func.
	* pan/articlelist.c (articlelist_view_next_thread): new func.
	* pan/gui.c (navigate_menu): added buttons for these.

	(Usability)

	* pan/gui.c: added keyboard accelerators to every button in the
	main menu.  Most buttons didn't have one.
	* pan/articlelist.c: same.

	* pan/articlelist.c (articlelist_delete_articles): when we delete
	articles from the articlelist, make sure select the next article.
	This makes deleting articles from the keyboard friendlier.

	(Safety Checks)

	* pan/articlelist.c (articlelist_set_selected_nodes): behave
	gracefully even if an array of NULL nodes gets passed in.

2001-07-24  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/article-list-toolbar-mediator.c: use the `rebuild' variable
	properly to avoid having an articlelist populated twice when a
	group is loaded.

	(Safety Checks)

	* pan/rules/rule.c (rule_apply): log an error if the filter which this
	rule relies on isn't found.  In this case, all articles fail the
	filter.

	* pan/filters/filter.c (filter_remove_failures): in the case that a
	NULL filter is passed in, all articles should be removed.

	* pan/filters/filter-manager.c: By Christophe's suggestion, we now
	gracefully recreate builtin filters if they get deleted accidentally.

2001-07-24  Charles Kerr <charles@rebelbase.com>

	(Code Cleanup: gnksa_generate_message_id)

	* pan/base/gnksa.c (gnksa_generate_message_id): add a millisecond part
	to improve chances of uniqueness.

	* pan/base/gnksa.c (gnksa_generate_message_id_from_email_addr): new
	function that safely extracts a domain from an email address and
	passes it along to gnksa_generate_message_id().  Previously calls to
	gnksa_generate_message_id() did this on their own without any
	error-checking.
	* pan/base/article.c: sync.
	* pan/message-send.c: sync.
	* pan/message-window.c: sync.
	* pan/article-actions.c: sync.

	* pan/tests/test-gnksa.c: added tests for Message-ID generation.

2001-07-23  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/pan-glib-extensions.c (get_next_token_g_str): fixed bug
	that caused Pan to crash when a NULL string was passed in.  Thanks to
	Shawn Lindsay for reporting this bug. 
	* pan/tests/test-gnksa.c: added regression test to exercise
	get_next_token_g_str a little more.

	(Tweaks)

	* pan/article-toolbar.c (create_filter_from_ulong): smarter creating
	of filters from the filter_bits variable.  Fewer filters when
	possible.

2001-07-23  Christophe Lambin <clambin@easynet.be>

	(Bug Fixes)

	* pan/filters/filter-aggregate.c: fix bug that resulted in 
	no articles being shown when all filter buttons were selected.

2001-07-22  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/gui-paned.c (gui_paned_construct): fix bug that caused
	the slider to get lost under the buttons at the top of the panes.
	Thanks to Owen Taylor for reporting & fixing this bug.

2001-07-22  Christophe Lambin <clambin@easynet.be>

	(Rules)

	* pan/rules/rule-edit-ui.c: implemented applying rules on a subset 
	of subscribed rules.

	* pan/rules/rule-xml.c: stores scope of each rule (i.e., using
	a wildcard, or a subset of subscribed newsgroups).
	* pan/rules/rules.dtd: sync.

2001-07-21  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/rules/rule-xml.c (create_rule): fix bug that caused
	apply_to_incoming to be set to true even when it was false.

	* pan/rules/rule-edit-ui.c (dialog_close_cb): make sure to
	unregister from the pan_callbacks() that we registered for
	when the dialog was created.

	* pan/thread-watch.c (thread_set_state): make sure the article's
	group gets its articles-dirty flag set.

	* pan/gui.c (rules_cb): ensure that only one rule dialog at a time
	gets popped up from the gui menu.

	* pan/gui.c (filter_cb): ensure that only one rule dialog at a time
	gets popped up from the gui menu.

	(Usability Tweaks)

	* pan/prefs.c: acache_flush_on_exit now defaults to FALSE for new
	users.  Too many people didn't understand where their articles were
	going.

	* pan/gui.c: added a shortcut (ctrl-f) for the filter editor.

	* pan/filter/filter-aggregate.c (filter_aggregate_test_articles):
	return FALSE when no children in the filter, just for safety.

	(Filters & Rules)

	* pan/filters/filter-manager.c: implemented the canned filters: now
	when a new user starts Pan, "Bozos" and "Spam" filters are created.

	* pan/rules/rule-manager.c: implemented the canned rules: now when
	new users start Pan, "Ignore Bozos" and "Ignore Spam" rules are
	created.

	* pan/article-filter-ui.c: new file.  It's a dialog for adding the
	current article to the spam and/or bozo filter in an easy way.
	* pan/articlelist.c: sync.
	* po/POTFILES.in: sync.

	* pan/filters/filter-manager.h: added "bozo_filter_name" global.
	* pan/filters/filter-manager.h: added "spam_filter_name" global.

	* pan/bozo.[ch]
	* pan/bozo-ui.[ch]
	* pan/filters/filter-bozo.[ch]
	* pan/dialogs/bozo-dialog.[ch]: removed obsolete files.  Bozos are
	finally integrated into the Filter/Rule system.
	* pan/gui.c: sync.
	* pan/articlelist.c: sync.
	* pan/rules/rule-action.c: sync.
	* pan/rules/rule-edit-ui.c: sync.
	* pan/rules/rule-xml.c: sync.
	* pan/filters/filter-edit-ui.c: sync.
	* pan/filters/filter-xml.c: sync.
	* po/POTFILES.in: sync.

	(New Internal Utilities)

	* pan/util.c (pan_error_dialog_parented): new function.

2001-07-20  Christophe Lambin <clambin@easynet.be>

	(Filters)

	* pan/article-list-toolbar-mediator.c: save and restore filter
	settings for individual groups.
	* pan/article-toolbar.c: sync.
	* pan/base/group.h: sync.
	* pan/base/group.c: sync.

2001-07-19  Charles Kerr <charles@rebelbase.com>

	(URL Viewing)

	* pan/util.c (pan_url_show): new wrapper around gnome_url_show that
	looks at user's local settings and BROWSER variable before punting
	to gnome_url_show.
	* pan/gui.c (pan_manual_url): sync.
	* pan/gui.c (pan_homepage_url): sync.
	* pan/text.c: (on_link_clicked): sync.
	* pan/prefs.c: added support for editing/saving external_web_browser.

2001-07-18  Charles Kerr <charles@rebelbase.com>

	(Threading)

	* pan/base/article-thread.c (thread_articles): Better threading of
	articles where the parent of a followup's message isn't available
	but one of its ancestors is.

2001-07-18  Charles Kerr <charles@rebelbase.com>

	(Bug Fixes)

	* pan/base/acache.c (acache_init): handle readdir failure without
	crashing -- occurred when the cache directory didn't exist & couldn't
	be created.

	* pan/base/acache.c (acache_shutdown): acache's two PanCallback objects
	weren't freed.

	* pan/base/newsrc-ui.c: fixed a small memory leak in the
	import/export dialog -- the path string wasn't freed.

	* pan/rules/rule-edit-ui.c (filter_to_string_recursive): fix small
	memory leak.  The rule strings weren't freed.

	(Small Improvements)

	* pan/base/util-file.c (pan_make_temp): if the temp directory can't
	be used, fall back to $TMPDIR or just /tmp.

2001-07-18  Christophe Lambin <clambin@easynet.be>

	(Filters)

	* pan/article-toolbar.c: clear the 'use custom filter' toggle
	when we're not using one.

2001-07-17  Charles Kerr <charles@rebelbase.com>

	* pan/base/newsrc-port.c: fixed a small memory leak in newsrc_export;
	lots of code cleanup & added comments.

	* pan/base/pan-glib-extensions.c (pan_strstr): added a NULL-friendly
	version of strstr.  The rest of the code now uses this instead of
	strstr().   Pan was passing NULL to strstr() when the cache disk was
	full.

2001-07-17  Fatih Demir <kabalak@gtranslator.org>

	* .cvsignore, pan/base|filters|rules/.cvsignore:
	Added/extended the cvsignores.

2001-07-16  Charles Kerr <charles@rebelbase.com>

	(Bugfixes)

	* pan/gui.c (widget_set_font_on_realize): fix free-memory-read and
	free-memory-write bug.  This fixes the ever-popular "1z" bug.  Adam
	Huffman should get the credit for this one since he tracked it down
	to the font-setting code.

	* pan/filters/filter-xml.c: make filter_xml_read check the return
	code from xmlParseFile.  Same as yesterday's fix, applied to a
	different potential bug.

	* tests/test-message-check.c: added a test to make sure that Adrian
	von Bidder's followup message doesn't get marked with a "new new
	content" message.  This is just a regression test for the code fixed
	by Christophe yesterday.

	(Filters)

	* pan/base/group.c: free the filter_name string in the group's
	destructor.
	* pan/base/file-grouplist.c: save & restore the filter_name in the
	grouplist file; bumped the file format version to 4.

	(Tweak)

	* pan/configure.in: Tell what version of gnome-libs we're looking for.

	* pan/configure.in: We were looking for libxml >= 1.8.11; this has
	been fixed to look for [1.8.11....2.0.0).  Got this idea from gal.

2001-07-16  Christophe Lambin <clambin@easynet.be>

	(Bugfixes)

	* pan/rules/rule-ui.c: 'Add New' crashed when no filters were
	defined.  Thanks to Jed S. Baer for reporting this problem.

	* pan/rules/rule-xml.c: cleaner way of handling 'no rules'.
	* pan/filters/filter-xml.c: cleaner way of handling 'no filters'.

2001-07-15  Adam Huffman <bloch@verdurin.com>

	(Bugfixes)

	* pan/rules/rule-xml.c: make rule_xml_read check the return code 
	from xmlParseFile. 
	Thanks to Jed S. Baer for reporting this problem.
	
2001-07-15  Christophe Lambin <clambin@easynet.be>

	(Bugfixes)

	* pan/base/message-check.c: under certain conditions, Pan could
	erroneously decide that there's no new content in a posting.
	Thanks to  Adrian von Bidder for reporting this problem.

2001-07-12  Christophe Lambin <clambin@easynet.be>

	(Bugfixes)

	* pan/text.c: improve our handling of an article's References,
	where some newsreaders use multiple spaces to separate MessageIDs.
	Thanks to Adrian von Bidder for reporting this problem.

2001-07-10  Christophe Lambin <clambin@easynet.be>

	(Filters)

	* pan/filters/filter-ui.c: don't delete a filter if there are still
	rules using that filter.
	* pan/rules/rule-manager.c: sync.
	* pan/rules/rule-manager.h: sync.

	* pan/rules/rule-edit-ui.c: set the active filter in the menu.

2001-07-04  Christophe Lambin <clambin@easynet.be>
 
	(Bugfixes)
	 
	* pan/task-headers.c: only update the range of a group once we've
	removed expired articles, so that we can detect whether these
	articles were read or not.
       	* pan/base/file-headers.c: sync.
       	* pan/base/group.c: sync.
       	* pan/base/group.h: sync.
       	* pan/base/newsrc.c: sync.

2001-06-27  Charles Kerr <charles@rebelbase.com>

	(Filters)

	* pan/articlelist.c: in the filtering task description, give the
	name of the filter (if the filter has a name).

	* pan/article-toolbar.c: now handles going from one custom filter
	to another correctly.

	* pan/article-toolbar.c: cleaned up some of the text messages.

	(Bozo Dialog)

	* po/POTFILES.in:
	* pan/gui.c:
	* pan/bozo-ui.c: new file -- added the bozo dialog back in.

	* po/POTFILES.in:
	* pan/dialogs/rules.glade:
	* pan/dialogs/rules_interface.[ch]: 
	* pan/dialogs/rules_callbacks.[ch]: removed dead files.

2001-06-26  Charles Kerr <charles@rebelbase.com>

	* configure.in: halfway updated to autoconf 2.50.  Didn't change to
	configure.ac, as automake's patches seem to not handle it completely.

2001-06-23  Charles Kerr <charles@rebelbase.com>

	(Filters & Rules)

	* pan/rules/rule-ui.c: added "apply to selected groups" button.
	* pan/rules/rule-ui.c: added "apply to subscribed groups" button.
	* pan/rules/rule-xml.c: fix bug in loading rules, to see if the rule
	should be applied to incoming messages or not.
	* pan/rules/rule-edit-ui.c: added "apply to incoming" button.
	* pan/rules/rule-ui.c: added hit ratio column in clist.
	* pan/rules/rule-ui.c: make the edit/remove/apply buttons insensitive
	whenever no rule is selected.
	* pan/filters/filter-ui.c: make the edit/remove buttons insensitive
	whenever no filter is selected.

2001-06-20  Charles Kerr <charles@rebelbase.com>

	(Filters)

	* pan/filters/filter-saved.c: new Filter
	* pan/filters/filter-edit-ui.c: sync.
	* pan/filters/filter-xml.c: sync.

	* pan/article-toolbar.c: sync. Now we can finally plug the
	saved/queued/idle buttons into the rule generator.

2001-06-20  Christophe Lambin <clambin@easynet.be>

	* Remove reference to task's high_priority field where appropriate

	* Posted articles are now added to the front of the queue.

2001-06-20  Charles Kerr <charles@rebelbase.com>

	(Filter Usability)

	* pan/article-toolbar.c: made the way of toggling between custom filters
	and the builtin filter flags a little nicer.

	(Filter Matches - What to Show)

	* pan/articlelist.c:
	* pan/article-list-toolbar-mediator.c:
	* pan/article-toolbar.c: added ability on what articles to show on a
	filter match: article, article+references, article+replies, or entire
	thread.

2001-06-15  Charles Kerr <charles@rebelbase.com>

	(Rules & Filters)

	* pan/article-toolbar.c: more love.

	* pan/rules/rule-xml.c:
	* pan/rules/rule-ui.c:
	* pan/rules/rule-edit-ui.c:
	* pan/rules/rules.dtd: landed new rules code into CVS.  The new rules
	are integrated with the new filters landed last week, yay!

	* pan/pan.c:
	* pan/gui.c: sync.
	* pan/task-headers.c: sync.

2001-06-14  Charles Kerr <charles@rebelbase.com>

	(Filter Memory Management)

	* pan/article-toolbar.c (create_filter_from_ulong): make the resulting
	filter a little smaller.
	* pan/article-toolbar.c (update_custom_menus): fix FMR error.
	* pan/filters/filter-ui.c (filter_dialog_close_cb): fix memory leak.

	(XML Utilities)

	* pan/pan-glib-extensions.c (pan_str_escape):
	* pan/pan-glib-extensions.c (pan_str_unescape): new utility function.
	* pan/test.c (make_safe_for_html): superceded by pan_str_escape
	* pan/filters/filter-xml.c (pan_g_string_append_escaped): now use
	pan_str_escape.

2001-06-13  Charles Kerr <charles@rebelbase.com>

	(Filter Memory Management)

	* pan/filter-xml.c: make sure we unref articles after adding them as
	children to filter_aggregate.
	* pan/article-toolbar.c: same.

	* pan/article-toolbar.c: refer to the filters by name, rather than by
	pointer value, because filters are all copy-by-value and so the
	pointers are not reliable.

        * pan/article-list-toolbar-mediator.c: make sure we unref the filter
	when we're done with it.

2001-06-13  Charles Kerr <charles@rebelbase.com>

	(Author Name Attribution)

	* pan/message-window.c: added Christophe Lambin's patch for %n being
	replaced with the short author name string in the attribution lines.
	* pan/prefs.c: sync.

	(Filters)

	* pan/filters/filter.c (filter_test_articles): new virtual function.
	This lets us test batches of articles recursively in a slightly more
	efficient way.
	* pan/filters/filter-aggregate.c (filter_aggregate_test_articles):
	if there's only one filter in the aggregate, just call
	filter_test_articles() for the aggregate.

	* pan/filters/filter-phrase.c: allow filtering on the Message-ID field.

	* pan/article-toolbar.c: polish, polish, polish.

2001-06-12  Charles Kerr <charles@rebelbase.com>

	(Filters)

	* pan/filters/filter-thread.c: added "neither watched nor ignored"
	state in filter-thread.
	* pan/filters/filter-edit-ui.c: sync.
	* pan/filters/filter-xml.c: sync.

	(Filter UI)

	* pan/article-toolbar.c: more love.  About 90% ready.
	The traditional FILTER_STATE filters are faster; you can edit
	filters from the cascading menu; the code's been tidied up some more.

	* pan/articlelist.c: emit a status message telling the user when the
	articles are being filtered.  This is as much for my benifit as the
	user's: this is a useful way of seeing how long filtering takes.

	(Dialogs)

	* pan/gui.c (filter_cb): parent the dialog before showing it.
	* pan/dialogs/rules_callbacks.c (dialog_rules): same.
	* pan/dialogs/rules_callbacks.c (dialog_edit_rule): same.

	(Cleanup)

	* pan/acache.c: use the acache_flush_on_exit global instead of using
	gnome_config.

2001-06-10  Charles Kerr <charles@rebelbase.com>

	* pan/filters/*[ch]: landed filters into CVS.

2001-06-08  Charles Kerr <charles@rebelbase.com>

	* pan/group.h (group_chunk_string): added boolean specifying whether
	or not to try to share the string.  Common strings such as author name,
	Subject, References should be shared, but strings unique in the group
	such as Message-ID or Xref shouldn't be.

	* pan/article.c (article_set_header): the HeaderAction argument now has
	two possible values: DO_CHUNK and DO_CHUNK_SHARE, which decide how to
	call group_chunk_string().  The old behavior of sharing all strings
	added unneeded overhead for the group's GStringChunk.
	* pan/gui.c:
	* pan/nntp.c:
	* pan/message-window.c: sync.
