2003-08-26 21:03  epaepa

	* Makefile.PL: Version 0.5.17.

2003-08-26 21:00  epaepa

	* README, doc/README.win32, grab/na/ZapListings.pm,
	lib/XMLTV.pm.in: Version 0.5.17.

2003-08-26 20:40  epaepa

	* grab/nz/tv_grab_nz.in: Re-enabled tv_grab_nz as it seems to be
	working again (though not perhaps 100% of the time).

2003-08-25 03:36  rmeden

	* choose/tv_check/: tv_check, tv_check_doc.html: add --bluenew
	option to highlight non-repeat episodes

2003-08-17 15:10  epaepa

	* Makefile.PL, README: Reinstated tv_grab_nz, it is now working
	again.

2003-08-17 14:01  epaepa

	* lib/Ask.pm: Reformatted @EXPORT with one word per line - this
	makes it easier to diff and patch.

2003-08-17 09:31  epaepa

	* t/test_filters.t: When a command fails, report the arguments as
	well.

2003-08-17 09:18  epaepa

	* lib/IMDB.pm: When files have been automatically downloaded, don't
	then warn about them being missing.

2003-08-17 09:11  epaepa

	* lib/TZ.pm: Added trace messages; corrected comment.

2003-08-17 09:07  epaepa

	* grab/Config_file.pm: Give an error for seemingly empty config
	files.

2003-08-17 09:06  epaepa

	* filter/tv_grep.in: More log messages.

2003-08-17 09:05  epaepa

	* mkdist: Remove .cvsignore files from the release as well as CVS/
	directories.

2003-08-16 10:01  epaepa

	* grab/na/tv_grab_na: Updated documentation now that
	--list-providers and --list-channels work standalone.

2003-08-16 09:55  epaepa

	* grab/na/tv_grab_na: --list-provders and --list-channels don't
	require --configure to be given separately.

2003-08-16 09:22  epaepa

	* doc/README.win32: Updated for 0.5.16 release.  This file needs to
	be self-contained because at the moment 'make windows_dist'
	installs it as the README for the Windows distribution and leaves
	out the source code README.  Maybe we can change this for a later
	release.

2003-08-16 09:15  epaepa

	* Makefile.PL: Added --yes option to choose to install everything,
	and --nodeps to write the Makefile even if dependencies are
	missing.  These help with building the Windows distribution.

2003-08-14 21:14  epaepa

	* README: Whoops, forgot to update the signature line.

2003-08-14 21:11  epaepa

	* Makefile.PL, README, doc/README.win32, grab/na/ZapListings.pm,
	lib/XMLTV.pm.in: Version 0.5.15.

2003-08-14 21:00  epaepa

	* Makefile.PL, grab/nz/tv_grab_nz.in: Disabling tv_grab_nz since I
	don't have time to fix it right now and we need a new release to
	fix tv_grab_na.

2003-08-13 13:37  rmeden

	* doc/README.win32: updated README to include current windows tips

2003-08-13 06:17  rmeden

	* grab/na/ZapListings.pm: zap2it is returninga status code of 500
	even though the listings are in the response. Dane Kanter has
	released a patched ZapListings.PM which I am merging into the
	current CVS here.  There is still a problem, only 20 channels are
	return, but it's better than nothing.

2003-08-09 22:40  epaepa

	* xmltv.dtd: Corrected UT to UTC.

2003-08-05 15:34  jveldhuis

	* grab/na/: ZapListings.pm, tv_grab_na: --output now redirects
	--list-providers and --list-channels output in --configure mode.
	
	HDTV occuring in listing now appears at end of description (since
	we don't have a proper place for it) and also triggers an aspect
	ratio in the video stanza to be 16:9.

2003-08-04 22:17  jveldhuis

	* grab/na/ZapListings.pm: workaround for HDTV qualifiers getting in
	the road of star ratings in the description

2003-07-31 20:24  epaepa

	* grab/uk/tv_grab_uk.in: Calculate $now (for the midnight sanity
	check) at run time, and after Date_Init() has been called.  This
	should fix the bug found by Stephen Foster that the grabber
	required TZ to be set.

2003-07-29 20:56  epaepa

	* Makefile.PL: Fixed to work with newer versions of MakeMaker,
	which define a FIRST_MAKEFILE variable.

2003-07-25 15:47  rmeden

	* choose/tv_check/tv_check_doc.html: document wildcard scans
	document --notruncate option

2003-07-25 15:47  rmeden

	* choose/tv_check/tv_check: add --notruncate option to allow
	title-scans more than 7 days away

2003-07-25 15:41  rmeden

	* choose/tv_check/.cvsignore: [no log message]

2003-07-25 15:41  rmeden

	* choose/tv_check/.cvsignore: Updated by TortoiseCVS

2003-07-25 15:28  rmeden

	* choose/tv_check/tv_check: case sensitivity to title-scans have
	been put back in.  a case insensitive wildcard title search
	capability has been adde

2003-07-25 14:21  rmeden

	* choose/tv_check/tv_check: make Title-Search case insensitive

2003-07-24 19:13  jveldhuis

	* lib/IMDB.pm: update estimate to reflect latest counts

2003-07-20 16:22  epaepa

	* grab/: dk/tv_grab_dk, es/tv_grab_es, fi/tv_grab_fi,
	hu/tv_grab_hu, it/tv_grab_it.in, na/tv_grab_na, nl/tv_grab_nl,
	sn/tv_grab_sn: Changed grabbers to use
	XMLTV::Ask::askManyBooleanQuestions() for handling 'none' and 'all'
	answers.

2003-07-20 16:18  epaepa

	* lib/Ask.pm: askManyBooleanQuestions(): carp() about the mistake
	of passing 'no' as the default instead of 0 (since the string 'no'
	is false).

2003-07-20 15:13  epaepa

	* grab/na/tv_grab_na: Refactored some duplicate code in
	configuration.

2003-07-20 12:49  epaepa

	* lib/Ask.pm: askManyBooleanQuestions(): Offer both 'all' and
	'none' options regardless of the default answer.

2003-07-19 16:28  epaepa

	* grab/na/ZapListings.pm: Say 'use base' instead of 'require' plus
	'@ISA ='.

2003-07-19 16:28  epaepa

	* grab/uk/tv_grab_uk.in: Now that perl-5.6 is required we no longer
	need the Tie::RefHash::Nestable workaround.

2003-07-19 16:15  epaepa

	* Makefile.PL, Uninstall.pm, mkdist, choose/tv_pick/tv_pick_cgi,
	filter/Grep.pm, filter/tv_extractinfo_en, filter/tv_sort,
	grab/Europe_TZ.pm, grab/Get_nice.pm, grab/es/tv_grab_es,
	grab/fi/tv_grab_fi, grab/hu/tv_grab_hu, grab/na/ZapListings.pm,
	grab/na/tv_grab_na, grab/nl/tv_grab_nl, grab/uk/tv_grab_uk.in,
	grab/uk_rt/tv_grab_uk_rt.in, lib/Ask.pm, lib/Clumps.pm,
	lib/Gunzip.pm, lib/IMDB.pm, lib/Summarize.pm, lib/TZ.pm,
	lib/Usage.pm, lib/XMLTV.pm.in, t/parallel_test, t/test_filters.t:
	Say 'our' instead of 'use vars'.  Changes checked by hand but not
	every program has been run ('make test' passes).

2003-07-19 14:51  epaepa

	* grab/it/tv_grab_it.PL, grab/nz/tv_grab_nz.PL,
	grab/uk/tv_grab_uk.PL, lib/set_share_dir.pl: set_share_dir.pl now
	provides a set_share_dir() function to call with two arguments,
	rather than using a global $in variable and @ARGV.

2003-07-19 12:24  epaepa

	* t/test_filters.t: Allow extra arguments as regexps for tests to
	run, so you can say for example './t/test_filters.t --full
	tv_sort'.

2003-07-15 02:25  rmeden

	* choose/tv_check/tv_check: fix some more loose ends on channel
	name changes

2003-07-14 20:56  epaepa

	* xmltv.dtd: Clarified the meaning of the 'part number' field in
	xmltvns episode-nums.

2003-07-12 20:51  epaepa

	* Makefile.PL, filter/tv_sort: Replaced data_eq() in tv_sort with
	the Storable module, which can be used to implement deep equality
	testing.

2003-07-12 16:48  epaepa

	* grab/uk_rt/tv_grab_uk_rt.in: When an unknown bit of text is very
	long, it's probably an extra description or review.

2003-07-12 16:48  epaepa

	* grab/nz/tv_grab_nz.in: Handle part numbers like 'P2' (I hope this
	does express a part number and isn't junk text).

2003-07-11 05:46  rmeden

	* choose/tv_check/tv_check: keep up with tv_grab_na's changes to
	the channel name field.  It's used to auto-convert from the old
	tv_grab_na id format to new RFC format.  Once the the show file is
	written again, the new id values are stored.

2003-07-10 21:18  epaepa

	* mkdist: Check the date in the README file before release.

2003-07-06 19:13  epaepa

	* Makefile.PL, README, doc/README.win32, grab/na/ZapListings.pm,
	lib/XMLTV.pm.in: Version 0.5.15.

2003-07-06 19:12  epaepa

	* grab/uk_rt/tv_grab_uk_rt.in: Handle (or rather explicitly
	do-not-handle) another piece of information on the site,
	'subsequent programmes may be altered or late'.

2003-07-06 18:39  epaepa

	* grab/nz/tv_grab_nz.in: get_programs(): If there's a failure
	downloading the URL, warn about it and return nothing (rather than
	aborting).

2003-07-06 17:12  epaepa

	* grab/nl_wolf/tv_grab_nl_wolf: Fixed for change in the layout of
	the index page on the upstream site.

2003-07-06 16:46  epaepa

	* grab/nl/tv_grab_nl: process_summary_page(): Refactored parsing of
	dates: annotate @todo with start day and stop day and then parse
	each element of it afterwards.

2003-07-06 16:21  epaepa

	* grab/nl/tv_grab_nl: The code to work out when a midnight crossing
	should be placed was wrong because it wasn't comparing
	Date::Manip's deltas correctly.  You have to use Delta_Format()
	before you can compare them - I chose to format them as a number of
	seconds.
	
	This fixes the problem found by Paul Webster where Sport from 12:30
	to 00:00 would bump the day, giving the wrong day for all the
	following programmes that were contained inside Sport.	But it does
	so almost by accident.

2003-07-06 13:20  epaepa

	* lib/IMDB.pm: Now uses XMLTV::Gunzip to open gzipped files.
	
	openMaybeGunzip(): new routine to factor out code of gunzipping or
	opening normally depending on file extension.

2003-07-06 13:02  epaepa

	* lib/Gunzip.pm: This module now provides a way to open .gz files
	as well as decompressing data in memory.  The opening works by
	using gzopen() and a simple Tie::Handle wrapper to make
	Compress::Zlib look like a filehandle.	This code ought to be part
	of Compress::Zlib itself one day.  If the module is not installed
	then of course we open a pipe from gzip.

2003-07-05 18:34  epaepa

	* MANIFEST, Makefile.PL, grab/de/tv_grab_de, lib/Gunzip.pm: Moved
	the code to call Compress::Zlib-or-gzip(1) out of tv_grab_de into a
	new library XMLTV::Gunzip.

2003-07-05 16:35  jveldhuis

	* grab/na/tv_grab_na: display-name changed from:   
	<diplay-name>Channel 2 CFRN</display-name> to	 <display-name>2
	CFRN</display-name>    <display-name>2</display-name> to be more
	consistant with other grabbers and give applications the option of
	looking for a numeric display-name

2003-07-05 06:58  rmeden

	* lib/IMDB.pm: change from LWP::Simple::getprint to getstore. 
	getprint converts line endings on MacOS and windows, and this
	screws up the gziped listing files. In addition, getstore doesn't
	need all the games with STDOUT.

2003-07-03 21:21  epaepa

	* Makefile.PL, README: The complicated testing of Date::Manip
	should no longer be needed, version 5.42 incorporates the fixes we
	want so we can just require that.

2003-07-03 21:20  epaepa

	* lib/TZ.pm: Changed a few die()s to croak() when they are the
	caller's fault.

2003-07-03 21:19  epaepa

	* grab/Europe_TZ.pm: parse_eur_date(): added usage check.

2003-07-03 20:51  epaepa

	* grab/de/tv_grab_de: The upstream timezones are incorrect, don't
	rely on them but use Europe_TZ instead.

2003-07-02 23:58  jveldhuis

	* Makefile.PL: reversed an accidental check-in that removed the
	checks for Date::Manip versions

2003-07-01 19:01  jveldhuis

	* Makefile.PL: version 0.5.14 numbers

2003-07-01 18:56  jveldhuis

	* lib/XMLTV.pm.in: version 0.5.14 numbers

2003-07-01 18:50  jveldhuis

	* Makefile.PL, README, doc/README.win32, grab/na/ZapListings.pm:
	version 0.5.14 numbers

2003-07-01 18:47  jveldhuis

	* grab/na/ZapListings.pm: arg s//ios doesn't default to global case
	insensitive, only the first match

2003-07-01 16:45  jveldhuis

	* grab/na/ZapListings.pm: updated release information in useragent

2003-07-01 16:44  jveldhuis

	* mkdist: put back in cvs tagging

2003-07-01 16:43  jveldhuis

	* Makefile.PL, README, doc/README.win32, lib/XMLTV.pm.in: updated
	version numbers and descriptions for 0.5.13 release

2003-07-01 16:20  jveldhuis

	* grab/na/ZapListings.pm: the fix required to support the new
	zap2it web layout.  Big Big thanks to Gregorio Gervasio who
	sumitted most of the fixes.

2003-06-29 21:15  epaepa

	* Makefile.PL, README, doc/README.win32, grab/na/ZapListings.pm,
	lib/XMLTV.pm.in: Version 0.5.12.

2003-06-29 20:54  epaepa

	* lib/IMDB.pm: Declare the name 'OLDOUT' to quell warning.

2003-06-29 19:15  epaepa

	* grab/uk_rt/tv_grab_uk_rt.in: The warning about channel names now
	allows the small difference 'Sky One' -> 'Sky 1', etc.

2003-06-29 19:14  epaepa

	* grab/nl/tv_grab_nl: In --slow mode, deal with a couple of
	non-Latin-1 characters that creep into the HTML.  A more general
	character check is still todo.

2003-06-29 19:03  epaepa

	* grab/hu/tv_grab_hu: Trim leading and trailing whitespace from
	programme titles.

2003-06-29 18:49  epaepa

	* grab/uk/: channel_ids, channel_pkgs/Freeview,
	channel_pkgs/classics, channel_pkgs/film, channel_pkgs/wales,
	channel_pkgs/Telewest/Supreme: Updated channel packages after
	changes on the site.

2003-06-29 15:53  epaepa

	* choose/tv_check/tv_check, filter/tv_cat,
	filter/tv_extractinfo_en, filter/tv_grep.in, filter/tv_imdb,
	filter/tv_sort, filter/tv_split, filter/tv_to_latex,
	filter/tv_to_text, grab/de/tv_grab_de, grab/dk/tv_grab_dk,
	grab/es/tv_grab_es, grab/fi/tv_grab_fi, grab/hu/tv_grab_hu,
	grab/it/tv_grab_it.in, grab/na/tv_grab_na, grab/nl/tv_grab_nl,
	grab/nl_wolf/tv_grab_nl_wolf, grab/nz/tv_grab_nz.in,
	grab/sn/tv_grab_sn, grab/uk/tv_grab_uk.in,
	grab/uk_rt/tv_grab_uk_rt.in: All files with pod documentation now
	have '=pod'.  This should let them get noticed by older versions of
	MakeMaker.

2003-06-29 15:33  epaepa

	* grab/uk/: channel_ids, channel_pkgs/film,
	channel_pkgs/NTL/digital/movies, channel_pkgs/Sky/Movies_World:
	Removed channel widescreen.premier.sky.com, which is no longer on
	the site.

2003-06-29 15:32  epaepa

	* grab/uk/tv_grab_uk.in: Prompt for 'five main channels' rather
	than 'terrestrial analogue channels', since nowadays you can get
	the region'd BBC1 and ITV with digital satellite as well.
	
	When warning about unknown channel ids in packages, give the full
	package filename relative to channel_pkgs/.

2003-06-29 14:51  epaepa

	* grab/de/tv_grab_de: Added 'use bytes' to work around baffling
	problem reported by Axel Thimm.
	
	Remove empty <desc> elements to avoid complaints from XMLTV.pm.

2003-06-29 14:40  epaepa

	* grab/nl/tv_grab_nl: Rewrote --slow mode so that it uses the
	summary information of 'fast' mode and just adds extra details. 
	This should get rid of the bugs with missing programmes or wrong
	times in --slow mode.

2003-06-24 04:32  jveldhuis

	* lib/IMDB.pm: how rude, some entries have (TV) appearing more than
	once.

2003-06-23 22:57  rmeden

	* choose/tv_check/tv_check.bat: [no log message]

2003-06-22 19:46  epaepa

	* mkdist: Fixed regexp to match xmltv/0.5.11 or whatever in
	ZapListings.pm.

2003-06-22 19:22  epaepa

	* Makefile.PL, README, mkdist, doc/README.win32,
	grab/na/ZapListings.pm, lib/XMLTV.pm.in: Version 0.5.11.
	
	Added Zaplistings.pm to the version checker in mkdist.

2003-06-22 17:56  epaepa

	* grab/it/tv_grab_it.in: Use get_nice() to download channels page,
	not get() which is not imported.

2003-06-22 17:54  epaepa

	* grab/it/tv_grab_it.in: Robert E. spotted that --share was broken.

2003-06-22 17:32  epaepa

	* Makefile.PL: Changed description of tv_check as suggested by
	Robert Eden.

2003-06-22 16:39  rmeden

	* lib/exe_wrap.pl: added tv_grab_it to those programs that need a
	--share directory

2003-06-22 10:40  epaepa

	* Makefile.PL: More windows_dist fixes: remove useless files and
	directories.

2003-06-22 10:25  epaepa

	* Makefile.PL: Fixed manual page generation (again).  For some
	reason $(INSTALLMAN1DIR), which is normally the final resting place
	of section 1 manual pages, wasn't created at the time windows_dist
	ran.  Instead we now fetch the pages from $(INST_MAN1DIR), which is
	the temporary place in blib/, and should always be there.  I hope
	this doesn't break on anyone else's system with a different
	MakeMaker.
	
	The 'unix2dos' program also has a tendency to misbehave - it can
	run in two modes, modifying a file in-place or running as a filter
	and writing the new text to stdout.  My unix2dos seems to have
	decided to switch from one to the other, so I've replaced it with
	some Perl code to do the same job.

2003-06-22 09:44  epaepa

	* Makefile.PL: Made the prompting for optional things a bit more
	manageable - you are offered a default configuration to accept.

2003-06-21 20:16  epaepa

	* grab/na/tv_grab_na: Fixed <episode-num> output - the right system
	is 'xmltv_ns' not 'xmltv', and formatted the data the same way as
	tv_cat.

2003-06-21 20:12  epaepa

	* grab/fi/tv_grab_fi: Updated for new layout of channel list on
	front page - the grabber now works again.

2003-06-21 20:02  epaepa

	* grab/uk_rt/tv_grab_uk_rt.in: Handle alternate spellings 'Related
	websites' and 'Related features'; report the correct URL in error
	messages.

2003-06-21 19:54  epaepa

	* grab/uk_rt/tv_grab_uk_rt.in: Loosened regexp to match channel
	list, so the grabber now works again.

2003-06-21 19:45  epaepa

	* grab/nz/tv_grab_nz.in: Parse 'Part 2' etc. and turn it into
	<episode-num>.

2003-06-21 15:37  epaepa

	* Makefile.PL: Don't create plain text versions of section 3 manual
	pages for the Windows binary distribution - they are not needed.
	
	But where the pages are installed, give them the correct name:
	XMLTV::Foo rather than just Foo.

2003-06-21 15:07  epaepa

	* Makefile.PL: Fixed windows_dist target: a line was missing. 
	Converted some spaces to tabs (it didn't seem to matter, but might
	as well be consistent).

2003-06-21 14:44  epaepa

	* MANIFEST: Added merge_tvprefs to file list.

2003-06-21 14:26  epaepa

	* grab/de/tv_grab_de: Fix up the downloaded XML to have
	proper-looking channel ids and <channel> elements.

2003-06-21 13:02  epaepa

	* grab/nl/tv_grab_nl: Moved most of write_details() into a new
	routine process_details_page() which returns a programme hash from
	a single page.	Then write_details()'s job is to track next-day
	changes and write the programmes.
	
	time_van_str(), time_tot_str(): these do now return strings, not
	Date::Manip objects.

2003-06-21 11:38  epaepa

	* grab/nl/tv_grab_nl: Refactored the calls of summary_page_data()
	on each of @to_get - the results are needed for both slow and fast
	modes.
	
	Removed detail_urls(), it is not and was not used.
	
	Don't warn about empty 'Genre', just skip it.

2003-06-21 10:43  epaepa

	* grab/nl/tv_grab_nl: Trimmed trailing spaces.

2003-06-14 17:26  epaepa

	* Makefile.PL: Version 5.40.epa1 of Date::Manip is now required;
	added a selection of different verbose error messages explaining
	what you might or might not need to install.

2003-06-08 18:21  rmeden

	* choose/tv_check/tv_check: added code to automatically convert to
	new RFC based tv_grab_na channel Ids
	
	added code to remove false alarm and "never mind" message when
	--myrelaytv can't guess a show day, but assumes the old day is ok.

2003-06-08 10:10  epaepa

	* filter/: Grep.pm, tv_grep.in: Fixed bug found by Jeffrey Arundel
	Ralph and Robert Eden.	An empty regexp does not 'always match',
	instead it uses the last successfully matching regexp.	This meant
	it appeared to work for some users but failed for others.  Now
	there is an explicit check for empty regexp whenever one is used. 
	The strange thing is that this check already existed in some parts
	of the code, but not everywhere.

2003-06-08 09:47  epaepa

	* choose/tv_pick/merge_tvprefs: Adding trivial merge_tvprefs script
	to combine two or more prefs files.

2003-06-07 17:09  epaepa

	* choose/tv_pick/tv_pick_cgi: Removed support for very old tvprefs
	files with 'maybe'.

2003-06-03 03:38  rmeden

	* Makefile.PL: blank lines were left in new windows_dist code.

2003-06-02 05:54  jveldhuis

	* grab/na/tv_grab_na: channel ids now follow RFC2838 as per Ed's
	request

2003-06-01 21:11  epaepa

	* grab/Europe_TZ.pm: date_to_eur(): Removed unused $clock_shift
	variable.

2003-06-01 18:31  epaepa

	* grab/nl/tv_grab_nl: process_summary_page(): Rewrote handling of
	times.	Now instead of taking the first programme with stop < start
	as the point where the listings cross midnight, all such programmes
	are compared and the one with the shortest length is taken as the
	'real' one (so we ignore things like 'Kilroy 10:00-00:00', which is
	both absurd and all too plausible).  The results returned should
	now guarantee no programme stops before it starts, and should be in
	time order.
	
	This should fix some of the problems reported by Johan
	Schravesande.

2003-06-01 16:49  epaepa

	* MANIFEST, t/data/sort1.xml, t/data/sort2.xml,
	t/data/tv_cat_all_UTF8.expected, t/data/tv_cat_sort1_xml.expected,
	t/data/tv_cat_sort2_xml.expected,
	t/data/tv_extractinfo_en_all_UTF8.expected,
	t/data/tv_extractinfo_en_sort1_xml.expected,
	t/data/tv_extractinfo_en_sort2_xml.expected,
	t/data/tv_grep_a_all_UTF8.expected,
	t/data/tv_grep_a_sort1_xml.expected,
	t/data/tv_grep_a_sort2_xml.expected,
	t/data/tv_grep_category_b_sort1_xml.expected,
	t/data/tv_grep_category_b_sort2_xml.expected,
	t/data/tv_grep_category_e_and_title_f_sort1_xml.expected,
	t/data/tv_grep_category_e_and_title_f_sort2_xml.expected,
	t/data/tv_grep_category_g_or_title_h_sort1_xml.expected,
	t/data/tv_grep_category_g_or_title_h_sort2_xml.expected,
	t/data/tv_grep_channel_id_channel4_com_sort1_xml.expected,
	t/data/tv_grep_channel_id_channel4_com_sort2_xml.expected,
	t/data/tv_grep_channel_name_d_sort1_xml.expected,
	t/data/tv_grep_channel_name_d_sort2_xml.expected,
	t/data/tv_grep_channel_xyz_or_channel_b_sort1_xml.expected,
	t/data/tv_grep_channel_xyz_or_channel_b_sort2_xml.expected,
	t/data/tv_grep_eval_scalar_keys_5_sort1_xml.expected,
	t/data/tv_grep_eval_scalar_keys_5_sort2_xml.expected,
	t/data/tv_grep_i_category_i_title_h_sort1_xml.expected,
	t/data/tv_grep_i_category_i_title_h_sort2_xml.expected,
	t/data/tv_grep_i_category_i_title_j_sort1_xml.expected,
	t/data/tv_grep_i_category_i_title_j_sort2_xml.expected,
	t/data/tv_grep_i_last_chance_c_sort1_xml.expected,
	t/data/tv_grep_i_last_chance_c_sort2_xml.expected,
	t/data/tv_grep_new_sort1_xml.expected,
	t/data/tv_grep_new_sort2_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_UTC_sort1_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_UTC_sort2_xml.expected,
	t/data/tv_grep_on_after_200302161330_UTC_sort1_xml.expected,
	t/data/tv_grep_on_after_200302161330_UTC_sort2_xml.expected,
	t/data/tv_grep_on_before_200302161330_UTC_all_UTF8.expected,
	t/data/tv_grep_on_before_200302161330_UTC_sort1_xml.expected,
	t/data/tv_grep_on_before_200302161330_UTC_sort2_xml.expected,
	t/data/tv_grep_premiere_sort1_xml.expected,
	t/data/tv_grep_premiere_sort2_xml.expected,
	t/data/tv_grep_previously_shown_sort1_xml.expected,
	t/data/tv_grep_previously_shown_sort2_xml.expected,
	t/data/tv_sort_all_UTF8.expected,
	t/data/tv_sort_by_channel_all_UTF8.expected,
	t/data/tv_sort_by_channel_sort1_xml.expected,
	t/data/tv_sort_by_channel_sort2_xml.expected,
	t/data/tv_sort_sort1_xml.expected,
	t/data/tv_sort_sort2_xml.expected,
	t/data/tv_to_latex_all_UTF8.expected,
	t/data/tv_to_latex_sort1_xml.expected,
	t/data/tv_to_latex_sort2_xml.expected,
	t/data/tv_to_text_all_UTF8.expected,
	t/data/tv_to_text_sort1_xml.expected,
	t/data/tv_to_text_sort2_xml.expected: A couple of test cases for
	the recently found (and now fixed) bug in tv_sort.

2003-06-01 16:02  epaepa

	* filter/tv_sort, t/data/tv_sort_all_UTF8.expected,
	t/data/tv_sort_by_channel_all_UTF8.expected: Fixed a design bug in
	tv_sort.  Previously, when comparing two programmes, if either of
	them lacked a stop time then it did not consider stop times and
	went straight on to comparing other things.  But this makes a bad
	comparison function: for example three programmes which have the
	same start time, one of them has no stop time, and the other two
	have different stop times.  You can see that the <= relation is no
	longer transitive.  Fixed this by deciding that 'no stop time'
	comes before 'some stop time'.
	
	This meant some changes to add_stop(), the routine which guesses
	stop times for programmes that don't have them.  This function
	ought perhaps to be in a separate filter program, but it's still
	part of tv_sort for now.  add_stop() needs to maintain the
	invariant that its list of programmes is sorted, so you can't
	always add stop times because that could now change the sorting
	order.	But I've rewritten it so it's a bit less tangled than
	before, I'm fairly sure it's correct, and the results seem about
	the same as before (except in cases where the old version broke).

2003-06-01 15:55  epaepa

	* MANIFEST: Added new lib/exe_opt.pl to file list.

2003-06-01 15:53  epaepa

	* lib/exe_opt.pl: It's 'xmltv' for the project or maybe 'XMLTV',
	but definitely not 'xmlTV' :-P.

2003-06-01 15:47  epaepa

	* t/test_filters.t: run(): if system() fails, put STDERR back
	before trying to report an error!

2003-06-01 10:16  epaepa

	* grab/nl/tv_grab_nl: Skip quietly over the 'Ieder heel uur' and
	'onder voorbehoud' notices.

2003-06-01 10:02  epaepa

	* Makefile.PL: Make requires tabs not spaces before commands.

2003-06-01 09:12  epaepa

	* lib/XMLTV.pm.in: Remove \r characters when reading input; this is
	for reading files with CP/M line endings, and should fix some test
	failures on Windows.

2003-06-01 09:10  epaepa

	* grab/nl/tv_grab_nl: Tidied some code; don't use 'next' to exit a
	subroutine.

2003-06-01 08:20  epaepa

	* MANIFEST: A couple of files were recently deleted.

2003-06-01 08:00  epaepa

	* grab/nl/tv_grab_nl: Removed lone mention of
	$Log::TraceMessages::On which was causing a warning.

2003-06-01 06:22  rmeden

	* Makefile.PL: forgot to delete exe_opt.txt

2003-06-01 05:46  rmeden

	* lib/exe_opt.pl: Initial Checkin.  This scipt is used to seed the
	PERLAPP options for for use in making xmltv.exe It's pretty much
	constants except for the version fields.

2003-06-01 05:44  rmeden

	* Makefile.PL: add version and other meta-data to xmltv.exe

2003-05-31 18:05  epaepa

	* grab/nl/tv_grab_nl: Changed the handling of programmes with
	missing start or stop times.  Added <url> to the output where it is
	known.

2003-05-31 18:03  allena28

	* grab/uk/channel_pkgs/Telewest/: Entry, Essential_Plus: Telewest
	restructure: only Essential and Supreme packages exist (removed
	Essential_Plus and Entry)

2003-05-31 17:55  allena28

	* grab/uk/channel_pkgs/Telewest/: Essential, Supreme: Telewest
	Updates

2003-05-31 13:59  epaepa

	* grab/nl/tv_grab_nl: Whoops, the last version didn't compile due
	to one too many }s.

2003-05-31 13:34  epaepa

	* filter/tv_grep.in: Added undocumented --echo option which must
	appear as the first argument and causes tv_grep to dump its
	arguments to stdout and exit.  This might diagnose some strange
	bugs on Windows.

2003-05-31 13:11  epaepa

	* filter/tv_imdb: Documented more clearly the memory requirements.
	
	Print chatter to STDERR not STDOUT.

2003-05-30 20:47  epaepa

	* lib/IMDB.pm: Use getprint() to download files without loading the
	whole file into memory.  (OK, later processing does require loading
	the whole file, but still, this greater frugality in downloading is
	useful to me.) Also this lets you keep partially written files,
	which should be renamed to filename.partial.

2003-05-30 20:21  epaepa

	* filter/tv_imdb: Added --download option which if given in
	--prepStage sets the new 'downloadMissingFiles' flag for
	XMLTV::IMDB::Crunch.  Changed documentation to reflect this.
	
	Documented the slowness in Windows.

2003-05-30 20:07  epaepa

	* lib/IMDB.pm: new(): the new 'downloadMissingFiles' option turns
	on a simple-minded attempt to get the files from an imdb FTP site. 
	This might suffice for users on fast connections.  Create the
	lists/ directory if it doesn't already exist.

2003-05-30 19:11  epaepa

	* filter/tv_imdb: Documented that IMDB.pm runs an external gzip
	rather than using Compress::Zlib.

2003-05-30 13:58  rmeden

	* Makefile.PL: fix errors dealing with the MAN pages.

2003-05-29 21:17  epaepa

	* grab/nl/tv_grab_nl: Changed the handling of programmes with
	missing start and stop times: now process_summary_page() returns
	what it can (including even programmes with stop time but no start)
	and there is less inclination to spoil a 'good' programme by
	putting it in a clump with bad ones.
	
	This might or might not satisfactorily solve the problems reported
	by Johan Schravesande.

2003-05-26 14:47  epaepa

	* doc/README.win32: Noted that ^ is the quote character on some
	Windows versions.

2003-05-26 11:49  epaepa

	* Makefile.PL: Dealt with FIXME: replaced Unix commands (other than
	echo(1)) with invocations of ExtUtils::Command.  This should
	improve portability, particularly to Windows.

2003-05-26 09:45  epaepa

	* Makefile.PL, doc/README.win32: Documented date formats for
	xmltv.exe users in a generated file date_formats.txt.

2003-05-26 09:42  epaepa

	* filter/tv_split: Removed reference to nonexistent xmltv(5)
	manpage.

2003-05-25 05:31  rmeden

	* lib/exe_wrap.pl: remove error on directory with space in it...
	doesn't seem to be a problem now

2003-05-22 20:45  epaepa

	* Makefile.PL: Made the configuration process more consistent by
	having every grabber optional.	Only the XMLTV libraries and filter
	programs are required.

2003-05-22 20:14  epaepa

	* Makefile.PL: Made all occurrences of tv_grab_nz contained in its
	hash of conditional stuff.  This should fix the bug where
	Makefile.PL doesn't run if you say 'no' to tv_grab_nz.

2003-05-22 20:02  epaepa

	* Makefile.PL: Refactoring.

2003-05-22 19:57  epaepa

	* Makefile.PL: Refactoring.

2003-05-22 19:50  epaepa

	* Makefile.PL: Refactoring.

2003-05-22 19:22  epaepa

	* Makefile.PL: Fixed 'set LC_ALL to en_US' error message.

2003-05-21 19:50  epaepa

	* grab/nz/episode_names: Adding dummy episode_names file to keep
	the Makefile.PL happy.	I hope that soon it will be replaced with a
	real list of episode names.

2003-05-20 19:25  epaepa

	* MANIFEST: Renamed test cases.

2003-05-19 21:52  staffanmalmgren

	* grab/sn/tv_grab_sn: Fixed bug that skipped channels without
	program descriptions

2003-05-19 20:09  epaepa

	* t/: test_filters.t,
	data/tv_grep_on_after_2002_02_05_UTC_all_UTF8.expected,
	data/tv_grep_on_after_2002_02_05_UTC_amp_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_amp_xml_amp_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_amp_xml_clump_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_amp_xml_dups_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_amp_xml_empty_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_attrs_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_clump_extract_1_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_clump_extract_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_clump_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_clump_xml_amp_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_clump_xml_clump_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_clump_xml_dups_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_clump_xml_empty_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_dups_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_dups_xml_amp_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_dups_xml_clump_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_dups_xml_dups_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_dups_xml_empty_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_empty_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_empty_xml_amp_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_empty_xml_clump_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_empty_xml_dups_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_empty_xml_empty_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_intervals_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_length_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_overlap_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_simple_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_simple_xml_x_whatever_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_sort_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_test_empty_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_test_livre_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_test_sort_by_channel_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_test_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_test_xml_test_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_whitespace_xml.expected,
	data/tv_grep_on_after_2002_02_05_UTC_x_whatever_xml.expected,
	data/tv_grep_on_after_2002_02_05_all_UTF8.expected,
	data/tv_grep_on_after_2002_02_05_amp_xml.expected,
	data/tv_grep_on_after_2002_02_05_amp_xml_amp_xml.expected,
	data/tv_grep_on_after_2002_02_05_amp_xml_clump_xml.expected,
	data/tv_grep_on_after_2002_02_05_amp_xml_dups_xml.expected,
	data/tv_grep_on_after_2002_02_05_amp_xml_empty_xml.expected,
	data/tv_grep_on_after_2002_02_05_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_on_after_2002_02_05_attrs_xml.expected,
	data/tv_grep_on_after_2002_02_05_clump_extract_1_xml.expected,
	data/tv_grep_on_after_2002_02_05_clump_extract_xml.expected,
	data/tv_grep_on_after_2002_02_05_clump_xml.expected,
	data/tv_grep_on_after_2002_02_05_clump_xml_amp_xml.expected,
	data/tv_grep_on_after_2002_02_05_clump_xml_clump_xml.expected,
	data/tv_grep_on_after_2002_02_05_clump_xml_dups_xml.expected,
	data/tv_grep_on_after_2002_02_05_clump_xml_empty_xml.expected,
	data/tv_grep_on_after_2002_02_05_dups_xml.expected,
	data/tv_grep_on_after_2002_02_05_dups_xml_amp_xml.expected,
	data/tv_grep_on_after_2002_02_05_dups_xml_clump_xml.expected,
	data/tv_grep_on_after_2002_02_05_dups_xml_dups_xml.expected,
	data/tv_grep_on_after_2002_02_05_dups_xml_empty_xml.expected,
	data/tv_grep_on_after_2002_02_05_empty_xml.expected,
	data/tv_grep_on_after_2002_02_05_empty_xml_amp_xml.expected,
	data/tv_grep_on_after_2002_02_05_empty_xml_clump_xml.expected,
	data/tv_grep_on_after_2002_02_05_empty_xml_dups_xml.expected,
	data/tv_grep_on_after_2002_02_05_empty_xml_empty_xml.expected,
	data/tv_grep_on_after_2002_02_05_intervals_xml.expected,
	data/tv_grep_on_after_2002_02_05_length_xml.expected,
	data/tv_grep_on_after_2002_02_05_overlap_xml.expected,
	data/tv_grep_on_after_2002_02_05_simple_xml.expected,
	data/tv_grep_on_after_2002_02_05_simple_xml_x_whatever_xml.expected,
	data/tv_grep_on_after_2002_02_05_sort_xml.expected,
	data/tv_grep_on_after_2002_02_05_test_empty_xml.expected,
	data/tv_grep_on_after_2002_02_05_test_livre_xml.expected,
	data/tv_grep_on_after_2002_02_05_test_sort_by_channel_xml.expected,
	data/tv_grep_on_after_2002_02_05_test_xml.expected,
	data/tv_grep_on_after_2002_02_05_test_xml_test_xml.expected,
	data/tv_grep_on_after_2002_02_05_whitespace_xml.expected,
	data/tv_grep_on_after_2002_02_05_x_whatever_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_all_UTF8.expected,
	data/tv_grep_on_after_200302161330_UTC_amp_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_amp_xml_amp_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_amp_xml_clump_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_amp_xml_dups_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_amp_xml_empty_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_attrs_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_clump_extract_1_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_clump_extract_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_clump_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_clump_xml_amp_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_clump_xml_clump_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_clump_xml_dups_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_clump_xml_empty_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_dups_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_dups_xml_amp_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_dups_xml_clump_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_dups_xml_dups_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_dups_xml_empty_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_empty_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_empty_xml_amp_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_empty_xml_clump_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_empty_xml_dups_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_empty_xml_empty_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_intervals_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_length_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_overlap_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_simple_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_simple_xml_x_whatever_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_sort_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_test_empty_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_test_livre_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_test_sort_by_channel_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_test_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_test_xml_test_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_whitespace_xml.expected,
	data/tv_grep_on_after_200302161330_UTC_x_whatever_xml.expected,
	data/tv_grep_on_after_200302161330_all_UTF8.expected,
	data/tv_grep_on_after_200302161330_amp_xml.expected,
	data/tv_grep_on_after_200302161330_amp_xml_amp_xml.expected,
	data/tv_grep_on_after_200302161330_amp_xml_clump_xml.expected,
	data/tv_grep_on_after_200302161330_amp_xml_dups_xml.expected,
	data/tv_grep_on_after_200302161330_amp_xml_empty_xml.expected,
	data/tv_grep_on_after_200302161330_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_on_after_200302161330_attrs_xml.expected,
	data/tv_grep_on_after_200302161330_clump_extract_1_xml.expected,
	data/tv_grep_on_after_200302161330_clump_extract_xml.expected,
	data/tv_grep_on_after_200302161330_clump_xml.expected,
	data/tv_grep_on_after_200302161330_clump_xml_amp_xml.expected,
	data/tv_grep_on_after_200302161330_clump_xml_clump_xml.expected,
	data/tv_grep_on_after_200302161330_clump_xml_dups_xml.expected,
	data/tv_grep_on_after_200302161330_clump_xml_empty_xml.expected,
	data/tv_grep_on_after_200302161330_dups_xml.expected,
	data/tv_grep_on_after_200302161330_dups_xml_amp_xml.expected,
	data/tv_grep_on_after_200302161330_dups_xml_clump_xml.expected,
	data/tv_grep_on_after_200302161330_dups_xml_dups_xml.expected,
	data/tv_grep_on_after_200302161330_dups_xml_empty_xml.expected,
	data/tv_grep_on_after_200302161330_empty_xml.expected,
	data/tv_grep_on_after_200302161330_empty_xml_amp_xml.expected,
	data/tv_grep_on_after_200302161330_empty_xml_clump_xml.expected,
	data/tv_grep_on_after_200302161330_empty_xml_dups_xml.expected,
	data/tv_grep_on_after_200302161330_empty_xml_empty_xml.expected,
	data/tv_grep_on_after_200302161330_intervals_xml.expected,
	data/tv_grep_on_after_200302161330_length_xml.expected,
	data/tv_grep_on_after_200302161330_overlap_xml.expected,
	data/tv_grep_on_after_200302161330_simple_xml.expected,
	data/tv_grep_on_after_200302161330_simple_xml_x_whatever_xml.expected,
	data/tv_grep_on_after_200302161330_sort_xml.expected,
	data/tv_grep_on_after_200302161330_test_empty_xml.expected,
	data/tv_grep_on_after_200302161330_test_livre_xml.expected,
	data/tv_grep_on_after_200302161330_test_sort_by_channel_xml.expected,
	data/tv_grep_on_after_200302161330_test_xml.expected,
	data/tv_grep_on_after_200302161330_test_xml_test_xml.expected,
	data/tv_grep_on_after_200302161330_whitespace_xml.expected,
	data/tv_grep_on_after_200302161330_x_whatever_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_all_UTF8.expected,
	data/tv_grep_on_before_200302161330_UTC_amp_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_amp_xml_amp_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_amp_xml_clump_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_amp_xml_dups_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_amp_xml_empty_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_attrs_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_clump_extract_1_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_clump_extract_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_clump_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_clump_xml_amp_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_clump_xml_clump_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_clump_xml_dups_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_clump_xml_empty_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_dups_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_dups_xml_amp_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_dups_xml_clump_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_dups_xml_dups_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_dups_xml_empty_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_empty_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_empty_xml_amp_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_empty_xml_clump_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_empty_xml_dups_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_empty_xml_empty_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_intervals_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_length_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_overlap_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_simple_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_simple_xml_x_whatever_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_sort_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_test_empty_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_test_livre_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_test_sort_by_channel_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_test_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_test_xml_test_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_whitespace_xml.expected,
	data/tv_grep_on_before_200302161330_UTC_x_whatever_xml.expected,
	data/tv_grep_on_before_200302161330_all_UTF8.expected,
	data/tv_grep_on_before_200302161330_amp_xml.expected,
	data/tv_grep_on_before_200302161330_amp_xml_amp_xml.expected,
	data/tv_grep_on_before_200302161330_amp_xml_clump_xml.expected,
	data/tv_grep_on_before_200302161330_amp_xml_dups_xml.expected,
	data/tv_grep_on_before_200302161330_amp_xml_empty_xml.expected,
	data/tv_grep_on_before_200302161330_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_on_before_200302161330_attrs_xml.expected,
	data/tv_grep_on_before_200302161330_clump_extract_1_xml.expected,
	data/tv_grep_on_before_200302161330_clump_extract_xml.expected,
	data/tv_grep_on_before_200302161330_clump_xml.expected,
	data/tv_grep_on_before_200302161330_clump_xml_amp_xml.expected,
	data/tv_grep_on_before_200302161330_clump_xml_clump_xml.expected,
	data/tv_grep_on_before_200302161330_clump_xml_dups_xml.expected,
	data/tv_grep_on_before_200302161330_clump_xml_empty_xml.expected,
	data/tv_grep_on_before_200302161330_dups_xml.expected,
	data/tv_grep_on_before_200302161330_dups_xml_amp_xml.expected,
	data/tv_grep_on_before_200302161330_dups_xml_clump_xml.expected,
	data/tv_grep_on_before_200302161330_dups_xml_dups_xml.expected,
	data/tv_grep_on_before_200302161330_dups_xml_empty_xml.expected,
	data/tv_grep_on_before_200302161330_empty_xml.expected,
	data/tv_grep_on_before_200302161330_empty_xml_amp_xml.expected,
	data/tv_grep_on_before_200302161330_empty_xml_clump_xml.expected,
	data/tv_grep_on_before_200302161330_empty_xml_dups_xml.expected,
	data/tv_grep_on_before_200302161330_empty_xml_empty_xml.expected,
	data/tv_grep_on_before_200302161330_intervals_xml.expected,
	data/tv_grep_on_before_200302161330_length_xml.expected,
	data/tv_grep_on_before_200302161330_overlap_xml.expected,
	data/tv_grep_on_before_200302161330_simple_xml.expected,
	data/tv_grep_on_before_200302161330_simple_xml_x_whatever_xml.expected,
	data/tv_grep_on_before_200302161330_sort_xml.expected,
	data/tv_grep_on_before_200302161330_test_empty_xml.expected,
	data/tv_grep_on_before_200302161330_test_livre_xml.expected,
	data/tv_grep_on_before_200302161330_test_sort_by_channel_xml.expected,
	data/tv_grep_on_before_200302161330_test_xml.expected,
	data/tv_grep_on_before_200302161330_test_xml_test_xml.expected,
	data/tv_grep_on_before_200302161330_whitespace_xml.expected,
	data/tv_grep_on_before_200302161330_x_whatever_xml.expected: The
	recent change to tv_grep and other programs to parse command-line
	dates according to the local timezone broke the test suite. 
	Changed the tv_grep commands so that UTC is explicitly specified
	for the dates.

2003-05-19 19:31  epaepa

	* MANIFEST, Makefile.PL, choose/tv_check/tv_check, filter/tv_cat,
	filter/tv_extractinfo_en, filter/tv_grep.in, filter/tv_imdb,
	filter/tv_sort, filter/tv_split, filter/tv_to_latex,
	filter/tv_to_text, grab/de/tv_grab_de, grab/dk/tv_grab_dk,
	grab/es/tv_grab_es, grab/fi/tv_grab_fi, grab/hu/tv_grab_hu,
	grab/it/tv_grab_it.in, grab/na/tv_grab_na, grab/nl/tv_grab_nl,
	grab/nl_wolf/tv_grab_nl_wolf, grab/nz/tv_grab_nz.in,
	grab/sn/tv_grab_sn, grab/uk/tv_grab_uk.in,
	grab/uk_rt/tv_grab_uk_rt.in, lib/Version.pm: Every executable now
	has a --version argument, provided by the new XMLTV::Version
	library which can parse the CVS id you import it with.

2003-05-19 18:18  epaepa

	* grab/uk/tv_grab_uk.in: Trace the process of finding 'share'
	files.

2003-05-18 19:11  rmeden

	* lib/exe_wrap.pl: die if a space is found in the exe path and a
	--share directory is needed.  we know this causes problems.

2003-05-18 15:11  epaepa

	* grab/de/tv_grab_de: Kludge around the 'und uuml;' brokenness.

2003-05-18 14:11  epaepa

	* grab/Grab_XML.pm: Need to import XMLTV::TZ for
	parse_local_date().

2003-05-17 18:16  epaepa

	* grab/nl/tv_grab_nl: Removed documentation for recently-fixed bug;
	added documentation about missing channels reported by Johan
	Schravesande.

2003-05-17 17:56  epaepa

	* grab/nl/tv_grab_nl: A further refinement to the
	stick-dodgy-programmes-into-a-clump code: delete the stop time of
	the clump, it was taken from the first programme but we have no
	indication that this time applies to the clump as a whole (it
	probably doesn't).  So delete it.

2003-05-17 17:48  epaepa

	* grab/nl/tv_grab_nl: Fixed recently-introduced timezone bug. 
	Added some more trace messages.
	
	OK, with this commit I think the bug/feature reported by Johan
	Schravesande is fixed.	Instead of giving up when confronted with
	missing or nonsensical times, the grabber will try to output the
	programmes as part of a clump.

2003-05-17 17:37  epaepa

	* grab/nl/tv_grab_nl: Whoops, fixed so it compiles :-P.

2003-05-17 15:32  epaepa

	* grab/nl/tv_grab_nl: process_summary_page() is now allowed to
	return results with undef start and stop times, and it's up to the
	caller to work out what to do with them.  Previously,
	process_summary_page() would discard the bad results itself.

2003-05-17 15:21  epaepa

	* grab/nl/tv_grab_nl: In fast mode, don't allow programmes to cross
	midnight twice on the same page (give up if this happens).
	
	Added some trace messages.

2003-05-16 18:37  epaepa

	* grab/sn/tv_grab_sn: Whoops, forgot to import XMLTV::TZ module.

2003-05-16 07:16  epaepa

	* MANIFEST, Makefile.PL, grab/nz/tv_grab_nz, grab/nz/tv_grab_nz.PL,
	grab/nz/tv_grab_nz.in, lib/set_share_dir.pl: Changed the
	installation of tv_grab_nz to use the .in / .PL approach, so it can
	have a share directory, like some of the other grabbers.

2003-05-15 21:06  epaepa

	* Makefile.PL: Moved %share_files to the top level and let it be
	altered by optional things.

2003-05-15 20:56  epaepa

	* Makefile.PL: Refactoring WriterMakefile()'s PL_FILES argument
	into a variable %pl_files which can be added to by individual
	optional things.

2003-05-15 20:26  epaepa

	* filter/tv_grep.in, grab/Grab_XML.pm, grab/na/tv_grab_na,
	grab/sn/tv_grab_sn, lib/TZ.pm: Another attempt at fixing the
	tv_grep timezone bug.  A new routine XMLTV::TZ::parse_local_date()
	parses a date and converts it to UTC, so that when
	Date_Init('TZ=UTC') is called the date object does not get changed.

2003-05-15 04:24  rmeden

	* lib/exe_wrap.pl: limit output of Carp::Confess (called by
	Date::Manip)

2003-05-14 23:02  epaepa

	* lib/XMLTV.pm.in: Go one better - bad programme or channel
	elements are not returned to the caller at all.

2003-05-14 22:57  epaepa

	* lib/XMLTV.pm.in: Ignore <programme> elements missing required
	attributes (return them as undef rather than a hash).

2003-05-13 22:39  epaepa

	* Makefile.PL: Date::Manip 5.41 is required, earlier versions have
	a bug with numbered (rather than named) timezones.

2003-05-13 22:05  epaepa

	* t/data/: sort.xml, tv_cat_all_UTF8.expected,
	tv_cat_sort_xml.expected, tv_extractinfo_en_all_UTF8.expected,
	tv_extractinfo_en_sort_xml.expected, tv_grep_a_all_UTF8.expected,
	tv_grep_a_sort_xml.expected,
	tv_grep_on_after_2002_02_05_all_UTF8.expected,
	tv_grep_on_after_2002_02_05_sort_xml.expected,
	tv_grep_on_after_200302161330_all_UTF8.expected,
	tv_grep_on_after_200302161330_sort_xml.expected,
	tv_sort_all_UTF8.expected, tv_sort_by_channel_all_UTF8.expected,
	tv_sort_by_channel_sort_xml.expected, tv_sort_sort_xml.expected,
	tv_to_latex_all_UTF8.expected, tv_to_latex_sort_xml.expected,
	tv_to_text_all_UTF8.expected, tv_to_text_sort_xml.expected: Added
	test case for Date::Manip bug (fixed in 5.41).

2003-05-13 06:06  rmeden

	* lib/exe_wrap.pl: oops.. forgot File::Basename

2003-05-13 05:40  rmeden

	* choose/tv_check/README.tv_check: minor doc update

2003-05-13 05:36  rmeden

	* choose/tv_check/tv_check: adding a newline to improve error
	display

2003-05-13 05:35  rmeden

	* lib/exe_wrap.pl: Pretty much a total rewrite.
	
	On my development box (and hence the resulting EXEs) application
	DIE messages were not being delivered to the users.
	
	This version is much simpler (no self generating code), uses a
	"require" instead of a "do" and seems to work fine.  Error statuses
	are even passed as DOS ERRORLEVELS if you case to script it.

2003-05-12 21:42  epaepa

	* grab/uk_rt/tv_grab_uk_rt.in: Fixed last fix.

2003-05-12 21:32  epaepa

	* grab/nl_wolf/tv_grab_nl_wolf: Added sanity check of index page.

2003-05-12 21:23  epaepa

	* filter/tv_grep.in, grab/Grab_XML.pm, grab/na/tv_grab_na,
	grab/nl/tv_grab_nl, grab/sn/tv_grab_sn, grab/uk/tv_grab_uk.in,
	grab/uk_rt/tv_grab_uk_rt.in: Attempting to fix bug with parsing
	'now' or 'today' dates.  This can't be done after calling
	Date_Init('TZ=UTC').

2003-05-12 21:15  epaepa

	* grab/nl/tv_grab_nl: Fixed --offset handling.

2003-05-11 21:30  epaepa

	* Makefile.PL: Whoops, cut-n-paste error.

2003-05-11 21:24  epaepa

	* MANIFEST, Makefile.PL, grab/dk/tv_grab_dk: Adding Jesper Skov's
	tv_grab_dk grabber for Denmark.

2003-05-11 11:25  epaepa

	* MANIFEST, Makefile.PL, grab/hu/tv_grab_hu: New grabber:
	tv_grab_hu for Hungary written by Attila Szekeres and Zsolt Varga
	(although I have changed bits myself as well).

2003-05-11 11:22  epaepa

	* grab/: es/tv_grab_es, sn/tv_grab_sn: Don't read the config file
	twice, use @config_lines which was read early on.

2003-05-11 10:29  epaepa

	* lib/XMLTV.pm.in: XMLTV::Writer now overrides dataElement() to
	catch all cases of writing empty (or all-whitespace) element
	content.  (For things which are intended to be empty call
	emptyTag().)

2003-05-10 16:02  epaepa

	* grab/Mode.pm: Forgot to add and commit this file earlier.

2003-05-10 15:14  epaepa

	* MANIFEST, Makefile.PL, grab/es/tv_grab_es, grab/fi/tv_grab_fi,
	grab/nl/tv_grab_nl, grab/sn/tv_grab_sn, grab/uk/tv_grab_uk.in,
	grab/uk_rt/tv_grab_uk_rt.in: A new library XMLTV::Mode factors out
	the check 'you cannot configure and list channels at the same
	time'.
	
	Made sure all the grabbers fail early if they cannot read the
	config file during grabbing, rather than starting to download or
	write data before the config file is checked.

2003-05-10 15:11  epaepa

	* grab/uk/: channel_ids, channel_pkgs/film: Removed a couple of
	dead channels.

2003-05-10 14:48  epaepa

	* grab/nz/tv_grab_nz: Whoops, botched the last change - there was
	already a config file message.	But it wasn't displayed until later
	in the process.

2003-05-10 14:44  epaepa

	* grab/nz/tv_grab_nz: Print a message to stderr saying what config
	filename has been guessed.

2003-05-10 13:23  epaepa

	* grab/es/tv_grab_es: Fixed spelling of --list-channels in
	documentation.

2003-05-09 21:15  epaepa

	* MANIFEST, Makefile.PL, README, doc/QuickStart, doc/README.win32,
	grab/us_gist/tv_grab_us_gist: Removed tv_grab_us_gist, the gist.com
	site is no longer providing listings.
	
	Removed the 'changes in this release' from README and README.win32.

2003-05-09 20:58  epaepa

	* MANIFEST: Added grab/Get_nice.pm to file list.

2003-05-08 23:26  rmeden

	* lib/exe_wrap.pl: removed error for tv_imdb.  It works on windows
	now.

2003-05-08 23:23  rmeden

	* choose/tv_check/tv_check: rename $MYREPLAY_SAVE ->
	$MYREPLAY_DEBUG more accurate added debug messages when
	$MYREPLAY_DEBUG==2 shorten the "Mon, Tue, Wed...." to "*" in
	warning if all days specified filter out episodes more than a week
	away in extra eposide scan fix bug where day not set on initial
	myrelaytv import

2003-05-06 15:41  jveldhuis

	* filter/tv_imdb: optimized a bit and now open/close database only
	once instead of for every query

2003-05-06 15:41  jveldhuis

	* lib/IMDB.pm: removed come commented out code

2003-05-06 15:40  jveldhuis

	* lib/IMDB.pm: optimized a bit and now open/close database
	index/deails files only once

2003-05-06 15:17  jveldhuis

	* lib/IMDB.pm: no longer dependent on look(1), now uses
	Search::Dict

2003-05-06 15:16  jveldhuis

	* filter/tv_imdb: no longer dependent on look(1)

2003-05-05 16:54  jveldhuis

	* grab/na/ZapListings.pm: added in check of http status code when
	first page is retrieved and warns http_proxy env variable may need
	setting

2003-05-04 21:05  ramonroca

	* grab/es/tv_grab_es: Fixed a bug when the listing has not
	description and now parses the title-subtitle

2003-05-04 18:13  epaepa

	* grab/sn/tv_grab_sn: Changed to use XMLTV::Get_nice so there is a
	small delay between page fetches.

2003-05-04 18:09  epaepa

	* grab/Get_nice.pm: Whoops, I removed LWP::Simple from grabbers but
	forgot to add it to Get_nice.pm.

2003-05-04 12:38  epaepa

	* Makefile.PL, grab/Get_nice.pm, grab/es/tv_grab_es,
	grab/fi/tv_grab_fi, grab/it/tv_grab_it.in, grab/nl/tv_grab_nl,
	grab/sn/tv_grab_sn: Factored out the code to get a page and then
	sleep() into a new library XMLTV::Get_nice.

2003-05-04 11:32  epaepa

	* Makefile.PL: MY::manifypods(): small refactoring.

2003-05-03 21:14  jveldhuis

	* grab/na/tv_grab_na: fixed problem in configure when picking a
	provider description that appears twice - SF Bug #731721

2003-04-28 15:28  jveldhuis

	* grab/na/tv_grab_na: config file major version 3 implemented  -
	'#channel %d' entries are now 'not channel %d'	- 'provider %d #
	%s' are now 'provider %d %s'
	
	auto upgrading is done on the fly by identifying version 2 style
	config files, warning to re-run --configure stage.

2003-04-26 21:28  epaepa

	* Makefile.PL, README, doc/README.win32, lib/XMLTV.pm.in: Version
	0.5.10.

2003-04-26 20:38  epaepa

	* grab/Memoize.pm: Handle Memoize versions that are not numeric. 
	(I don't think there have been any, it's just my local
	hacked-around copy, but on principle...)

2003-04-26 20:37  epaepa

	* grab/Europe_TZ.pm: Changed a few input-validation errors to
	Carp::croak() rather than die().

2003-04-26 20:31  epaepa

	* grab/fi/tv_grab_fi: Fixed timezone handling to use Europe_TZ.

2003-04-26 19:10  epaepa

	* grab/it/tv_grab_it.in: The bug 'I haven't even considered what
	happens with DST issues' no longer exists!

2003-04-26 19:06  epaepa

	* grab/nz/tv_grab_nz: Removed redundant 'timezone' variable.  But
	I'm still not sure what the code is doing with timezones... I think
	it just ignores them.

2003-04-26 18:57  epaepa

	* grab/nl/tv_grab_nl: Fixed to use Europe_TZ for dates so the
	timezone is correct in output.
	
	Handle 'Behaalde prijzen' in programme descriptions.

2003-04-26 16:26  epaepa

	* grab/it/tv_grab_it.in: xmltv_date(): fixed to use Europe_TZ so
	that the timezone switches correctly between +0100 and +0200.

2003-04-26 16:18  epaepa

	* grab/it/tv_grab_it.in: Stylistic change to remove unneeded
	quotation marks around hash keys - this makes it easier to grep
	through the code for {start}, for example.  Also removed some
	trailing whitespace.

2003-04-26 14:00  epaepa

	* grab/fi/tv_grab_fi: If a stop time is not known, then no stop
	time is written - this is better than guessing a wrong time.

2003-04-26 13:56  epaepa

	* grab/es/tv_grab_es: Removed incorrect comment - in fact the
	grabber does not set top times at all.

2003-04-26 13:53  epaepa

	* grab/es/tv_grab_es: Fixed timezone handling, now uses
	Europe_TZ.pm.  This gives the correct output now (summer time,
	+0200) and hopefully will keep working after the change back to
	CET.

2003-04-26 13:24  epaepa

	* grab/us_gist/tv_grab_us_gist: Corrected manual page.

2003-04-26 13:20  epaepa

	* grab/Memoize.pm: Realized that Getopt::Long has a 'passthrough'
	option, so I don't need to write my own argument-parsing code just
	to extract the --cache option.	We use the OO interface to
	Getopt::Long to avoid setting global options which would affect
	other callers.

2003-04-26 12:59  epaepa

	* grab/us_gist/tv_grab_us_gist: Implemented --configure to set
	userid and timezone.  This replaces the environment variables that
	were formerly used.

2003-04-26 12:12  epaepa

	* grab/us_gist/tv_grab_us_gist: Moved 'use LWP::UserAgent' to a
	more logical place.

2003-04-26 12:01  epaepa

	* grab/us_gist/tv_grab_us_gist: Changed to use new cachables()
	method to do memoization.  I still can't seem to memoize a method
	rather than a function, so the work of getting pages has moved to a
	new get_deflate() routine in the main package, which can then be
	memoized.

2003-04-26 11:45  epaepa

	* grab/Grab_XML.pm: Instead of calling XMLTV::Memoize::check_argv()
	with a fixed list of functions at the top of the script, call it
	inside the go() method and get the list of things to memoize from a
	new method cachables().  Then subclasses which have their own way
	of fetching web pages can override that method.

2003-04-26 11:42  epaepa

	* grab/Memoize.pm: Whoops, forgot to turn of trace mesages.

2003-04-26 11:40  epaepa

	* grab/Memoize.pm: Fixed to work with names of functions not in the
	caller's package (eg, calling check_argv('LWP::Simple::get')).	Now
	returns a reference to a list of memoized functions, or undef if no
	memoization happens (this is consistent with the earlier true/false
	return values).  Checks that memoize() succeeds and dies if not.

2003-04-26 10:18  epaepa

	* grab/: Config_file.pm, es/tv_grab_es, fi/tv_grab_fi,
	it/tv_grab_it.in, na/tv_grab_na, nl/tv_grab_nl, sn/tv_grab_sn,
	uk/tv_grab_uk.in, uk_rt/tv_grab_uk_rt.in:
	XMLTV::Config_file::filename(): print a message to stderr saying
	what filename has been picked for the config file.  A new optional
	'quiet' argument turns this off.
	
	Factored out the code for reading a config file as lines and
	removing comments: a new routine XMLTV::Config_file::read_lines().

2003-04-26 08:48  epaepa

	* grab/na/tv_grab_na: Changed s/\n$// to chomp, which is a Perl
	builtin to do the same thing.

2003-04-26 08:08  epaepa

	* grab/: Config_file.pm, es/tv_grab_es, fi/tv_grab_fi,
	it/tv_grab_it.in, nl/tv_grab_nl, nz/tv_grab_nz, sn/tv_grab_sn,
	uk/tv_grab_uk.in, uk_rt/tv_grab_uk_rt.in: A new routine
	XMLTV::Config_file::check_no_overwrite() factors out the duplicated
	'are you sure you want to overwrite the config file?' check in most
	grabbers.

2003-04-25 21:19  epaepa

	* grab/us_gist/tv_grab_us_gist: Use XMLTV::Memoize to --cache the
	get() method, since it is overridden in this class and doesn't call
	LWP::Simple::get().

2003-04-25 21:17  epaepa

	* grab/Grab_XML.pm: Changed the undocumented --cache option to
	cache LWP::Simple::get() rather than the method Grab_XML->get().

2003-04-25 20:18  epaepa

	* grab/nl/tv_grab_nl: Rateher than initializing Date::Manip to work
	with Dutch date strings, keep it in English and change the strings
	before passing them to ParseDate().  This is because the language
	is a single global setting and we want to interoperate with
	libraries that use English strings.

2003-04-25 19:26  epaepa

	* grab/sn/tv_grab_sn: Added a check that programme title is set
	before attempting to call write_programme().  This may put us a
	little closer to finding the cause of the problem Tommy Killander
	reported on xmltv-users.

2003-04-24 23:01  staffanmalmgren

	* grab/sn/tv_grab_sn: Updated to use utc_offset to add UTC offset
	to dates

2003-04-24 23:00  staffanmalmgren

	* grab/Europe_TZ.pm: Added convenience function utc_offset

2003-04-23 19:23  epaepa

	* Makefile.PL, README: Promoted Memoize from 'recommended' to
	'required', since perl 5.8 includes it.  Yes, you can always scrape
	by without Memoize, but the user may not understand why things are
	running slowly.  I could print a warning, but simpler just to
	require the modulee, as more and more vendors ship 5.8 or later. 
	VS:

2003-04-22 22:22  rmeden

	* grab/us_gist/tv_grab_us_gist: a few simple changes to allow
	tv_grab_us_gist to be used with xmltv.exe The userid is no longer
	hard coded, but set with an enviornment variable.  A TZ adjustment
	is sent to GIST in the URL.

2003-04-22 20:22  staffanmalmgren

	* grab/sn/tv_grab_sn: Fixed bug which made timestamps have the
	wrong timezone due to DST changeover, for good (hopefully)

2003-04-22 19:32  epaepa

	* grab/Europe_TZ.pm: date_to_eur(): Fixed (I hope) to work with
	timeonzes other than UTC/UTC+1.  Thanks to Staffan M. for finding
	the bug,

2003-04-22 14:07  ramonroca

	* grab/es/tv_grab_es: Another break at elpais.es, seems active
	those days

2003-04-21 00:57  rmeden

	* choose/tv_check/tv_check: don't use Replay fuzzy logic for
	MYREPLAYTV devices because the episode will be added as a separate
	show by the MYREPLAYTV fetch logic.
	
	Removed extra fields from SHOW file.

2003-04-20 20:40  epaepa

	* MANIFEST, Makefile.PL, grab/Config_file.pm, grab/es/tv_grab_es,
	grab/fi/tv_grab_fi, grab/it/tv_grab_it.in, grab/na/tv_grab_na,
	grab/nl/tv_grab_nl, grab/nz/tv_grab_nz, grab/sn/tv_grab_sn,
	grab/uk/tv_grab_uk.in, grab/uk_rt/tv_grab_uk_rt.in: A new library
	XMLTV::Config_file encapsulates the job of working out the config
	filename and doing weird things like creating directories or
	migrating config filenames.

2003-04-20 12:26  epaepa

	* MANIFEST, Makefile.PL, grab/Europe_TZ.pm, grab/uk/tv_grab_uk.in,
	grab/uk_rt/tv_grab_uk_rt.in, lib/TZ.pm, lib/UK_TZ.pm: Replaced the
	UK_TZ.pm library with Europe_TZ.pm, which should work for most
	European countries.  The functions are the same but you must pass
	in the 'base' or winter timezone as an extra parameter (so for
	British times pass 'UTC').
	
	TZ.pm has a new routine tz_to_num() which converts named timezones
	to their numeric equivalent.

2003-04-20 11:57  epaepa

	* grab/sn/tv_grab_sn: Whitespace.

2003-04-20 10:07  ramonroca

	* grab/es/tv_grab_es: Solved a break due to change in elpais.es,
	and othe minor things

2003-04-19 15:10  allena28

	* grab/uk/channel_pkgs/NTL/: analogue, digital/Base: Updates to NTL
	Packages

2003-04-18 16:12  allena28

	* grab/uk/channel_pkgs/Sky/: Family, Value: updated Sky packages

2003-04-18 14:44  epaepa

	* grab/uk/README: Removed UK_TZ.pm from the file descriptions since
	it no longer lives in this directory.

2003-04-18 14:24  epaepa

	* lib/exe_wrap.pl: Each 'command' subroutine stored in %cmds is now
	expected to handle errors itself - to exit(1) or die() if things
	went wrong.  This means that the commands for do()ing some Perl
	script need to check the return value of do() and the $! and $@
	variables.  Then if a command returns control to the caller, we
	just exit successfully.
	
	This should fix the bug reported by Andy Balaam on xmltv-devel,
	'non-zero exit codes in Windows'.  But it is *untested*, I don't
	have access to the Windows exe compiler.

2003-04-18 13:54  epaepa

	* grab/nl/tv_grab_nl: Added function prototypes.
	
	get_courteous(): there seems to be a difference in Perl versions on
	how calling get_courteous_aux(@_) is interpreted.  Or some weird
	interaction with Memoize.  It seems that @_ was being turned into a
	scalar by taking the length of the list, ie 1.	I've changed it to
	call get_courteous_aux($_[0]), which works on perl 5.8 and should
	work on all other versions.

2003-04-16 13:15  rmeden

	* lib/exe_wrap.pl: removed CST6CDT style filenames. Replaced with
	numeric style.	(The above was required due to a big in
	Parse::Date, which has been fixed)
	
	Added a module to block tv_imdb, since it requires a unix "look"
	program.

2003-04-16 13:09  rmeden

	* choose/tv_check/tv_check: don't alarm on unexpected show length
	if length missing or zero.  fixed problem with "NO GUIDE" messages
	if last entry of the day

2003-04-15 20:02  epaepa

	* filter/tv_cat, lib/XMLTV.pm.in: Moved catfiles() from tv_cat into
	XMLTV.pm.

2003-04-15 19:46  epaepa

	* filter/tv_cat: catfiles(): Refactored the code into this routine,
	which is passed some arguments for an XMLTV::Writer and some
	filenames to read from.  Intending to move into XMLTV.pm soon.

2003-04-14 14:54  jveldhuis

	* grab/na/: ZapListings.pm, tv_grab_na: switched cases were I use
	[^\s]+ in regexp with \S+

2003-04-13 08:46  epaepa

	* grab/us_gist/tv_grab_us_gist: Link to Gist's page describing
	their XMLTV feed.

2003-04-12 21:04  epaepa

	* grab/us_gist/tv_grab_us_gist: Override XMLTV::Grab_XML::get() to
	add 'Accept-encoding: gzip' and then decompress.  The grabber now
	works!

2003-04-12 20:40  epaepa

	* grab/: Grab_XML.pm, de/tv_grab_de, nl_wolf/tv_grab_nl_wolf,
	us_gist/tv_grab_us_gist: XMLTV::Grab_XML::get(): new package method
	to get the contents of a page at a given URL.  This will let
	grabbers override the mechanism used to fetch a page (the default
	implementation uses LWP::Simple).
	
	This does mean that packages inheriting from XMLTV::Grab_XML should
	not import LWP::Simple's get() function, it will clash with the
	method of the same name.

2003-04-12 11:45  epaepa

	* MANIFEST, Makefile.PL, doc/QuickStart,
	grab/us_gist/tv_grab_us_gist: Adding a new grabber tv_grab_us_gist
	to fetch the XMLTV listings made available by gist.com.  It's not
	yet finished and in fact I don't even know if it works - but it
	will soon.  (Committing so I can run it from my shell account
	rather than over a modem link!)

2003-04-10 03:55  jveldhuis

	* lib/IMDB.pm: make argument naming consistant with tv_imdb

2003-04-10 03:53  jveldhuis

	* filter/: tv_imdb: --moviesOnly is no --movies-only

2003-04-06 21:27  jveldhuis

	* filter/tv_imdb, lib/IMDB.pm: added --moviesOnly option

2003-04-06 20:40  jveldhuis

	* lib/IMDB.pm: Term::ProgressBar now optional - thanks to Ed for
	the patch

2003-04-06 20:34  jveldhuis

	* lib/IMDB.pm: removed a duplicated conditional

2003-04-06 17:20  epaepa

	* MANIFEST, Makefile.PL, grab/nl_wolf/tv_grab_nl_wolf: New grabber:
	tv_grab_nl_wolf downloads XMLTV files from Carlo de Wolf's site. 
	Is is based on the Grab_XML library recently factored out of
	tv_grab_de.

2003-04-06 17:17  epaepa

	* mkdist: Comment.

2003-04-06 16:59  epaepa

	* lib/XMLTV.pm.in: cat(): when several sets of listings have
	different 'dates', choose the latest date for the result.  Other
	attributes of <tv> are processed as before (taken arbitrarily from
	the first file).

2003-04-06 16:29  epaepa

	* mkdist: chdir() to $TMP_CHECKOUT_DIR once rather than prepending
	a 'cd' to every command run.
	
	Don't use tar --bzip2, it pads the compressed data with zeros or
	something weird.

2003-04-06 16:22  epaepa

	* mkdist: FTP the tarball in binary mode!

2003-04-06 14:55  epaepa

	* MANIFEST, Makefile.PL, grab/Grab_XML.pm, grab/de/tv_grab_de,
	lib/Usage.pm: Factored out most code from tv_grab_de into a new
	library XMLTV::Grab_XML.  Changed XMLTV::Usage so you can pass a
	usage message to usage(), you don't have to set it when importing
	the module.  Fixed a Makefile bug where manual pages would be
	installed under the wrong filename.

2003-04-06 10:36  epaepa

	* Makefile.PL: Version 0.5.9.

2003-04-06 10:31  epaepa

	* doc/README.win32: Updated with changes for the new release
	(assuming that tv_imdb and the new grabbers will be included in
	xmltv.exe).

2003-04-06 10:28  epaepa

	* doc/README.win32: Version 0.5.9 (although the Windows binary
	won't come out immediately).

2003-04-06 10:26  epaepa

	* lib/XMLTV.pm.in: Version 0.5.9.

2003-04-06 09:58  epaepa

	* README: Updated for 0.5.9.

2003-04-06 09:39  epaepa

	* grab/de/tv_grab_de: Documented the fact that the upstream
	listings currently have broken timezones.

2003-04-06 09:24  epaepa

	* doc/QuickStart: Added a paragraph about tv_imdb.

2003-04-05 21:39  epaepa

	* grab/uk/: channel_ids, channel_pkgs/classics, channel_pkgs/film,
	channel_pkgs/Sky/Family, channel_pkgs/Telewest/Supreme: Removed
	some channels which were no longer on the site.

2003-04-05 21:29  epaepa

	* grab/nz/tv_grab_nz: Documented a bug.

2003-04-05 21:05  epaepa

	* grab/nl/tv_grab_nl: Don't output 'debug_more' comments in fast
	mode (this was left in the code by mistake).

2003-04-05 21:05  epaepa

	* grab/nl/tv_grab_nl: Added support for 'Orginele Titel' in
	programme description pages.

2003-04-05 20:52  epaepa

	* grab/nl/tv_grab_nl: Fixed several bugs including missing
	programmes when a day is split over two pages ('Volgende' link,
	which previously was not handled by --slow mode).  This has
	involved commonizing some of the code between fast and slow, which
	is no bad thing.

2003-04-05 18:50  epaepa

	* lib/XMLTV.pm.in: Fixed the handling of 'debug' keys in hases so
	it does what it says on the tin.  It should work now for channels
	as well as programmes.

2003-04-05 18:26  epaepa

	* lib/XMLTV.pm.PL: Don't 'use diagnostics', they slow down loading
	and aren't that helpful.

2003-04-05 11:18  epaepa

	* grab/nl/tv_grab_nl: do_summary_page(): handle (recursively) the
	'Volgende' links that sometimes appear.  These mean next page for
	the same day.  This has involved adding a new parameter, 'official
	day' which is not necessarily the same as 'actual day', and is used
	only to sanity-check the date printed in the page.

2003-04-05 09:08  epaepa

	* grab/nz/tv_grab_nz: Removed debugging message left in the code my
	mistake.

2003-04-05 08:38  epaepa

	* grab/sn/tv_grab_sn: Added some missing function prototypes.

2003-04-05 08:32  epaepa

	* grab/sn/tv_grab_sn: Quote an apostrophe in pod documentation to
	avoid confusing editors.

2003-04-04 21:57  epaepa

	* grab/nl/tv_grab_nl: Moved the code for downloading and processing
	the programme summary page for each day into a routine
	do_summary_page().

2003-04-04 21:39  epaepa

	* grab/nl/tv_grab_nl: Eliminated confusing $date variable.

2003-04-04 21:11  epaepa

	* grab/nz/tv_grab_nz: Fixed bug where a programme crossing midnight
	would have a stop time in the wrong day.

2003-04-04 19:36  epaepa

	* grab/uk_rt/tv_grab_uk_rt.in: Handle URLs which appear in without
	preceding text like 'Related Websites'.

2003-04-04 17:39  epaepa

	* grab/sn/tv_grab_sn: Patch from Martin Moeller to cope with a
	recent site change.

2003-04-03 07:26  epaepa

	* grab/nl/tv_grab_nl: Fixed bug reported by Marcel where the first
	programme after midnight on a given day would not have its stop
	time moved forward by 24 hours - due to a 'my' in an inner scope
	hiding the real $stop variable.

2003-04-03 07:23  epaepa

	* filter/tv_sort: Added a warnong for programmes whose stop time is
	before their start time.

2003-04-02 19:32  epaepa

	* grab/nl/tv_grab_nl: Changed default number of days to seven.

2003-04-02 19:29  epaepa

	* grab/nl/tv_grab_nl: Fixed to work again with offset zero: I
	didn't realize that (uniquely among the sites fetched from so far)
	the listings source does number its days from zero.
	
	Better handling of pages that have no listings content at all (as
	when you ask for more days than the site has).

2003-03-31 07:21  epaepa

	* doc/QuickStart: Updated for newly added grabbers.

2003-03-31 01:20  jveldhuis

	* grab/na/tv_grab_na: when a command line error occurs or usage
	problem, print message about how to get command line help, instead
	of providing the help... windows users fail to see actual error
	messages since usage is so long

2003-03-30 21:08  staffanmalmgren

	* grab/sn/tv_grab_sn: Changed maintaner information, as per Ed's
	suggestion

2003-03-30 13:45  epaepa

	* grab/uk/tv_grab_uk.in: Better error message when --offset is
	given and the site doesn't have enough days of listings to satisfy
	the request (which is happening increasingly often).

2003-03-30 13:03  epaepa

	* grab/nl/tv_grab_nl: Fixed date calculation bug: the day numbers
	on the site count from 1 meaning today.

2003-03-30 13:02  epaepa

	* grab/uk_rt/tv_grab_uk_rt.in: get_programmes(): prepend the URL to
	warning and error messages.

2003-03-30 12:25  epaepa

	* grab/de/tv_grab_de: Accept but politely ignore the --config-file
	option.

2003-03-30 12:22  epaepa

	* grab/nz/tv_grab_nz: Added support for a --cache option which is
	ignored.  This is for consistency with the undocumented --cache
	option in other grabbers: the option now means 'cache me if you
	can'.

2003-03-30 12:14  epaepa

	* grab/nz/tv_grab_nz: More thorough command-line checking: error if
	there are arguments left over after parsing options.

2003-03-30 11:43  epaepa

	* grab/na/tv_grab_na: Added an --cache option which is accepted but
	ignored.  This is for consistency with the other grabbers, in
	particular, to make it easier to write a grabber test suite.  Some
	day the --cache option can actually do something.

2003-03-30 11:37  epaepa

	* grab/na/tv_grab_na: Check the command line more throughly: it is
	an error if any arguments remain after processing options.

2003-03-30 11:35  epaepa

	* grab/na/tv_grab_na: Improved main usage message.

2003-03-30 11:18  epaepa

	* grab/na/tv_grab_na: Made same tidying elsewhere, I didn't realize
	there were two cals to GetOptions().

2003-03-30 09:37  epaepa

	* grab/na/tv_grab_na: Code tidy moving each command-line option
	onto its own line.  This should make it easier to add and remove
	them and change them in patches (since diff works line-by-line).

2003-03-29 23:14  epaepa

	* grab/nl/tv_grab_nl: Don't warn about 'Volgende' link which has
	started appearing on channel summary pages.

2003-03-29 23:13  epaepa

	* grab/uk_rt/tv_grab_uk_rt.in: Suppress duplicate warnings when the
	channel name of a programme details page doesn't match that on the
	channels page (this has started firing for a difference bwtween
	'Sky 1' and 'Sky One').

2003-03-29 23:07  epaepa

	* grab/uk/: channel_ids, channel_pkgs/Freeview, channel_pkgs/wales:
	Channel S4C2 seems to have disappeared from the site.  I'm just
	commenting it out for now in case it reappears later.

2003-03-29 22:49  epaepa

	* grab/nl/tv_grab_nl: Was being a bit overzealous in delete()ing a
	TreeBuilder object before the data from it had been extracted.

2003-03-29 21:17  epaepa

	* filter/tv_extractinfo_en: Don't memoize list_names().  My Memoize
	seems to have gone funny recently, confusing scalar and list
	context.

2003-03-29 20:53  epaepa

	* MANIFEST, Makefile.PL, grab/nl/tv_grab_nl: Added tv_grab_nl, a
	grabber for the Netherlands.  This is based on the version Guido
	Diepen sent me but I have rewritten parts of it - in particular,
	the default mode is now to output only brief programme details and
	save on page fetches.

2003-03-29 17:21  epaepa

	* grab/sn/tv_grab_sn: Patch from Staffen Malmgren.  Here's his
	description:
	
	The following patch fixes three bugs concerning the --configure
	mode of tv_grab_sn.
	
	The first one is one i introduced myself in my patch from a couple
	of months ago; the 'all' answer to "add channel FOO?" question
	would incorrectly NOT add the current channel (but it would add all
	following channels)
	
	The second two were introduced in revisions 1.19, 1.20 or
	thereabouts (and so does not seem to be present in 0.58). The first
	error was handling a array reference as though it was scalar (and
	thus ending up with a lot of "ARRAY(0xABCD1234)" in the
	configuration questions and config file.  The second was a
	regression in the HTML scraping of available channels -- along with
	the valid channels, a bunch of categories would be returned.
	
	The patch is tested with both Swedish and Norwegian channels.

2003-03-29 00:28  rmeden

	* doc/README.win32: add warning about using spaces in xmltv.exe
	path

2003-03-28 19:49  epaepa

	* filter/tv_extractinfo_en, grab/de/tv_grab_de, grab/es/tv_grab_es,
	grab/fi/tv_grab_fi, grab/it/tv_grab_it.in, grab/sn/tv_grab_sn,
	grab/uk/tv_grab_uk.in: Benjamin Goldberg on
	comp.lang.perl.moderated pointed out a better way to check if a
	module is availabl, setting a compile-time constant rather than a
	variable.  So the constant Have_bar replaces the variable
	$have_bar.

2003-03-28 19:34  epaepa

	* filter/Grep.pm: Explicitly list the handlers which cannot be
	queried on; die if a handler name is not recognized.  This makes
	sure that when adding a new handler to XMLTV.pm we also decide what
	should happen with it in XMLTV/Grep.pm.

2003-03-28 19:13  epaepa

	* MANIFEST: Added tv_grab_it to file list.

2003-03-27 21:55  epaepa

	* grab/uk/: channel_ids, channel_pkgs/Freeview, channel_pkgs/adult,
	channel_pkgs/arts, channel_pkgs/children, channel_pkgs/comedy,
	channel_pkgs/entertainment, channel_pkgs/factual,
	channel_pkgs/gratis, channel_pkgs/lifestyle, channel_pkgs/music,
	channel_pkgs/news, channel_pkgs/regional, channel_pkgs/sport,
	channel_pkgs/travel, channel_pkgs/NTL/analogue,
	channel_pkgs/NTL/digital/Base, channel_pkgs/NTL/digital/Family,
	channel_pkgs/Sky/Family, channel_pkgs/Telewest/Entry,
	channel_pkgs/Telewest/Essential, channel_pkgs/Telewest/Supreme:
	Removed a lot of channels which seem to have disappeared from the
	site.  Based on a patch sent in by Paul McDermott.

2003-03-27 10:01  rmeden

	* choose/tv_check/tv_check: added code to skip episodes without a
	start time

2003-03-26 22:12  epaepa

	* grab/nz/tv_grab_nz: Added --config-file option.
	
	Accept 'yes' answer to y/N question.
	
	When reading the config file give an error if the 'channels' line
	is not present or appears more than once.  Also don't default the
	channels list if an I/O error occurs; just give an error.

2003-03-22 23:34  epaepa

	* grab/Memoize.pm: Memoize the function in list context as well as
	scalar context - but using the same cache for both (the MERGE
	option).

2003-03-20 13:13  jveldhuis

	* grab/na/tv_grab_na: now unlinks temperary file on write failure

2003-03-17 18:44  allena28

	* grab/uk/channel_pkgs/NTL/digital/: Base, Disney, Family, Sports,
	movies: Updates to NTL packages

2003-03-17 13:41  allena28

	* grab/uk/channel_pkgs/Telewest/: Entry, Essential, Essential_Plus,
	Supreme: Updated telewest details in channel_pkgs for tv_grab_uk

2003-03-17 00:20  epaepa

	* lib/XMLTV.pm.in: When writing <episode-number>, if the 'system'
	attribute is not given then default it to 'onscreen'.  This agrees
	more with what the docs say (and avoids the current bug where it
	could be written as an empty string if undef).

2003-03-15 15:21  epaepa

	* MANIFEST, Makefile.PL, grab/es/tv_grab_es: Adding Ramon Roca's
	tv_grab_es grabber for Spain.

2003-03-15 11:17  epaepa

	* filter/tv_grep.in: Dcoumentation clarification.

2003-03-15 11:03  epaepa

	* filter/tv_grep.in: Generalized the warning about not always using
	the programme autgenerated tests.

2003-03-15 10:53  epaepa

	* filter/: tv_grep.PL, tv_grep.in: Get the manual page information
	from the Grep.pm library.  This should make sure the manual page
	stays in sync with changes to tv_grep (it was inconsistent before).

2003-03-13 20:42  rmeden

	* choose/tv_check/README.tv_check: bring the quick-start guide up
	to date with current version

2003-03-13 00:22  mnbjhguyt

	* grab/it/tv_grab_it.in: more messed up chars fixed

2003-03-12 23:16  epaepa

	* MANIFEST, Makefile.PL, filter/Grep.pm, filter/tv_grep.in: Moved
	get_matcher() out of tv_grep into a new library Grep.pm.  This is
	just so it can later be used in pod generation.

2003-03-12 22:18  epaepa

	* filter/tv_grep.in: Fixed a bug in get_handler() and in the use of
	the same.  Added some trace messages.

2003-03-11 22:54  epaepa

	* filter/tv_grep.in: get_matcher(): new function to replace
	%queryable hash.  Returns working subs rather than subs you must
	call to get more subs.

2003-03-11 22:24  epaepa

	* filter/tv_grep.in: Moved the information of how to match on
	different data types into the hash %queryable, which is used both
	to look up matching subroutines and to generate the usage message. 
	(It is a bit convoluted, with subs returning subs, but that could
	be fixed later.)  Next I have to fix the manual page generation,
	which is incorrect.

2003-03-11 17:22  jveldhuis

	* grab/na/tv_grab_na: properly sets new id if description changes,
	minor changes to warning messages

2003-03-11 17:20  jveldhuis

	* grab/na/ZapListings.pm: better error message

2003-03-10 22:51  epaepa

	* Makefile.PL, README, doc/QuickStart, grab/it/dud_channels,
	grab/it/tv_grab_it.PL, grab/it/tv_grab_it.in: New grabber
	tv_grab_it contributed by Davide Chiarini.

2003-03-10 22:51  epaepa

	* grab/uk/tv_grab_uk.PL: Fixed invocation of set_share_dir.pl.

2003-03-10 22:50  epaepa

	* filter/tv_imdb: Escaped a quotation mark to avoid confusing
	emacs.

2003-03-10 22:33  epaepa

	* lib/set_share_dir.pl: Oops, it didn't work, should now.

2003-03-10 22:27  epaepa

	* MANIFEST, lib/set_share_dir.pl, grab/uk/tv_grab_uk.PL:
	Generalized tv_grab_uk.PL, which sets the $SHARE_DIR constant in a
	source file, into the 'library' set_share_dir.pl.

2003-03-10 18:39  epaepa

	* Makefile.PL: Term::ProgressBar version 2 is recommended (tv_imdb
	uses the new interface).

2003-03-10 18:34  epaepa

	* MANIFEST: Added tv_imdb files and new tv_grab_uk provider channel
	packages to file list.

2003-03-10 06:59  jveldhuis

	* lib/IMDB.pm: minor adjustment to success/failure message

2003-03-10 06:55  jveldhuis

	* lib/IMDB.pm: adopted use of Term::ProgressBar, and lots of it. 
	better feedback on every part of each of the 5 stages.
	
	also error messages for each stage appear in stageX.log files
	instead of being lost to stderr. The number of error messages is
	reported at the end of each stage's success or failure.

2003-03-09 17:23  epaepa

	* grab/fi/tv_grab_fi: Log the URL that's being fetched.

2003-03-09 16:55  jveldhuis

	* lib/IMDB.pm: added note to look at Term::ProgressBar

2003-03-09 14:52  epaepa

	* grab/fi/tv_grab_fi: Debugging trace messages.

2003-03-09 13:22  epaepa

	* grab/fi/tv_grab_fi: process_table(): now returns a list of
	programme hashes to be written, rather than taking the
	XMLTV::Writer as a parameter.

2003-03-09 13:15  epaepa

	* grab/fi/tv_grab_fi: make_programme_hash(): new name for
	write_data(), it no longer writes but just returns a hash suitable
	for XMLTV.pm.

2003-03-09 12:45  epaepa

	* grab/fi/tv_grab_fi: Whitespace.

2003-03-09 12:40  epaepa

	* grab/fi/tv_grab_fi: Fixed documentation of config filename.

2003-03-08 13:41  epaepa

	* xmltv.dtd: Clarified that we use DNS-like names for channels not
	whole URIs.

2003-03-07 18:58  allena28

	* grab/uk/channel_pkgs/Freeview: Test updated to check CVS is
	working

2003-03-05 23:56  epaepa

	* Makefile.PL: Install files for new tv_imdb filter.

2003-03-05 21:03  epaepa

	* Makefile.PL: Added warning for possibly-buggy perl versions.

2003-03-04 20:59  jveldhuis

	* lib/IMDB.pm: bugs in db_version:  - directors who did multiple
	episodes of tv series appeared more than once.	 - actresses didn't
	appear in list of actors :) (thanks Chris L. and Bob Y.)

2003-03-04 18:44  jveldhuis

	* filter/tv_imdb: BUG:	How and what to look up needs to be option
	driven.

2003-03-04 06:29  jveldhuis

	* filter/tv_imdb: perldoc fixes

2003-03-04 06:23  jveldhuis

	* filter/tv_imdb, lib/IMDB.pm: more major enhancements

2003-03-04 00:43  jveldhuis

	* doc/QuickStart: added tv_imdb

2003-03-04 00:41  jveldhuis

	* lib/IMDB.pm: fixed typo

2003-03-04 00:37  jveldhuis

	* filter/tv_imdb, lib/IMDB.pm: now looks up tv series in imdb.com
	data added in-memory cache for tv series lookups

2003-03-03 22:58  jveldhuis

	* lib/IMDB.pm: minor fix

2003-03-03 22:57  jveldhuis

	* filter/tv_imdb: fixed typo

2003-03-03 21:19  jveldhuis

	* lib/IMDB.pm: now handles gzipped directors/actors and actresses
	files

2003-03-03 15:40  jveldhuis

	* filter/tv_imdb: filter to augment listing data with imdb.com
	plain text files

2003-03-03 15:39  jveldhuis

	* lib/IMDB.pm: first swing at indexing the imdb.com plain text
	files

2003-03-01 13:13  epaepa

	* grab/sn/tv_grab_sn: extract_channel_data(): new routine holding
	the HTML-munging code from get_channels().

2003-03-01 12:04  epaepa

	* grab/sn/tv_grab_sn: Added --list-channels option partly based on
	a patch by Julian Cable.  It requires an additional option --loc to
	choose channels for Sweden or Norway.
	
	Currently the output from --list-channels gives different ids to
	those in the normal listings, I will fix this soon.

2003-03-01 11:48  epaepa

	* grab/sn/tv_grab_sn: Moved the names of the two countries to
	%COUNTRIES at the top of the file.

2003-03-01 11:40  epaepa

	* lib/XMLTV.pm.in: Debugging message.

2003-03-01 11:30  epaepa

	* xmltv.dtd: Added a note about ordering of <channel> elements.

2003-03-01 11:27  epaepa

	* grab/uk/tv_grab_uk.in: Write <channel> elements in sorted order. 
	The file format says that order of channels doesn't matter, but it
	makes files easier to diff if you sort them.

2003-02-28 23:05  epaepa

	* grab/uk/tv_grab_uk.in: Corrected message; sadly, grabbing no
	longer gets a whole week's listings.

2003-02-26 22:43  epaepa

	* grab/uk/channel_pkgs/NTL/digital/Base: Changed choice.bbc.co.uk
	to bbc3.bbc.co.uk, I missed this one earlier.

2003-02-26 21:42  epaepa

	* Makefile.PL: Install tv_grab_uk's channel_pkgs, including those
	in subdirectories.

2003-02-26 21:04  epaepa

	* grab/uk/channel_pkgs/NTL/digital/: Base, base: Renamed base to
	Base since it is clearly the name of a subscription package (it
	contains Sky One and other pay channels).

2003-02-26 21:02  epaepa

	* grab/uk/channel_pkgs/: Freeview, NTL/digital/Family,
	NTL/digital/base, Telewest/Entry: Fixed some channel ids in
	newly-added subscription packages; removed racingchannel.com;
	removed packages from NTL/digital/Family that were already in
	NTL/digital/base.

2003-02-26 20:47  epaepa

	* grab/uk/: channel_ids, channel_pkgs/arts, channel_pkgs/comedy,
	channel_pkgs/entertainment, channel_pkgs/factual,
	channel_pkgs/film, channel_pkgs/NTL/digital/Family,
	channel_pkgs/Sky/Family, channel_pkgs/Telewest/Essential: The site
	has removed the special 'telewest' and 'ntl' variants of channels.

2003-02-26 20:30  epaepa

	* grab/uk/tv_grab_uk.in: Documentation and formatting changes.

2003-02-26 20:24  epaepa

	* MANIFEST: Removed directory from MANIFEST, it should list only
	plain files.

2003-02-23 20:48  epaepa

	* grab/uk/: tv_grab_uk.in, channel_pkgs/Freeview,
	channel_pkgs/NTL/analogue, channel_pkgs/NTL/digital/Disney,
	channel_pkgs/NTL/digital/Family, channel_pkgs/NTL/digital/Sports,
	channel_pkgs/NTL/digital/base, channel_pkgs/NTL/digital/movies,
	channel_pkgs/Sky/Family, channel_pkgs/Sky/Movies_World,
	channel_pkgs/Sky/Sports, channel_pkgs/Sky/Value,
	channel_pkgs/Telewest/Entry, channel_pkgs/Telewest/Essential,
	channel_pkgs/Telewest/Essential_Plus,
	channel_pkgs/Telewest/Supreme: Added a bunch of new channel
	packages from Adam Allen.  These correspond to the channel lineups
	available from different TV providers.
	
	Because the new packages naturally arrange themselves into a
	directory structure, tv_grab_uk now uses File::Find to look for all
	packages in its directory.  However I haven't yet worked out how to
	modify the Makefile.PL to install the packages.

2003-02-22 22:10  epaepa

	* grab/fi/tv_grab_fi: Added --list-channels mode partly based on
	patch by Julian Cable.	Also tidied up some of the code.

2003-02-21 23:58  epaepa

	* grab/na/tv_grab_na: Updated comment and usage message to say
	--config-file not --config (thanks to rmeden for spotting).

2003-02-21 04:28  rmeden

	* choose/tv_check/tv_check: prevent warnings when we don't have a
	stop time by using the start time.

2003-02-21 04:26  rmeden

	* lib/exe_wrap.pl: remove constants when computing timezone.. oops

2003-02-20 22:49  epaepa

	* MANIFEST, filter/tv_grep.in, t/test_filters.t,
	t/data/tv_grep_on_after_200302161330_all_UTF8.expected,
	t/data/tv_grep_on_after_200302161330_amp_xml.expected,
	t/data/tv_grep_on_after_200302161330_amp_xml_amp_xml.expected,
	t/data/tv_grep_on_after_200302161330_amp_xml_clump_xml.expected,
	t/data/tv_grep_on_after_200302161330_amp_xml_dups_xml.expected,
	t/data/tv_grep_on_after_200302161330_amp_xml_empty_xml.expected,
	t/data/tv_grep_on_after_200302161330_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	t/data/tv_grep_on_after_200302161330_attrs_xml.expected,
	t/data/tv_grep_on_after_200302161330_clump_extract_1_xml.expected,
	t/data/tv_grep_on_after_200302161330_clump_extract_xml.expected,
	t/data/tv_grep_on_after_200302161330_clump_xml.expected,
	t/data/tv_grep_on_after_200302161330_clump_xml_amp_xml.expected,
	t/data/tv_grep_on_after_200302161330_clump_xml_clump_xml.expected,
	t/data/tv_grep_on_after_200302161330_clump_xml_dups_xml.expected,
	t/data/tv_grep_on_after_200302161330_clump_xml_empty_xml.expected,
	t/data/tv_grep_on_after_200302161330_dups_xml.expected,
	t/data/tv_grep_on_after_200302161330_dups_xml_amp_xml.expected,
	t/data/tv_grep_on_after_200302161330_dups_xml_clump_xml.expected,
	t/data/tv_grep_on_after_200302161330_dups_xml_dups_xml.expected,
	t/data/tv_grep_on_after_200302161330_dups_xml_empty_xml.expected,
	t/data/tv_grep_on_after_200302161330_empty_xml.expected,
	t/data/tv_grep_on_after_200302161330_empty_xml_amp_xml.expected,
	t/data/tv_grep_on_after_200302161330_empty_xml_clump_xml.expected,
	t/data/tv_grep_on_after_200302161330_empty_xml_dups_xml.expected,
	t/data/tv_grep_on_after_200302161330_empty_xml_empty_xml.expected,
	t/data/tv_grep_on_after_200302161330_intervals_xml.expected,
	t/data/tv_grep_on_after_200302161330_length_xml.expected,
	t/data/tv_grep_on_after_200302161330_overlap_xml.expected,
	t/data/tv_grep_on_after_200302161330_simple_xml.expected,
	t/data/tv_grep_on_after_200302161330_simple_xml_x_whatever_xml.expected,
	t/data/tv_grep_on_after_200302161330_sort_xml.expected,
	t/data/tv_grep_on_after_200302161330_test_empty_xml.expected,
	t/data/tv_grep_on_after_200302161330_test_livre_xml.expected,
	t/data/tv_grep_on_after_200302161330_test_sort_by_channel_xml.expected,
	t/data/tv_grep_on_after_200302161330_test_xml.expected,
	t/data/tv_grep_on_after_200302161330_test_xml_test_xml.expected,
	t/data/tv_grep_on_after_200302161330_whitespace_xml.expected,
	t/data/tv_grep_on_after_200302161330_x_whatever_xml.expected,
	t/data/tv_grep_on_before_200302161330_all_UTF8.expected,
	t/data/tv_grep_on_before_200302161330_amp_xml.expected,
	t/data/tv_grep_on_before_200302161330_amp_xml_amp_xml.expected,
	t/data/tv_grep_on_before_200302161330_amp_xml_clump_xml.expected,
	t/data/tv_grep_on_before_200302161330_amp_xml_dups_xml.expected,
	t/data/tv_grep_on_before_200302161330_amp_xml_empty_xml.expected,
	t/data/tv_grep_on_before_200302161330_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	t/data/tv_grep_on_before_200302161330_attrs_xml.expected,
	t/data/tv_grep_on_before_200302161330_clump_extract_1_xml.expected,
	t/data/tv_grep_on_before_200302161330_clump_extract_xml.expected,
	t/data/tv_grep_on_before_200302161330_clump_xml.expected,
	t/data/tv_grep_on_before_200302161330_clump_xml_amp_xml.expected,
	t/data/tv_grep_on_before_200302161330_clump_xml_clump_xml.expected,
	t/data/tv_grep_on_before_200302161330_clump_xml_dups_xml.expected,
	t/data/tv_grep_on_before_200302161330_clump_xml_empty_xml.expected,
	t/data/tv_grep_on_before_200302161330_dups_xml.expected,
	t/data/tv_grep_on_before_200302161330_dups_xml_amp_xml.expected,
	t/data/tv_grep_on_before_200302161330_dups_xml_clump_xml.expected,
	t/data/tv_grep_on_before_200302161330_dups_xml_dups_xml.expected,
	t/data/tv_grep_on_before_200302161330_dups_xml_empty_xml.expected,
	t/data/tv_grep_on_before_200302161330_empty_xml.expected,
	t/data/tv_grep_on_before_200302161330_empty_xml_amp_xml.expected,
	t/data/tv_grep_on_before_200302161330_empty_xml_clump_xml.expected,
	t/data/tv_grep_on_before_200302161330_empty_xml_dups_xml.expected,
	t/data/tv_grep_on_before_200302161330_empty_xml_empty_xml.expected,
	t/data/tv_grep_on_before_200302161330_intervals_xml.expected,
	t/data/tv_grep_on_before_200302161330_length_xml.expected,
	t/data/tv_grep_on_before_200302161330_overlap_xml.expected,
	t/data/tv_grep_on_before_200302161330_simple_xml.expected,
	t/data/tv_grep_on_before_200302161330_simple_xml_x_whatever_xml.expected,
	t/data/tv_grep_on_before_200302161330_sort_xml.expected,
	t/data/tv_grep_on_before_200302161330_test_empty_xml.expected,
	t/data/tv_grep_on_before_200302161330_test_livre_xml.expected,
	t/data/tv_grep_on_before_200302161330_test_sort_by_channel_xml.expected,
	t/data/tv_grep_on_before_200302161330_test_xml.expected,
	t/data/tv_grep_on_before_200302161330_test_xml_test_xml.expected,
	t/data/tv_grep_on_before_200302161330_whitespace_xml.expected,
	t/data/tv_grep_on_before_200302161330_x_whatever_xml.expected: New
	feature for tv_grep: --on-before is a kind of opposite to
	--on-after, it gives all those programmes which have been broadcast
	(at least partly) at a given data.

2003-02-20 22:27  epaepa

	* lib/exe_wrap.pl: Even more obvious error message for people who
	mistakenly run 'xmltv.exe --configure' or whatever.

2003-02-20 22:20  epaepa

	* MANIFEST: Added more test case outputs to file list.

2003-02-20 20:42  epaepa

	* t/data/: intervals.xml, tv_cat_all_UTF8.expected,
	tv_cat_intervals_xml.expected, tv_extractinfo_en_all_UTF8.expected,
	tv_extractinfo_en_intervals_xml.expected,
	tv_grep_a_all_UTF8.expected, tv_grep_a_intervals_xml.expected,
	tv_grep_category_b_intervals_xml.expected,
	tv_grep_category_e_and_title_f_intervals_xml.expected,
	tv_grep_category_g_or_title_h_all_UTF8.expected,
	tv_grep_category_g_or_title_h_intervals_xml.expected,
	tv_grep_channel_id_channel4_com_intervals_xml.expected,
	tv_grep_channel_name_d_intervals_xml.expected,
	tv_grep_channel_xyz_or_channel_b_intervals_xml.expected,
	tv_grep_eval_scalar_keys_5_intervals_xml.expected,
	tv_grep_i_category_i_title_h_intervals_xml.expected,
	tv_grep_i_category_i_title_j_intervals_xml.expected,
	tv_grep_i_last_chance_c_intervals_xml.expected,
	tv_grep_new_intervals_xml.expected,
	tv_grep_on_after_2002_02_05_all_UTF8.expected,
	tv_grep_on_after_2002_02_05_intervals_xml.expected,
	tv_grep_premiere_intervals_xml.expected,
	tv_grep_previously_shown_intervals_xml.expected,
	tv_sort_all_UTF8.expected, tv_sort_by_channel_all_UTF8.expected,
	tv_sort_by_channel_intervals_xml.expected,
	tv_sort_intervals_xml.expected, tv_to_latex_all_UTF8.expected,
	tv_to_latex_intervals_xml.expected, tv_to_text_all_UTF8.expected,
	tv_to_text_intervals_xml.expected: Another new test case, giving
	all sorts of intervals to test tv_grep's --on-after and forthcoming
	--on-before.

2003-02-19 23:09  epaepa

	* grab/uk/channel_pkgs/gratis: Noted the difference between two
	kinds of 'free' channels.

2003-02-19 22:17  epaepa

	* grab/uk/channel_ids: Changed an XMLTV id from
	'radio-5-mw.bbc.co.uk' to just 'radio-5.bbc.co.uk' because the
	means of transmission shouldn't really be part of the id unless
	there are two different stations broadcasting on different media. 
	Radio 5 broadcasts on medium wave only.

2003-02-19 22:11  epaepa

	* filter/tv_sort,
	t/data/tv_sort_by_channel_test_sort_by_channel_xml.expected:
	add_stop(): Rewrote using a simpler algorithm: go through all the
	following programmes and pick the start time if it is later than
	ours, or the stop time if it exists.  If neither condition is true
	move on to the next following programme.
	
	I don't know why I made it so complex to start with, I think it was
	because I thought it sensible to start at the end of the sorted
	list and work backwards.  And it would be sensible, if you only
	looked at start times.	But we don't any more.
	
	This should fix the pesky bug where tv_sort --by-channels doesn't
	work because add_stop() would break the sortedness of its input
	programmes list.

2003-02-19 16:37  jveldhuis

	* grab/na/tv_grab_na: backed out moving to ISO-8860 in xml
	declaration/encoding

2003-02-18 23:07  epaepa

	* filter/tv_sort: pd(): new function, just a wrapper for
	ParseDate() which dies if the date couldn't be parsed.	This
	removes the need for an explicit check after every call.  It has a
	shorter name too.

2003-02-18 22:43  epaepa

	* t/data/tv_sort_test_sort_by_channel_xml.expected: Whoops, forgot
	to update this expected output file I think.  Well now the expected
	output from tv_sort for this case is actually sorted :-).

2003-02-18 22:32  epaepa

	* filter/tv_sort, t/data/tv_sort_all_UTF8.expected,
	t/data/tv_sort_by_channel_all_UTF8.expected: add_stop(): jump
	through some hoops to avoid making the list of programmes out of
	order.	This fixes the bug where tv_sort would sometimes generate
	output that wasn't sorted.  However there are still differences
	between tv_sort and tv_sort --by-channel on the
	test_sort_by_channel.xml test case, and I will investigate those
	further.

2003-02-18 21:49  epaepa

	* filter/tv_sort: check_sorted(): new function to assert that a
	list is sorted according to a given comparison function.
	
	Added calls to check_sorted() after each operation that changes a
	list of programmes.  This catches the bug in --by-channels, so that
	tv_sort now dies rather than produce incorrect output.	This is a
	small improvement.  Next task is to fix the bug.

2003-02-16 18:53  jveldhuis

	* grab/na/tv_grab_na: dates in xml output header is now ISO-8861
	compliant

2003-02-16 17:51  jveldhuis

	* grab/na/tv_grab_na: fixed pod and now --list-channels produces
	xmltv xml

2003-02-16 16:44  epaepa

	* t/data/: tv_cat_all_UTF8.expected,
	tv_extractinfo_en_all_UTF8.expected,
	tv_sort_by_channel_test_sort_by_channel_xml.expected,
	tv_to_latex_all_UTF8.expected: Oops, I somehow forgot to add
	test_sort_by_channel.xml's contribution to some of the expected
	all_UTF8 files, and didn't make the expected output from tv_sort
	--by-channel on that file the same as that from tv_sort.

2003-02-16 16:20  epaepa

	* t/test_filters.t: Moved tv_sort --by-channel into the main body
	of tests, since it has a known bug, and moved a few other commands
	out into the 'full' list of tests to keep 'make test' relatively
	quick.

2003-02-16 16:10  epaepa

	* t/data/: test_sort_by_channel.xml,
	tv_cat_test_sort_by_channel_xml.expected,
	tv_extractinfo_en_test_sort_by_channel_xml.expected,
	tv_grep_a_test_sort_by_channel_xml.expected,
	tv_grep_category_b_test_sort_by_channel_xml.expected,
	tv_grep_category_e_and_title_f_test_sort_by_channel_xml.expected,
	tv_grep_category_g_or_title_h_test_sort_by_channel_xml.expected,
	tv_grep_channel_id_channel4_com_test_sort_by_channel_xml.expected,
	tv_grep_channel_name_d_test_sort_by_channel_xml.expected,
	tv_grep_channel_xyz_or_channel_b_test_sort_by_channel_xml.expected,
	tv_grep_eval_scalar_keys_5_test_sort_by_channel_xml.expected,
	tv_grep_i_category_i_title_h_test_sort_by_channel_xml.expected,
	tv_grep_i_category_i_title_j_test_sort_by_channel_xml.expected,
	tv_grep_i_last_chance_c_test_sort_by_channel_xml.expected,
	tv_grep_new_test_sort_by_channel_xml.expected,
	tv_grep_on_after_2002_02_05_test_sort_by_channel_xml.expected,
	tv_grep_premiere_test_sort_by_channel_xml.expected,
	tv_grep_previously_shown_test_sort_by_channel_xml.expected,
	tv_sort_all_UTF8.expected, tv_sort_by_channel_all_UTF8.expected,
	tv_sort_by_channel_test_sort_by_channel.expected,
	tv_sort_by_channel_test_sort_by_channel_xml.expected,
	tv_sort_test_sort_by_channel_xml.expected,
	tv_to_latex_test_sort_by_channel_xml.expected,
	tv_to_text_test_sort_by_channel_xml.expected: Discovered a strange
	bug where tv_sort --by-channel produces different output from
	tv_sort, even when all the programmes in the input have the same
	channel.  This test case demonstrates it (the expected output from
	tv_sort and tv_sort --by-channel is the same for the input
	test_sort_by_channel.xml, but the actual outputs currently differ.)

2003-02-16 15:18  epaepa

	* filter/tv_sort: Removed the global %orig_order and moved the
	'make the sort stable' stuff into a new routine
	make_stable_sort_function(), which can be applied to
	\&programme_cmp and a list of programmes, or anything else to that
	matter.  Now the sorting for --by-channel is also a stable sort.
	
	Hmm, this didn't fix the bug I was hoping to fix, still, none of
	the other tests break and it seems like a good thing.

2003-02-16 14:42  epaepa

	* filter/tv_sort: Made a note that perl 5.8 has a use sort
	'stable'; pragma and we should make use of that if available.  I
	won't implement it until I have a perl5.8-equipped box to test
	with.

2003-02-16 13:41  epaepa

	* grab/na/tv_grab_na: migrateConfigFile(): new routine
	encapsulating the code that migrates the old config file to the new
	location.  Instead of being called at the start of the script
	before parsing options (which incorrectly runs it even when
	--config-file is given), it now gets called from the configure
	stage and from the grab stage, but only if $opt_config_file is not
	set.  This should fix the bug reported by Robert Eden.

2003-02-16 13:33  epaepa

	* grab/na/tv_grab_na: Removed deprecated --config option (use
	--config-file instead).

2003-02-16 12:58  epaepa

	* xmltv.dtd: Clarified the meaning of start and stop, that they are
	a half-closed interval.  This is what everybody knew anyway, but
	it's just as well to have it in writing.

2003-02-16 12:28  epaepa

	* filter/tv_grep.in: Whoops, the documentation of --on-after was
	completely the opposite of what it does.

2003-02-16 11:25  epaepa

	* grab/nz/tv_grab_nz: Create ~/.xmltv/ if it doesn't already exist.

2003-02-16 11:16  epaepa

	* grab/na/tv_grab_na: Check the return value from close().

2003-02-16 11:03  epaepa

	* grab/na/tv_grab_na: Commented what happens about creating the
	~/.xmltv/ directory.

2003-02-16 01:27  epaepa

	* grab/na/tv_grab_na: Moved 'use strict;' to the top of the code so
	it applies to the whole file.

2003-02-16 01:25  epaepa

	* grab/: fi/tv_grab_fi, na/tv_grab_na, nz/tv_grab_nz,
	sn/tv_grab_sn, uk/tv_grab_uk.in, uk_rt/tv_grab_uk_rt.in: As
	mentioned on xmltv-devel, changing the names of all the grabber
	configuration files to end in '.conf'.	This is so that on Windows,
	when run from the current directory, they do not try to overwrite
	themselves.  Thanks to Davide Chiarini for pointing this out.  Also
	it's probably more obvious what the files are for with '.conf'
	stuck on the end of the filename.
	
	The migration should be automatic, you just get a message saying
	that the old file is being renamed to end in .conf.  Of course
	_this_ will go wrong for Windows users running from the current
	directory, but it's only a short-term measure.
	
	Hmm, perhaps some of this config file reading/writing could be
	factored out.  It's a lot of almost identical code.

2003-02-16 01:10  epaepa

	* grab/nz/tv_grab_nz: If HOME is not set in the environment, look
	in the current direcetory for the config file.

2003-02-16 00:52  epaepa

	* grab/na/tv_grab_na: Removed another occurrence of ~/.xmltv_na.

2003-02-16 00:48  epaepa

	* grab/nz/tv_grab_nz: Changed strip() method on string object
	(which is not supported in Python 1.5.2) to use string.strip()
	function instead.

2003-02-16 00:14  epaepa

	* grab/na/tv_grab_na: Don't migrate config file from old location
	~/.xmltv_na, it hasn't been there since 0.4.x.	Besides, I am about
	to add a new piece of magic config file movement and to have two
	would be excessive.

2003-02-15 22:40  epaepa

	* mkdist: mkdist now does the uploading to upload.sourceforge.net,
	though you still have to do the fiddling with SF's web pages by
	hand.  Made the instructions for that a bit more concise (better to
	give a URL than to give 'click on X...' instructions IMHO).

2003-02-15 21:54  epaepa

	* mkdist: Added a couple of FIXMEs for code that might be removed.

2003-02-15 21:18  epaepa

	* Makefile.PL, README, doc/README.win32, lib/XMLTV.pm.in: Version
	0.5.8.

2003-02-15 19:26  epaepa

	* grab/uk/: channel_ids, channel_pkgs/entertainment,
	channel_pkgs/gratis, channel_pkgs/misc, channel_pkgs/sport,
	channel_pkgs/travel: Updating for some channel changes: BBC3,
	intermittent problems with Sky Premiership Plus and Setanta,
	sorting out the mass of travel channels all called 'travel
	channel'.

2003-02-15 19:11  epaepa

	* grab/uk/tv_grab_uk.in: Whoops - the last version I checked in was
	totally broken, because overriding $SIG{__DIE__} with something
	that does an exit(1) will stop eval {} blocks from working.  Sorry.

2003-02-15 10:15  epaepa

	* xmltv.dtd: Clarified the meaning of 'width' and 'height'
	attributes in <icon>.

2003-02-15 00:12  epaepa

	* filter/tv_to_text: Kenneth Pronovici sent me a manual page
	(actually it is almost the same as tv_to_latex's manpage, which
	makes sense).

2003-02-11 05:23  rmeden

	* choose/tv_check/tv_check: added  Kenneth J. Pronovici's POD page.
	Thanks Kenneth!

2003-02-10 16:52  jveldhuis

	* mkdist: clarification

2003-02-10 16:40  jveldhuis

	* mkdist: updated comments at bottom and made some of the cvs
	commands quieter

2003-02-09 22:00  jveldhuis

	* doc/README.win32: updated to release 0.5.7 and new release notes

2003-02-09 15:21  jveldhuis

	* Makefile.PL, README, doc/README.win32, lib/XMLTV.pm.in: updated
	to release 0.5.7 and new release notes

2003-02-09 14:39  jveldhuis

	* grab/na/ZapListings.pm: end times computed by next program start
	time

2003-02-09 14:38  jveldhuis

	* grab/na/tv_grab_na: stop times may not appear because of zap2it
	bug

2003-02-09 12:23  epaepa

	* lib/XMLTV.pm.in: Don't assume that every program using this
	module is distributed as part of xmltv.

2003-02-08 21:50  epaepa

	* grab/uk/channel_ids: Dealt with the remaining BBC stations.

2003-02-08 21:49  epaepa

	* grab/uk/tv_grab_uk.in: Tried to give the URL at fault if
	XMLTV::parse() fails, but catching the exception doesn't seem to
	work properly (with perl 5.005).  Still, it might do better with a
	newer version of perl.

2003-02-08 21:23  epaepa

	* grab/uk/channel_ids: Added XMLTV ids for a whole bunch of local
	radio stations - but there are many more still to do.

2003-02-08 21:22  epaepa

	* grab/uk/tv_grab_uk.in: init_channels(): tidied up the warn() and
	die() error reporting.	Now the channel_ids filename and line
	number is automatically prepended to every error message that
	happens when reading a line of that file.  Even things that I
	originally thought of as 'internal errors' are really caused by
	mistakes in that file.

2003-02-08 00:29  epaepa

	* grab/uk/: channel_ids, channel_pkgs/sport: Added channel Setanta
	Sports.

2003-02-08 00:20  epaepa

	* lib/XMLTV.pm.PL: Don't use IO::File, use the prehistoric typeglob
	method for passing filehandles, because I suspect that IO::File was
	triggering a segfault with perl-5.6.0 on some systems.

2003-02-08 00:11  epaepa

	* grab/uk/: channel_ids, channel_pkgs/gratis, channel_pkgs/scifi,
	channel_pkgs/sport: Removed a couple of defunct channels: The
	Racing Channel went out of business, and there no longer seems to
	be a separate NTL version of Sci-Fi.
	
	I have left S4C2 because it broadcasts intermittently, for a few
	days at a time, and it seems to disppear from the site briefly when
	none of its listings are present.  You'll get a warning about it if
	you run the grabber during one of these times.

2003-02-07 00:45  jveldhuis

	* grab/na/ZapListings.pm: zap2it changed again :r they removed the
	"(ends at HH:MM)" endings on the descriptions in the text listings.
	 For now, we calculate end of program by the following program, and
	assume the last program of the day ends at midnight. Otherwise, we
	need to get the next days listings to figure out the true value.

2003-02-02 19:02  jveldhuis

	* grab/na/ZapListings.pm: yet again, we switch horses on user agent
	name

2003-02-02 19:01  jveldhuis

	* grab/na/tv_grab_na: added bug about zap2it not providing colour
	coded program categories in text listings

2003-02-02 18:22  epaepa

	* MANIFEST, Makefile.PL, doc/QuickStart, filter/tv_to_text,
	t/test_filters.t, t/data/tv_to_text_all_UTF8.expected,
	t/data/tv_to_text_amp_xml.expected,
	t/data/tv_to_text_amp_xml_amp_xml.expected,
	t/data/tv_to_text_amp_xml_clump_xml.expected,
	t/data/tv_to_text_amp_xml_dups_xml.expected,
	t/data/tv_to_text_amp_xml_empty_xml.expected,
	t/data/tv_to_text_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	t/data/tv_to_text_attrs_xml.expected,
	t/data/tv_to_text_clump_extract_1_xml.expected,
	t/data/tv_to_text_clump_extract_xml.expected,
	t/data/tv_to_text_clump_xml.expected,
	t/data/tv_to_text_clump_xml_amp_xml.expected,
	t/data/tv_to_text_clump_xml_clump_xml.expected,
	t/data/tv_to_text_clump_xml_dups_xml.expected,
	t/data/tv_to_text_clump_xml_empty_xml.expected,
	t/data/tv_to_text_dups_xml.expected,
	t/data/tv_to_text_dups_xml_amp_xml.expected,
	t/data/tv_to_text_dups_xml_clump_xml.expected,
	t/data/tv_to_text_dups_xml_dups_xml.expected,
	t/data/tv_to_text_dups_xml_empty_xml.expected,
	t/data/tv_to_text_empty_xml.expected,
	t/data/tv_to_text_empty_xml_amp_xml.expected,
	t/data/tv_to_text_empty_xml_clump_xml.expected,
	t/data/tv_to_text_empty_xml_dups_xml.expected,
	t/data/tv_to_text_empty_xml_empty_xml.expected,
	t/data/tv_to_text_length_xml.expected,
	t/data/tv_to_text_overlap_xml.expected,
	t/data/tv_to_text_simple_xml.expected,
	t/data/tv_to_text_simple_xml_x_whatever_xml.expected,
	t/data/tv_to_text_sort_xml.expected,
	t/data/tv_to_text_test_empty_xml.expected,
	t/data/tv_to_text_test_livre_xml.expected,
	t/data/tv_to_text_test_xml.expected,
	t/data/tv_to_text_test_xml_test_xml.expected,
	t/data/tv_to_text_whitespace_xml.expected,
	t/data/tv_to_text_x_whatever_xml.expected: New filter tv_to_text. 
	This is very similar to tv_to_latex (using the same code recently
	moved into the XMLTV::Summarize module) but outputs plain text.  I
	originally wrote it when I was on a box that didn't have LaTeX
	installed.

2003-02-02 18:09  epaepa

	* xmltv.dtd, filter/tv_grep.in, lib/XMLTV.pm.in: Small change to
	the file format: newlines in element content are not allowed except
	for <desc>, <premiere> and <last-chance> elements (these contain a
	'paragraph' of text).  Changed XMLTV.pm.in to check this.

2003-02-02 18:04  epaepa

	* lib/XMLTV.pm.in: Pod formatting fix.

2003-02-02 17:14  epaepa

	* xmltv.dtd: Fixed the version numbering.

2003-02-02 17:11  epaepa

	* lib/XMLTV.pm.in: chomp() the warning or error message before
	adding a newline to the end.  This lets you give messages using the
	normal convention of ending in \n without ending up with a blank
	line in the output.

2003-02-02 14:14  epaepa

	* t/data/: test_empty.xml, tv_cat_all_UTF8.expected,
	tv_cat_test_empty_xml.expected,
	tv_extractinfo_en_all_UTF8.expected,
	tv_extractinfo_en_test_empty_xml.expected,
	tv_grep_a_all_UTF8.expected, tv_grep_a_test_empty_xml.expected,
	tv_grep_category_g_or_title_h_all_UTF8.expected,
	tv_grep_category_g_or_title_h_test_empty_xml.expected,
	tv_grep_eval_scalar_keys_5_all_UTF8.expected,
	tv_grep_eval_scalar_keys_5_test_empty_xml.expected,
	tv_grep_on_after_2002_02_05_all_UTF8.expected,
	tv_grep_on_after_2002_02_05_test_empty_xml.expected,
	tv_sort_all_UTF8.expected, tv_sort_by_channel_all_UTF8.expected,
	tv_sort_by_channel_test_empty_xml.expected,
	tv_sort_test_empty_xml.expected, tv_to_latex_all_UTF8.expected,
	tv_to_latex_test_empty_xml.expected: Removed a newline from the
	<title> of one of the test inputs.  I've decided that titles and
	other similar things should not contain newlines.

2003-02-02 10:50  epaepa

	* grab/fi/tv_grab_fi: Corrected line endings.  Checking out the
	file on DOSish systems should add the carriage returns anyway, so
	there is no need to put them in CVS.

2003-02-01 22:28  jveldhuis

	* grab/na/ZapListings.pm: added error message to check postal/zip
	code when provider form didn't appear. Zap2it doesn't give a nice
	error message until the second time you type a failed zip code.

2003-02-01 22:26  jveldhuis

	* grab/na/tv_grab_na: fixed usage line length <80

2003-02-01 21:51  jveldhuis

	* grab/na/ZapListings.pm: fixed user-agent to use xmltv/0.5.7a and
	minor adjust so we get all channels and not just the first 20 -
	thanks darren <at> vexorg.no-ip.com

2003-02-01 21:48  jveldhuis

	* grab/na/tv_grab_na: fixed some usage failures to exit(1) instead
	of continuing

2003-02-01 12:37  epaepa

	* grab/sn/tv_grab_sn: The 'just ignore comments' case in
	configuration file parsing is not needed because the regexps run on
	each line will strip comments anyway.

2003-01-31 23:04  epaepa

	* grab/de/tv_grab_de: Fixed warning (noticed in Debian bug #178692)
	about memGunzip name used only once, when Compress::Zlib could not
	be loaded.

2003-01-31 22:59  epaepa

	* grab/de/tv_grab_de: my_gunzip(): Patch from Debian bug #178692 to
	make call to tempfile() actually work.

2003-01-31 17:50  jveldhuis

	* grab/na/tv_grab_na: fixed release-check message at end of grab

2003-01-31 17:49  jveldhuis

	* grab/na/ZapListings.pm: minor comment removal

2003-01-31 17:17  jveldhuis

	* grab/na/tv_grab_na:  - added --release-check true/false to the
	command line (default is true)
	   Specify whether or not we should attempt to check + for new
	releases.
	   tv_grab_na does this by default (scraping the contents of the
	xmltv project
	   page).
	 - reworked some calls to ZapListings new packaging.

2003-01-31 17:16  jveldhuis

	* grab/na/ZapListings.pm:  - reworked scraping/traversal of all
	zap2it web site pages
	   - removed all hardcoded cookies
	   - removed all hardcoded zap2it server names
	   - removed all hardcoded url with the exception of
	www.zapit.com/index
	   - now works by scraping www pages for "defined" forms and
	     then uses them, reusing the same UserAgent so cookie
	management
	     is completely automatic.
	 - userAgent description is 'Mozilla/5.0' for kicks.
	 - added getCurrentReleaseInfo() that may belong in the XMLTV
	package
	   instead, but its here for now.
	 - identifies and inserts programmes with title=unknown when
	program
	   holes appear (including holes that span across day boundaries)
	   (emits warning when hole is filled, if --quiet is not used)
	 - reworked packaging a bit because of new form/traversal
	mechanisms

2003-01-31 16:45  rmeden

	* choose/tv_check/tv_check: don't crash on no episode match for
	replay scan

2003-01-28 16:53  jveldhuis

	* grab/na/ZapListings.pm: fixed calls to statusMessage

2003-01-24 03:07  rmeden

	* choose/tv_check/tv_check_doc.html: documented --DDMM switch. 
	Also edited with Mozilla, so it reformatted it bunch

2003-01-24 02:49  rmeden

	* choose/tv_check/tv_check: added --DDMM switch to optinally use
	that date format in reports

2003-01-23 05:05  rmeden

	* choose/tv_check/tv_check: use channel-id for dislpaly-name if
	guide doesn't have a channel section.  index channels after guide
	instead of before in case channels not predefined set show day to
	empty string to avoid rare undef fix index name in configure mode,
	so you can just click on a title

2003-01-21 06:33  rmeden

	* lib/exe_wrap.pl: Date::Manip doesn't always deal with numeric
	time zones correctly.  They have fixed their code, but it's not in
	wide distribution.  For now, when exe_xmit tries to guess the time
	zone, let it use some named values.
	
	This will be fased out in a few months, once Date::Manip is
	distributed.

2003-01-20 03:48  rmeden

	* choose/tv_check/tv_check: allow MYREPLAY devices to be included
	in specialy ReplayTV fuzzy logic checks fix misleading "wrong show
	in slot" when there is really "NO GUIDE DATA" (hole)

2003-01-20 03:46  rmeden

	* Makefile.PL: specify module path to PerlApp so local libraries
	(not installed) are used when building xmltv.exe

2003-01-19 18:59  epaepa

	* MANIFEST, Makefile.PL, filter/tv_to_latex, lib/Summarize.pm:
	Factored out most of tv_to_latex's code into a new library
	XMLTV::Summarize.

2003-01-19 17:36  jveldhuis

	* grab/na/tv_grab_na: provider description or provider id changes
	are recoverable during a grab so long at least one matches for the
	given list of providers for the postal/zip code.
	
	during configure stage if the id changes (but the description
	matches exactly) it gets auto-updated.

2003-01-19 08:08  rmeden

	* Makefile.PL: when making windows_dist, don't run UNIX2DOS against
	a JPG file!

2003-01-18 23:43  jveldhuis

	* grab/na/tv_grab_na: added bug about provider_id matches and
	provider descriptions

2003-01-18 23:02  epaepa

	* grab/uk/: channel_ids, channel_pkgs/entertainment,
	channel_pkgs/factual, channel_pkgs/gratis, channel_pkgs/lifestyle,
	channel_pkgs/music, channel_pkgs/regional: Added some new channels
	which appeared on the site, both to channel_ids and to an
	appropriate package or two.  This includes reinstating einstein.tv.

2003-01-18 22:57  epaepa

	* grab/uk/channel_pkgs/not_england: Trying to be slightly less
	opinionated in my comments.

2003-01-18 22:31  epaepa

	* grab/uk/tv_grab_uk.in: Changes to cope with the site's listings
	going from 7 days to 4.  First, cope more gracefully when the
	expected number of days is not present: if every page for a given
	day is empty, assume that this day and subsequent ones are missing
	from the site.	This saves a few hits and some verbosity in warning
	messages.
	
	Second, I have reduced the number of days fetched by default to 4
	(the new maximum).

2003-01-18 18:58  epaepa

	* grab/uk/tv_grab_uk.in: Fixed the warning about 'no channel
	package or region includes X' - I had forgotten that %channel_pkgs
	now stores channel objects rather than XMLTV ids.

2003-01-18 18:52  epaepa

	* grab/uk/channel_pkgs/children: Removed two channels from this
	package after they disappeared from the site and from channel_ids.

2003-01-18 18:51  epaepa

	* grab/uk/channel_ids: Removed a couple of channels which have
	disappeared from the site.

2003-01-18 16:39  rmeden

	* lib/exe_wrap.pl: fix --share directory processing for those apps
	that need it.

2003-01-16 02:39  chunkygoodness

	* grab/nz/tv_grab_nz: Removed BUG entry from manpage relating to
	primetv - no longer relevant now that we are using the ontv url

2003-01-15 20:51  jveldhuis

	* grab/na/tv_grab_na: now sets default system=onscreen for
	episode-num nodes

2003-01-12 11:13  epaepa

	* mkdist: Rewrote the instructions for uploading a new release to
	Sourceforge, adding an explanation of what the release notes and
	changelog should be.

2003-01-11 18:39  epaepa

	* grab/uk/: channel_ids, channel_pkgs/adult, channel_pkgs/children,
	channel_pkgs/classics, channel_pkgs/comedy,
	channel_pkgs/entertainment, channel_pkgs/factual,
	channel_pkgs/film, channel_pkgs/gratis, channel_pkgs/misc,
	channel_pkgs/sport: Guided by the new warnings in tv_grab_uk, I
	have removed a lot of defunct channels or defunct duplicates from
	the channel_ids and packages.

2003-01-11 17:14  epaepa

	* grab/uk/tv_grab_uk.in: When prompting for channels to install,
	show the user the display name not the XMLTV id.  Better warning if
	a channel object doesn't have a main display name (shouldn't
	happen, but it might).
	
	init_channels(): set the type of the newly-created channel to
	'tentative'.  Then if the type is not updated later, we know that
	this channel appears only in the config file and warn about its
	removal.
	
	get_channel_pkgs(): the hash mapping package name to channels now
	gives a list of channel objects rather than just the XMLTV ids.  We
	also take the opportunity to check that the XMLTV id in the package
	file is known (this means that any channel mentioned in a package
	must also be listed in the channel_ids file so it is known about
	this early, but that shouldn't be a problem).
	
	read_channels_page(): once we've read the channesl from the site we
	know that any channel objects we haven't updated are 'phantom'
	channels mentioned in the config file but not found on the site. 
	This function now removes them from the global @ch_all list and
	from the channel packages set earlier (and complains about it).

2003-01-11 01:17  epaepa

	* Makefile.PL: Corrected LC_ALL detection bug noticed by Robert
	Boardman; made the message printed more sentenceful.  (sententious?
	 sentent?)

2003-01-08 06:02  rmeden

	* Makefile.PL: fix some bugs in the make windows_dist function

2003-01-07 23:22  jveldhuis

	* mkdist: updated some of the ftp related hints at the end

2003-01-07 17:17  jveldhuis

	* README, doc/README.win32: added blub about some recent changes to
	the _na grabber

2003-01-07 16:42  jveldhuis

	* grab/na/ZapListings.pm: update form variables required by zap2it

2003-01-06 22:17  chunkygoodness

	* grab/nz/tv_grab_nz: Fixed bug in regular expression that wouldn't
	match programs with hyper links in their names

2003-01-06 07:32  chunkygoodness

	* grab/nz/tv_grab_nz: Changed parser to use ontv.nzoom.com for all
	channels - this means that there are descriptions for all channels
	now, and makes maintenance easier (only one website to track for
	changes)

2003-01-03 07:30  rmeden

	* choose/tv_check/tv_check: Minor tweak to code that reuses
	previous show file options during MyReplayTV processing.

2003-01-02 21:46  epaepa

	* Makefile.PL, lib/XMLTV.pm.in: Version 0.5.6.

2003-01-01 22:27  epaepa

	* doc/README.win32: Updated for 0.5.6.	We don't currently know how
	to fix the % shell metacharacter problem.

2003-01-01 22:03  epaepa

	* README: Updated for 0.5.6.

2003-01-01 21:15  epaepa

	* grab/na/tv_grab_na: Made the configuration file parsing work if
	there is no version line.  This is partly to make it work with a
	conf file the user sent me, and partly because the version line
	does look like a comment.

2003-01-01 19:27  epaepa

	* MANIFEST: Removed file README.tv_check.

2003-01-01 19:10  epaepa

	* MANIFEST, Makefile.PL, README, doc/QuickStart,
	grab/fi/tv_grab_fi: Adding Matti Arias's tv_grab_fi for Finnish
	listings.  Hopefully this commit should include all changes needed
	to add it to the distribution.
	
	Also mentioned tv_grab_uk_rt (the ugly sister of tv_grab_uk) in the
	QuickStart guide, for completeness.

2003-01-01 18:59  epaepa

	* doc/QuickStart: Rephrased the introduction to grabbers, and added
	mention of tv_split.

2003-01-01 18:51  epaepa

	* README.tv_check: Removing this copy of README.tv_check because it
	is an exact duplicate (or was until recent changes) of the copy in
	choose/tv_check/.

2003-01-01 18:49  epaepa

	* grab/uk/channel_pkgs/gratis: Bloomberg TV is no longer gratis.

2003-01-01 18:46  epaepa

	* choose/tv_check/README.tv_check: Make it slightly more explicit
	that you can run any grabber and not just tv_grab_na... it was
	probably clear enough already, but what the heck.

2002-12-29 16:55  rmeden

	* choose/tv_check/tv_check: work around a bug where Date::Manip
	doesn't deal with appended TZ correctly.  The problem has been
	fixed, but there isn't a real benefit to having the TZ in the
	times, so dropping them instead adding a later Date::Manip
	dependency.

2002-12-26 20:05  epaepa

	* doc/README.win32: Oops, I accidentally committed bogus
	instructions for Windows users.  We're still waiting for a solution
	to the % problem.

2002-12-26 19:54  epaepa

	* MANIFEST, Makefile.PL, filter/tv_split: Added an implementation
	of tv_split.  This one does not require the input to be sorted.  It
	tries to be clever and keep one open XMLTV::Writer for each output
	file, so programmes can be written out as they are read in, but I
	had to add workaround code for the case when the process runs out
	of open filehandles.  I haven't added tv_split to the test suite
	but it seems to work.

2002-12-26 19:52  epaepa

	* lib/XMLTV.pm.in: Added a warning for a common mistake in using
	XMLTV::Writer - passing a filename where a filehandle is expected. 
	At least, it's a mistake that I make often.

2002-12-26 14:49  epaepa

	* lib/XMLTV.pm.in: Added some runtime checks to make sure the
	various XMLTV::Writer methods are called in the right order.

2002-12-25 21:51  epaepa

	* choose/tv_check/tv_check, choose/tv_check/tv_check_doc.html,
	doc/README.win32, grab/na/ZapListings.pm, grab/sn/tv_grab_sn,
	grab/uk/tv_grab_uk.in, lib/XMLTV.pm.in: After I found that perl was
	complaining when run in a UTF-8 locale, I decided to purge all
	non-ASCII characters from the source code.  The characters were
	mostly in the code in order to purge bad characters from the web
	pages fetched :-P.  Now we just use \xAB style hex escapes.
	
	Also tidied up the tv_check documentation, it previously had some
	Microsoftisms including the notorious 'smart quotes' and lumps of
	non-breaking spaces used for layout.

2002-12-25 17:39  epaepa

	* grab/na/ZapListings.pm: Use URI::new_abs() to make icon URLs
	absolute, even if the site decides to serve relative URLs in the
	HTML.

2002-12-23 20:23  epaepa

	* analyse_tvprefs/analyse_tvprefs, choose/tv_pick/tv_pick_cgi,
	grab/uk/tv_grab_uk.in, grab/uk_rt/tv_grab_uk_rt.in: Fixed several
	places with configuration-file-parsing code.  You need to strip
	comments _before_ stripping trailing spaces, otherwise a space
	before a comment is left.  Hmm, perhaps this should be factored
	out.

2002-12-23 20:18  epaepa

	* grab/uk/channel_pkgs/gratis: Updated the 'gratis' channel package
	with those which are currently available on Sky Digital.

2002-12-23 19:57  epaepa

	* grab/uk/channel_ids: Added some comments.

2002-12-23 19:14  epaepa

	* grab/uk/tv_grab_uk.in: Small code simplification.

2002-12-21 02:47  chunkygoodness

	* grab/nz/tv_grab_nz: Fixed tv1 regular expression - the source had
	changed

2002-12-18 18:05  epaepa

	* grab/uk/tv_grab_uk.in: Small code tidy to remove redundant
	@all_chs variable.

2002-12-18 17:50  epaepa

	* grab/uk/tv_grab_uk.in: Reintroduced the distinction between
	national and local radio.  Now you can choose at configuration to
	download all 25 (currently) national radio stations.

2002-12-18 16:47  epaepa

	* MANIFEST, Makefile.PL, grab/uk/Ananova_Channel.pm,
	grab/uk/README, grab/uk/channel_ids, grab/uk/tv_grab_uk.in,
	grab/uk_rt/tv_grab_uk_rt.in: Finally got rid of the Ananova_Channel
	library for tv_grab_uk.  It seemed like a good idea at the time,
	providing an OO abstraction around the list of channels and
	enforcing various properties, but it just became too complex and
	unwieldy.
	
	Actually, so far all I've done is move code out of
	Ananova_Channel.pm and put it directly into tv_grab_uk.in.  But
	next I can start cleaning up.

2002-12-18 16:39  epaepa

	* t/data/: tv_grep_previously_shown_all_UTF8.expected,
	tv_grep_previously_shown_amp_xml.expected,
	tv_grep_previously_shown_amp_xml_amp_xml.expected,
	tv_grep_previously_shown_amp_xml_clump_xml.expected,
	tv_grep_previously_shown_amp_xml_dups_xml.expected,
	tv_grep_previously_shown_amp_xml_empty_xml.expected,
	tv_grep_previously_shown_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	tv_grep_previously_shown_attrs_xml.expected,
	tv_grep_previously_shown_clump_extract_1_xml.expected,
	tv_grep_previously_shown_clump_extract_xml.expected,
	tv_grep_previously_shown_clump_xml.expected,
	tv_grep_previously_shown_clump_xml_amp_xml.expected,
	tv_grep_previously_shown_clump_xml_clump_xml.expected,
	tv_grep_previously_shown_clump_xml_dups_xml.expected,
	tv_grep_previously_shown_clump_xml_empty_xml.expected,
	tv_grep_previously_shown_dups_xml.expected,
	tv_grep_previously_shown_dups_xml_amp_xml.expected,
	tv_grep_previously_shown_dups_xml_clump_xml.expected,
	tv_grep_previously_shown_dups_xml_dups_xml.expected,
	tv_grep_previously_shown_dups_xml_empty_xml.expected,
	tv_grep_previously_shown_empty_xml.expected,
	tv_grep_previously_shown_empty_xml_amp_xml.expected,
	tv_grep_previously_shown_empty_xml_clump_xml.expected,
	tv_grep_previously_shown_empty_xml_dups_xml.expected,
	tv_grep_previously_shown_empty_xml_empty_xml.expected,
	tv_grep_previously_shown_length_xml.expected,
	tv_grep_previously_shown_overlap_xml.expected,
	tv_grep_previously_shown_simple_xml.expected,
	tv_grep_previously_shown_simple_xml_x_whatever_xml.expected,
	tv_grep_previously_shown_sort_xml.expected,
	tv_grep_previously_shown_test_empty_xml.expected,
	tv_grep_previously_shown_test_livre_xml.expected,
	tv_grep_previously_shown_test_xml.expected,
	tv_grep_previously_shown_test_xml_test_xml.expected,
	tv_grep_previously_shown_whitespace_xml.expected,
	tv_grep_previously_shown_x_whatever_xml.expected: Added
	<previously-shown /> to some test data so I can test the new
	features in tv_grep.  I thought these changes were committed
	earlier.  Oh well.

2002-12-17 21:15  epaepa

	* grab/uk/: Ananova_Channel.pm, tv_grab_uk.in: Code reorganization;
	gradually removing calls to the Ananova_Channel methods.

2002-12-17 16:41  epaepa

	* grab/uk/tv_grab_uk.in: Whoops - committed broken development code
	by mistake, undoing.

2002-12-17 15:32  epaepa

	* MANIFEST, filter/tv_grep.PL, filter/tv_grep.in,
	grab/uk/tv_grab_uk.in, t/test_filters.t: New feature for tv_grep:
	there are some elements which cannot be fully queried, but now at
	least you can query whether they are present or not.  For example,
	
	% tv_grep --previously-shown ''
	
	will find programmes that are repeats.

2002-12-17 15:16  epaepa

	* t/data/: simple.xml, tv_cat_all_UTF8.expected,
	tv_cat_simple_xml.expected,
	tv_cat_simple_xml_x_whatever_xml.expected,
	tv_cat_x_whatever_xml.expected,
	tv_extractinfo_en_all_UTF8.expected,
	tv_extractinfo_en_simple_xml.expected,
	tv_extractinfo_en_simple_xml_x_whatever_xml.expected,
	tv_extractinfo_en_x_whatever_xml.expected,
	tv_grep_a_all_UTF8.expected, tv_grep_a_simple_xml.expected,
	tv_grep_a_simple_xml_x_whatever_xml.expected,
	tv_grep_a_x_whatever_xml.expected,
	tv_grep_category_g_or_title_h_all_UTF8.expected,
	tv_grep_category_g_or_title_h_simple_xml.expected,
	tv_grep_category_g_or_title_h_simple_xml_x_whatever_xml.expected,
	tv_grep_category_g_or_title_h_x_whatever_xml.expected,
	tv_grep_channel_id_channel4_com_all_UTF8.expected,
	tv_grep_channel_id_channel4_com_simple_xml.expected,
	tv_grep_channel_id_channel4_com_simple_xml_x_whatever_xml.expected,
	tv_grep_channel_id_channel4_com_x_whatever_xml.expected,
	tv_grep_eval_scalar_keys_5_all_UTF8.expected,
	tv_grep_eval_scalar_keys_5_simple_xml.expected,
	tv_grep_eval_scalar_keys_5_simple_xml_x_whatever_xml.expected,
	tv_grep_eval_scalar_keys_5_x_whatever_xml.expected,
	tv_grep_i_category_i_title_h_all_UTF8.expected,
	tv_grep_i_category_i_title_h_simple_xml.expected,
	tv_grep_i_category_i_title_h_simple_xml_x_whatever_xml.expected,
	tv_grep_i_category_i_title_h_x_whatever_xml.expected,
	tv_sort_all_UTF8.expected, tv_sort_by_channel_all_UTF8.expected,
	tv_sort_by_channel_simple_xml.expected,
	tv_sort_by_channel_simple_xml_x_whatever_xml.expected,
	tv_sort_by_channel_x_whatever_xml.expected,
	tv_sort_simple_xml.expected,
	tv_sort_simple_xml_x_whatever_xml.expected,
	tv_sort_x_whatever_xml.expected, x-whatever.xml: Added
	<previously-shown /> to some of the sample data so I can later test
	grepping it.

2002-12-17 13:01  epaepa

	* grab/uk/: channel_ids, tv_grab_uk.in: Added a couple of short
	channel names, Removed a lone $Log::TraceMessages::On which was
	causing a warning.  Changed a progress bar message to the more
	accurate 'writing'.

2002-12-17 12:41  epaepa

	* lib/exe_wrap.pl: Untested change to pass a --share argument to
	the grabbers which need it.

2002-12-17 00:04  epaepa

	* grab/uk/tv_grab_uk.in: The old way of doing 'miscellaneous fixes'
	was horribly unscalable.  I'm committing a change which fiddles
	with and writes programmes more linearly; I hope it works since
	it's not yet tested.

2002-12-16 22:50  epaepa

	* grab/uk/tv_grab_uk.in: Handle EOF at 'enter a channel name' more
	cleanly (I have yet to add code to handle undef returned from
	XMLTV::Ask routines).  Fixed channel name comparison - now it
	should be a substring rather than regexp match, which means the
	user can't crash the program by typing in a bad regexp.

2002-12-16 22:47  epaepa

	* grab/uk/channel_ids: Added a couple of extra display names
	corresponding to what the Sky programme guide shows.

2002-12-16 22:46  epaepa

	* lib/Ask.pm: Made more robust against input-reading failures (such
	as EOF).  Now it is documented that if the input could not be read,
	undef is returned.

2002-12-14 15:42  epaepa

	* grab/uk/tv_grab_uk.in: Change @XMLTV::Channel_Handlers when
	parsing the regions page as well as when parsing the channels page.
	 This is because each <region> contains <channel> elements and they
	have Ananova's special <distribution> element.	I had forgotten to
	do this before but didn't notice because there was no warning.

2002-12-14 15:39  epaepa

	* lib/XMLTV.pm.in: Added some more trace statements.

2002-12-14 11:13  epaepa

	* grab/nz/tv_grab_nz: Changed some string functions to make them
	work with Python 1.5.2.

2002-12-13 23:11  epaepa

	* Makefile.PL: Cahnged the Python version checking to primt
	sys.hexversion because the Python 1.5.2 interpreter doesn't
	understand -V.

2002-12-13 23:06  epaepa

	* Makefile.PL: Formatting change for perl 5.005.

2002-12-13 14:32  epaepa

	* README, doc/README.win32: Staffan Malmgren's channel-selection
	patch to tv_grab_sn has made it into the 0.5.5 release.

2002-12-13 14:26  epaepa

	* grab/nz/tv_grab_nz: Changed configuration behaviour to be more
	like the other grabbers (just more chatter, really).

2002-12-13 01:52  chunkygoodness

	* grab/nz/tv_grab_nz: Modifed the manpage slightly, as well as
	added the initial support for the --configure option to select
	which channels are to be downloaded.

2002-12-13 01:05  epaepa

	* grab/sn/tv_grab_sn: Staffan Malmgren's patch (with a few changes)
	to add channel selection to --configure (and fix grabbing the list
	of channels in the first place).

2002-12-13 00:56  epaepa

	* filter/tv_extractinfo_en, grab/uk/tv_grab_uk.in, lib/Ask.pm,
	lib/XMLTV.pm.in: Global style fix for uncuddled elses as mandated
	by 'perlstyle'.  A pity that Emacs keeps putting them back again.

2002-12-13 00:10  epaepa

	* grab/uk/tv_grab_uk.in: Fixed splicing bug noticed by Neil
	Trodden.

2002-12-12 16:49  epaepa

	* lib/exe_wrap.pl: Friendlier error message for tv_grab_nz.

2002-12-12 16:47  epaepa

	* lib/exe_wrap.pl: Generalized this a bit so that each command name
	has a lump of Perl code associated with it, so we can do exciting
	things like print a warning message for tv_grab_nz :-).

2002-12-12 12:19  epaepa

	* Makefile.PL, README, doc/QuickStart, doc/README.win32,
	lib/XMLTV.pm.in: Updated for the forthcoming 0.5.5 release.  But I
	don't know what to do about tv_grab_nz on Windows.

2002-12-12 11:40  epaepa

	* grab/nz/tv_grab_nz: Tidied the usage message.  Added pod
	documentation (perhaps a bit odd in a Python program, but it's the
	easiest way to get a manual page).

2002-12-11 22:56  epaepa

	* README: Added Python to the list of dependencies, at least for
	tv_grab_nz.

2002-12-11 22:20  epaepa

	* MANIFEST: Added tv_grab_nz to the file list.

2002-12-11 22:18  epaepa

	* Makefile.PL: Now as well as testing module prerequisites with the
	'prereqs' key, you can specify arbitrary bits of code to be run
	under 'special_prereqs', with version number comparison as for
	modules.
	
	I've used this to add tv_grab_nz with a dependency on Python 1.5.2
	or later.

2002-12-11 17:27  epaepa

	* grab/nz/tv_grab_nz: Adding Andre Renaud's New Zealand grabber. 
	Now to arrange the necessary installation gubbins.

2002-12-11 05:26  jveldhuis

	* grab/na/ZapListings.pm: escape @ in messages - thanks Walter D.

2002-12-11 00:04  epaepa

	* grab/uk/tv_grab_uk.in: I had code to add a handler 'distribution'
	to channel elements, but forgot that this would apply on output as
	well as input.	After XMLTV.pm.in got fixed I started getting
	missing key warnings.  So now this extra handler is added only
	while parsing.
	
	Some mysterious undefined values that seem to come out of nowhere
	have been worked around.  Hopefully they will not occur unless the
	data from the site is faulty.

2002-12-10 23:58  epaepa

	* grab/uk/Ananova_Channel.pm: Slightly cleaner undefined value
	warning.

2002-12-10 23:55  epaepa

	* lib/XMLTV.pm.in: Some runtime type errors during writing XML that
	would previously have aborted the program are now just warnings,
	with the particular element affected being skipped.
	
	A new private routine check_multiplicity() makes sure that a hash
	has the mandatory elements required by a set of handlers.  The new
	private routine write_element_with_handlers() calls
	check_multiplicity() before opening the element, so there is less
	chance of writing invalid XML from bad Perl data structures.

2002-12-10 23:14  epaepa

	* Makefile.PL: The location of manual pages varies from one system
	to another.  But I think to keep things simple, for XMLTV they can
	always be in PREFIX/share/man/ which is the FHS-approved place.

2002-12-08 10:58  epaepa

	* Makefile.PL: Corrected the message given when UTF-8 problems are
	detected: updating Date::Manip won't fix it, but changing your
	locale will.  Thanks to Derek J. Kalweit for bringing this to my
	attention.

2002-12-05 21:50  jveldhuis

	* grab/na/ZapListings.pm: spill out status message when we find
	star ratings > 4 star - did zap2it change things ?

2002-12-05 21:42  jveldhuis

	* grab/na/ZapListings.pm: properly identify star-ratings given by
	***+ instead of ***1/2 for 3.5 star ratings

2002-12-01 17:14  epaepa

	* Makefile.PL, README, doc/README.win32, lib/XMLTV.pm.in: Version
	0.5.4.

2002-12-01 16:58  epaepa

	* analyse_tvprefs/analyse_tvprefs: Updated link to top 3000 words
	in the BNC; now it points to my mirror of that page.

2002-12-01 16:22  epaepa

	* grab/uk/: channel_ids, channel_pkgs/adult, channel_pkgs/arts,
	channel_pkgs/children, channel_pkgs/classics, channel_pkgs/comedy,
	channel_pkgs/entertainment, channel_pkgs/factual,
	channel_pkgs/film, channel_pkgs/lifestyle, channel_pkgs/music,
	channel_pkgs/news, channel_pkgs/scifi, channel_pkgs/sport,
	channel_pkgs/travel: Added channel ids for some new channels and
	added them to the appropriate packages.

2002-12-01 16:21  epaepa

	* grab/uk/Ananova_Channel.pm: Fixing an undefined value warning.

2002-12-01 10:12  epaepa

	* mkdist: Now there are two readme files the mkdist reminder needs
	to mention them both.

2002-12-01 10:04  epaepa

	* grab/sn/tv_grab_sn: Instead of looking for a table in a
	particular position, we examine all tables on the page and find the
	one that looks most like it contains listings.	This has fixed the
	failure with Norwegian listings.

2002-11-30 22:33  epaepa

	* grab/sn/tv_grab_sn: Working out how to fix the grabber for a new
	site layout.  Added some trace code with Log::TraceMessages and one
	more error check.

2002-11-28 18:37  jveldhuis

	* grab/na/: ZapListings.pm, tv_grab_na: new rework to support new
	zap2it cookies etc Special thanks to Stephen Bain for helping me
	play catch-up with zap2it site changes.

2002-11-24 05:10  rmeden

	* doc/README.win32: Mention the fact that TZ can be determined
	automatically.

2002-11-24 00:04  epaepa

	* Makefile.PL: Version 0.5.3.

2002-11-23 23:48  epaepa

	* lib/XMLTV.pm.in: Bumping version to 0.5.3.  It seems that the
	version of the XMLTV module follows that of the xmltv project.

2002-11-23 23:47  epaepa

	* doc/README.win32: Updated the Win32 instructions.  It's nice not
	to have to mention arcane details of Perl module versions.  The
	list of contributors could be done better, I haven't worked out the
	best way of giving credit in the docs.

2002-11-23 23:29  epaepa

	* README: Updated for version 0.5.3; I've tried to summarize the
	changes but focusing mostly on the emergency tv_grab_na fix.  Also
	I've attempted to explain the Date::Manip problems on Red Hat 8...
	still waiting for a response from the module's developer on this.

2002-11-23 20:53  epaepa

	* grab/de/tv_grab_de: Better error message when the site appears to
	be out of date.  This is the signal for me to bring up the page in
	my web browser and hit 'reload' to kick my proxy server into
	getting a newer version of the page :-P.

2002-11-23 20:44  epaepa

	* grab/de/tv_grab_de: Added a warning message if --configure is
	given (this grabber needs and supports no configuration stage).

2002-11-22 16:09  jveldhuis

	* grab/na/ZapListings.pm: now uses tvlistings.zap2it.com as its
	base instead of tvlistings2 ??

2002-11-19 19:45  epaepa

	* grab/sn/tv_grab_sn: Changed brief description of tv_grab_sn to
	mention both Sweden _and_ Norway :-).

2002-11-19 16:13  jveldhuis

	* grab/na/tv_grab_na: fixed errrorMessage to be errorMessage

2002-11-19 08:07  epaepa

	* Makefile.PL: HTML::TableExtract 1.08 or later required (found by
	Kenneth Pronovici).

2002-11-18 22:53  epaepa

	* filter/tv_extractinfo_en: multipart_split_desc(): be more
	discriminating before deciding it's the Radio Times style.  Look
	for the word 'at' as well as 'with'.

2002-11-18 19:52  epaepa

	* grab/: de/tv_grab_de, sn/tv_grab_sn, uk/tv_grab_uk.in,
	uk_rt/tv_grab_uk_rt.in: Adding a --quiet flag to four grabbers;
	this is in response to Debian bug 169157 and discussions with
	Kenneth Pronovici.

2002-11-18 01:41  jveldhuis

	* grab/na/tv_grab_na: added option for splitting --listings output
	by channel number and channel callletters. See pod or --help for
	details.

2002-11-18 01:40  jveldhuis

	* grab/na/: ZapListings.pm, tv_grab_na: added new --quiet and
	--stats command line options as per requests to control amount of
	stderr output.

2002-11-17 17:52  jveldhuis

	* grab/na/tv_grab_na: fixed mkpathtofile so it creates all missing
	directories

2002-11-16 22:39  epaepa

	* grab/: uk/tv_grab_uk.in, uk_rt/tv_grab_uk_rt.in: Patch from
	Walter Duncan to add --offset.

2002-11-16 22:33  epaepa

	* grab/sn/tv_grab_sn: Patch from Walter Duncan to improve
	documentation of --offset.

2002-11-16 11:11  epaepa

	* grab/de/tv_grab_de: Added --offset option, improved warning
	messages when downloads fail.

2002-11-15 17:24  rmeden

	* choose/tv_check/tv_check: fix MyReplayTV case where day changes
	and old day is reused

2002-11-12 14:56  rmeden

	* lib/exe_wrap.pl: I thought a script could end with RETURN.
	Someone had a problem

2002-11-11 21:19  epaepa

	* Makefile.PL: Jerry V. pointed out that string comparison might
	work better than numeric comparison for version numbers.

2002-11-11 17:27  jveldhuis

	* grab/na/tv_grab_na: fixed documentation w.r.t --output and added
	some warnings about failing to unlink temperary files

2002-11-11 17:26  jveldhuis

	* grab/na/ZapListings.pm: warn if we can't write to cache

2002-11-09 21:34  epaepa

	* grab/sn/tv_grab_sn: One more illegal character entity to deal
	with.

2002-11-07 13:20  epaepa

	* filter/tv_extractinfo_en: There was an infinite loop where a
	programme looked a bit like a multipart, but was 'split' into only
	one programme, which in turn looked like a multipart...  Now if a
	programme is split into just one result, special_multipart()
	decides to leave it alone.

2002-11-07 10:30  epaepa

	* filter/tv_cat, lib/XMLTV.pm.in: Fixed the tv_cat bug reported by
	Jerry Veldhuis where it duplicates <channel> elements.	The mistake
	lay in treating parsefiles_callback() as if it could simply be used
	instead of parsefile_callback(), when in fact a little more
	checking is needed when getting channels from multiple files.
	
	Added a warning to the XMLTV.pm documentation about this.  I might
	change the way this works later, so that duplicate channels are
	weeded out in XMLTV.pm and the data returned to the user is always
	clean: not sure what is best here.

2002-11-07 10:25  epaepa

	* MANIFEST: Oops, I added a few generated test outputs to the file
	list by mistake.

2002-11-07 10:12  epaepa

	* MANIFEST, t/test_filters.t,
	t/data/tv_cat_test_xml_test_xml.expected,
	t/data/tv_extractinfo_en_test_xml_test_xml.expected,
	t/data/tv_grep_a_test_xml_test_xml.expected,
	t/data/tv_grep_category_b_test_xml_test_xml.expected,
	t/data/tv_grep_category_e_and_title_f_test_xml_test_xml.expected,
	t/data/tv_grep_category_g_or_title_h_test_xml_test_xml.expected,
	t/data/tv_grep_channel_id_channel4_com_test_xml_test_xml.expected,
	t/data/tv_grep_channel_name_d_test_xml_test_xml.expected,
	t/data/tv_grep_channel_xyz_or_channel_b_test_xml_test_xml.expected,
	t/data/tv_grep_eval_scalar_keys_5_test_xml_test_xml.expected,
	t/data/tv_grep_i_category_i_title_h_test_xml_test_xml.expected,
	t/data/tv_grep_i_category_i_title_j_test_xml_test_xml.expected,
	t/data/tv_grep_i_last_chance_c_test_xml_test_xml.expected,
	t/data/tv_grep_new_test_xml_test_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_test_xml_test_xml.expected,
	t/data/tv_grep_premiere_test_xml_test_xml.expected,
	t/data/tv_sort_by_channel_test_xml_test_xml.expected,
	t/data/tv_sort_test_xml_test_xml.expected,
	t/data/tv_to_latex_test_xml_test_xml.expected: Added a new set of
	filter test cases: using the file test.xml twice.  This is to catch
	a bug in tv_cat where <channel> elements are duplicated.  The
	expected outputs being committed show the correct behaviour.

2002-11-07 10:09  epaepa

	* grab/uk/tv_grab_uk.in: More informative (if more frightening)
	error message when the site's pages don't look like XMLTV files.

2002-11-06 19:18  epaepa

	* MANIFEST, grab/uk/channel_ids, grab/uk/channel_pkgs/arts,
	grab/uk/channel_pkgs/classics, grab/uk/channel_pkgs/comedy,
	grab/uk/channel_pkgs/entertainment, grab/uk/channel_pkgs/factual,
	grab/uk/channel_pkgs/ireland, grab/uk/channel_pkgs/misc,
	grab/uk/channel_pkgs/music, grab/uk/channel_pkgs/national,
	grab/uk/channel_pkgs/not_england, grab/uk/channel_pkgs/regional,
	grab/uk/channel_pkgs/scotland, grab/uk/channel_pkgs/shop,
	grab/uk/channel_pkgs/wales: Dealt with the new Ananova television
	channels, assigned them XMLTV ids and put each in one or more
	packages.

2002-11-06 19:16  epaepa

	* Makefile.PL: The Makefile depends on grab/uk/channel_pkgs/
	because every time a new package is added to that directory some
	new commands need to appear in the Makefile.

2002-11-05 05:41  rmeden

	* lib/exe_wrap.pl: Set the TZ variable if it is not already set.

2002-11-03 17:58  jveldhuis

	* grab/na/tv_grab_na: The following changes have been made to the
	cvs head revision of tv_grab_na and ZapListings.pm.
	
	 1. when --output is used, the file is always overwritten
	 2. renamed the newly added --overwrite to --listings-overwrite
	because it
	    only effects the symanitics of --listings use.
	 3. when no programs are found after getting a page of listings
	from zap2it,
	    the readSchedule() method returns -2 instead of -1 and so
	tv_grab_na
	    won't retry these pages. Instead tv_grab_na prints a message
	similar to:
	       unretry-able error reading schedule for 2002-11-05 for
	station 2 CFRN
	    and doesn't retry. (thanks Brian for the insight).

2002-11-03 17:52  jveldhuis

	* grab/na/ZapListings.pm: delayed messages about writting files to
	cache until after scraping the data so we don't report we're
	writting data to cache we actually unlink afterward because no
	programs were found.
	
	implemented -2 unretry-able errors so no programs aren't retried by
	tv_grab_na.

2002-11-02 16:43  jveldhuis

	* grab/na/tv_grab_na: In order to make tv_grab_na a bit more
	resistant to longer server failures at zap2it, it now:
	
	  - if used with --listings or --output won't re-grab already
	grabbed listings
	    (this only works if you use at least a day resolution on your
	filenames)
	
	  - this behaviour can be over-ridden by using the --overwrite=true
	on the command line.
	
	  - format of ending stats has changed a bit. They now include the
	number of channel
	    listings that failed and the number of listings files that
	weren't re-grabbed.
	    ie:
	
	     > checking provider information for postal/zip code 90210, be
	patient..
	     > double checking channel information, be patient..
	     > listings in tmp-grab/90210/2002-10-29-listings-02 exist,
	skipping
	     ...
	     > Grabbed 0 programs on 0 channels over 2 day(s) in 0 seconds
	     >	 not too bad, that's 0.00 programs/sec and 0.00 seconds/www
	page
	     >	 does not include 1 failed channel schedule
	     >	 does not include 2 output file(s) that already existed
	
	WARNING: the default behavour changes the symantics of using
	--listings or --output	    with a filename that doesn't change on
	a daily basis (ie include %d or equiv).       So if you use
	'tv_grab_na --listings out.xml' it will only retrieve fresh
	listings       if the out.xml file doesn't exist.
	
	Change does not effect writting listings to stdout.

2002-11-02 16:18  jveldhuis

	* grab/na/ZapListings.pm: added a newly used lanugage

2002-10-31 00:04  epaepa

	* grab/uk/: channel_ids, tv_grab_uk.in, channel_pkgs/adult,
	channel_pkgs/children, channel_pkgs/entertainment,
	channel_pkgs/film, channel_pkgs/gratis, channel_pkgs/lifestyle,
	channel_pkgs/not_england, channel_pkgs/shop, channel_pkgs/sport:
	When I originally wrote this version of the grabber I went through
	every TV channel listed on the site's 'show=channels' page and
	added an RFC2838 id for it and assigned it to one or more 'channel
	packages' if not a terrestrial channel.  But as the site changes
	new channels appear which are not in any channel package.  They're
	thus unable to be selected for grabbing.
	
	Now the code warns if any channels have appeared which belong to no
	region and aren't mentioned in any channel package.  It would be
	better if it could offer to modify your configuration with them
	(maybe have a special package 'UNKNOWN'), but this is a start.

2002-10-29 17:32  epaepa

	* Makefile.PL: Added a special check for Red Hat's uniquely broken
	Date::Manip installation.  I hope it works.

2002-10-27 12:55  epaepa

	* grab/uk_rt/tv_grab_uk_rt.in: Changed the date handling to use the
	UK_TZ.pm code that was originally written for the Ananova grabber. 
	Unless the programme details give an explicit timezone we just
	guess.
	
	This probably still has bugs but it is a lot better than it was
	before.  The local system's timezone will no longer affect the
	listings output (we set Date::Manip to UTC for everything).  A pity
	that I did this too late for last night's BST->UTC changeover :-(.

2002-10-27 09:29  epaepa

	* grab/uk_rt/tv_grab_uk_rt.in: Instead of ParseDate() use
	parse_uk_date() which guesses a timezone.  This was intended to fix
	the BST/GMT changeover bugs, it does not, but hopefully the code is
	no worse than before.
	
	Changed memoization to get_url() instead of get() because memoizing
	get() failed for some obscure reason.

2002-10-27 09:28  epaepa

	* MANIFEST, Makefile.PL, grab/uk/UK_TZ.pm, lib/UK_TZ.pm: Moved the
	library UK_TZ.pm out of the grab/uk/ directory and into lib/, since
	it will now be used by two grabbers.  (Still haven't decided the
	best way to organize the directory structure with libraries that
	are used by only one or two programs, but it's a small issue.)

2002-10-27 09:25  epaepa

	* Uninstall.pm: Made uninstall work correctly with perl 5.005, its
	File::Find seems a bit broken.

2002-10-25 19:26  epaepa

	* Makefile.PL: A nicer warning message when a module fails to load.

2002-10-25 19:18  epaepa

	* lib/XMLTV.pm.in: Pod documentation syntax fixes.

2002-10-25 19:14  epaepa

	* MANIFEST: Adding the Windows executable generator to the file
	list (there's no harm in distributing it as part of the source
	tarballs and if it's not in MANIFEST you get a warning).

2002-10-24 16:14  jveldhuis

	* grab/na/tv_grab_na: Now supports compressors based on listings
	file suffix.  added command line options to override gzip/zip and
	bzip2 compressor command lines.
	
	Ya I know I could have used perl packages out there someplace for
	doing the compression, but I wanted something quick.  The command
	line options support windoz platforms. And its not like compression
	of output listings files is required, so if it doesn't work, don't
	use it.
	
	now closes xml output upon failure, so you get valid output to
	stdout.

2002-10-24 15:51  jveldhuis

	* grab/na/ZapListings.pm: remove pages with no programs from cache

2002-10-23 18:02  rmeden

	* Makefile.PL: Replace leading spaces with tabs in generated
	Makefile for compatability

2002-10-22 04:25  rmeden

	* lib/exe_wrap.pl: Still working on that file id!

2002-10-22 04:24  rmeden

	* lib/exe_wrap.pl: Fix file ID number

2002-10-22 04:22  rmeden

	* lib/exe_wrap.pl: Initial commit of script used as wrapper for
	windows EXE

2002-10-22 04:12  rmeden

	* Makefile.PL: Added code to build windows executable

2002-10-20 21:06  epaepa

	* grab/uk/Ananova_Channel.pm: The code I wrote to assign the
	Tie::RefHash::Nestable namespace never worked, but I didn't realize
	because I had a newer version of Tie::RefHash in my PERL5LIB. 
	Thanks to Olaf Klischat for finding the bug and asking on
	clp.moderated, and to Benjamin Goldberg for posting the right
	answer.

2002-10-20 17:02  jveldhuis

	* grab/na/ZapListings.pm: will now retry pages returned with no
	programs

2002-10-20 10:21  epaepa

	* Makefile.PL: Require XML::Twig version 3.09.	This should finally
	fix the problems with XML::Twig not being detected by the
	Makefile.PL.  This version of XML::Twig has not yet been officially
	released to CPAN, you have to get it as a development version from
	the author's website.  But I'm told it will be released soon.

2002-10-18 21:49  epaepa

	* grab/sn/tv_grab_sn: Improved <span class="..."> HTML matching.

2002-10-18 20:49  epaepa

	* grab/sn/tv_grab_sn: Fixed brown-paper-bag bug with passing a
	filename where a filehandle was expected.

2002-10-16 17:51  epaepa

	* Makefile.PL: Scott Rose reported that LWP 5.63 had missing
	methods, but upgrading to 5.65 worked.	So we'll require that
	version.

2002-10-16 17:31  epaepa

	* Makefile.PL: The minimum required version of XML::Twig is now the
	latest, 3.08.  This fixes various weird problems that Red Hat 8 or
	Mandrake 9 users have been having, though probably not all of them.
	 Not all users will strictly need to upgrade but it's way simpler
	just to get everyone on the same version.

2002-10-15 19:45  epaepa

	* MANIFEST, Makefile.PL, mkdist, doc/README.win32: Added a couple
	of files to the distribution created by 'make windows_dist': the
	standard xmltv.dtd, and a new file README.win32 which replaces the
	standard README.

2002-10-14 19:43  epaepa

	* Makefile.PL: windows_dist: convert all the files to DOS line
	endings; move READMEs to the top-level directory.

2002-10-13 20:46  epaepa

	* Makefile.PL: The test I put in to check for manual page breakage
	didn't work because of shell wildcard expansion.

2002-10-11 19:14  epaepa

	* filter/tv_extractinfo_en: Turn 'X interviews...' into a
	'presenter' credit (though really it would be something more
	specific if the XMLTV format allowed it).

2002-10-11 19:01  epaepa

	* filter/tv_extractinfo_en: New multipart splitting method: look
	for 'including at TIME TITLE' in description.  This isn't perfect
	(the main programme continues afterwards, there is 'followed by
	weather' which isn't handled, and I'm still not happy about
	throwing away all the programme's other data when splitting on
	description) but a further step in the War On English.

2002-10-11 17:23  epaepa

	* filter/tv_extractinfo_en: A few more todo-list items.
	
	special_credits(): 'Written by' and just 'By' create a 'writer'
	credit.  Some of the extractor regexps have been tweaked to
	preserve sentence boundaries better.  A sentence 'X concludes the
	series' makes X a presenter and adds the new text 'Last in series'
	- which some day might be picked up by another handler.
	
	special_new_series(): recognize a wider range of 'New series'
	sentences.
	
	special_useless(): recognize and remove 'Coverage of' anywher at
	the start of a sentence.

2002-10-11 15:05  epaepa

	* filter/tv_extractinfo_en: The name regular expressions were made
	weaker to accommodate names like 'LL Cool J' (sigh).  But I added a
	negative lookbehind test to make sure that 'the' does not precede a
	name unless it is part of the name.  How many of these lookbehind
	and lookahead tests should be part of $NAME_RE, and how many part
	of the regexps which embed it, is still to be sorted out.
	
	special_category(): report more accurately whether the programme
	has been changed.
	
	special_credits(): work on all the descriptions in the right
	language, not just the first.  Improved some of the extractor
	regexps, and more extractors now examine categories, or the
	presence of an existing person with the same job, to see whether
	they should run.  Did away with the silly (non?)optimization of
	'caches' stored in the programme details listing people in a given
	job.  It is not possible for a person to both be a guest and do
	some other job.

2002-10-11 14:36  epaepa

	* t/data/tv_extractinfo_en_clump_extract_1_xml.expected: I think
	this test file didn't get committed earlier for some reason.

2002-10-10 19:45  epaepa

	* grab/sn/tv_grab_sn: Oops, a really stupid bug that got into
	0.5.2: forgot to check the $have_bar variable before calling
	Term::ProgressBar methods.

2002-10-10 19:05  epaepa

	* filter/tv_extractinfo_en: The assignmnent of new categories is a
	bit subtler: it looks at all the programme's titles and
	descriptions which are in English, and knows that mention of 'news'
	in a soap opera doesn't make it a news show.
	
	'With' in game show means presenter, not actor (just as already for
	news, business, etc).

2002-10-10 18:16  epaepa

	* filter/tv_extractinfo_en: Removed some references to 'en'
	scattered around the code, now there is a routine pair_ok() to tell
	you whether a [ text, lang ] pair is eligible for processing, and
	if you must use the language directly then use the variable $LANG.

2002-10-10 17:58  epaepa

	* filter/tv_extractinfo_en: Parse a sentence like 'Roy Hattersley
	guests'.

2002-10-10 16:38  epaepa

	* grab/sn/tv_grab_sn: Added a couple of features which the other
	dagenstv grabber had: real <channel> elements and fixing a few more
	HTML entities.
	
	Added a progress bar, where available.

2002-10-10 16:33  epaepa

	* mkdist: Updated the instructions to reflect the new naming
	convention for file releases.	(Just '0.5.2' not 'xmltv-0.5.2'
	which is kinda redundant.)

2002-10-10 14:46  epaepa

	* README: Removed references to slowness of test suite - it's not
	so bad now.

2002-10-10 14:28  epaepa

	* README: Improved summary of changes since last release: it's
	harder to remember what other people have committed :-(.

2002-10-10 13:45  epaepa

	* lib/XMLTV.pm.in, t/data/amp.xml, t/data/tv_cat_all_UTF8.expected,
	t/data/tv_cat_amp_xml.expected,
	t/data/tv_cat_amp_xml_amp_xml.expected,
	t/data/tv_cat_amp_xml_clump_xml.expected,
	t/data/tv_cat_amp_xml_dups_xml.expected,
	t/data/tv_cat_amp_xml_empty_xml.expected,
	t/data/tv_cat_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	t/data/tv_cat_clump_xml_amp_xml.expected,
	t/data/tv_cat_dups_xml_amp_xml.expected,
	t/data/tv_cat_empty_xml_amp_xml.expected,
	t/data/tv_extractinfo_en_all_UTF8.expected,
	t/data/tv_extractinfo_en_amp_xml.expected,
	t/data/tv_extractinfo_en_amp_xml_amp_xml.expected,
	t/data/tv_extractinfo_en_amp_xml_clump_xml.expected,
	t/data/tv_extractinfo_en_amp_xml_dups_xml.expected,
	t/data/tv_extractinfo_en_amp_xml_empty_xml.expected,
	t/data/tv_extractinfo_en_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	t/data/tv_extractinfo_en_clump_xml_amp_xml.expected,
	t/data/tv_extractinfo_en_dups_xml_amp_xml.expected,
	t/data/tv_extractinfo_en_empty_xml_amp_xml.expected,
	t/data/tv_grep_a_all_UTF8.expected,
	t/data/tv_grep_a_amp_xml.expected,
	t/data/tv_grep_a_amp_xml_amp_xml.expected,
	t/data/tv_grep_a_amp_xml_clump_xml.expected,
	t/data/tv_grep_a_amp_xml_dups_xml.expected,
	t/data/tv_grep_a_amp_xml_empty_xml.expected,
	t/data/tv_grep_a_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	t/data/tv_grep_a_clump_xml_amp_xml.expected,
	t/data/tv_grep_a_dups_xml_amp_xml.expected,
	t/data/tv_grep_a_empty_xml_amp_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_all_UTF8.expected,
	t/data/tv_grep_on_after_2002_02_05_amp_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_amp_xml_amp_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_amp_xml_clump_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_amp_xml_dups_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_amp_xml_empty_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_clump_xml_amp_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_dups_xml_amp_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_empty_xml_amp_xml.expected,
	t/data/tv_sort_all_UTF8.expected, t/data/tv_sort_amp_xml.expected,
	t/data/tv_sort_amp_xml_amp_xml.expected,
	t/data/tv_sort_amp_xml_clump_xml.expected,
	t/data/tv_sort_amp_xml_dups_xml.expected,
	t/data/tv_sort_amp_xml_empty_xml.expected,
	t/data/tv_sort_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	t/data/tv_sort_by_channel_all_UTF8.expected,
	t/data/tv_sort_by_channel_amp_xml.expected,
	t/data/tv_sort_by_channel_amp_xml_amp_xml.expected,
	t/data/tv_sort_by_channel_amp_xml_clump_xml.expected,
	t/data/tv_sort_by_channel_amp_xml_dups_xml.expected,
	t/data/tv_sort_by_channel_amp_xml_empty_xml.expected,
	t/data/tv_sort_by_channel_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	t/data/tv_sort_by_channel_clump_xml_amp_xml.expected,
	t/data/tv_sort_by_channel_dups_xml_amp_xml.expected,
	t/data/tv_sort_by_channel_empty_xml_amp_xml.expected,
	t/data/tv_sort_clump_xml_amp_xml.expected,
	t/data/tv_sort_dups_xml_amp_xml.expected,
	t/data/tv_sort_empty_xml_amp_xml.expected,
	t/data/tv_to_latex_all_UTF8.expected,
	t/data/tv_to_latex_amp_xml.expected,
	t/data/tv_to_latex_amp_xml_amp_xml.expected,
	t/data/tv_to_latex_amp_xml_clump_xml.expected,
	t/data/tv_to_latex_amp_xml_dups_xml.expected,
	t/data/tv_to_latex_amp_xml_empty_xml.expected,
	t/data/tv_to_latex_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	t/data/tv_to_latex_clump_xml_amp_xml.expected,
	t/data/tv_to_latex_dups_xml_amp_xml.expected,
	t/data/tv_to_latex_empty_xml_amp_xml.expected: When I changed the
	code to use XML::Twig's KeepEncoding I altered get_text() to clean
	up entities like &amp; by hand, but forgot to do the same for
	attribute values.  (Hopefully it will not be needed for attribute
	names, I don't know.)  Extended the amp.xml test cases to check
	this bug.
	
	Made sure that in the callback interface, if a callback is
	undefined it won't be called (as the docs say).

2002-10-10 11:20  epaepa

	* grab/na/tv_grab_na: Cahnged the xmlDecl() call so that it doesn't
	output standalone="yes".  I don't know what that does, but the
	other grabbers don't produce it so we might as well be consistent.

2002-10-10 11:07  epaepa

	* grab/: uk/channel_ids, uk_rt/channel_ids: BBC Knowledge is now
	called BBC4, although the XMLTV id is still knowledge.bbc.co.uk for
	now.

2002-10-10 11:05  epaepa

	* grab/uk_rt/tv_grab_uk_rt.in: Don't download categories unless
	$GET_CATEGORIES is on, which it isn't.	When a page says 'no
	programmes available' then assume this is deliberate and don't
	print a warning.  Warnings that are printed should have the URL
	prepended.

2002-10-10 10:44  epaepa

	* grab/uk_rt/channel_ids: Removing duplicate entry for RT channel
	248.

2002-10-10 10:43  epaepa

	* grab/uk_rt/tv_grab_uk_rt.in: Errors in the config file should be
	warned about with name and line number, not 'FH' :-P.

2002-10-10 10:38  epaepa

	* Makefile.PL, README, doc/QuickStart, lib/XMLTV.pm.in: Preparing
	for 0.5.2 release.  Just a bit more testing first.

2002-10-10 10:36  epaepa

	* grab/uk_rt/tv_grab_uk_rt.in: Use the extra display names for
	channels.

2002-10-10 10:15  epaepa

	* MANIFEST, Makefile.PL, grab/uk_rt/channel_ids,
	grab/uk_rt/tv_grab_uk_rt, grab/uk_rt/tv_grab_uk_rt.PL,
	grab/uk_rt/tv_grab_uk_rt.in: Moved tv_grab_uk_rt's lookup table of
	Radio Times channel ids into a separate file installed under share/
	and read at runtime - exactly the same way tv_grab_uk does it.

2002-10-10 09:20  epaepa

	* grab/uk_rt/tv_grab_uk_rt: Added a pod manual page.  The configure
	routine now has a stern warning (and no downloading happens unless
	you choose to proceed).  The %channels hash is no longer a global
	variable.

2002-10-09 20:52  epaepa

	* filter/tv_extractinfo_en: A new category 'talk' is set
	automatically if a show mentions the word 'interviews'; it affects
	the handling of 'with X' (treated as presenter, not actor).

2002-10-09 20:44  epaepa

	* filter/tv_extractinfo_en: 'X introduces...' means X is a
	presenter.
	
	Removed meaningless phrase 'Coverage of'.

2002-10-09 20:14  epaepa

	* filter/tv_extractinfo_en: Change 'X round-up' to 'Xs'.  Hey, it
	works for X = 'Headline'...

2002-10-09 18:24  epaepa

	* filter/tv_extractinfo_en: Handle a fourth kind of multipart
	programme: that which has times in the form 'from-to' followed by
	title and description.
	
	Remove the phrase 'round-up of' since it has no meaning.  Eg
	'round-up of news' becomes just 'news'.

2002-10-09 15:18  epaepa

	* filter/tv_extractinfo_en: special_multipart(): now handles two
	styles of multipart programme found in the Radio Times listings, as
	well as the Ananova style.

2002-10-09 13:46  epaepa

	* MANIFEST, lib/Clumps.pm,
	t/data/tv_extractinfo_en_all_UTF8.expected: I've more or less given
	up on fixing Clumps.pm; instead I've just removed the sanity check
	about the times of replacement programmes being within those of the
	old programme.	It relates to cases where a programme in the middle
	of a clump is altered or replaced.  I know what the Right Thing is
	here, but the Clumps.pm code is such a mess I can't be bothered to
	implement it now.
	
	Luckily all this clumps stuff will go out the window when the DTD
	is revised.

2002-10-09 13:13  epaepa

	* MANIFEST: Adding new test case to file list.

2002-10-09 13:11  epaepa

	* t/data/: clump_extract_1.xml, tv_cat_all_UTF8.expected,
	tv_cat_clump_extract_1_xml.expected,
	tv_cat_clump_extract_xml.expected,
	tv_extractinfo_en_clump_extract_xml.expected,
	tv_grep_a_all_UTF8.expected,
	tv_grep_a_clump_extract_1_xml.expected,
	tv_grep_a_clump_extract_xml.expected,
	tv_grep_category_b_clump_extract_1_xml.expected,
	tv_grep_category_b_clump_extract_xml.expected,
	tv_grep_category_e_and_title_f_clump_extract_1_xml.expected,
	tv_grep_category_e_and_title_f_clump_extract_xml.expected,
	tv_grep_category_g_or_title_h_all_UTF8.expected,
	tv_grep_category_g_or_title_h_clump_extract_1_xml.expected,
	tv_grep_category_g_or_title_h_clump_extract_xml.expected,
	tv_grep_channel_id_channel4_com_clump_extract_1_xml.expected,
	tv_grep_channel_id_channel4_com_clump_extract_xml.expected,
	tv_grep_channel_name_d_clump_extract_1_xml.expected,
	tv_grep_channel_name_d_clump_extract_xml.expected,
	tv_grep_channel_xyz_or_channel_b_amp_xml_amp_xml.expected,
	tv_grep_channel_xyz_or_channel_b_amp_xml_clump_xml.expected,
	tv_grep_channel_xyz_or_channel_b_amp_xml_dups_xml.expected,
	tv_grep_channel_xyz_or_channel_b_amp_xml_empty_xml.expected,
	tv_grep_channel_xyz_or_channel_b_clump_extract_1_xml.expected,
	tv_grep_channel_xyz_or_channel_b_clump_extract_xml.expected,
	tv_grep_channel_xyz_or_channel_b_clump_xml_amp_xml.expected,
	tv_grep_channel_xyz_or_channel_b_clump_xml_clump_xml.expected,
	tv_grep_channel_xyz_or_channel_b_clump_xml_dups_xml.expected,
	tv_grep_channel_xyz_or_channel_b_clump_xml_empty_xml.expected,
	tv_grep_channel_xyz_or_channel_b_dups_xml_amp_xml.expected,
	tv_grep_channel_xyz_or_channel_b_dups_xml_clump_xml.expected,
	tv_grep_channel_xyz_or_channel_b_dups_xml_dups_xml.expected,
	tv_grep_channel_xyz_or_channel_b_dups_xml_empty_xml.expected,
	tv_grep_channel_xyz_or_channel_b_empty_xml_amp_xml.expected,
	tv_grep_channel_xyz_or_channel_b_empty_xml_clump_xml.expected,
	tv_grep_channel_xyz_or_channel_b_empty_xml_dups_xml.expected,
	tv_grep_channel_xyz_or_channel_b_empty_xml_empty_xml.expected,
	tv_grep_channel_xyz_or_channel_b_x_whatever_xml.expected,
	tv_grep_eval_scalar_keys_5_clump_extract_1_xml.expected,
	tv_grep_eval_scalar_keys_5_clump_extract_xml.expected,
	tv_grep_i_category_i_title_h_clump_extract_1_xml.expected,
	tv_grep_i_category_i_title_h_clump_extract_xml.expected,
	tv_grep_i_category_i_title_j_clump_extract_1_xml.expected,
	tv_grep_i_category_i_title_j_clump_extract_xml.expected,
	tv_grep_i_last_chance_c_clump_extract_1_xml.expected,
	tv_grep_i_last_chance_c_clump_extract_xml.expected,
	tv_grep_new_clump_extract_1_xml.expected,
	tv_grep_new_clump_extract_xml.expected,
	tv_grep_on_after_2002_02_05_all_UTF8.expected,
	tv_grep_on_after_2002_02_05_clump_extract_1_xml.expected,
	tv_grep_on_after_2002_02_05_clump_extract_xml.expected,
	tv_grep_premiere_clump_extract_1_xml.expected,
	tv_grep_premiere_clump_extract_xml.expected,
	tv_sort_all_UTF8.expected, tv_sort_by_channel_all_UTF8.expected,
	tv_sort_by_channel_clump_extract_1_xml.expected,
	tv_sort_by_channel_clump_extract_xml.expected,
	tv_sort_clump_extract_1_xml.expected,
	tv_sort_clump_extract_xml.expected, tv_to_latex_all_UTF8.expected,
	tv_to_latex_clump_extract_1_xml.expected,
	tv_to_latex_clump_extract_xml.expected: Adding another test case
	for tv_extractinfo_en: this one causes it to crash.

2002-10-09 07:58  epaepa

	* lib/XMLTV.pm.in: Better warning message when input files (to be
	concatenated) have different encodings.

2002-10-09 07:52  epaepa

	* lib/Clumps.pm: Added some more trace messages.

2002-10-07 18:16  epaepa

	* lib/Clumps.pm: Improved a fatal error message - but I still don't
	know what is triggering it.

2002-10-07 18:08  epaepa

	* filter/tv_extractinfo_en: For a long time now there has been a
	nuke_from_rel() call when a programme has been fully processed,
	forgetting the information of which programmes it shares a clump
	with.  The idea was that once a programme has been dealt with, we
	don't need to keep track of it any more.  'Probably not needed, but
	can't hurt' said the comment: tempting fate if ever that was done.
	
	No, we may need to modify a programme even once it has been fully
	munged, because if others in the clump have been deleted we will
	need to update its clumpidx.  So it shouldn't be removed from the
	relation.  Getting rid of that call initially caused a section of
	code in Clumps.pm (which had never been run before) to break.  But
	it should all be fixed now, I hope.
	
	Also added some trace messages.

2002-10-07 18:05  epaepa

	* t/data/tv_extractinfo_en_all_UTF8.expected: This is the expected
	result from tv_extractinfo_en, now that I've stopped it crashing or
	printing warnings (fix to be committed).  Confusingly, the
	programme 'News; Weather' is not split into two, although one day
	it might be.

2002-10-07 17:59  epaepa

	* lib/Clumps.pm: A while ago I came across a mystifying
	misbehaviour in perl, and I added all sorts of debugging and
	wrapper routines like set_stop_time() to track it down.  I never
	did get to the bottom of the problem, but later on some of the code
	was moved out of tv_extractinfo_en into this module.  A call to
	set_stop_time() was left in but until now, it has never been
	called!  That was due to a bug in the programs using this module I
	think.
	
	Anyway, hoping that I won't be bitten again by this bug (or that if
	I will be, then a special routine set_stop_times() offers no
	protection), I have changed the call to just '$foo->{stop} = x'.

2002-10-07 17:55  epaepa

	* MANIFEST: Adding new test input to file list.  (But the expected
	outputs have yet to be generated.)

2002-10-07 17:51  epaepa

	* t/data/: clump_extract.xml, tv_cat_all_UTF8.expected,
	tv_grep_channel_xyz_or_channel_b_all_UTF8.expected,
	tv_sort_all_UTF8.expected, tv_to_latex_all_UTF8.expected: This test
	case uncovers a bug in tv_extractinfo_en related to breaking up
	programmes which are part of a clump.  I haven't yet fixed the bug,
	so the full test results aren't part of this checkin.

2002-10-07 17:43  epaepa

	* lib/Clumps.pm: It is morally better to use nested hashes rather
	than concatenating two strings into a hash key.

2002-10-04 20:07  epaepa

	* grab/uk_rt/tv_grab_uk_rt: Whoops, forgot that best_name()
	requires a _list_ of allowable languages.

2002-10-04 20:01  epaepa

	* filter/tv_extractinfo_en: Corrected programme length calculation
	(Date_Calc() returns an object you then have to turn into a number
	of seconds with Delta_Format()).  Fixed a couple of undefined value
	warnings.  Stopped using [:punct:] character class which isn't
	supported in perl 5.005.

2002-10-04 12:04  epaepa

	* lib/XMLTV.pm.in: Added an extra warning.

2002-10-04 12:01  epaepa

	* filter/tv_extractinfo_en: Try to grok 'Classic Austrailian
	western' and similar programme descriptions.  Made small tweaks to
	full stops and spacing when pasting sentences together.

2002-10-04 01:53  rmeden

	* choose/tv_check/tv_check: if bug where a title of \d\d\d\d get's
	interpreted as a date.

2002-10-03 21:01  epaepa

	* grab/uk_rt/tv_grab_uk_rt: Changed the progress messages to print
	a human-readable channel name rather than the XMLTV id (which
	should normally be hidden from the user).
	
	Times in the output now conform to what the DTD says and are in the
	same format as tv_grab_uk.
	
	When a page fails to parse, just print the URL and not the whole
	content, because that gets excessive.

2002-10-03 20:40  epaepa

	* grab/uk/tv_grab_uk.in: grab(): the earlier change to use the
	arguments passed in for creating an XMLTV::Writer neglected the
	need to set the encoding based on the data we parsed from the site.
	 So it is not possible to begin writing any XML until we know the
	encoding to use.

2002-10-03 20:13  epaepa

	* grab/uk_rt/tv_grab_uk_rt: Attempt to keep going when the basic
	HTML munging fails.

2002-10-03 19:57  epaepa

	* grab/uk_rt/tv_grab_uk_rt: I had removed most of the progress
	indicators from the code in the hope of replacing them with
	Term::ProgressBars like the other grabbers use.  But I think that
	will take time to sort out (there are various routines calling
	other routines, the total number of pages to grab isn't known at
	the outset but is very large) so for the next release I've gone
	back to quick-and-dirty print STDERR '#'.

2002-10-03 19:39  epaepa

	* grab/uk_rt/tv_grab_uk_rt: Whoops, I committed the code with it
	set to grab yesterday's listings.  Fixed.
	
	Made the grabbing more robust against download failures: where
	possible it will just skip the details for that programme.

2002-10-03 16:55  epaepa

	* grab/uk_rt/tv_grab_uk_rt: Dealt with the remaining bits of data
	that were thrown away; now almost everything on the site is
	included in the XMLTV output.  There are three things which cannot
	be written out because the DTD doesn't have provision for them: the
	names of parts played by each actor, the link text and description
	for each URL, and a signed-for-the-deaf flag.  These are now warned
	about just once per run, I hope to add them to the DTD when we
	overhaul it.

2002-10-02 19:21  epaepa

	* choose/tv_pick/tv_pick_cgi: Oops, in my attempt to make the code
	work without Lingua::EN::Numbers::Ordinate installed I think I
	broke it when that module is installed.  This patch might fix the
	problem.

2002-10-02 18:12  epaepa

	* grab/uk_rt/tv_grab_uk_rt: Small refactoring.

2002-10-02 17:29  epaepa

	* grab/uk_rt/tv_grab_uk_rt: Improvements to parsing; now it
	understands links to related websites, and follow-on programmes.

2002-10-02 10:02  epaepa

	* grab/uk_rt/tv_grab_uk_rt: get_programme_details(): instead of
	munging the HTML into a big string with | characters and using
	regexps on it, split the string into a list of 'bits' and process
	each individually.  This has made some things like sub-title and
	description more robust, previously they might not get noticed. 
	I've also added warning messages for when some information is
	discarded or ignored; each of these represents a to-do item.

2002-10-02 02:40  rmeden

	* choose/tv_check/tv_check: added Length field to myreplaytv fetch

2002-10-01 21:12  epaepa

	* grab/uk_rt/tv_grab_uk_rt: Mostly cosmetic changes to HTML
	'parsing'.

2002-10-01 14:54  epaepa

	* grab/uk_rt/tv_grab_uk_rt: Added a --configure option based on
	that of tv_grab_uk.  There are no regions, packages or channel
	types (radio vs television), so for now you just have to type in
	the names of channels.	It's likely the Radio Times site does have
	some type information associated with each channel which we could
	use; alternatively there could be some common table of channel
	information between this grabber and tv_grab_uk.
	
	In fact, common / centralized configuration of grabbers is
	definitely something to look into.
	
	Eliminated some global variables, and changed some routines to pass
	around Date::Manip objects rather than weird time strings.
	
	Changed some warning messages which were wrong before, and improved
	the robustness of get_available_dates()'s HTML parsing.
	
	Added usage message and --days option to go along with --configure:
	but not all of the grabber options are fully working yet.  --share
	is completely pointless at the moment since there are no data files
	used by this grabber, but I hope to move the big channel data hash
	into a share/ data file at some point.
	
	Reduced occurrences of the magic string 'radiotimes.beeb.com', etc.
	 Fixed <tv> element credits.

2002-10-01 14:43  epaepa

	* lib/Clumps.pm: More informative warning message.

2002-10-01 14:42  epaepa

	* grab/uk/tv_grab_uk.in: grab(): it claimed that the arguments
	passed in were given to XMLTV::Writer, but in fact it ignored them.
	 Now the code does what the comment says.
	
	Improved laziness (a little) by writing channels, etc. as soon as
	we get the data.  Programmes are still in a lump however.
	
	This change hasn't been tested, I'll do that when I get access to a
	(fast, etc) network connection.

2002-10-01 14:40  epaepa

	* filter/tv_grep.in: I had misunderstood the /o flag for regular
	expressions.  If you create a closure which captures $foo, and do a
	regexp /$foo/o, then it really will be just one value of $foo
	throughout the whole program, even if different closures had
	captured different values.  This caused a bug where you couldn't
	give the same programme content test twice with different regexps.

2002-10-01 14:38  epaepa

	* MANIFEST: Adding new test case files to MANIFEST.

2002-10-01 14:36  epaepa

	* t/: test_filters.t,
	data/tv_grep_channel_xyz_or_channel_b_all_UTF8.expected,
	data/tv_grep_channel_xyz_or_channel_b_amp_xml.expected,
	data/tv_grep_channel_xyz_or_channel_b_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_channel_xyz_or_channel_b_attrs_xml.expected,
	data/tv_grep_channel_xyz_or_channel_b_clump_xml.expected,
	data/tv_grep_channel_xyz_or_channel_b_dups_xml.expected,
	data/tv_grep_channel_xyz_or_channel_b_empty_xml.expected,
	data/tv_grep_channel_xyz_or_channel_b_length_xml.expected,
	data/tv_grep_channel_xyz_or_channel_b_overlap_xml.expected,
	data/tv_grep_channel_xyz_or_channel_b_simple_xml.expected,
	data/tv_grep_channel_xyz_or_channel_b_simple_xml_x_whatever_xml.expected,
	data/tv_grep_channel_xyz_or_channel_b_sort_xml.expected,
	data/tv_grep_channel_xyz_or_channel_b_test_empty_xml.expected,
	data/tv_grep_channel_xyz_or_channel_b_test_livre_xml.expected,
	data/tv_grep_channel_xyz_or_channel_b_test_xml.expected,
	data/tv_grep_channel_xyz_or_channel_b_whitespace_xml.expected,
	data/tv_grep_channel_xyz_or_channel_b_x-whatever_xml.expected:
	Found a bug in tv_grep with specifying --channel twice (or any
	programme content test twice, it turns out); here is a test case.

2002-09-30 12:19  epaepa

	* lib/XMLTV.pm.in: Refactored the 'unknown key foo in bar hash'
	warnings into the routine warn_unknown_keys().

2002-09-30 12:17  epaepa

	* Makefile.PL: Now that tv_grab_uk_rt no longer has any unusual
	dependencies, it can be installed by default and without prompting.
	 Although I really ought to do something more consistent between
	parts which are prompted for and parts which aren't.

2002-09-30 11:46  epaepa

	* grab/uk_rt/tv_grab_uk_rt: Made sure the XML is valid by cleaning
	up ('demoronizing') a couple of non-Latin-1 characters which were
	being carried through from the HTML pages.
	
	Removed retry-fetching, I may add it back later if it proves to be
	needed.  But it interferes with caching which is a nuisance for
	development.
	
	Changed non-standard keys in hashes to begin with an underscore, so
	XMLTV::Writer will silently skip them rather than complaining.
	
	Added some more error checking, in particular a check that regular
	expression matches actually succeed before we go off and use
	captured strings.
	
	Strip leading and trailing whitespace from titles and descriptions.
	
	Rejigged the channel handling a little; now we try to use XMLTV ids
	internally and only convert them to Radio Times ids when contacting
	the site.  Also, only the channels which are actually used are
	written out as <channel> elements, and with the correct id.  Still
	some more to do here, in particular a real configuration stage.
	
	Added prototypes for all subroutines.
	
	Cosmetic formatting, indentation and code style changes.
	
	Removed use of Time::ParseDate, now we use Date::Manip exclusively
	for that stuff.

2002-09-29 18:25  epaepa

	* MANIFEST, Makefile.PL: Added tv_grab_uk_rt to the makefile
	machinery.

2002-09-29 18:24  epaepa

	* t/parallel_test: Sorting is necessary to compare the output of
	tv_grab_uk from the 0.5 release with that in 0.5.1.  The order of
	the XML output has changed.
	
	(Also it's necessary to turn off $KEEP_ENCODING in XMLTV.pm, if you
	want to get the same output from the grabber.)
	
	I'm pleased to report that with the exception of cases which
	crashed the old version of the grabber, the output of old and new
	is unchanged up to sorting.
	
	BTW, if anyone else wants to know how to use this script (like to
	check that tv_grab_na still works after some major change to the
	code), do ask.	I plan to start using it for tv_grab_sn and
	tv_grab_uk_rt as well.

2002-09-29 18:09  epaepa

	* grab/uk_rt/tv_grab_uk_rt: Made warnings-clean, and turned the
	commented-out category-fetching code into a configurable option
	(though I haven't yet tested it).

2002-09-29 18:08  epaepa

	* grab/uk_rt/tv_grab_uk_rt: Adding Jerome Benedict Hettich's Radio
	Times grabber, which was written as part of a group project at the
	Department of Computing, Imperial College - another case of someone
	in the same department using XMLTV without me knowing!	He sent it
	to me a while ago but I never got around to adding it.
	
	At the moment it does a pretty good job of fetching data from the
	Radio Times site - their listings are very detailed, particularly
	in giving the cast of each programme.  And they stretch to two
	weeks whereas Ananova's go to one.  I believe that the RT data is
	'completely unrelated' to the Press Association feed which Ananova
	uses, but I'll investigate later whether there are similarities.

2002-09-29 11:46  epaepa

	* grab/sn/tv_grab_sn: Added --offset option needed by mythtv.  This
	will eventually be replaced by standard grabber options.

2002-09-29 04:23  rmeden

	* choose/tv_check/tv_check: MyReplayTV fetches now retains options
	set with --configure MyReplayTV warning about not being able to
	guess the show day improved MyReplayTV uses old day if show not on
	the schedule this week Title-only header now includes all set
	fields so you can see the options.

2002-09-28 22:49  epaepa

	* filter/tv_extractinfo_en: Found a mysterious bug and added some
	more error handling and trace messages in an attempt to track it
	down.  Then for some reason renaming one variable @progs to @pps
	made the bug go away again.

2002-09-28 21:15  epaepa

	* filter/tv_extractinfo_en: Adding some more function prototypes.

2002-09-28 17:31  epaepa

	* grab/uk/Ananova_Channel.pm: Fix lone 'our' that crept in - I want
	to keep 5.005 compatibility.

2002-09-28 14:20  epaepa

	* Uninstall.pm: Clearer error message.

2002-09-28 12:39  epaepa

	* grab/sn/tv_grab_sn: Rewritten the output routines to use
	XMLTV::Writer.	Now this grabber should generate valid XML every
	time.

2002-09-28 12:38  epaepa

	* filter/tv_grep.in, lib/XMLTV.pm.in: I realized that the handling
	of attributes in XMLTV.pm was very buggy.  Some like 'showview' had
	never worked!  Now the list of attributes is centralized and
	returned as part of the output of list_programme_keys() - so that
	routine really does tell you all the keys that might be in a
	programme hash.
	
	The change to list_programme_keys() means tv_grep has sprouted a
	lot of new tests, including a somewhat-redundant --channel.

2002-09-28 12:31  epaepa

	* MANIFEST: Added attrs.xml and its test cases to the file listing.

2002-09-28 12:02  epaepa

	* t/data/: tv_cat_all_UTF8.expected,
	tv_extractinfo_en_all_UTF8.expected, tv_grep_a_all_UTF8.expected,
	tv_grep_eval_scalar_keys_5_all_UTF8.expected,
	tv_sort_all_UTF8.expected, tv_sort_by_channel_all_UTF8.expected,
	tv_to_latex_all_UTF8.expected: The new test input attrs.xml affects
	the 'all_UTF8' tests too.

2002-09-28 12:02  epaepa

	* t/data/: tv_to_latex_amp_xml_dups_xml.expected,
	tv_to_latex_clump_xml_dups_xml.expected: A couple of test cases I
	forgot to commit with the earlier tv_to_latex change.

2002-09-28 12:00  epaepa

	* t/data/: attrs.xml, tv_cat_attrs_xml.expected,
	tv_extractinfo_en_attrs_xml.expected, tv_grep_a_attrs_xml.expected,
	tv_grep_category_b_attrs_xml.expected,
	tv_grep_category_e_and_title_f_attrs_xml.expected,
	tv_grep_category_g_or_title_h_attrs_xml.expected,
	tv_grep_channel_id_channel4_com_attrs_xml.expected,
	tv_grep_channel_name_d_attrs_xml.expected,
	tv_grep_eval_scalar_keys_5_attrs_xml.expected,
	tv_grep_i_category_i_title_h_attrs_xml.expected,
	tv_grep_i_category_i_title_j_attrs_xml.expected,
	tv_grep_i_last_chance_c_attrs_xml.expected,
	tv_grep_new_attrs_xml.expected,
	tv_grep_on_after_2002_02_05_attrs_xml.expected,
	tv_grep_premiere_attrs_xml.expected, tv_sort_attrs_xml.expected,
	tv_sort_by_channel_attrs_xml.expected,
	tv_to_latex_attrs_xml.expected: New test case to check that all
	attributes of <programme> are read and written correctly.

2002-09-28 11:53  epaepa

	* t/test_filters.t: Previously testing would rely on particular
	filenames appearing first alphabetically.  But of course this
	completely breaks when you add new filenames in the middle.  Rather
	than rename things to 00amp.xml, etc, I have gone for the only
	slightly smaller kludge of reordering files by hand in this script.
	
	Should fix properly some time.	Maybe a separate configuration file
	should list the tests to run.

2002-09-28 11:47  epaepa

	* grab/uk/xmltv_ananova.dtd: Spelling change.

2002-09-28 11:45  epaepa

	* grab/uk/tv_grab_uk.in: Added FIXME about a bug I just noticed.

2002-09-28 11:44  epaepa

	* filter/tv_to_latex, t/data/tv_to_latex_dups_xml.expected,
	t/data/tv_to_latex_dups_xml_amp_xml.expected,
	t/data/tv_to_latex_dups_xml_clump_xml.expected,
	t/data/tv_to_latex_dups_xml_dups_xml.expected,
	t/data/tv_to_latex_dups_xml_empty_xml.expected,
	t/data/tv_to_latex_empty_xml_dups_xml.expected: Notice a timezone
	change even when only the start time of a programme is given.

2002-09-28 11:39  epaepa

	* xmltv.dtd: Spelling change.

2002-09-25 01:46  jveldhuis

	* grab/na/: ZapListings.pm, tv_grab_na: Animated became a category.
	 'Live', 'Call-in', 'If Necessary' and 'Subject to Blackout' are
	appended in () to the end of the program description if one exists,
	otherwise they're lost.
	
	HDTV still needs ironing out.

2002-09-24 20:24  rmeden

	* choose/tv_check/tv_check: Fix serious bug where title-scan never
	matches unless a device is defined.  (It skips it thinking the
	episode is already scheduled to record)

2002-09-23 15:19  epaepa

	* MANIFEST: Fixing cut-and-paste error.

2002-09-23 15:17  epaepa

	* MANIFEST, Makefile.PL, grab/sn/tv_grab_sn: Adding Stefan
	Grling's grabber for Sweden and Norway (with a few fixes).  I will
	probably give him CVS access to upload new versions, if necessary.

2002-09-23 15:14  epaepa

	* MANIFEST: Adding the data files for the new test cases to the
	MANIFEST.

2002-09-23 13:54  epaepa

	* t/: test_filters.t, data/tv_cat_all_UTF8.expected,
	data/tv_cat_amp_xml_amp_xml.expected,
	data/tv_cat_amp_xml_clump_xml.expected,
	data/tv_cat_amp_xml_dups_xml.expected,
	data/tv_cat_amp_xml_empty_xml.expected,
	data/tv_cat_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_cat_clump_xml_amp_xml.expected,
	data/tv_cat_clump_xml_clump_xml.expected,
	data/tv_cat_clump_xml_dups_xml.expected,
	data/tv_cat_clump_xml_empty_xml.expected,
	data/tv_cat_dups_xml_amp_xml.expected,
	data/tv_cat_dups_xml_clump_xml.expected,
	data/tv_cat_dups_xml_dups_xml.expected,
	data/tv_cat_dups_xml_empty_xml.expected,
	data/tv_cat_empty_xml_amp_xml.expected,
	data/tv_cat_empty_xml_clump_xml.expected,
	data/tv_cat_empty_xml_dups_xml.expected,
	data/tv_cat_empty_xml_empty_xml.expected,
	data/tv_cat_simple_xml_x_whatever_xml.expected,
	data/tv_extractinfo_en_all_UTF8.expected,
	data/tv_extractinfo_en_amp_xml_amp_xml.expected,
	data/tv_extractinfo_en_amp_xml_clump_xml.expected,
	data/tv_extractinfo_en_amp_xml_dups_xml.expected,
	data/tv_extractinfo_en_amp_xml_empty_xml.expected,
	data/tv_extractinfo_en_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_extractinfo_en_clump_xml_amp_xml.expected,
	data/tv_extractinfo_en_clump_xml_clump_xml.expected,
	data/tv_extractinfo_en_clump_xml_dups_xml.expected,
	data/tv_extractinfo_en_clump_xml_empty_xml.expected,
	data/tv_extractinfo_en_dups_xml_amp_xml.expected,
	data/tv_extractinfo_en_dups_xml_clump_xml.expected,
	data/tv_extractinfo_en_dups_xml_dups_xml.expected,
	data/tv_extractinfo_en_dups_xml_empty_xml.expected,
	data/tv_extractinfo_en_empty_xml_amp_xml.expected,
	data/tv_extractinfo_en_empty_xml_clump_xml.expected,
	data/tv_extractinfo_en_empty_xml_dups_xml.expected,
	data/tv_extractinfo_en_empty_xml_empty_xml.expected,
	data/tv_extractinfo_en_simple_xml_x_whatever_xml.expected,
	data/tv_grep_a_all_UTF8.expected,
	data/tv_grep_a_amp_xml_amp_xml.expected,
	data/tv_grep_a_amp_xml_clump_xml.expected,
	data/tv_grep_a_amp_xml_dups_xml.expected,
	data/tv_grep_a_amp_xml_empty_xml.expected,
	data/tv_grep_a_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_a_clump_xml_amp_xml.expected,
	data/tv_grep_a_clump_xml_clump_xml.expected,
	data/tv_grep_a_clump_xml_dups_xml.expected,
	data/tv_grep_a_clump_xml_empty_xml.expected,
	data/tv_grep_a_dups_xml_amp_xml.expected,
	data/tv_grep_a_dups_xml_clump_xml.expected,
	data/tv_grep_a_dups_xml_dups_xml.expected,
	data/tv_grep_a_dups_xml_empty_xml.expected,
	data/tv_grep_a_empty_xml_amp_xml.expected,
	data/tv_grep_a_empty_xml_clump_xml.expected,
	data/tv_grep_a_empty_xml_dups_xml.expected,
	data/tv_grep_a_empty_xml_empty_xml.expected,
	data/tv_grep_a_simple_xml_x_whatever_xml.expected,
	data/tv_grep_category_b_all_UTF8.expected,
	data/tv_grep_category_b_amp_xml_amp_xml.expected,
	data/tv_grep_category_b_amp_xml_clump_xml.expected,
	data/tv_grep_category_b_amp_xml_dups_xml.expected,
	data/tv_grep_category_b_amp_xml_empty_xml.expected,
	data/tv_grep_category_b_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_category_b_clump_xml_amp_xml.expected,
	data/tv_grep_category_b_clump_xml_clump_xml.expected,
	data/tv_grep_category_b_clump_xml_dups_xml.expected,
	data/tv_grep_category_b_clump_xml_empty_xml.expected,
	data/tv_grep_category_b_dups_xml_amp_xml.expected,
	data/tv_grep_category_b_dups_xml_clump_xml.expected,
	data/tv_grep_category_b_dups_xml_dups_xml.expected,
	data/tv_grep_category_b_dups_xml_empty_xml.expected,
	data/tv_grep_category_b_empty_xml_amp_xml.expected,
	data/tv_grep_category_b_empty_xml_clump_xml.expected,
	data/tv_grep_category_b_empty_xml_dups_xml.expected,
	data/tv_grep_category_b_empty_xml_empty_xml.expected,
	data/tv_grep_category_b_simple_xml_x_whatever_xml.expected,
	data/tv_grep_category_e_and_title_f_all_UTF8.expected,
	data/tv_grep_category_e_and_title_f_amp_xml_amp_xml.expected,
	data/tv_grep_category_e_and_title_f_amp_xml_clump_xml.expected,
	data/tv_grep_category_e_and_title_f_amp_xml_dups_xml.expected,
	data/tv_grep_category_e_and_title_f_amp_xml_empty_xml.expected,
	data/tv_grep_category_e_and_title_f_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_category_e_and_title_f_clump_xml_amp_xml.expected,
	data/tv_grep_category_e_and_title_f_clump_xml_clump_xml.expected,
	data/tv_grep_category_e_and_title_f_clump_xml_dups_xml.expected,
	data/tv_grep_category_e_and_title_f_clump_xml_empty_xml.expected,
	data/tv_grep_category_e_and_title_f_dups_xml_amp_xml.expected,
	data/tv_grep_category_e_and_title_f_dups_xml_clump_xml.expected,
	data/tv_grep_category_e_and_title_f_dups_xml_dups_xml.expected,
	data/tv_grep_category_e_and_title_f_dups_xml_empty_xml.expected,
	data/tv_grep_category_e_and_title_f_empty_xml_amp_xml.expected,
	data/tv_grep_category_e_and_title_f_empty_xml_clump_xml.expected,
	data/tv_grep_category_e_and_title_f_empty_xml_dups_xml.expected,
	data/tv_grep_category_e_and_title_f_empty_xml_empty_xml.expected,
	data/tv_grep_category_e_and_title_f_simple_xml_x_whatever_xml.expected,
	data/tv_grep_category_g_or_title_h_all_UTF8.expected,
	data/tv_grep_category_g_or_title_h_amp_xml_amp_xml.expected,
	data/tv_grep_category_g_or_title_h_amp_xml_clump_xml.expected,
	data/tv_grep_category_g_or_title_h_amp_xml_dups_xml.expected,
	data/tv_grep_category_g_or_title_h_amp_xml_empty_xml.expected,
	data/tv_grep_category_g_or_title_h_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_category_g_or_title_h_clump_xml_amp_xml.expected,
	data/tv_grep_category_g_or_title_h_clump_xml_clump_xml.expected,
	data/tv_grep_category_g_or_title_h_clump_xml_dups_xml.expected,
	data/tv_grep_category_g_or_title_h_clump_xml_empty_xml.expected,
	data/tv_grep_category_g_or_title_h_dups_xml_amp_xml.expected,
	data/tv_grep_category_g_or_title_h_dups_xml_clump_xml.expected,
	data/tv_grep_category_g_or_title_h_dups_xml_dups_xml.expected,
	data/tv_grep_category_g_or_title_h_dups_xml_empty_xml.expected,
	data/tv_grep_category_g_or_title_h_empty_xml_amp_xml.expected,
	data/tv_grep_category_g_or_title_h_empty_xml_clump_xml.expected,
	data/tv_grep_category_g_or_title_h_empty_xml_dups_xml.expected,
	data/tv_grep_category_g_or_title_h_empty_xml_empty_xml.expected,
	data/tv_grep_category_g_or_title_h_simple_xml_x_whatever_xml.expected,
	data/tv_grep_channel_id_channel4_com_all_UTF8.expected,
	data/tv_grep_channel_id_channel4_com_amp_xml_amp_xml.expected,
	data/tv_grep_channel_id_channel4_com_amp_xml_clump_xml.expected,
	data/tv_grep_channel_id_channel4_com_amp_xml_dups_xml.expected,
	data/tv_grep_channel_id_channel4_com_amp_xml_empty_xml.expected,
	data/tv_grep_channel_id_channel4_com_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_channel_id_channel4_com_clump_xml_amp_xml.expected,
	data/tv_grep_channel_id_channel4_com_clump_xml_clump_xml.expected,
	data/tv_grep_channel_id_channel4_com_clump_xml_dups_xml.expected,
	data/tv_grep_channel_id_channel4_com_clump_xml_empty_xml.expected,
	data/tv_grep_channel_id_channel4_com_dups_xml_amp_xml.expected,
	data/tv_grep_channel_id_channel4_com_dups_xml_clump_xml.expected,
	data/tv_grep_channel_id_channel4_com_dups_xml_dups_xml.expected,
	data/tv_grep_channel_id_channel4_com_dups_xml_empty_xml.expected,
	data/tv_grep_channel_id_channel4_com_empty_xml_amp_xml.expected,
	data/tv_grep_channel_id_channel4_com_empty_xml_clump_xml.expected,
	data/tv_grep_channel_id_channel4_com_empty_xml_dups_xml.expected,
	data/tv_grep_channel_id_channel4_com_empty_xml_empty_xml.expected,
	data/tv_grep_channel_id_channel4_com_simple_xml_x_whatever_xml.expected,
	data/tv_grep_channel_name_d_all_UTF8.expected,
	data/tv_grep_channel_name_d_amp_xml_amp_xml.expected,
	data/tv_grep_channel_name_d_amp_xml_clump_xml.expected,
	data/tv_grep_channel_name_d_amp_xml_dups_xml.expected,
	data/tv_grep_channel_name_d_amp_xml_empty_xml.expected,
	data/tv_grep_channel_name_d_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_channel_name_d_clump_xml_amp_xml.expected,
	data/tv_grep_channel_name_d_clump_xml_clump_xml.expected,
	data/tv_grep_channel_name_d_clump_xml_dups_xml.expected,
	data/tv_grep_channel_name_d_clump_xml_empty_xml.expected,
	data/tv_grep_channel_name_d_dups_xml_amp_xml.expected,
	data/tv_grep_channel_name_d_dups_xml_clump_xml.expected,
	data/tv_grep_channel_name_d_dups_xml_dups_xml.expected,
	data/tv_grep_channel_name_d_dups_xml_empty_xml.expected,
	data/tv_grep_channel_name_d_empty_xml_amp_xml.expected,
	data/tv_grep_channel_name_d_empty_xml_clump_xml.expected,
	data/tv_grep_channel_name_d_empty_xml_dups_xml.expected,
	data/tv_grep_channel_name_d_empty_xml_empty_xml.expected,
	data/tv_grep_channel_name_d_simple_xml_x_whatever_xml.expected,
	data/tv_grep_eval_scalar_keys_5_all_UTF8.expected,
	data/tv_grep_eval_scalar_keys_5_amp_xml_amp_xml.expected,
	data/tv_grep_eval_scalar_keys_5_amp_xml_clump_xml.expected,
	data/tv_grep_eval_scalar_keys_5_amp_xml_dups_xml.expected,
	data/tv_grep_eval_scalar_keys_5_amp_xml_empty_xml.expected,
	data/tv_grep_eval_scalar_keys_5_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_eval_scalar_keys_5_clump_xml_amp_xml.expected,
	data/tv_grep_eval_scalar_keys_5_clump_xml_clump_xml.expected,
	data/tv_grep_eval_scalar_keys_5_clump_xml_dups_xml.expected,
	data/tv_grep_eval_scalar_keys_5_clump_xml_empty_xml.expected,
	data/tv_grep_eval_scalar_keys_5_dups_xml_amp_xml.expected,
	data/tv_grep_eval_scalar_keys_5_dups_xml_clump_xml.expected,
	data/tv_grep_eval_scalar_keys_5_dups_xml_dups_xml.expected,
	data/tv_grep_eval_scalar_keys_5_dups_xml_empty_xml.expected,
	data/tv_grep_eval_scalar_keys_5_empty_xml_amp_xml.expected,
	data/tv_grep_eval_scalar_keys_5_empty_xml_clump_xml.expected,
	data/tv_grep_eval_scalar_keys_5_empty_xml_dups_xml.expected,
	data/tv_grep_eval_scalar_keys_5_empty_xml_empty_xml.expected,
	data/tv_grep_eval_scalar_keys_5_simple_xml_x_whatever_xml.expected,
	data/tv_grep_i_category_i_title_h_all_UTF8.expected,
	data/tv_grep_i_category_i_title_h_amp_xml_amp_xml.expected,
	data/tv_grep_i_category_i_title_h_amp_xml_clump_xml.expected,
	data/tv_grep_i_category_i_title_h_amp_xml_dups_xml.expected,
	data/tv_grep_i_category_i_title_h_amp_xml_empty_xml.expected,
	data/tv_grep_i_category_i_title_h_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_i_category_i_title_h_clump_xml_amp_xml.expected,
	data/tv_grep_i_category_i_title_h_clump_xml_clump_xml.expected,
	data/tv_grep_i_category_i_title_h_clump_xml_dups_xml.expected,
	data/tv_grep_i_category_i_title_h_clump_xml_empty_xml.expected,
	data/tv_grep_i_category_i_title_h_dups_xml_amp_xml.expected,
	data/tv_grep_i_category_i_title_h_dups_xml_clump_xml.expected,
	data/tv_grep_i_category_i_title_h_dups_xml_dups_xml.expected,
	data/tv_grep_i_category_i_title_h_dups_xml_empty_xml.expected,
	data/tv_grep_i_category_i_title_h_empty_xml_amp_xml.expected,
	data/tv_grep_i_category_i_title_h_empty_xml_clump_xml.expected,
	data/tv_grep_i_category_i_title_h_empty_xml_dups_xml.expected,
	data/tv_grep_i_category_i_title_h_empty_xml_empty_xml.expected,
	data/tv_grep_i_category_i_title_h_simple_xml_x_whatever_xml.expected,
	data/tv_grep_i_category_i_title_j_all_UTF8.expected,
	data/tv_grep_i_category_i_title_j_amp_xml_amp_xml.expected,
	data/tv_grep_i_category_i_title_j_amp_xml_clump_xml.expected,
	data/tv_grep_i_category_i_title_j_amp_xml_dups_xml.expected,
	data/tv_grep_i_category_i_title_j_amp_xml_empty_xml.expected,
	data/tv_grep_i_category_i_title_j_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_i_category_i_title_j_clump_xml_amp_xml.expected,
	data/tv_grep_i_category_i_title_j_clump_xml_clump_xml.expected,
	data/tv_grep_i_category_i_title_j_clump_xml_dups_xml.expected,
	data/tv_grep_i_category_i_title_j_clump_xml_empty_xml.expected,
	data/tv_grep_i_category_i_title_j_dups_xml_amp_xml.expected,
	data/tv_grep_i_category_i_title_j_dups_xml_clump_xml.expected,
	data/tv_grep_i_category_i_title_j_dups_xml_dups_xml.expected,
	data/tv_grep_i_category_i_title_j_dups_xml_empty_xml.expected,
	data/tv_grep_i_category_i_title_j_empty_xml_amp_xml.expected,
	data/tv_grep_i_category_i_title_j_empty_xml_clump_xml.expected,
	data/tv_grep_i_category_i_title_j_empty_xml_dups_xml.expected,
	data/tv_grep_i_category_i_title_j_empty_xml_empty_xml.expected,
	data/tv_grep_i_category_i_title_j_simple_xml_x_whatever_xml.expected,
	data/tv_grep_i_last_chance_c_all_UTF8.expected,
	data/tv_grep_i_last_chance_c_amp_xml_amp_xml.expected,
	data/tv_grep_i_last_chance_c_amp_xml_clump_xml.expected,
	data/tv_grep_i_last_chance_c_amp_xml_dups_xml.expected,
	data/tv_grep_i_last_chance_c_amp_xml_empty_xml.expected,
	data/tv_grep_i_last_chance_c_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_i_last_chance_c_clump_xml_amp_xml.expected,
	data/tv_grep_i_last_chance_c_clump_xml_clump_xml.expected,
	data/tv_grep_i_last_chance_c_clump_xml_dups_xml.expected,
	data/tv_grep_i_last_chance_c_clump_xml_empty_xml.expected,
	data/tv_grep_i_last_chance_c_dups_xml_amp_xml.expected,
	data/tv_grep_i_last_chance_c_dups_xml_clump_xml.expected,
	data/tv_grep_i_last_chance_c_dups_xml_dups_xml.expected,
	data/tv_grep_i_last_chance_c_dups_xml_empty_xml.expected,
	data/tv_grep_i_last_chance_c_empty_xml_amp_xml.expected,
	data/tv_grep_i_last_chance_c_empty_xml_clump_xml.expected,
	data/tv_grep_i_last_chance_c_empty_xml_dups_xml.expected,
	data/tv_grep_i_last_chance_c_empty_xml_empty_xml.expected,
	data/tv_grep_i_last_chance_c_simple_xml_x_whatever_xml.expected,
	data/tv_grep_new_all_UTF8.expected,
	data/tv_grep_new_amp_xml_amp_xml.expected,
	data/tv_grep_new_amp_xml_clump_xml.expected,
	data/tv_grep_new_amp_xml_dups_xml.expected,
	data/tv_grep_new_amp_xml_empty_xml.expected,
	data/tv_grep_new_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_new_clump_xml_amp_xml.expected,
	data/tv_grep_new_clump_xml_clump_xml.expected,
	data/tv_grep_new_clump_xml_dups_xml.expected,
	data/tv_grep_new_clump_xml_empty_xml.expected,
	data/tv_grep_new_dups_xml_amp_xml.expected,
	data/tv_grep_new_dups_xml_clump_xml.expected,
	data/tv_grep_new_dups_xml_dups_xml.expected,
	data/tv_grep_new_dups_xml_empty_xml.expected,
	data/tv_grep_new_empty_xml_amp_xml.expected,
	data/tv_grep_new_empty_xml_clump_xml.expected,
	data/tv_grep_new_empty_xml_dups_xml.expected,
	data/tv_grep_new_empty_xml_empty_xml.expected,
	data/tv_grep_new_simple_xml_x_whatever_xml.expected,
	data/tv_grep_on_after_2002_02_05_all_UTF8.expected,
	data/tv_grep_on_after_2002_02_05_amp_xml_amp_xml.expected,
	data/tv_grep_on_after_2002_02_05_amp_xml_clump_xml.expected,
	data/tv_grep_on_after_2002_02_05_amp_xml_dups_xml.expected,
	data/tv_grep_on_after_2002_02_05_amp_xml_empty_xml.expected,
	data/tv_grep_on_after_2002_02_05_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_on_after_2002_02_05_clump_xml_amp_xml.expected,
	data/tv_grep_on_after_2002_02_05_clump_xml_clump_xml.expected,
	data/tv_grep_on_after_2002_02_05_clump_xml_dups_xml.expected,
	data/tv_grep_on_after_2002_02_05_clump_xml_empty_xml.expected,
	data/tv_grep_on_after_2002_02_05_dups_xml_amp_xml.expected,
	data/tv_grep_on_after_2002_02_05_dups_xml_clump_xml.expected,
	data/tv_grep_on_after_2002_02_05_dups_xml_dups_xml.expected,
	data/tv_grep_on_after_2002_02_05_dups_xml_empty_xml.expected,
	data/tv_grep_on_after_2002_02_05_empty_xml_amp_xml.expected,
	data/tv_grep_on_after_2002_02_05_empty_xml_clump_xml.expected,
	data/tv_grep_on_after_2002_02_05_empty_xml_dups_xml.expected,
	data/tv_grep_on_after_2002_02_05_empty_xml_empty_xml.expected,
	data/tv_grep_on_after_2002_02_05_simple_xml_x_whatever_xml.expected,
	data/tv_grep_premiere_all_UTF8.expected,
	data/tv_grep_premiere_amp_xml_amp_xml.expected,
	data/tv_grep_premiere_amp_xml_clump_xml.expected,
	data/tv_grep_premiere_amp_xml_dups_xml.expected,
	data/tv_grep_premiere_amp_xml_empty_xml.expected,
	data/tv_grep_premiere_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_grep_premiere_clump_xml_amp_xml.expected,
	data/tv_grep_premiere_clump_xml_clump_xml.expected,
	data/tv_grep_premiere_clump_xml_dups_xml.expected,
	data/tv_grep_premiere_clump_xml_empty_xml.expected,
	data/tv_grep_premiere_dups_xml_amp_xml.expected,
	data/tv_grep_premiere_dups_xml_clump_xml.expected,
	data/tv_grep_premiere_dups_xml_dups_xml.expected,
	data/tv_grep_premiere_dups_xml_empty_xml.expected,
	data/tv_grep_premiere_empty_xml_amp_xml.expected,
	data/tv_grep_premiere_empty_xml_clump_xml.expected,
	data/tv_grep_premiere_empty_xml_dups_xml.expected,
	data/tv_grep_premiere_empty_xml_empty_xml.expected,
	data/tv_grep_premiere_simple_xml_x_whatever_xml.expected,
	data/tv_sort_all_UTF8.expected,
	data/tv_sort_amp_xml_amp_xml.expected,
	data/tv_sort_amp_xml_clump_xml.expected,
	data/tv_sort_amp_xml_dups_xml.expected,
	data/tv_sort_amp_xml_empty_xml.expected,
	data/tv_sort_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_sort_by_channel_all_UTF8.expected,
	data/tv_sort_by_channel_amp_xml_amp_xml.expected,
	data/tv_sort_by_channel_amp_xml_clump_xml.expected,
	data/tv_sort_by_channel_amp_xml_dups_xml.expected,
	data/tv_sort_by_channel_amp_xml_empty_xml.expected,
	data/tv_sort_by_channel_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_sort_by_channel_clump_xml_amp_xml.expected,
	data/tv_sort_by_channel_clump_xml_clump_xml.expected,
	data/tv_sort_by_channel_clump_xml_dups_xml.expected,
	data/tv_sort_by_channel_clump_xml_empty_xml.expected,
	data/tv_sort_by_channel_dups_xml_amp_xml.expected,
	data/tv_sort_by_channel_dups_xml_clump_xml.expected,
	data/tv_sort_by_channel_dups_xml_dups_xml.expected,
	data/tv_sort_by_channel_dups_xml_empty_xml.expected,
	data/tv_sort_by_channel_empty_xml_amp_xml.expected,
	data/tv_sort_by_channel_empty_xml_clump_xml.expected,
	data/tv_sort_by_channel_empty_xml_dups_xml.expected,
	data/tv_sort_by_channel_empty_xml_empty_xml.expected,
	data/tv_sort_by_channel_simple_xml_x_whatever_xml.expected,
	data/tv_sort_clump_xml_amp_xml.expected,
	data/tv_sort_clump_xml_clump_xml.expected,
	data/tv_sort_clump_xml_dups_xml.expected,
	data/tv_sort_clump_xml_empty_xml.expected,
	data/tv_sort_dups_xml_amp_xml.expected,
	data/tv_sort_dups_xml_clump_xml.expected,
	data/tv_sort_dups_xml_dups_xml.expected,
	data/tv_sort_dups_xml_empty_xml.expected,
	data/tv_sort_empty_xml_amp_xml.expected,
	data/tv_sort_empty_xml_clump_xml.expected,
	data/tv_sort_empty_xml_dups_xml.expected,
	data/tv_sort_empty_xml_empty_xml.expected,
	data/tv_sort_simple_xml_x_whatever_xml.expected,
	data/tv_to_latex_all_UTF8.expected,
	data/tv_to_latex_amp_xml_amp_xml.expected,
	data/tv_to_latex_amp_xml_clump_xml.expected,
	data/tv_to_latex_amp_xml_dups_xml.expected,
	data/tv_to_latex_amp_xml_empty_xml.expected,
	data/tv_to_latex_amp_xml_empty_xml_empty_xml_clump_xml.expected,
	data/tv_to_latex_clump_xml_amp_xml.expected,
	data/tv_to_latex_clump_xml_clump_xml.expected,
	data/tv_to_latex_clump_xml_dups_xml.expected,
	data/tv_to_latex_clump_xml_empty_xml.expected,
	data/tv_to_latex_dups_xml_amp_xml.expected,
	data/tv_to_latex_dups_xml_clump_xml.expected,
	data/tv_to_latex_dups_xml_dups_xml.expected,
	data/tv_to_latex_dups_xml_empty_xml.expected,
	data/tv_to_latex_empty_xml_amp_xml.expected,
	data/tv_to_latex_empty_xml_clump_xml.expected,
	data/tv_to_latex_empty_xml_dups_xml.expected,
	data/tv_to_latex_empty_xml_empty_xml.expected,
	data/tv_to_latex_simple_xml_x_whatever_xml.expected: Now that the
	filter programmes can take more than one file on the command line,
	we can write some tests that use this.	There are a few for the
	sake of testing the multifile functionality, but also we can speed
	up the test suite because what used to take ten runs of tv_foo can
	now be done in one run giving ten input files.
	
	We don't test all possible lists of files, only a few of the
	possible pairs, but still it bloats the test suite to unmanageably
	large numbers of tests (over 1000).  I've remedied that by defining
	a smaller set of tests, including running each filter program on
	every input file at once, and making this the default.	If you have
	a fast computer or time to spare you can get the complete set of
	tests with the --full option.
	
	The files like tv_cat_all_UTF8.expected are for the testing of
	every input file (actually, every input file with UTF-8 encoding)
	at once.

2002-09-23 13:49  epaepa

	* filter/tv_sort: Store the original ordering of programmes to
	guarantee a stable sort when two different programmes are not
	comparable.  (Which should never happen in sane input, but...)
	
	Added prototype declaration for data_eq().

2002-09-23 13:45  epaepa

	* lib/XMLTV.pm.in: Properly fixed the bug with empty files, so it
	works when you have two empty files in a row on the command line. 
	Cleaned up the whitespace handling: it should be stripped on
	reading, but not on writing (no need to do both).

2002-09-23 12:53  epaepa

	* t/data/: clump.xml, tv_cat_whitespace_xml.expected,
	tv_extractinfo_en_whitespace_xml.expected,
	tv_grep_a_whitespace_xml.expected,
	tv_grep_category_b_whitespace_xml.expected,
	tv_grep_category_e_and_title_f_whitespace_xml.expected,
	tv_grep_category_g_or_title_h_whitespace_xml.expected,
	tv_grep_channel_id_channel4_com_whitespace_xml.expected,
	tv_grep_channel_name_d_whitespace_xml.expected,
	tv_grep_eval_scalar_keys_5_whitespace_xml.expected,
	tv_grep_i_category_i_title_h_whitespace_xml.expected,
	tv_grep_i_category_i_title_j_whitespace_xml.expected,
	tv_grep_i_last_chance_c_whitespace_xml.expected,
	tv_grep_new_whitespace_xml.expected,
	tv_grep_on_after_2002_02_05_whitespace_xml.expected,
	tv_grep_premiere_whitespace_xml.expected,
	tv_sort_by_channel_whitespace_xml.expected,
	tv_sort_whitespace_xml.expected,
	tv_to_latex_whitespace_xml.expected, whitespace.xml: A new test
	case to catch a bug with whitespace handling: some elements have
	whitespace stripped on output, so you'd think it would be ignored
	on input, but at present it's not.

2002-09-22 12:15  epaepa

	* filter/tv_extractinfo_en: Changed to use the callback style -
	although at present it just gathers all the programmes into a big
	list as before.

2002-09-22 12:11  epaepa

	* filter/tv_extractinfo_en: Moved the list of programme handlers
	into munge().

2002-09-22 12:08  epaepa

	* filter/tv_extractinfo_en: Small refactoring: new routine munge()
	taking a programme and returning a list of programmes.	It's not
	much use yet because it still needs the whole list of programmes
	available in case there are others in the same clump.

2002-09-22 09:37  epaepa

	* lib/XMLTV.pm.in: parsefiles_callback(): Now works when one of the
	input files is empty - previously the 'next file' routine would be
	called only when a programme was read, and so a file without
	programmes would not trigger it.

2002-09-21 17:53  epaepa

	* lib/XMLTV.pm.in: Give a clearer indication of what is going on
	with unspecified encodings.

2002-09-21 16:16  epaepa

	* t/test_filters.t: Generalized to allow more than one input file
	for each test (although this is not yet used).	Run the commands
	with 'perl -Iblib/lib ...' rather than the versions installed on
	the system (I can't believe this wasn't fixed earlier).

2002-09-21 16:13  epaepa

	* lib/XMLTV.pm.in: Taken account of the fact that XML::Twig's
	encoding() method may return undef and so the encoding is unknown.

2002-09-21 16:07  epaepa

	* filter/tv_grep.in: Cosmetic change.

2002-09-21 16:04  epaepa

	* filter/tv_cat: Added a check that the encoding callback doesn't
	get called twice.  It should be called just once, before all the
	others - and this remains true even if parsing several files.

2002-09-21 14:07  rmeden

	* README.tv_check, choose/tv_check/README.tv_check,
	choose/tv_check/tv_check, choose/tv_check/tv_check_doc.html:
	Correct my cpan email address.. oops

2002-09-21 12:29  epaepa

	* filter/tv_sort: tv_sort was using Data::Dumper for a deep
	equality test between two programmes.  It would stringify them both
	and check the strings were equal.  As the comment said 'we assume
	that Data::Dumper lists hash keys in a consistent order'.  Alas,
	this is not the case, at least not for all perls.  I've had to
	write an equality routine to compare different kinds of data
	structures (since there doesn't seem to be one already, amazingly
	enough) and call that instead.
	
	This fixes a couple of test failures with perl 5.005_03, which I
	have decided to keep supporting for a while longer.

2002-09-21 11:48  epaepa

	* filter/: tv_extractinfo_en, tv_grep.in: Modified the manual pages
	a bit to stop older pod2man complaining.

2002-09-21 09:11  epaepa

	* filter/: tv_cat, tv_extractinfo_en, tv_grep.in, tv_sort,
	tv_to_latex: Changed the filter programs to use parsefiles(), so
	they can take multiple filenames on the command line.  (Apart from
	tv_cat, which was already changed to use parsefiles_callback();
	I've just updated its documentation.)

2002-09-20 21:58  epaepa

	* MANIFEST, t/data/empty.xml, t/data/tv_cat_empty_xml.expected,
	t/data/tv_extractinfo_en_empty_xml.expected,
	t/data/tv_grep_a_empty_xml.expected,
	t/data/tv_grep_category_b_empty_xml.expected,
	t/data/tv_grep_category_e_and_title_f_empty_xml.expected,
	t/data/tv_grep_category_g_or_title_h_empty_xml.expected,
	t/data/tv_grep_channel_id_channel4_com_empty_xml.expected,
	t/data/tv_grep_channel_name_d_empty_xml.expected,
	t/data/tv_grep_eval_scalar_keys_5_empty_xml.expected,
	t/data/tv_grep_i_category_i_title_h_empty_xml.expected,
	t/data/tv_grep_i_category_i_title_j_empty_xml.expected,
	t/data/tv_grep_i_last_chance_c_empty_xml.expected,
	t/data/tv_grep_new_empty_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_empty_xml.expected,
	t/data/tv_grep_premiere_empty_xml.expected,
	t/data/tv_sort_by_channel_empty_xml.expected,
	t/data/tv_sort_empty_xml.expected,
	t/data/tv_to_latex_empty_xml.expected: I'm feeling the urge to put
	some more tests in for tv_cat.	Like checking that concatenating a
	file with itself and then tv_sorting is the identity, or that
	concatenating X and the empty file gives X.  So far I have just
	spotted that there was no test XML file for an empty listing, and
	added one.  More tests to follow.

2002-09-20 21:54  epaepa

	* filter/tv_cat: Rewritten to use the stream-based interface: this
	means that tv_cat has gradual output (rather than reading
	everything first then outputting it all at once) and takes less
	memory.

2002-09-20 20:18  epaepa

	* lib/XMLTV.pm.in: I had forgotten to honour the $KEEP_ENCODING
	flag in the callback interface - fixed.
	
	Extended the multiple-files stuff to the old-style lump-of-data
	interface: now instead of parsefile() there is parsefiles().  It's
	implemented as a wrapper around the callback interface.

2002-09-20 19:13  epaepa

	* mkdist, lib/XMLTV.pm.in: Straight after releasing a new
	stream-based reading interface with 0.5.1, I go and deprecate it. 
	Now there are callbacks for encoding and credits as well as
	channels and programmes; it just works out simpler that way.  The
	new routine parsefiles_callback() reads more than one file and
	concatenates them in an exceedingly cunning way, by having several
	XML::Twigs on the go at once, so that you can get all the channels
	and then lazily read programmes from each file in turn.  I plan to
	make tv_cat use this so it won't require so much memory (not that
	tv_cat gets used much anyway).	Also the other filter programs,
	when I switch them to the stream-based interface, will get for free
	the ability to read from multiple input files in the Unix
	tradition.
	
	Noticed another place where I'd forgotten to update the version
	number, and added it to mkdist.

2002-09-20 11:22  epaepa

	* Makefile.PL: Trying to automate making a Windows binary release. 
	Apart from the executables themselves, because you need some
	payware tool for that.	But everything else (documentation and
	share/ files).	This is done with a new target 'windows_dist' which
	does a normal install and then removes / rearranges files to make
	them suitable to give to a Windows user.  It's a bit of a kludge
	but so is everything with MakeMaker.
	
	I was held up doing this by a couple of weird bugs in MakeMaker:
	relative paths as the install target tend to screw up, and the same
	happens if you do 'perl Makefile.PL PREFIX=...', build, and then
	try to reconfigure with a different prefix.  (You need to 'make
	distclean' to remove stale files first.)  I've tried to warn the
	user about both of these in the Makefile.PL.

2002-09-20 08:51  epaepa

	* Makefile.PL: Oops, forgot to update the version number.  This
	meant the 0.5.1 release installed its documentation in xmltv-0.5/,
	hopefully that is the only bug it caused.
	
	At least mkdist checks for this now, so it can't happen again
	(cough).

2002-09-20 08:49  epaepa

	* mkdist: Made the version number check do Makefile.PL as well as
	README.  I've removed the auto-update-and-check-in code because I
	don't like the idea of checking things in without a human
	inspecting them first (even if it's unlikely mkdist would really
	screw up).

2002-09-20 01:32  rmeden

	* README.tv_check, choose/tv_check/README.tv_check: minor
	documentation changes based on alpha user feedback

2002-09-19 22:15  epaepa

	* README: Oops, got today's date wrong :-P.

2002-09-19 22:13  epaepa

	* grab/na/tv_grab_na: Cosmetic change to the output to make it
	consistent with what XMLTV::Writer produces.  I think it might have
	been me who changed it to be inconsistent some time earlier.  Oh
	well.

2002-09-19 22:12  epaepa

	* grab/de/tv_grab_de: Updated URLs in documentation.

2002-09-19 21:55  epaepa

	* MANIFEST, lib/XMLTV.pm.in, t/data/amp.xml,
	t/data/tv_cat_amp_xml.expected,
	t/data/tv_extractinfo_en_amp_xml.expected,
	t/data/tv_grep_a_amp_xml.expected,
	t/data/tv_grep_category_b_amp_xml.expected,
	t/data/tv_grep_category_e_and_title_f_amp_xml.expected,
	t/data/tv_grep_category_g_or_title_h_amp_xml.expected,
	t/data/tv_grep_channel_id_channel4_com_amp_xml.expected,
	t/data/tv_grep_channel_name_d_amp_xml.expected,
	t/data/tv_grep_eval_scalar_keys_5_amp_xml.expected,
	t/data/tv_grep_i_category_i_title_h_amp_xml.expected,
	t/data/tv_grep_i_category_i_title_j_amp_xml.expected,
	t/data/tv_grep_i_last_chance_c_amp_xml.expected,
	t/data/tv_grep_new_amp_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_amp_xml.expected,
	t/data/tv_grep_premiere_amp_xml.expected,
	t/data/tv_sort_amp_xml.expected,
	t/data/tv_sort_by_channel_amp_xml.expected,
	t/data/tv_to_latex_amp_xml.expected: The change to use KeepEncoding
	broke the handling of entities (XML::Twig takes 'keep the encoding'
	a bit too literally) and there was no test case for entities. 
	Fixed both these problems.

2002-09-19 21:12  epaepa

	* t/test_filters.t: Avoid uninitialized value warning when the
	expected output for a test did not exist (and was created).

2002-09-19 20:59  epaepa

	* README: Updated for version 0.5.1.  I think I'm going to release
	it now, no point waiting any longer.

2002-09-19 19:34  epaepa

	* choose/tv_check/: README.tv_check, tv_check.bat,
	tv_check_doc.html: Spelling fixes.

2002-09-16 23:11  epaepa

	* grab/uk/tv_grab_uk.in: Removed duplicate 'use Tie::RefHash' line
	:-P.

2002-09-16 23:10  epaepa

	* filter/tv_extractinfo_en: Removed 'use Tie::RefHash' since that
	module is no longer used in this script.

2002-09-16 23:04  epaepa

	* grab/uk/Ananova_Channel.pm: Attempt to work around lack of
	Tie::RefHash::Nestable (which is new in perl 5.6.1).  I *think*
	this works but it's not very tested.

2002-09-16 20:56  epaepa

	* lib/XMLTV.pm.in, t/data/tv_cat_test_livre_xml.expected,
	t/data/tv_extractinfo_en_test_livre_xml.expected,
	t/data/tv_grep_a_test_livre_xml.expected,
	t/data/tv_grep_category_b_test_livre_xml.expected,
	t/data/tv_grep_category_e_and_title_f_test_livre_xml.expected,
	t/data/tv_grep_category_g_or_title_h_test_livre_xml.expected,
	t/data/tv_grep_channel_id_channel4_com_test_livre_xml.expected,
	t/data/tv_grep_channel_name_d_test_livre_xml.expected,
	t/data/tv_grep_eval_scalar_keys_5_test_livre_xml.expected,
	t/data/tv_grep_i_category_i_title_h_test_livre_xml.expected,
	t/data/tv_grep_i_category_i_title_j_test_livre_xml.expected,
	t/data/tv_grep_i_last_chance_c_test_livre_xml.expected,
	t/data/tv_grep_new_test_livre_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_test_livre_xml.expected,
	t/data/tv_grep_premiere_test_livre_xml.expected,
	t/data/tv_sort_by_channel_test_livre_xml.expected,
	t/data/tv_sort_test_livre_xml.expected: Following the large number
	of bug reports from Debian users whose character encodings got
	screwed up, I have decided to turn on the newly added
	$KEEP_ENCODING flag in XMLTV.pm.
	
	This means that grabbing a data source in (say) Latin-1, and then
	processing the data further, will keep the original encoding and
	not change it to UTF-8.  Not ideal but at least it should work the
	same on all systems.

2002-09-16 20:53  epaepa

	* grab/uk/tv_grab_uk.in: Griping about another thing to add to the
	XMLTV::Ask library.

2002-09-15 18:18  rmeden

	* choose/tv_check/tv_check.bat: added line to set TZ

2002-09-15 17:18  rmeden

	* choose/tv_check/tv_check: fix bug with AM/PM conversion (how this
	was working is beyond me) remove error message about no show file
	if --myreplay will create it.

2002-09-15 17:11  epaepa

	* grab/uk/tv_grab_uk.in, lib/XMLTV.pm.in: XMLTV.pm.in: added new
	cat_noprogrammes() function which combines data for encoding,
	credits, and channels - but not programmes.  This is in line with
	the general policy of allowing programmes to be processed
	individually rather than in one big lump.
	
	tv_grab_uk.in: changed to use cat_noprogrammes() instead of just
	cat() in an effort to reduce the working set size, or at least to
	give it better locality.  Previously tv_grab_uk would rearrange the
	order of programmes and then output them by channel, which thrashed
	the disk a lot.  This is not the last change to tv_grab_uk to
	improve scalability, just an intermediate point to commit a working
	version.

2002-09-15 13:06  epaepa

	* grab/uk/tv_grab_uk.in: Fixed a warning message to be more
	informative.

2002-09-14 21:55  epaepa

	* grab/uk/tv_grab_uk.in: The warn() handler around XMLTV::parse()
	now deals correctly with undefined warning messages.  I didn't
	think there were any, but there you go.

2002-09-14 19:02  epaepa

	* grab/uk/tv_grab_uk.in: Give better warning / fatal messages if
	parsing the contents of a URL fails.

2002-09-13 23:22  epaepa

	* choose/tv_check/tv_check: Removed warning about episode-nums that
	weren't understood.  This is temporary until the whole episode-num
	system gets replaced in some future release.

2002-09-13 14:35  epaepa

	* t/data/: test_empty.xml, tv_cat_test_empty_xml.expected,
	tv_extractinfo_en_test_empty_xml.expected,
	tv_grep_a_test_empty_xml.expected,
	tv_grep_category_g_or_title_h_test_empty_xml.expected,
	tv_grep_eval_scalar_keys_5_test_empty_xml.expected,
	tv_grep_on_after_2002_02_05_test_empty_xml.expected,
	tv_sort_by_channel_test_empty_xml.expected,
	tv_sort_test_empty_xml.expected,
	tv_to_latex_test_empty_xml.expected: test_empty.xml was invalid
	because it didn't have a 'channel' attribute for its lone
	programme.  Fixed.

2002-09-13 14:34  epaepa

	* lib/: TZ.pm, XMLTV.pm.in: Changed UT to UTC; added a warning in
	the XMLTV.pm documentation that the returned character encoding may
	vary (this prepares for a possible change making $KEEP_ENCODING
	documented).

2002-09-13 14:32  epaepa

	* grab/uk/: UK_TZ.pm, tv_grab_uk.in: Changed 'UT' mistake to UTC;
	don't assume that XMLTV data is always UTF-8.

2002-09-13 14:29  epaepa

	* filter/: tv_extractinfo_en, tv_grep.in, tv_sort, tv_to_latex: I
	had some misunderstanding about dates - I was writing 'UT' as the
	timezone thinking this was the same as UTC give or take a few
	seconds.  But some book I read says that UT is twelve hours out
	(why?).  So I've changed it to UTC.
	
	tv_to_latex: try to cope with both UTF-8 and Latin-1 input files,
	and do something vaguely sensible with other weird encodings.

2002-09-13 14:24  epaepa

	* choose/tv_pick/tv_pick_cgi: Produce the output HTML in the same
	character encoding as the programme data, without assuming it will
	always be UTF-8.

2002-09-13 14:22  epaepa

	* choose/tv_check/tv_check: Don't assume the encoding is UTF-8, try
	to use whatever encoding the programme data uses.

2002-09-12 05:15  rmeden

	* choose/tv_check/tv_check: bugfix to prevent warnings if certain
	values are null

2002-09-12 04:14  rmeden

	* choose/tv_check/tv_check: fixed bug where --myreplaytv shows at
	12pm stored as 2400 not 1200

2002-09-10 14:33  epaepa

	* lib/XMLTV.pm.in: Experimental code trying to work round a bug
	reported by Joe Drew.  The $KEEP_ENCODING constant, if true, turns
	on XML::Twig's KeepEncoding() option and tries to make the encoding
	returned from read_data() and the like match the input file.  This
	is not as good as forcing everything to UTF-8, but it is better
	than the reported behaviour of returning Latin-1 strings saying
	they were UTF-8.  (I cannot reproduce that bug despite upgrading
	XML::Twig and XML::Parser to the same versions; I think it might be
	a perl 5.8 thing.)
	
	This contradicts the documentation, which says the encoding will
	always be returned as UTF-8.  At present I think that tv_cat is the
	only filter program which will work with the new behaviour, but
	that should be sufficient for testing.

2002-09-10 11:25  epaepa

	* filter/tv_extractinfo_en, grab/de/tv_grab_de: Fixed
	Term::ProgressBar detection.

2002-09-10 11:24  epaepa

	* lib/XMLTV.pm.in: cat(): In an attempt to remove some magic
	'UTF-8' strings from the source, it now just checks that the
	encoding is the same for all the files to be concatenated (like
	already happens for credits).
	
	It looks like I'll have to remove the UTF-8 assumptions altogether,
	this is at least a first step.

2002-09-10 11:22  epaepa

	* grab/uk/tv_grab_uk.in: After spending several hours last night
	looking worriedly at the modem lights and thinking 'hmm, I didn't
	know tv_grab_uk was this slow, even on a 28.8 connection and P200',
	I have improved the status messages so there's more description of
	what is happening.  Most important among these improvements is
	making the progress bar detection actually work - previously it
	wouldn't detect that Term::ProgressBar was installed and would
	remain silent.	Also, downloading now happens first of all with
	parsing later, so you can go offline a bit sooner.
	
	The real reason it took so long is that I had pressed Return to get
	the default 'yes' answer to 'download radio listings'.	As I
	announced on xmltv-users soon after 0.5 was released, this option
	is stupid because the new Ananova site has hundreds of radio
	channels.  Now you must download them individually.

2002-09-10 11:18  epaepa

	* Makefile.PL: Since CGI::Carp is responsible for making all
	warning messages look Martian, and it's included with the CGI
	module anyway, we can just check for CGI and not bother loading
	CGI::Carp.
	
	Switched from if (defined $@) to just if ($@), which seems to be
	correct.

2002-09-10 00:12  epaepa

	* Makefile.PL: Loading the CGI::Carp module does strange things to
	warn(), so use print STDERR instead.

2002-09-09 12:25  epaepa

	* lib/XMLTV.pm.in: parse_callback(), parsefile_callback(): new
	callback-based interface for incremental reading of XMLTV files. 
	This isn't used by anything yet, and isn't thoroughly tested
	(though it seems to work); it probably won't be used in the 0.5.1
	release but I want to start changing the filter programs to it soon
	afterwards.

2002-09-08 23:45  epaepa

	* MANIFEST: Adding tv_check.bat to the MANIFEST - it is not
	installed but it is part of the source distribution.

2002-09-08 09:54  epaepa

	* lib/Ask.pm: ask(): changed to be more robust, removing leading
	and trailing whitespace instead of chopping off the last character.
	 This might fix Robert E.'s installation problems (I think he is
	using Windows).

2002-09-07 20:34  epaepa

	* grab/de/tv_grab_de: Added a comment mentioning the backup server
	for de/at listings.

2002-09-07 20:28  epaepa

	* Makefile.PL: Adding more quotation marks around hash keys, which
	seem to be required by newer perls.  I thought => was meant to
	count as quoting its left argument.  Oh well.

2002-09-07 03:47  rmeden

	* choose/tv_check/tv_check.bat: Sample batch file for folks using
	the windows exe version

2002-09-07 02:59  rmeden

	* choose/tv_check/tv_check_doc.html: Updated docs for
	--myreplaytv.com option.

2002-09-07 02:57  rmeden

	* README.tv_check, choose/tv_check/README.tv_check: Removed
	references to excessive CPU and memory usage. Now that we use
	XML::Twig, it doesn't appear to be a problem

2002-09-06 15:13  rmeden

	* choose/tv_check/tv_check: Misc bug fixes

2002-09-06 04:21  rmeden

	* choose/tv_check/README.tv_check, README.tv_check: README updates.
	Also sync'd the 2 README.tv_check files.

2002-09-06 04:19  rmeden

	* choose/tv_check/tv_check: misc bug fixes mostly related to new
	XMLTV.pm

2002-09-05 21:49  epaepa

	* Makefile.PL: Changed the setup questions so that they don't warn
	'you will need Foo' when Foo is already installed.  If the
	prerequisites are installed, then the default answer to the
	installation question is 'yes'.

2002-09-05 19:04  epaepa

	* lib/XMLTV.pm.in: After each <channel> or <programme> element has
	been read, call flush() to throw away those parts of the XML tree
	which have been processed.
	
	This gives a big reduction in memory usage.  With 0.5 a process
	reading in a week's UK listings took 41Mbyte.  Switching to
	XML::Twig cut that to 25Mbyte and now adding flush() takes it to
	13Mbyte.  But I would still like to do better of course :-).

2002-09-05 03:39  rmeden

	* choose/tv_check/tv_check: added --myreplaytv option to grab info
	from myreplaytv.com for ReplayTV owners.

2002-09-04 22:00  epaepa

	* Makefile.PL, README, grab/uk/tv_grab_uk.in: tv_grab_uk.in: use
	XML::Twig instead of XML::DOM for parsing Ananova's weird 'regions'
	XML.  This removes the last dependency on XML::DOM.

2002-09-04 20:43  epaepa

	* Makefile.PL, README, filter/tv_to_latex, lib/XMLTV.pm.in:
	Reimplemented the parsing code in XMLTV.pm using XML::Twig instead
	of XML::DOM.  Thanks to Leif Van Horn for the idea, although in the
	end I didn't use his code.  Really all that needed changing were
	the wrapper routines like get_attrs() around the DOM tree methods. 
	The new implementations, wrapping XML::Twig, are quite a bit
	shorter :-).
	
	The interface to the XMLTV module is just the same as before,
	reading all the data in a big lump.  A lazy-reading interface is
	needed to get the best out of XML::Twig, and I will implement that
	later.	But already there is an 18% speed improvement (on the test
	suite) from the old version.
	
	I can't quite eliminate XML::DOM because it is still used by
	tv_grab_uk to parse Ananova's weird 'regions' page.  But that will
	be next.
	
	Also fixed the installation of section 1 manual pages.

2002-09-04 16:54  epaepa

	* lib/XMLTV.pm.in: Changed one more DOM call to use the wrapper
	routines.  This time it was getTagName(), which turns out to be the
	same as getNodeName() and hence get_name().

2002-09-04 15:36  epaepa

	* lib/XMLTV.pm.in: Abstracted away another DOM method -
	$n->getNodeName() becames get_name($n).

2002-09-04 15:16  epaepa

	* lib/XMLTV.pm.in: The file parsing code includes severel wrappers
	around XML::DOM.  For example dom_attrs() returns a hashref of a
	node's attributes, after skipping over attributes beginning with
	'x-'.  I've changed the names of these from dom_whatever() to
	get_whatever(), so that they can become wrappers around some other
	library such as XML::Twig.

2002-09-03 12:27  epaepa

	* Makefile.PL, README, choose/tv_pick/tv_pick_cgi,
	filter/tv_to_latex, grab/de/tv_grab_de: Done some more to cut down
	on dependencies.  Now tv_pick_cgi and tv_grab_na are optional in
	Makefile.PL, because they both have unusual dependencies that
	aren't shared by the other programs.  I've also made
	Unicode::String and Compress::Zlib kludgealikes, so these two
	modules have been downgraded to 'recommended'.
	
	This all needs testing.

2002-09-01 18:00  epaepa

	* lib/Ask.pm: Answers should be read from standard input and never
	from command-line arguments...

2002-09-01 17:55  epaepa

	* MANIFEST, Makefile.PL, choose/tv_check/README.tv_check,
	grab/Ask.pm, lib/Ask.pm: Because tv_check has dependencies on Tk
	and Tk::TableMatrix, which the other parts of xmltv don't, I have
	made it optional.  The Makefile.PL now asks whether you want to
	install tv_check.  I may do the same to other parts of XMLTV if
	they require non-standard modules.
	
	This meant moving Ask.pm out of the grab/ directory (which was a
	slightly silly place for it anyway) and into lib/, since it is now
	used by the whole project and not just by the grabbers.  The
	Makefile.PL loads this library 'by hand' and uses it to prompt
	about tv_check.
	
	I've also changed tv_check's README to standardize on the name
	tv_check not TVCHECK or tvcheck... I hope it's author doesn't mind
	too much :-(.

2002-09-01 11:53  epaepa

	* ChangeLog.old, README, xmltv.dtd, analyse_tvprefs/README,
	analyse_tvprefs/analyse_tvprefs, choose/tv_check/tv_check_doc.html,
	choose/tv_pick/tv_pick_cgi, filter/tv_cat,
	filter/tv_extractinfo_en, filter/tv_grep.in, filter/tv_sort,
	filter/tv_to_latex, grab/de/tv_grab_de, grab/na/tv_grab_na,
	grab/uk/tv_grab_uk.in, grab/uk/xmltv_ananova.dtd, lib/XMLTV.pm.in,
	t/parallel_test, t/test_filters.t: Updated references to the XMLTV
	website, and to my email address.  Purged all traces of my old
	userid.

2002-08-30 22:35  epaepa

	* Makefile.PL: Fixed (I hope) that problem with certain MakeMaker
	versions.  It happened because to get uninstall, I was physically
	manipulating the generated Makefile, but some versions of MakeMaker
	produced text slightly different to what was expected.	Now I hope
	the code is more robust.

2002-08-30 22:23  epaepa

	* Makefile.PL, README: Added Tk and Tk::TableMatrix to the list of
	dependencies, they were missing before.

2002-08-29 20:56  epaepa

	* Makefile.PL, README, choose/tv_check/tv_check,
	choose/tv_pick/tv_pick_cgi, filter/tv_cat,
	filter/tv_extractinfo_en, filter/tv_grep.in, filter/tv_sort,
	filter/tv_to_latex, grab/Ask.pm, grab/Memoize.pm,
	grab/de/tv_grab_de, grab/uk/Ananova_Channel.pm, grab/uk/UK_TZ.pm,
	grab/uk/tv_grab_uk.in, lib/Clumps.pm, lib/XMLTV.pm.in,
	t/add_time_info, t/parallel_test: Well, up till now I've resisted
	calls to trim the number of modules required by xmltv.	I said the
	answer was not to reduce library use but rather to make it easy for
	users to install those libraries, by providing them as packages. 
	But after moving to a new system myself I realize that this
	attitude was too optimistic.  Whatever the merits in principle of
	packaging the libraries separately, in practice it is a lot of
	effort to keep track of those dependencies.
	
	As a starting point I have reduced the dependencies to packages
	which come as standard with Linux-Mandrake 8.2.  This meant
	removing dependencies on obscure modules (many of which I wrote
	myself).  Some, like Tie::IxHash and Sort::Versions, turned out not
	be used anywhere, although they were once.  Others like
	Log::TraceMessages and Memoize can be replaced with stub routines
	when they are not found, and there are some like Lingua::Preferred
	where doing this gives a small loss of functionality, but not
	anything that most users will notice.
	
	On the other hand, I noticed that tv_pick.cgi requires the CGI
	module, which had slipped through the dependency net until now :-(.
	 At least it is a common module which will probably be packaged (it
	is in Mandrake).
	
	I've changed the Makefile.PL and README accordingly; building will
	warn about 'recommended' modules which are missing but they don't
	stop the Makefile being written.
	
	I've run many of the altered programs on my own machine but more
	testing is needed.
	
	Also improved the 'please run --configure' message in tv_grab_uk.

2002-08-08 13:50  jveldhuis

	* grab/na/ZapListings.pm: added languages Khmer and Ojibwa

2002-06-24 23:08  rmeden

	* choose/tv_check/tv_check: Fix bug with ReplayTV conflict checker.
	 Extra episodes were not correctly being added to the conflict
	search.

2002-06-14 16:54  jveldhuis

	* grab/na/tv_grab_na: added --list-channels to --configure command
	line options, works similar to --list-providers.

2002-06-14 16:20  jveldhuis

	* grab/na/tv_grab_na: fixed perldoc and usage a bit

2002-06-14 16:16  jveldhuis

	* grab/na/tv_grab_na: fixed help messages that said config file
	lands in $HOME/.tv_grab_na

2002-06-14 16:16  jveldhuis

	* grab/na/tv_grab_na: fixed help message that was a bit too long

2002-06-14 16:08  jveldhuis

	* grab/na/tv_grab_na: 1. undid Ed's Date_Init() call to explictly
	set TZ for windows exectuables,    didn't work the way we wanted.
	
	2. reordered some of the --configure help messages (more logical)
	
	3. added support for using tv_grab_na to dump list of providers for
	   guis (such as Andy's FreeGuide) that want to reproduce the	
	configure process in a gui. Usage is:	    --configure
	--list-providers --postalcode <code>	or	 --configure
	--list-providers --zipcode <code>    Output newline separated list
	of providers ids and their descriptions..     Note: --retry
	settings don't have any effect using --list-providers.

2002-05-29 17:29  epaepa

	* grab/na/tv_grab_na: Call Date_Init() at the start of the script,
	to avoid timezone problems on Windows.

2002-05-29 17:25  epaepa

	* grab/uk/tv_grab_uk.in: fix_ananova_xml(): common checks for
	broken Ananova XML output.
	
	Removed dependency on Sort::Versions, it is no longer needed now
	that the Ananova ids are purely numeric.

2002-05-29 13:21  epaepa

	* t/parallel_test: Removed fixups that were needed for transition
	from old to new grabber.  Check that temporary directory exists.

2002-05-27 16:49  epaepa

	* README: Removed duplicate dependency.

2002-05-27 16:48  epaepa

	* README: XML::DOM depends on XML::Parser.

2002-05-23 11:22  epaepa

	* mkdist: Modified mkdist to check out its working copy and build
	tarballs in a temporary directory, _not_ ./xmltv/.  This is because
	running mkdist in the working copy could otherwise create great
	confusion, especially with the build process which recursively
	looks for Makefile.PLs to execute...

2002-05-23 11:08  epaepa

	* Makefile.PL: Last-minute fix: the toplevel README is the one to
	be installed, not the now-removed doc/README.

2002-05-23 11:02  epaepa

	* mkdist: Added my personal t/data/do_not_dist/ directory to
	@toremove.  Hope it works.

2002-05-23 10:59  epaepa

	* MANIFEST: Updated MANIFEST with recently added and removed
	documentation files.  (BTW, these docs need not be installed - they
	are there as a guide to the source tree.)

2002-05-23 10:54  epaepa

	* choose/tv_check/README.tv_check: Wrapped lines to 70 columns -
	hope you don't mind Robert.

2002-05-23 10:50  epaepa

	* analyse_tvprefs/README: Token documentation on the
	analyse_tvprefs tool.

2002-05-23 10:47  epaepa

	* doc/code/grabber_interface: The grabber_interface file is
	currently just a placeholder, but at least it now contains a small
	amount of useful information.

2002-05-23 10:43  epaepa

	* doc/QuickStart: Updated to reflect that binaries will be
	installed in the PATH and no longer just run from the current
	directory.

2002-05-23 10:39  epaepa

	* doc/README: Removed the README from version 0.3.1 which was lying
	around in this directory the whole time :-P.

2002-05-23 10:33  epaepa

	* lib/XMLTV.pm.in: Strip whitespace on output as well as input;
	made it explicit that this happens.

2002-05-23 10:32  epaepa

	* filter/tv_grep.in: Added a note about the clumpidx fixing which
	stops tv_grep being fully idempotent.

2002-05-23 10:30  epaepa

	* t/test_filters.t: Keep track of number of tests correctly
	(including if some idempotence tests are skipped.)
	
	It turns out that tv_grep is not 100% idempotent due to clumpidx
	fixing.

2002-05-23 10:28  epaepa

	* README: Added a warning about that ridiculously slow test suite
	:-).

2002-05-23 10:27  epaepa

	* README: Updated README for the real 0.5 release.

2002-05-23 09:28  epaepa

	* grab/uk/README: Wrote a quick guide to the tv_grab_uk source
	code.

2002-05-23 09:15  epaepa

	* grab/uk/xmltv_ananova.dtd: This is the DTD used by Ananova for
	their XMLTVish listings, included as documentation.

2002-05-23 09:13  epaepa

	* grab/de/tv_grab_de: Fix an error in the served XML pages (empty
	<length> element).

2002-05-22 17:09  epaepa

	* grab/uk/: Ananova_Channel.pm, channel_ids, tv_grab_uk.in: This is
	it, the new version of the UK grabber.	This fetches XML documents
	from Ananova's server, munges them a bit and outputs them.  It
	hasn't had quite as much testing as I would have liked, but because
	the old listings feed stopped I have to commit this now.  Also the
	code is not as clean as it could be, but ditto.
	
	Another problem is slowness and bloatedness; it parses the XML
	received and this means a lot of memory usage with the current
	XMLTV.pm.  Still, on a fast machine the main bottleneck will be
	speed of download from the server (which is very slow), so I don't
	feel too guilty.

2002-05-22 14:29  epaepa

	* grab/uk/channel_pkgs/: arts, entertainment, film, gratis,
	lifestyle, misc, scifi, shop, sport: Removed some dud channels from
	the predefined packages, and updated a few more to use newer ids. 
	(In principle the XMLTV ids are supposed never to change, but...)

2002-05-21 14:32  epaepa

	* t/parallel_test: The test script I was using to compare the new
	listings feed to the old.  It cannot be used now, but I'm
	committing it as a record of the sort of differences between the
	two feeds.  Many of the differences are thought to be caused by the
	new feed being 24 hours behind; that is, it gives a week's listings
	as before, but things like sporting events or last-minute schedule
	alterations will be less current than in the old feed.

2002-05-21 14:23  epaepa

	* grab/uk/cvt: Removed 'cvt' program to convert channel listings -
	the job has been done.

2002-05-21 14:22  epaepa

	* grab/uk/cvt: This is the program I used to match the old listings
	source's channel names to those used by the new listings (and so
	generate a new file mapping XMLTV ids to Ananova ids).	It's not
	likely to be used again, but I'm committing it for the record.

2002-05-21 14:13  epaepa

	* t/parallel_test: Adding the new 'radio4' test case.  Not that it
	will be used for a while, because with the old feed gone it's not
	possible to run parallel tests comparing new and old output.

2002-05-21 14:13  epaepa

	* grab/uk/: tv_grab_uk.in, test_configs/radio4: Miscellaneous
	fixes.	These are obsolete now that the old feed has stopped (see
	forthcoming announcement) but I'm committing them in order to not
	lose anything.

2002-05-19 17:29  epaepa

	* grab/uk/tv_grab_uk.in, t/parallel_test: When Ananova serves a
	freak page which doesn't have the multiple sets of listings
	expected, retry up to 3 times.	I haven't been able to test this
	because (typically!) as soon as I put the check in, Ananova started
	to behave.  But at least I know it doesn't make things any worse.

2002-05-18 20:17  epaepa

	* filter/tv_extractinfo_en: Fix to stop the program choking when
	the last word of a programme description is a time.  It's still not
	as robust as I would like, but at least this one thing is fixed.

2002-05-15 15:22  epaepa

	* t/add_time_info: More helpful error message about 'funny size
	clump' (and take a clumpidx of 0/1, ie a clump of one programme, as
	the same as no clumpidx at all).

2002-05-15 15:21  epaepa

	* MANIFEST: Added grab/uk/test_configs/radio4 to MANIFEST.

2002-05-15 15:20  epaepa

	* grab/uk/test_configs/radio4: A new test configuration for
	tv_grab_uk - just Radio 4.  This channel is interesting because it
	has 'LW' and 'FM' variants.

2002-05-15 11:09  epaepa

	* t/add_time_info: Fixed an off-by-one bug - I don't know how it
	remained undetected for so long.

2002-05-13 17:29  epaepa

	* grab/uk/Ananova_Channel.pm, grab/uk/channel_ids,
	grab/uk/tv_grab_uk.in, t/parallel_test: tv_grab_uk: added code to
	split Radio 4 into LW and FM variants, and a few other stations
	into MW and FM variants.  After some experiments, it turns out the
	only sensible way to do this is to specify it in the channel_ids
	file, since it cannot be detected automatically without grabbing a
	whole week's listings in advance.
	
	So now we have fm.radio-4.bbc.co.uk and lw.radio-4.bbc.co.uk. 
	Unfortunately, individual channel selection still works on Ananova
	id, and these two channels have the same Ananova id, so it's not
	possible to download one without the other.  But this is good
	enough.
	
	Also committing the parallel_test script used to verify that this
	change didn't break anything (I hope).

2002-05-13 12:48  epaepa

	* t/test_filters.t: Added an idempotence check for most filter
	programs.  This checks that running the same filter twice on some
	input is equivalent to running it once.  Unfortunately, this did
	not catch the bug I was hoping to find - but at least the check is
	in there now.
	
	The number of tests is now 350 - this is getting really out of
	hand.  I need to find some easy way to run just a few tests. 
	Probably by defining separate 'basic' and 'full' sets of commands
	and example inputs.

2002-05-13 11:48  epaepa

	* lib/Clumps.pm: Downgraded a fatal 'programmes do not sort' error
	to a warning.  This makes things like tv_grep more tolerant of
	slightly deviant (syntactically correct but nonsensical in some
	way) input files.

2002-05-12 14:34  epaepa

	* filter/tv_sort: Fixed bug identified earlier - not eliminating
	duplicate programmes with no stop time.  Now overlap() returns true
	for two programmes starting at the same time on the same channel
	with same clumpidx, regardless of whether they have stop times. 
	This will break if zero-length programmes come up, but I'm assuming
	that can't happen.

2002-05-10 15:03  epaepa

	* t/data/: dups.xml, tv_cat_dups_xml.expected,
	tv_extractinfo_en_dups_xml.expected, tv_grep_a_dups_xml.expected,
	tv_grep_on_after_2002_02_05_dups_xml.expected,
	tv_sort_by_channel_dups_xml.expected, tv_sort_dups_xml.expected,
	tv_to_latex_dups_xml.expected: Noticed a bug in tv_sort where not
	all duplicate programmes are weeded out.  These updated test cases
	give the expected behaviour.

2002-05-08 13:55  epaepa

	* grab/uk/Ananova_Channel.pm: clone(): whoops, forgot to bless the
	new object into a class.  That'll teach me for committing untested
	code.

2002-05-06 17:37  epaepa

	* grab/uk/Ananova_Channel.pm: del(): new method to 'delete' a
	channel object.

2002-05-06 17:22  epaepa

	* grab/uk/Ananova_Channel.pm: Added an accesor to remove (unset)
	the additional display names for a channel object.  This is all
	getting really baroque, I would like to eliminate all this
	pointless OO stuff soon.

2002-05-06 17:19  epaepa

	* grab/uk/Ananova_Channel.pm: Removed requirement that the main
	display name is immutable once set.  It all made sense at one point
	but the original, very strict design isn't really being followed
	any more.

2002-05-06 17:14  epaepa

	* grab/uk/Ananova_Channel.pm: Added a clone() method which copies
	all information except the unique ids.

2002-05-06 16:53  epaepa

	* t/add_time_info: Don't collapse and die when a channel which
	occurs in the less-detailed listings does not occur at all in the
	more-detailed ones.  Instead just warn once and then leave alone
	all programmes on that channel.

2002-05-06 10:52  epaepa

	* t/add_time_info: Added some more assertions and more detailed
	error messages.

2002-05-06 04:59  rmeden

	* choose/tv_check/tv_check: Correction to special Replay-TV fuzzy
	logic.	Don't look for conflicts for a "close" episode when another
	episode exists at the proper time.

2002-05-02 15:02  epaepa

	* MANIFEST: Updated the MANIFEST for some files I added a while ago
	(should have done it before).

2002-05-02 14:58  epaepa

	* t/test_filters.t: 'Transparently' gunzip files before running the
	test, and gzip them back again.  This is a bit pointless at present
	because gzipping saves only about 0.2Mbyte of space - but hey, I
	was running out of quota.  If you don't have the files gzipped then
	things are as before.  The test files in CVS will remain
	uncompressed.  So you can just ignore this change :-).

2002-05-02 12:16  epaepa

	* grab/uk/tv_grab_uk.in: More elaborate workarounds for when
	Ananova's dates are wrong.  If we fetch a file from the server and
	its date is wrong, attempt to compensate by fetching a different
	file which is expected to have the right date.	Unless that is also
	bad, in which case pick another...
	
	Whether all this is needed depends on the state of Ananova's data. 
	Yesterday it was pretty much essential but today only one channel
	is affected.

2002-05-02 12:12  epaepa

	* t/add_time_info: add_time_info is a small filter to help with
	diffing one XMLTV file against another.  Sometimes two files
	describe the same schedule, but one with more detail than the
	other.	For example A may say '10:00 0/2 News; 10:00 1/2 Weather'
	while B says '10:00 News, 10:30 Weather'.  This filter reads the
	more detailed schedule info from B and uses it to output an
	improved version of A.	You can then diff this output against B to
	see if there are any differences _other than_ an increase in
	schedule detail.  (If A's schedule is not a less detailed version
	of B's, then add_time_info dies with an error.)
	
	Not currently used for anything, but will be used for testing the
	rewritten Ananova grabber against the old one.

2002-05-01 22:27  jveldhuis

	* grab/na/ZapListings.pm: crap, missed a ) :)

2002-05-01 22:25  jveldhuis

	* grab/na/ZapListings.pm: more fixes

2002-05-01 22:12  jveldhuis

	* grab/na/ZapListings.pm: zap2it decided to drop some of the
	spacing around () details.

2002-05-01 17:47  epaepa

	* grab/uk/tv_grab_uk.in, t/parallel_test: page_date_diff(): the new
	name for check_page_date().  It now returns an integer, the number
	of days by which the found date differs from the expected date - or
	undef if something is very wrong.  The kludgy manipulation of the
	expected date is as before.  This new version doesn't behave any
	differently; next I will add some code to cope with the latest
	Ananova weirdness.

2002-04-29 04:37  rmeden

	* choose/tv_check/tv_check: Changed "neartime" threshnold to from 3
	hours to 2.  This prevents a 2300 show syndicated show from
	matching a 2100.  I doubt anyone uses neartime anyway. :)

2002-04-26 20:31  jveldhuis

	* grab/na/ZapListings.pm: page failures now include http failure
	messages, fixed so program descriptions work again

2002-04-26 20:30  jveldhuis

	* grab/na/tv_grab_na: fixed subtitles to be simpler

2002-04-26 16:02  epaepa

	* filter/tv_extractinfo_en: Expanded the range of programmes which
	have 'presenter' not 'actor'.

2002-04-25 20:03  epaepa

	* filter/tv_grep.PL: Documentation fix for tv_grep and new
	'with-lang-or-empty' handler type.  Forgot to commit it earlier.

2002-04-23 15:36  epaepa

	* grab/uk/tv_grab_uk.in: Relaxed sanity check on Ananova's
	pointless DAYTIME, EVENING, LATENIGHT classification.

2002-04-23 15:05  epaepa

	* filter/tv_extractinfo_en: multipart_split_desc(): an exclamation
	mark does not mark the boundary between title and subtitle as
	previously thought, but shows the end of the title.  So it is like
	question mark and full stop, and the behaviour of all three has
	been made the same.  Except that while full stops are stripped from
	the end of titles, ? and ! are not.
	
	special_teletext_subtitles(): new handler to remove '(T)' from the
	end of programme descriptions, it signifies teletext subtitling.
	
	Avoided outputting empty descriptions, titles etc: after a regular
	expression has removed some text from one of these, it is removed
	if blank.  (New subroutine scrub_empty().)

2002-04-23 14:56  epaepa

	* filter/tv_grep.in, lib/XMLTV.pm.in, t/test_filters.t,
	t/data/test.xml, t/data/tv_cat_test_xml.expected,
	t/data/tv_extractinfo_en_test_xml.expected,
	t/data/tv_grep_a_test_xml.expected,
	t/data/tv_grep_category_g_or_title_h_test_xml.expected,
	t/data/tv_grep_eval_scalar_keys_5_test_xml.expected,
	t/data/tv_grep_premiere_clump_xml.expected,
	t/data/tv_grep_premiere_dups_xml.expected,
	t/data/tv_grep_premiere_length_xml.expected,
	t/data/tv_grep_premiere_overlap_xml.expected,
	t/data/tv_grep_premiere_simple_xml.expected,
	t/data/tv_grep_premiere_sort_xml.expected,
	t/data/tv_grep_premiere_test_empty_xml.expected,
	t/data/tv_grep_premiere_test_livre_xml.expected,
	t/data/tv_grep_premiere_test_xml.expected,
	t/data/tv_grep_premiere_x_whatever_xml.expected,
	t/data/tv_sort_by_channel_test_xml.expected,
	t/data/tv_sort_test_xml.expected: Started to distinguish between
	elements like <title>, which always have to have some
	human-readable content, and those like <premiere>, which may have
	an 'explanation' inside but do not require it.	The former have
	handler 'with-lang', the latter now 'with-lang-or-empty' which can
	return [] for an empty element.  Trying to write out inappropriate
	empty content (like <title></title>) will now give a warning.
	
	Updated tv_grep to cope with this: it is still necessary to give a
	regular expression as the argument to predicates like --premiere,
	but a regexp of '' will match all <premiere> elements, even empty
	ones.  So the old behaviour is preserved.  Added some new test
	cases for this (not complete coverage though) and an example of
	<last-chance> to test.xml.

2002-04-22 21:02  jveldhuis

	* grab/na/tv_grab_na: now verifies that all things in resulting
	prog details gets explicitly ignored or outputed - use
	--debuglistings to enable

2002-04-22 21:01  jveldhuis

	* grab/na/ZapListings.pm: multiple details appearing in () may not
	get to output xml

2002-04-20 18:22  epaepa

	* filter/tv_extractinfo_en: multipart_split_desc(): an exclamation
	mark _always_ indicates the end of the title and start of the
	description.  Titles ending in ! are not followed by a colon.

2002-04-20 17:28  epaepa

	* grab/uk/tv_grab_uk.in: Code tidy to comply with perlstyle(1)'s
	suggestion: 'uncuddled elses'.

2002-04-20 17:27  epaepa

	* filter/tv_extractinfo_en, lib/XMLTV.pm.in: Code tidy to conform
	with perlstyle(1)'s suggestion: 'uncuddled elses'.

2002-04-20 17:22  epaepa

	* filter/tv_grep.in: Use the XMLTV::Clumps module to make sure that
	when only some of the programmes sharing a clump are included in
	the output, the clumpidx information is updated accordingly.

2002-04-20 17:22  epaepa

	* lib/Clumps.pm: Added support for deleting a programme sharing a
	clump - fix_clumps() should now have complete functionality.

2002-04-20 16:57  epaepa

	* lib/Clumps.pm: Whoops - forgot to load Tie::RefHash.

2002-04-20 16:49  epaepa

	* t/data/: clump.xml, tv_cat_clump_xml.expected,
	tv_extractinfo_en_clump_xml.expected, tv_grep_a_clump_xml.expected,
	tv_grep_category_b_clump_xml.expected,
	tv_grep_category_e_and_title_f_clump_xml.expected,
	tv_grep_category_g_or_title_h_clump_xml.expected,
	tv_grep_channel_id_channel4_com_clump_xml.expected,
	tv_grep_channel_name_d_clump_xml.expected,
	tv_grep_eval_scalar_keys_5_clump_xml.expected,
	tv_grep_i_category_i_title_h_clump_xml.expected,
	tv_grep_i_category_i_title_j_clump_xml.expected,
	tv_grep_i_last_chance_c_clump_xml.expected,
	tv_grep_new_clump_xml.expected,
	tv_grep_on_after_2002_02_05_clump_xml.expected,
	tv_sort_by_channel_clump_xml.expected, tv_sort_clump_xml.expected,
	tv_to_latex_clump_xml.expected: tv_grep ought to update clumpidxes
	when removing programmes from a clump.	These new test cases expect
	that behaviour.

2002-04-20 16:25  epaepa

	* MANIFEST, Makefile.PL, filter/tv_extractinfo_en, lib/Clumps.pm:
	Refactored the fix_clumps() routine and its support routines into a
	new module XMLTV::Clumps.  This doesn't diminish the ugliness but
	it does at least get it out of the way.  I want to call
	fix_clumps() from other tools than tv_extractinfo_en - it's what
	you have to do whenever you delete / split / update a programme
	which shares a timeslot with others.
	
	All this underlines the need to get rid of clumpidx and replace it
	with something cleaner, but that will wait until after 0.5.

2002-04-20 16:22  epaepa

	* lib/TZ.pm: Just noticed no '1;' true-returning statement at the
	end of this module.  It seems to have managed okay withoutit so
	far, but it's good style to add one.

2002-04-20 15:26  epaepa

	* filter/tv_extractinfo_en: fix_clumps(): Work when a programme has
	been 'split' into one different programme.  Previously this case
	was not handled, but I see no reason why the existing code for 2 or
	more shouldn't work with 1.  Also try to preserve the original
	timezone when setting date strings.

2002-04-20 14:46  epaepa

	* filter/tv_extractinfo_en: Added an undocumented option
	--no-create-sub-titles which affects the behaviour of
	special_multipart(), making it create titles with colons in rather
	than splitting into title and sub-title.
	
	Recognize 'sports' as well as 'sport' as a category keyword.

2002-04-20 13:53  epaepa

	* filter/tv_extractinfo_en: special_multipart(): normally, the
	heuristic is that a programme must have at least three valid
	'times' included in its description to be considered a multipart. 
	But if the first word of the description is a time, waive that
	requirement.

2002-04-20 13:37  epaepa

	* filter/tv_extractinfo_en: special_multipart: match categories
	containing 'childrens' as well as 'children'.

2002-04-20 13:25  epaepa

	* filter/tv_extractinfo_en: special_multipart(): modified the
	category checking to look for words as substrings rather than
	simple string equality.  This is needed for the new Ananova
	listings which have categories like 'Children's Programmes' instead
	of 'children', for example.

2002-04-20 12:16  epaepa

	* lib/XMLTV.pm.in, t/data/test_empty.xml,
	t/data/tv_cat_test_empty_xml.expected,
	t/data/tv_extractinfo_en_test_empty_xml.expected,
	t/data/tv_grep_a_test_empty_xml.expected,
	t/data/tv_grep_category_b_test_empty_xml.expected,
	t/data/tv_grep_category_e_and_title_f_test_empty_xml.expected,
	t/data/tv_grep_category_g_or_title_h_test_empty_xml.expected,
	t/data/tv_grep_channel_id_channel4_com_test_empty_xml.expected,
	t/data/tv_grep_channel_name_d_test_empty_xml.expected,
	t/data/tv_grep_eval_scalar_keys_5_test_empty_xml.expected,
	t/data/tv_grep_i_category_i_title_h_test_empty_xml.expected,
	t/data/tv_grep_i_category_i_title_j_test_empty_xml.expected,
	t/data/tv_grep_i_last_chance_c_test_empty_xml.expected,
	t/data/tv_grep_new_test_empty_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_test_empty_xml.expected,
	t/data/tv_sort_by_channel_test_empty_xml.expected,
	t/data/tv_sort_test_empty_xml.expected,
	t/data/tv_to_latex_test_empty_xml.expected: Some sub-elements of
	<programme> are just convenient syntactic containers for other
	stuff, they don't mean anything in themselves.	These are
	<credits>, <video> and <audio>.  If these keys exist in the
	programme hash but don't contain anything, then do not write them.
	
	This makes things look nice if (for example) you delete all the
	actors from the 'credits' subhash.  When writing out, there will
	not be a useless empty <credits /> element.

2002-04-20 11:30  epaepa

	* filter/tv_extractinfo_en: special_multipart(): the 'base day'
	from which the times of subprogrammes are calculated should take
	into account timezone.

2002-04-20 10:59  epaepa

	* filter/tv_extractinfo_en: Remove trailing full stop when
	'Introduced by...' is a sentence.

2002-04-20 10:48  epaepa

	* filter/tv_extractinfo_en: Made the multipart programme splitting
	code take account of timezones.

2002-04-19 20:43  epaepa

	* filter/tv_extractinfo_en,
	t/data/tv_extractinfo_en_sort_xml.expected: Added a handler for the
	words like 'Thriller' or 'Drama' that appear at the end of
	programme descriptions.  These are converted into categories.  Also
	made the 'news' detector add to the list of existing categories,
	rather than doing nothing if categories already exist.

2002-04-19 17:39  epaepa

	* filter/tv_extractinfo_en: Added a handler for the 'TVM' that
	appears at the front of descriptions in old-style Ananova listings,
	I think it stands for 'TV movie'.

2002-04-19 16:07  epaepa

	* grab/uk/tv_grab_uk.in: Stopped translating the 'new' flag to <new
	/> in XML, that's not what it means.

2002-04-19 15:25  epaepa

	* filter/tv_extractinfo_en: Added a handler to parse out a year at
	the start of the description and put it in <date>.

2002-04-19 14:07  jveldhuis

	* grab/na/ZapListings.pm: cleaner identification of french part x
	of y details

2002-04-19 13:33  jveldhuis

	* grab/na/ZapListings.pm: identifies french part x of y details, or
	at least some

2002-04-18 18:37  epaepa

	* filter/tv_extractinfo_en: Bug fix for newly added
	special_new_series().

2002-04-18 18:00  epaepa

	* filter/tv_extractinfo_en: Added a handler for 'New series' text
	in programme descriptions.

2002-04-18 17:06  epaepa

	* xmltv.dtd: Clarified the meaning of the 'new' element.  The old
	UK grabber was getting it wrong.

2002-04-18 10:48  epaepa

	* grab/uk/tv_grab_uk.in: Fixed incorrect episode-num content.  The
	episode number is the middle item - the last item is for 'part 3 of
	4' stuff.  I really ought to change this episode-num stuff in the
	DTD to something less confusing.

2002-04-18 10:31  epaepa

	* lib/XMLTV.pm.in: Fix for aspect-ratio writing bug.

2002-04-18 10:29  epaepa

	* t/data/: tv_cat_test_xml.expected,
	tv_extractinfo_en_test_xml.expected, tv_grep_a_test_xml.expected,
	tv_grep_category_g_or_title_h_test_xml.expected,
	tv_grep_eval_scalar_keys_5_test_xml.expected,
	tv_sort_by_channel_test_xml.expected, tv_sort_test_xml.expected:
	Noticed a longstanding bug in file writing.  Aspect ratio is not a
	Boolean!

2002-04-15 12:56  jveldhuis

	* grab/na/ZapListings.pm: added language Dene

2002-04-08 00:30  epaepa

	* grab/uk/tv_grab_uk.in: Added code to notice when Ananova is
	running one day behind (which happens for example for a short time
	after midnight) and cope without too much complaining.	Fixed
	warnings when using newer XMLTV.pm versions.

2002-03-31 23:42  epaepa

	* lib/XMLTV.pm.in: Added some trace and debugging code; made the
	'exactly one' multiplicity specifier for parsing match what the
	documentation says; in parse(), sanity-check for something that
	looks like XMLTV before firing up the DOM.

2002-03-31 23:40  epaepa

	* choose/tv_pick/tv_pick_cgi: The 'date' element of a programme
	hash is a single value if present, it's not multivalued.  Hard to
	believe that this bug went unnoticed until now - obviously the
	listings I use just don't have dates.

2002-03-30 15:56  epaepa

	* lib/: XMLTV.pm.PL, XMLTV.pm.in: Fixes to the POD documentation so
	it formats correctly.  There are still some problems with the
	formatting of the lists of handlers, which mystify me at the
	moment.  Never mind, I don't expect many people to actually read
	this documentation as it stands.

2002-03-30 15:38  epaepa

	* lib/XMLTV.pm.in: Made %Handlers into a global variable so that
	it's possible (when absolutely necessary) for users to mess around
	with the tables of parsing and writing routines, so they can add
	their own extensions to the file format.

2002-03-30 15:29  epaepa

	* lib/XMLTV.pm.in: Make sure Emacs knows this is a Perl file.

2002-03-30 13:38  epaepa

	* grab/de/tv_grab_de: The listings have moved to a new site and
	most of the problems have been fixed.  This grabber is looking very
	slim :-).

2002-03-25 15:55  epaepa

	* MANIFEST, lib/XMLTV.pm.in, t/data/tv_cat_x_whatever_xml.expected,
	t/data/tv_extractinfo_en_x_whatever_xml.expected,
	t/data/tv_grep_a_x_whatever_xml.expected,
	t/data/tv_grep_category_b_x_whatever_xml.expected,
	t/data/tv_grep_category_e_and_title_f_x_whatever_xml.expected,
	t/data/tv_grep_category_g_or_title_h_x_whatever_xml.expected,
	t/data/tv_grep_channel_id_channel4_com_x_whatever_xml.expected,
	t/data/tv_grep_channel_name_d_x_whatever_xml.expected,
	t/data/tv_grep_eval_scalar_keys_5_x_whatever_xml.expected,
	t/data/tv_grep_i_category_i_title_h_x_whatever_xml.expected,
	t/data/tv_grep_i_category_i_title_j_x_whatever_xml.expected,
	t/data/tv_grep_i_last_chance_c_x_whatever_xml.expected,
	t/data/tv_grep_new_x_whatever_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_x_whatever_xml.expected,
	t/data/tv_sort_by_channel_x_whatever_xml.expected,
	t/data/tv_sort_x_whatever_xml.expected,
	t/data/tv_to_latex_x_whatever_xml.expected, t/data/x-whatever.xml:
	Documented the feature that hash keys beginning with an underscore
	are skipped on output.	And now keys beginning 'debug_' are written
	as comments, this replaces the old special handling for 'source'. 
	Hmm, I ought to test this feature.
	
	Added an analogous feature for input: any attributes or elements
	whose names begin 'x-' are ignored.  This means that 'x-' names are
	for extensions to the file format not yet supported by the DTD or
	by XMLTV.pm.

2002-03-22 05:20  rmeden

	* choose/tv_check/tv_check: Configure: always start sorted by title
	Scan: minor bug fixes

2002-03-22 04:26  rmeden

	* Makefile.PL: Fix to allow uninstall to work on windows.

2002-03-19 06:41  rmeden

	* t/test_filters.t: fix bugs preventing tests from passing on
	windows.
	
	If windows swap / for \ to find (and execute) batch file version of
	script
	
	close OUT and EXPECTED ( windows can't delete an open file )

2002-03-18 06:54  jveldhuis

	* grab/na/tv_grab_na: minor debugging code removed :)

2002-03-16 19:41  epaepa

	* MANIFEST, Makefile.PL, filter/tv_grep.PL, filter/tv_grep.in,
	lib/XMLTV.pm, lib/XMLTV.pm.PL, lib/XMLTV.pm.in: Added pod
	documentation to XMLTV.pm.  As with tv_grep, part of it is
	automatically generated from the list of 'handlers' for subelements
	of <programme> and <channel>.  This necessitated moving XMLTV.pm to
	XMLTV.pm.in and writing a short script XMLTV.pm.PL to generate the
	end file.
	
	Also I needed to change the way the list of handlers is stored -
	now they're looked up by a string rather than being subroutine
	references.  This is so we can also use the strings in the pod
	documentation :-).  The function list_programme_keys() has been
	changed to just return the list of handlers (more or less), which
	has meant changing tv_grep.  Found and fixed a bug in tv_grep in
	the meantime, and made a small change to XMLTV.pm's handling of
	subtitles.  Apart from those fixes and any new bugs introduced, the
	behaviour should be the same - just we now have some rather
	pedantic half-auto-generated documentation as well.

2002-03-16 19:24  epaepa

	* t/data/: test.xml, tv_cat_test_xml.expected,
	tv_extractinfo_en_test_xml.expected, tv_grep_a_test_xml.expected,
	tv_grep_category_g_or_title_h_test_xml.expected,
	tv_grep_eval_scalar_keys_5_test_xml.expected,
	tv_sort_by_channel_test_xml.expected, tv_sort_test_xml.expected:
	Noticed that test.xml didn't have anything for subtitles, added it
	and modified the expected outputs accordingly.	(This doesn't quite
	match the current version of XMLTV.pm, but it matches the one I'm
	about to commit.)

2002-03-16 18:57  epaepa

	* t/: test_filters.t,
	data/tv_grep_i_category_i_title_h_dups_xml.expected,
	data/tv_grep_i_category_i_title_h_length_xml.expected,
	data/tv_grep_i_category_i_title_h_overlap_xml.expected,
	data/tv_grep_i_category_i_title_h_simple_xml.expected,
	data/tv_grep_i_category_i_title_h_sort_xml.expected,
	data/tv_grep_i_category_i_title_h_test_livre_xml.expected,
	data/tv_grep_i_category_i_title_h_test_xml.expected,
	data/tv_grep_i_category_i_title_j_simple_xml.expected: Found a bug
	in tv_grep (while making the changes I'm about to commit next), it
	wasn't caught by the test suite because the test suite itself was
	wrong (I didn't check the expected results thoroughly enough). 
	Fixed that, and added another test.

2002-03-16 18:39  epaepa

	* t/test_filters.t: When a test fails to create its output file, it
	'fails' but the test suite continues.

2002-03-16 16:02  jveldhuis

	* grab/na/tv_grab_na: improved retry message - I have no idea what
	I was thinking :)

2002-03-15 19:08  epaepa

	* grab/uk/tv_grab_uk.in: Print copyright message to stderr on
	download, as requested by Ananova.

2002-03-15 18:54  epaepa

	* grab/uk/: Ananova_Channel.pm, channel_ids, tv_grab_uk.in: New
	version (though not a full rewrite) of the UK grabber.	This uses
	the new show=allchannels channel listing on the website, which
	eliminates a lot of the hassle with 'definitive' versus 'tentative'
	channel names, terrestrial channels not listed, and so on.  On the
	downside there is no longer any way to distinguish radio and
	satellite channels, the grabber guesses that based on the name.

2002-03-15 18:51  epaepa

	* MANIFEST: Forgot to add the new test files for tv_sort
	--by-channel to the MANIFEST.

2002-03-15 18:50  epaepa

	* t/parallel_test: The fixup commands can now be applied to both
	the old output and the new output independently, and can be a list
	of commands rather than just one or zero.  Added new flags -a
	(reuse output from old version) and -b (reuse output from new
	version), together these replace the -q (quick) flag.

2002-03-15 18:47  epaepa

	* grab/Memoize.pm: Behave correctly when --cache is last argument.

2002-03-15 18:47  epaepa

	* xmltv.dtd: Formatting change for the sake of dtd2latex.

2002-03-15 16:12  epaepa

	* filter/tv_sort, t/test_filters.t,
	t/data/tv_sort_by_channel_dups_xml.expected,
	t/data/tv_sort_by_channel_length_xml.expected,
	t/data/tv_sort_by_channel_overlap_xml.expected,
	t/data/tv_sort_by_channel_simple_xml.expected,
	t/data/tv_sort_by_channel_sort_xml.expected,
	t/data/tv_sort_by_channel_test_livre_xml.expected,
	t/data/tv_sort_by_channel_test_xml.expected: Added a new option
	--by-channel to tv_sort to sort by channels first, then times.

2002-03-12 17:14  jveldhuis

	* grab/na/ZapListings.pm: cleaned up program details only to scrape
	the ones in parenthesis

2002-03-11 23:48  jveldhuis

	* grab/na/ZapListings.pm: now identified languages with / and -
	separators

2002-03-11 23:46  jveldhuis

	* grab/na/tv_grab_na: fixed minor bugs - thanks Brian

2002-03-11 21:47  jveldhuis

	* grab/na/tv_grab_na: fixed --retry-limit rename problem :)

2002-03-11 20:00  jveldhuis

	* grab/na/tv_grab_na: slight warning message change

2002-03-11 19:58  jveldhuis

	* grab/na/tv_grab_na: added retry limits and retry delays in
	configure and command line options

2002-03-10 11:28  epaepa

	* t/test_filters.t: The 'make test' code no longer uses diff(1), it
	compares the contents of two files purely in Perl.

2002-03-10 11:16  epaepa

	* Makefile.PL: Don't run 'fixin' on documentation and share files -
	it's intended for Perl scripts only, to run things like pl2bat!

2002-03-09 18:51  epaepa

	* Makefile.PL: Kinder, gentler error messages for missing
	dependencies.  I will make a feature-request or patch against
	MakeMaker to do the same thing, but for the time being the code
	needs to be in Makefile.PL.

2002-03-07 13:57  epaepa

	* Makefile.PL, choose/tv_check/tv_check, filter/tv_cat,
	filter/tv_extractinfo_en, filter/tv_grep.in, filter/tv_sort,
	filter/tv_to_latex, grab/de/tv_grab_de, grab/uk/tv_grab_uk.in,
	t/test_filters.t: Got rid of most of the usage() subroutines in
	favour of XMLTV::Usage.  It seems to work okay, unless I made a
	typing error.  Also realized I had forgotten to include tv_check in
	the list of binaries.

2002-03-07 13:38  epaepa

	* MANIFEST, Makefile.PL, lib/Usage.pm: Added a new library
	XMLTV::Usage to save on ten identical usage() subroutines.  The
	next change will start using it.

2002-03-07 13:17  epaepa

	* filter/tv_cat, filter/tv_extractinfo_en, filter/tv_sort,
	filter/tv_to_latex, grab/de/tv_grab_de, grab/uk/tv_grab_uk.in,
	t/test_filters.t: Made sure that failure of GetOptions() is caught
	and triggers a usage message (and unsuccessful exit).  I had
	omitted to do this before now.

2002-03-07 13:09  epaepa

	* grab/uk/tv_grab_uk.in: Fixed usage message properly (I hope).

2002-03-07 13:01  epaepa

	* grab/uk/tv_grab_uk.in: Added a usage message (dealt with FIXME).

2002-03-07 12:57  epaepa

	* README: Updated README for 0.5pre2.

2002-03-07 12:48  epaepa

	* filter/tv_extractinfo_en, grab/uk/tv_grab_uk.in, t/parallel_test,
	t/data/simple.xml, t/data/sort.xml,
	t/data/tv_cat_simple_xml.expected, t/data/tv_cat_sort_xml.expected,
	t/data/tv_extractinfo_en_simple_xml.expected,
	t/data/tv_extractinfo_en_sort_xml.expected,
	t/data/tv_grep_a_simple_xml.expected,
	t/data/tv_grep_a_sort_xml.expected,
	t/data/tv_grep_category_g_or_title_h_simple_xml.expected,
	t/data/tv_grep_category_g_or_title_h_sort_xml.expected,
	t/data/tv_grep_channel_id_channel4_com_simple_xml.expected,
	t/data/tv_grep_eval_scalar_keys_5_simple_xml.expected,
	t/data/tv_grep_eval_scalar_keys_5_sort_xml.expected,
	t/data/tv_grep_i_category_i_title_j_simple_xml.expected,
	t/data/tv_sort_simple_xml.expected,
	t/data/tv_sort_sort_xml.expected: Fixed longstanding bug of output
	times in XML containing colons.  The DTD says they should not.	It
	doesn't look as pretty now :-(.

2002-03-07 12:20  epaepa

	* grab/uk/tv_grab_uk.in: Whoops, messed up the module inclusion for
	tv_grab_uk.  I fixed this once but edited the generated file rather
	than the source tv_grab_uk.in (d'oh!).
	
	Marked a few more tasks as 'done'.

2002-03-07 12:16  epaepa

	* doc/QuickStart: Unified the grabber QuickStart instructions, they
	are quite similar now.

2002-03-07 11:53  epaepa

	* MANIFEST, Makefile.PL, Uninstall.pm: Hacked together an
	'uninstall' target.  It removes files created by 'make install'. 
	However it does not remove empty directories, and leaves the
	packlist and perllocal.pod files alone.  (These files are
	_modified_ in strange ways on installation, it's hard to unmodify
	them.)

2002-03-07 11:42  epaepa

	* grab/uk/tv_grab_uk.in: Whoops, forgot to import the gettz()
	function.  I'm trying to move away from export-by-default (@EXPORT)
	towards export-if-asked (@EXPORT_OK).

2002-03-07 11:39  epaepa

	* filter/tv_extractinfo_en: Reinstated the timezone preservation in
	time12to24(), I think I removed it by accident.  Doesn't seem to
	make any difference :-).

2002-03-06 17:20  epaepa

	* filter/tv_extractinfo_en, filter/tv_grep.in, filter/tv_sort,
	filter/tv_to_latex, grab/uk/UK_TZ.pm, lib/TZ.pm: The DTD says quite
	clearly 'if no explicit timezone is given, UT is assumed'.  But
	until now that's not what the various tools were doing: they were
	interpreting plain dates according to the local timezone.  Jerry
	spotted this by running 'make test'; the tv_to_latex output was
	wrong.
	
	I've fixed most of the programs to have Date_Init('TZ=UT').  The
	external timezone should not affect the output of filter programs
	(it should depend only on the input) so this is the right thing for
	those.	For tv_grab_de TZ=CET is assumed.  But I haven't changed
	tv_grab_na or tv_choose because I didn't want to risk breaking
	them.  They do need checking though.
	
	One nice side-effect of calling Date_Init() in every program is
	that the Windows timezone error will go away.

2002-03-06 17:12  epaepa

	* MANIFEST.SKIP: Whoops, regexp confusion.

2002-03-06 17:11  epaepa

	* MANIFEST.SKIP: Skip warning about the '*.orig' backup files
	generated by patch(1).

2002-03-06 16:11  epaepa

	* MANIFEST, Makefile.PL, XMLTV.pm, lib/XMLTV.pm: Moved XMLTV.pm
	into the lib/ directory along with TZ.pm.  So now lib/ is the place
	for modules needed by the rest of the project (as distinct from
	modules needed only for a particular program, which can live in
	that program's own directory).	This is ad hoc, but tidier than
	before.

2002-03-06 16:01  epaepa

	* MANIFEST, Makefile.PL, XMLTV.pm, filter/tv_to_latex,
	grab/uk/UK_TZ.pm, lib/TZ.pm: Created a new XMLTV::TZ module for the
	two timezone-handling routines gettz() and
	ParseDate_PreservingTZ().  So now the general timezone stuff is in
	XMLTV::TZ and the UK-specific summer time stuff is in XMLTV::UK_TZ.

2002-03-06 15:36  epaepa

	* t/test_filters.t: Formatting change.

2002-03-06 15:36  epaepa

	* t/test_filters.t: Redirect stderr to a file which is removed if
	the test passes.

2002-03-06 13:06  epaepa

	* grab/na/tv_grab_na: Created manual page, and changed --config
	option to --config-file.

2002-03-06 13:03  epaepa

	* grab/Ask.pm: Fixed the regexp match of $res by quoting with
	\Q...\E.  Otherwise strange characters in the user response cause
	the regexp to do strange things.

2002-03-06 12:03  epaepa

	* grab/uk/tv_grab_uk.in: Manual page for tv_grab_uk.

2002-03-05 23:07  jveldhuis

	* grab/na/ZapListings.pm: added a couple languages and relaxed the
	requirements on there names

2002-03-04 18:35  epaepa

	* MANIFEST, grab/uk/tv_grab_uk.in, grab/uk/test_configs/all,
	grab/uk/test_configs/bbc1, grab/uk/test_configs/carlton,
	grab/uk/test_configs/gratis, grab/uk/test_configs/gratis_radio,
	grab/uk/test_configs/music_nickelodeon_e4,
	grab/uk/test_configs/radio, grab/uk/test_configs/satellite,
	grab/uk/test_configs/tynetees, t/parallel_test: Using tv_grab_uk is
	now more like tv_grab_na: there's a separate --configure stage
	where you choose what channels to download.  This is slightly less
	flexible than the old command line arguments, and I still have to
	work out a decent system for prompting the user about new channels
	that have appeared on the site.  But it should make things more
	user-friendly and consistent.
	
	For the benefit of testing (parallel_test) there's a --config-file
	argument and a set of sample configs.

2002-03-04 17:02  epaepa

	* grab/na/tv_grab_na: Display the providers to the user in the same
	order as the website (as it was before).

2002-03-04 16:28  epaepa

	* grab/: Ask.pm, uk/tv_grab_uk.in: Finished writing the --configure
	routine for tv_grab_uk.  All I have to do now is actually read the
	configuration file when it runs :-).  To handle long runs of yes/no
	with optional 'yes to all' I added
	XMLTV::Ask::askManyBooleanQuestions().	I have not yet modified
	tv_grab_na to use this routine although it would probably be a good
	idea for tidyness.
	
	Also added some (mostly futile) error checking and recovery to
	tv_grab_uk.  This happened when I was tracking down a date error:
	it turns out that Ananova rotate their pages at some unspecified
	time after midnight, so tv_grab_uk needs to compensate.  This isn't
	yet done.

2002-03-04 16:17  epaepa

	* MANIFEST.SKIP: Skip warning about XMLTV::Memoize's *.cache files.

2002-03-04 14:54  epaepa

	* grab/: Ask.pm, na/tv_grab_na: Removed the unvalidated questions
	from XMLTV::Ask, now the response must always be in the list of
	options (as must the default).	The provider selection in
	tv_grab_na now uses askQuestion() rather than printing out options
	by itself.

2002-03-04 10:15  epaepa

	* grab/Memoize.pm: Fixed argument parsing so eg --cache --configure
	is treated as two separate options.

2002-03-01 21:14  jveldhuis

	* grab/na/tv_grab_na: added warning on grab that config file
	location needs upgrading

2002-03-01 21:09  jveldhuis

	* grab/na/tv_grab_na: now on --configure, configuration file moved
	to new location ie from ~/.xmltv_na to ~/xmltv/tv_grab_na
	
	fixed all calls to Ask.pm subroutines, poorly separated :<

2002-03-01 21:07  jveldhuis

	* grab/Ask.pm: fixed it because it was obviously not tested

2002-02-28 18:51  jveldhuis

	* grab/na/ZapListings.pm: added a couple of new languages I have
	come across

2002-02-28 18:03  epaepa

	* grab/Ask.pm, grab/uk/tv_grab_uk.in, t/parallel_test: *Started* to
	implement --configure for tv_grab_uk.  This means moving the
	existing 'main program' into a grab() subroutine and then calling
	either grab() or configure() depending on the command line.  The
	--configure option doesn't work yet, but tv_grab_uk is no worse
	than it was before and passes the test suite (parallel_test), so
	now is a good interim time to commit before I mess it up further.
	
	Made the askMyQuestion() routine in XMLTV::Ask notice when there
	are a long-winded set of options and present them as multiple
	choice with numbers.  So you can use this single routine for both
	short and long questions.

2002-02-28 13:50  epaepa

	* MANIFEST.SKIP: 'make distcheck' doesn't warn about Emacs autosave
	files.

2002-02-28 13:48  epaepa

	* MANIFEST, Makefile.PL, grab/Ask.pm, grab/na/tv_grab_na: Moved the
	question-asking routines from the --configure stage of tv_grab_na
	to a new support module XMLTV::Ask.

2002-02-28 12:19  epaepa

	* grab/Memoize.pm: Fixed the choice of cache filename when --cache
	is given to a program that calls XMLTV::Memoize::check_argv().	It
	should be in the current directory, not the same directory as the
	binary!

2002-02-28 12:15  epaepa

	* MANIFEST, MANIFEST.SKIP, Makefile.PL, mkdist,
	grab/uk/tv_grab_uk.in, grab/uk/channel_pkgs/adult,
	grab/uk/channel_pkgs/arts, grab/uk/channel_pkgs/asia,
	grab/uk/channel_pkgs/children, grab/uk/channel_pkgs/classics,
	grab/uk/channel_pkgs/comedy, grab/uk/channel_pkgs/entertainment,
	grab/uk/channel_pkgs/factual, grab/uk/channel_pkgs/film,
	grab/uk/channel_pkgs/gratis, grab/uk/channel_pkgs/lifestyle,
	grab/uk/channel_pkgs/misc, grab/uk/channel_pkgs/music,
	grab/uk/channel_pkgs/musicchoice, grab/uk/channel_pkgs/news,
	grab/uk/channel_pkgs/religion, grab/uk/channel_pkgs/scifi,
	grab/uk/channel_pkgs/shop, grab/uk/channel_pkgs/sport,
	grab/uk/channel_pkgs/travel: Moved out the rest of tv_grab_uk's
	channel data into files installed in share/.  This isn't ideal,
	there should be a way for users to override them or create new
	channel packages with files in their home directory, but that will
	come later.
	
	Made sure that 'make distclean' works properly.  It doesn't remove
	the files removed by mkdist, but apart from that should check that
	the working copy is prepared for distribution.	(Also do 'cvs -q
	update -Pd' to check there are no files left to check in.)

2002-02-28 12:12  epaepa

	* mkdist: Modified the list of files and directories to remove.  A
	single list is sufficient, and now if the files are missing anyway
	they're just ignored.  This will be handy when testing new
	additions to the distribution.

2002-02-28 12:02  epaepa

	* README: updated version to XMLTV test

2002-02-27 18:10  epaepa

	* Makefile.PL, grab/uk/channel_ids, grab/uk/tv_grab_uk,
	grab/uk/tv_grab_uk.PL, grab/uk/tv_grab_uk.in, t/parallel_test:
	Begun the process of moving the hardcoded channel data out of
	tv_grab_uk and into text files.  To start with I have put the big
	list mapping Ananova ids to XMLTV ids into its own file, which
	lives in the share/ directory (eg /usr/local/share/).  This meant
	altering Makefile.PL to support 'share' files in the same way it
	was already altered for 'docs', and processing tv_grab_uk on
	installation to set the path to the data file.
	
	One side effect of the new way of loading the data is that the
	channel 'BBC1' now maps to generic BBC1 rather than the BBC1 West
	it was before (for some reason).  This is probably because I
	reordered the Ananova ids in the channel_ids file.  But that looks
	like a good side effect.

2002-02-27 17:50  epaepa

	* mkdist: Commented out version number number check to allow
	numbers like '0.5pre1'.

2002-02-25 17:27  epaepa

	* README: Updated README for 0.5pre1, a testing release I'm about
	to make.

2002-02-25 16:55  epaepa

	* t/data/: length.xml, tv_cat_length_xml.expected,
	tv_extractinfo_en_length_xml.expected,
	tv_grep_a_length_xml.expected,
	tv_grep_category_b_length_xml.expected,
	tv_grep_category_e_and_title_f_length_xml.expected,
	tv_grep_category_g_or_title_h_length_xml.expected,
	tv_grep_channel_id_channel4_com_length_xml.expected,
	tv_grep_channel_name_d_length_xml.expected,
	tv_grep_eval_scalar_keys_5_length_xml.expected,
	tv_grep_i_category_i_title_j_length_xml.expected,
	tv_grep_i_last_chance_c_length_xml.expected,
	tv_grep_new_length_xml.expected,
	tv_grep_on_after_2002_02_05_length_xml.expected,
	tv_sort_length_xml.expected, tv_to_latex_length_xml.expected: New
	test case for suspected bug with <length>.  Turned out that wasn't
	the bug, but building up the test suite is a good thing anyway.
	
	(I plan to slim down 'make test' a bit so it doesn't grow linearly
	with both the number of filters and number of test cases.)

2002-02-25 16:53  epaepa

	* Makefile.PL: Added a dependency on Compress::Zlib, needed by
	tv_grab_de.  I plan to split up the dependencies a bit soon.

2002-02-25 16:49  epaepa

	* doc/QuickStart: Added mention of tv_grab_de, although I still
	don't know exactly what country(s) it corresponds to.

2002-02-24 19:54  epaepa

	* MANIFEST, Makefile.PL, grab/de/tv_grab_de: Yay, another grabber! 
	This time for Germany and Austria.
	
	Actually I tell a lie - this is just fetching the XML files which
	Goofy makes available from his database.  The service resumed
	recently.  But now we have a standard way to get listings rather
	than telling users 'go and download these files by hand'.

2002-02-24 19:52  epaepa

	* XMLTV.pm, choose/tv_check/tv_check, choose/tv_pick/tv_pick_cgi,
	filter/tv_cat, filter/tv_extractinfo_en, filter/tv_grep.in,
	filter/tv_sort, filter/tv_to_latex: Replaced XMLTV::read_data()
	with XMLTV::parsefile(), which reads from a filename or URL, and
	XMLTV::parse(), which reads XML straight from a string.  This is
	the same interface as XML::DOM.  write_data() has not changed
	because I couldn't think of a better name.

2002-02-24 18:59  epaepa

	* grab/: na/tv_grab_na, uk/tv_grab_uk: Changed tv_grab_na's version
	number checking to use the date rather than the CVS id.  The date
	is guaranteed to increase monotonically for any given development
	branch, so this should mean we don't have to mess with CVS in
	future.
	
	Added a check that --days isn't negative to both grabbers - it
	can't hurt :-).

2002-02-24 18:34  epaepa

	* MANIFEST, Makefile.PL, grab/Memoize.pm, grab/uk/tv_grab_uk: Moved
	the code for the undocumented --cache option from tv_grab_uk into a
	new module XMLTV::Memoize.  Then caching should be fairly easy to
	add to new grabbers.

2002-02-24 18:33  epaepa

	* t/parallel_test: Modified to work with the blib/ setup.  It is
	still specific to my directory structure but should be easy to
	change for yours.

2002-02-24 17:51  epaepa

	* XMLTV/: Ananova_Channel.pm, UK_TZ.pm, ZapListings.pm: Removing
	old copies of Perl modules, they have moved to new homes.

2002-02-24 17:22  epaepa

	* XMLTV.pm, filter/tv_cat: Made tv_cat into a library function,
	XMLTV::cat().  This is because the forthcoming tv_grab_de will use
	it too.  I was thinking of making tv_grab_de as a shell script
	running wget and tv_cat, which would be cool, but I like Perl too
	much.

2002-02-24 17:20  epaepa

	* t/test_filters.t: Fixed test_filters so it doesn't chdir().  It
	can't do that because the @INC path is set relative to the current
	directory ('blib/lib' and others).  Previously it was working by
	accident, picking up XMLTV.pm and stuff installed elsewhere.

2002-02-24 17:18  epaepa

	* t/data/: simple.xml, tv_cat_simple_xml.expected,
	tv_extractinfo_en_simple_xml.expected,
	tv_grep_a_simple_xml.expected,
	tv_grep_category_b_simple_xml.expected,
	tv_grep_category_e_and_title_f_simple_xml.expected,
	tv_grep_category_g_or_title_h_simple_xml.expected,
	tv_grep_channel_id_channel4_com_simple_xml.expected,
	tv_grep_channel_name_d_simple_xml.expected,
	tv_grep_eval_scalar_keys_5_simple_xml.expected,
	tv_grep_i_category_i_title_j_simple_xml.expected,
	tv_grep_i_last_chance_c_simple_xml.expected,
	tv_grep_new_simple_xml.expected,
	tv_grep_on_after_2002_02_05_simple_xml.expected,
	tv_sort_simple_xml.expected, tv_to_latex_simple_xml.expected: I
	wrote an example XMLTV file to add to the web page, and thought it
	might as well go into the test suite too.  It would be rather
	embarassing if the software stopped handling the example on the web
	page...

2002-02-24 14:18  epaepa

	* filter/: tv_cat, tv_extractinfo_en, tv_grep.in, tv_sort,
	tv_to_latex: Finished writing the manual pages for the filters. 
	Not bothering to document the --help option, it should be obvious
	and GNU grep's manpage doesn't.

2002-02-23 18:41  epaepa

	* MANIFEST, Makefile.PL, filter/tv_extractinfo_en, filter/tv_grep,
	filter/tv_grep.PL, filter/tv_grep.in: Added two more manual pages:
	for tv_grep and tv_extractinfo_en.  The one for tv_grep was tricky
	because many of that command's options are automatically generated
	from the file format description in XMLTV.pm.  From now on
	tv_grep.in is the file to edit, and tv_grep.PL processes it into
	the final version.  Since tv_grep.in behaves just like tv_grep this
	should not be any great hardship.

2002-02-23 16:34  epaepa

	* Makefile.PL, t/test_filters.t: The special test case handling is
	no longer needed, we just need to tell test_filters.t where the
	programs and data files can be found and then we can use
	Test::Harness as normal.

2002-02-22 18:27  epaepa

	* Makefile.PL, filter/tv_cat: Our first manual page - for tv_cat. 
	Will add manpages for all the other command-line tools soon.

2002-02-22 18:09  epaepa

	* Makefile.PL: Fixed version number in directory
	.../share/doc/xmltv-$VERSION.

2002-02-22 18:06  epaepa

	* MANIFEST, Makefile.PL, tv_cat, tv_check, tv_extractinfo_en,
	tv_grab_na, tv_grab_uk, tv_grep, tv_pick_cgi, tv_sort, tv_to_latex,
	choose/tv_check/README.tv_check, choose/tv_check/tv_check,
	choose/tv_check/tv_check_doc.html,
	choose/tv_check/tv_check_doc.jpg, choose/tv_pick/tv_pick_cgi,
	doc/COPYING, doc/README, doc/coding_standards,
	doc/grabber_interface, doc/tv_check_doc.html, doc/tv_check_doc.jpg,
	doc/code/coding_standards, doc/code/grabber_interface,
	filter/tv_cat, filter/tv_extractinfo_en, filter/tv_grep,
	filter/tv_sort, filter/tv_to_latex, grab/na/ZapListings.pm,
	grab/na/tv_grab_na, grab/uk/Ananova_Channel.pm, grab/uk/UK_TZ.pm,
	grab/uk/tv_grab_uk, t/README, t/parallel_test, t/test_filters.t,
	t/data/dups.xml, t/data/overlap.xml, t/data/sort.xml,
	t/data/test.xml, t/data/test_livre.xml,
	t/data/tv_cat_dups_xml.expected,
	t/data/tv_cat_overlap_xml.expected,
	t/data/tv_cat_sort_xml.expected,
	t/data/tv_cat_test_livre_xml.expected,
	t/data/tv_cat_test_xml.expected,
	t/data/tv_extractinfo_en_dups_xml.expected,
	t/data/tv_extractinfo_en_overlap_xml.expected,
	t/data/tv_extractinfo_en_sort_xml.expected,
	t/data/tv_extractinfo_en_test_livre_xml.expected,
	t/data/tv_extractinfo_en_test_xml.expected,
	t/data/tv_grep_a_dups_xml.expected,
	t/data/tv_grep_a_overlap_xml.expected,
	t/data/tv_grep_a_sort_xml.expected,
	t/data/tv_grep_a_test_livre_xml.expected,
	t/data/tv_grep_a_test_xml.expected,
	t/data/tv_grep_category_b_dups_xml.expected,
	t/data/tv_grep_category_b_overlap_xml.expected,
	t/data/tv_grep_category_b_sort_xml.expected,
	t/data/tv_grep_category_b_test_livre_xml.expected,
	t/data/tv_grep_category_b_test_xml.expected,
	t/data/tv_grep_category_e_and_title_f_dups_xml.expected,
	t/data/tv_grep_category_e_and_title_f_overlap_xml.expected,
	t/data/tv_grep_category_e_and_title_f_sort_xml.expected,
	t/data/tv_grep_category_e_and_title_f_test_livre_xml.expected,
	t/data/tv_grep_category_e_and_title_f_test_xml.expected,
	t/data/tv_grep_category_g_or_title_h_dups_xml.expected,
	t/data/tv_grep_category_g_or_title_h_overlap_xml.expected,
	t/data/tv_grep_category_g_or_title_h_sort_xml.expected,
	t/data/tv_grep_category_g_or_title_h_test_livre_xml.expected,
	t/data/tv_grep_category_g_or_title_h_test_xml.expected,
	t/data/tv_grep_channel_id_channel4_com_dups_xml.expected,
	t/data/tv_grep_channel_id_channel4_com_overlap_xml.expected,
	t/data/tv_grep_channel_id_channel4_com_sort_xml.expected,
	t/data/tv_grep_channel_id_channel4_com_test_livre_xml.expected,
	t/data/tv_grep_channel_id_channel4_com_test_xml.expected,
	t/data/tv_grep_channel_name_d_dups_xml.expected,
	t/data/tv_grep_channel_name_d_overlap_xml.expected,
	t/data/tv_grep_channel_name_d_sort_xml.expected,
	t/data/tv_grep_channel_name_d_test_livre_xml.expected,
	t/data/tv_grep_channel_name_d_test_xml.expected,
	t/data/tv_grep_eval_scalar_keys_5_dups_xml.expected,
	t/data/tv_grep_eval_scalar_keys_5_overlap_xml.expected,
	t/data/tv_grep_eval_scalar_keys_5_sort_xml.expected,
	t/data/tv_grep_eval_scalar_keys_5_test_livre_xml.expected,
	t/data/tv_grep_eval_scalar_keys_5_test_xml.expected,
	t/data/tv_grep_i_category_i_title_j_dups_xml.expected,
	t/data/tv_grep_i_category_i_title_j_overlap_xml.expected,
	t/data/tv_grep_i_category_i_title_j_sort_xml.expected,
	t/data/tv_grep_i_category_i_title_j_test_livre_xml.expected,
	t/data/tv_grep_i_category_i_title_j_test_xml.expected,
	t/data/tv_grep_i_last_chance_c_dups_xml.expected,
	t/data/tv_grep_i_last_chance_c_overlap_xml.expected,
	t/data/tv_grep_i_last_chance_c_sort_xml.expected,
	t/data/tv_grep_i_last_chance_c_test_livre_xml.expected,
	t/data/tv_grep_i_last_chance_c_test_xml.expected,
	t/data/tv_grep_new_dups_xml.expected,
	t/data/tv_grep_new_overlap_xml.expected,
	t/data/tv_grep_new_sort_xml.expected,
	t/data/tv_grep_new_test_livre_xml.expected,
	t/data/tv_grep_new_test_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_dups_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_overlap_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_sort_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_test_livre_xml.expected,
	t/data/tv_grep_on_after_2002_02_05_test_xml.expected,
	t/data/tv_sort_dups_xml.expected,
	t/data/tv_sort_overlap_xml.expected,
	t/data/tv_sort_sort_xml.expected,
	t/data/tv_sort_test_livre_xml.expected,
	t/data/tv_sort_test_xml.expected,
	t/data/tv_to_latex_dups_xml.expected,
	t/data/tv_to_latex_overlap_xml.expected,
	t/data/tv_to_latex_sort_xml.expected,
	t/data/tv_to_latex_test_livre_xml.expected,
	t/data/tv_to_latex_test_xml.expected, test_data/README,
	test_data/dups.xml, test_data/dups.xml._tv_cat.diff, test_data/fff,
	test_data/overlap.xml, test_data/sort.xml, test_data/test.xml,
	test_data/test_livre.xml, test_data/tv_cat_dups_xml.expected,
	test_data/tv_cat_overlap_xml.expected,
	test_data/tv_cat_sort_xml.expected,
	test_data/tv_cat_test_livre_xml.expected,
	test_data/tv_cat_test_xml.expected,
	test_data/tv_extractinfo_en_dups_xml.expected,
	test_data/tv_extractinfo_en_overlap_xml.expected,
	test_data/tv_extractinfo_en_sort_xml.expected,
	test_data/tv_extractinfo_en_test_livre_xml.expected,
	test_data/tv_extractinfo_en_test_xml.expected,
	test_data/tv_grep_a_dups_xml.expected,
	test_data/tv_grep_a_overlap_xml.expected,
	test_data/tv_grep_a_sort_xml.expected,
	test_data/tv_grep_a_test_livre_xml.expected,
	test_data/tv_grep_a_test_xml.expected,
	test_data/tv_grep_category_b_dups_xml.expected,
	test_data/tv_grep_category_b_overlap_xml.expected,
	test_data/tv_grep_category_b_sort_xml.expected,
	test_data/tv_grep_category_b_test_livre_xml.expected,
	test_data/tv_grep_category_b_test_xml.expected,
	test_data/tv_grep_category_e_and_title_f_dups_xml.expected,
	test_data/tv_grep_category_e_and_title_f_overlap_xml.expected,
	test_data/tv_grep_category_e_and_title_f_sort_xml.expected,
	test_data/tv_grep_category_e_and_title_f_test_livre_xml.expected,
	test_data/tv_grep_category_e_and_title_f_test_xml.expected,
	test_data/tv_grep_category_g_or_title_h_dups_xml.expected,
	test_data/tv_grep_category_g_or_title_h_overlap_xml.expected,
	test_data/tv_grep_category_g_or_title_h_sort_xml.expected,
	test_data/tv_grep_category_g_or_title_h_test_livre_xml.expected,
	test_data/tv_grep_category_g_or_title_h_test_xml.expected,
	test_data/tv_grep_channel_id_channel4_com_dups_xml.expected,
	test_data/tv_grep_channel_id_channel4_com_overlap_xml.expected,
	test_data/tv_grep_channel_id_channel4_com_sort_xml.expected,
	test_data/tv_grep_channel_id_channel4_com_test_livre_xml.expected,
	test_data/tv_grep_channel_id_channel4_com_test_xml.expected,
	test_data/tv_grep_channel_name_d_dups_xml.expected,
	test_data/tv_grep_channel_name_d_overlap_xml.expected,
	test_data/tv_grep_channel_name_d_sort_xml.expected,
	test_data/tv_grep_channel_name_d_test_livre_xml.expected,
	test_data/tv_grep_channel_name_d_test_xml.expected,
	test_data/tv_grep_eval_scalar_keys_5_dups_xml.expected,
	test_data/tv_grep_eval_scalar_keys_5_overlap_xml.expected,
	test_data/tv_grep_eval_scalar_keys_5_sort_xml.expected,
	test_data/tv_grep_eval_scalar_keys_5_test_livre_xml.expected,
	test_data/tv_grep_eval_scalar_keys_5_test_xml.expected,
	test_data/tv_grep_i_category_i_title_j_dups_xml.expected,
	test_data/tv_grep_i_category_i_title_j_overlap_xml.expected,
	test_data/tv_grep_i_category_i_title_j_sort_xml.expected,
	test_data/tv_grep_i_category_i_title_j_test_livre_xml.expected,
	test_data/tv_grep_i_category_i_title_j_test_xml.expected,
	test_data/tv_grep_i_last_chance_c_dups_xml.expected,
	test_data/tv_grep_i_last_chance_c_overlap_xml.expected,
	test_data/tv_grep_i_last_chance_c_sort_xml.expected,
	test_data/tv_grep_i_last_chance_c_test_livre_xml.expected,
	test_data/tv_grep_i_last_chance_c_test_xml.expected,
	test_data/tv_grep_new_dups_xml.expected,
	test_data/tv_grep_new_overlap_xml.expected,
	test_data/tv_grep_new_sort_xml.expected,
	test_data/tv_grep_new_test_livre_xml.expected,
	test_data/tv_grep_new_test_xml.expected,
	test_data/tv_grep_on_after_2002_02_05_dups_xml.expected,
	test_data/tv_grep_on_after_2002_02_05_overlap_xml.expected,
	test_data/tv_grep_on_after_2002_02_05_sort_xml.expected,
	test_data/tv_grep_on_after_2002_02_05_test_livre_xml.expected,
	test_data/tv_grep_on_after_2002_02_05_test_xml.expected,
	test_data/tv_sort_dups_xml.expected,
	test_data/tv_sort_overlap_xml.expected,
	test_data/tv_sort_sort_xml.expected,
	test_data/tv_sort_test_livre_xml.expected,
	test_data/tv_sort_test_xml.expected,
	test_data/tv_to_latex_dups_xml.expected,
	test_data/tv_to_latex_overlap_xml.expected,
	test_data/tv_to_latex_sort_xml.expected,
	test_data/tv_to_latex_test_livre_xml.expected,
	test_data/tv_to_latex_test_xml.expected, test_scripts/README,
	test_scripts/parallel_test, test_scripts/test_filters: Packaged
	using a Makefile.PL, loosely based on Justin H.'s work.  To
	install:
	
	% perl Makefile.PL % make % make test % make install
	
	This allows us to arrange the source tree more tidily, since it no
	longer has to correspond 1-1 with what is installed.

2002-02-22 17:42  epaepa

	* tv_grab_na: Changed long options to use hyphens instead of
	underscores.

2002-02-20 06:45  jveldhuis

	* tv_grab_na: fixed usage

2002-02-20 06:42  jveldhuis

	* tv_grab_na: added options to --configure to auto answer
	interactive questions and do things like fail with exit 1 if
	provider changed. This is to factilitate the automatic addition and
	removal of channels without user intervention.

2002-02-18 04:28  rmeden

	* tv_check: add device name to episode output.	change scan order
	for conflict resolution

2002-02-14 16:42  epaepa

	* test_scripts/test_filters: Allow the directory containing filter
	programs and the directory containing test input / output to be
	overridden on the command line.  Remove the generated output after
	a successful test.

2002-02-14 16:41  epaepa

	* XMLTV.pm: Better warning message when you pass in a hash with
	undef values.

2002-02-14 14:53  epaepa

	* tv_grep: Perl's autovivification was tending to create undef hash
	elements when tv_grep looked for things.  Rewrote the tests to be
	more cautious and always check 'if exists $_->{whatever}' before
	going on to perform operations on that key.  Seems to have cured
	the problem.

2002-02-14 14:03  epaepa

	* tv_to_latex: Gave up on messing around trying to find a way to
	convert UTF-8 to Latin-1.  We now just insist that Unicode::String
	be available.  It was a bit pointless trying to work around that
	one missing module when the XMLTV package depends on a dozen
	others.  Motivated by wanting the same output from tv_to_latex on
	every system, to pass test suite.

2002-02-14 13:56  epaepa

	* test_scripts/test_filters: More conventional Perlish interface
	for test suite, prints 'ok X' or 'not ok X' for each test.

2002-02-14 13:39  epaepa

	* test_scripts/test_xmltv_module: Removing test_xmltv_module, it
	has been subsumed by tv_cat.

2002-02-14 12:23  epaepa

	* test_data/dups.xml._tv_cat.diff, test_data/fff,
	test_data/tv_cat_dups_xml.expected,
	test_data/tv_cat_overlap_xml.expected,
	test_data/tv_cat_sort_xml.expected,
	test_data/tv_cat_test_livre_xml.expected,
	test_data/tv_cat_test_xml.expected,
	test_data/tv_extractinfo_en_dups_xml.expected,
	test_data/tv_extractinfo_en_overlap_xml.expected,
	test_data/tv_extractinfo_en_sort_xml.expected,
	test_data/tv_extractinfo_en_test_livre_xml.expected,
	test_data/tv_extractinfo_en_test_xml.expected,
	test_data/tv_grep_a_dups_xml.expected,
	test_data/tv_grep_a_overlap_xml.expected,
	test_data/tv_grep_a_sort_xml.expected,
	test_data/tv_grep_a_test_livre_xml.expected,
	test_data/tv_grep_a_test_xml.expected,
	test_data/tv_grep_category_b_dups_xml.expected,
	test_data/tv_grep_category_b_overlap_xml.expected,
	test_data/tv_grep_category_b_sort_xml.expected,
	test_data/tv_grep_category_b_test_livre_xml.expected,
	test_data/tv_grep_category_b_test_xml.expected,
	test_data/tv_grep_category_e_and_title_f_dups_xml.expected,
	test_data/tv_grep_category_e_and_title_f_overlap_xml.expected,
	test_data/tv_grep_category_e_and_title_f_sort_xml.expected,
	test_data/tv_grep_category_e_and_title_f_test_livre_xml.expected,
	test_data/tv_grep_category_e_and_title_f_test_xml.expected,
	test_data/tv_grep_category_g_or_title_h_dups_xml.expected,
	test_data/tv_grep_category_g_or_title_h_overlap_xml.expected,
	test_data/tv_grep_category_g_or_title_h_sort_xml.expected,
	test_data/tv_grep_category_g_or_title_h_test_livre_xml.expected,
	test_data/tv_grep_category_g_or_title_h_test_xml.expected,
	test_data/tv_grep_channel_id_channel4_com_dups_xml.expected,
	test_data/tv_grep_channel_id_channel4_com_overlap_xml.expected,
	test_data/tv_grep_channel_id_channel4_com_sort_xml.expected,
	test_data/tv_grep_channel_id_channel4_com_test_livre_xml.expected,
	test_data/tv_grep_channel_id_channel4_com_test_xml.expected,
	test_data/tv_grep_channel_name_d_dups_xml.expected,
	test_data/tv_grep_channel_name_d_overlap_xml.expected,
	test_data/tv_grep_channel_name_d_sort_xml.expected,
	test_data/tv_grep_channel_name_d_test_livre_xml.expected,
	test_data/tv_grep_channel_name_d_test_xml.expected,
	test_data/tv_grep_eval_scalar_keys_5_dups_xml.expected,
	test_data/tv_grep_eval_scalar_keys_5_overlap_xml.expected,
	test_data/tv_grep_eval_scalar_keys_5_sort_xml.expected,
	test_data/tv_grep_eval_scalar_keys_5_test_livre_xml.expected,
	test_data/tv_grep_eval_scalar_keys_5_test_xml.expected,
	test_data/tv_grep_i_category_i_title_j_dups_xml.expected,
	test_data/tv_grep_i_category_i_title_j_overlap_xml.expected,
	test_data/tv_grep_i_category_i_title_j_sort_xml.expected,
	test_data/tv_grep_i_category_i_title_j_test_livre_xml.expected,
	test_data/tv_grep_i_category_i_title_j_test_xml.expected,
	test_data/tv_grep_i_last_chance_c_dups_xml.expected,
	test_data/tv_grep_i_last_chance_c_overlap_xml.expected,
	test_data/tv_grep_i_last_chance_c_sort_xml.expected,
	test_data/tv_grep_i_last_chance_c_test_livre_xml.expected,
	test_data/tv_grep_i_last_chance_c_test_xml.expected,
	test_data/tv_grep_new_dups_xml.expected,
	test_data/tv_grep_new_overlap_xml.expected,
	test_data/tv_grep_new_sort_xml.expected,
	test_data/tv_grep_new_test_livre_xml.expected,
	test_data/tv_grep_new_test_xml.expected,
	test_data/tv_grep_on_after_2002_02_05_dups_xml.expected,
	test_data/tv_grep_on_after_2002_02_05_overlap_xml.expected,
	test_data/tv_grep_on_after_2002_02_05_sort_xml.expected,
	test_data/tv_grep_on_after_2002_02_05_test_livre_xml.expected,
	test_data/tv_grep_on_after_2002_02_05_test_xml.expected,
	test_data/tv_sort_dups_xml.expected,
	test_data/tv_sort_overlap_xml.expected,
	test_data/tv_sort_sort_xml.expected,
	test_data/tv_sort_test_livre_xml.expected,
	test_data/tv_sort_test_xml.expected,
	test_data/tv_to_latex_dups_xml.expected,
	test_data/tv_to_latex_overlap_xml.expected,
	test_data/tv_to_latex_sort_xml.expected,
	test_data/tv_to_latex_test_livre_xml.expected,
	test_data/tv_to_latex_test_xml.expected, test_scripts/test_filters:
	Finally start using all those test cases I've been accumulating. 
	The new script test_filters runs each filter program on each file
	in turn, and compares against the expected result.
	
	Now these expected results have not actually been checked by hand -
	so at present all you're testing is that the behaviour hasn't been
	changed since last time.  However I'm reasonably confident that the
	current lot of filters work properly, so this will act as a useful
	regression test.
	
	Grabbers are harder to test, but we do have parallel_test for that,
	it could be adapted to deal with tv_grab_na as well.  An automated
	test for tv_check or tv_pick_cgi seems pretty difficult though.

2002-02-14 12:16  epaepa

	* test_scripts/parallel_test: Added another test (channel name
	matching), and timing both old and new versions.

2002-02-14 12:14  epaepa

	* test_data/test.xml: Fixed to conform to DTD.

2002-02-14 12:13  epaepa

	* tv_to_latex: Added --output option, required by new test suite.

2002-02-14 12:12  epaepa

	* tv_grep: Fixed argument matching and exit status.
	
	(Errors revealed by test suite, which I'm about to commit.)

2002-02-13 20:08  epaepa

	* tv_grab_uk: To reduce on server load I've agreed with Ananova a
	system to fetch multiple pages at once.  This should also make
	tv_grab_uk a lot faster for many users.

2002-02-13 17:49  epaepa

	* tv_grab_uk: Fixed the selection of individual channels.  Also
	noticed a design bug which makes it impossible to choose individual
	channels if they don't have explicit XMLTV ids added.  Uurgh, the
	whole thing is so horrible...

2002-02-13 17:02  epaepa

	* tv_cat: Adding tv_cat, another filter inspired by Unix tools. 
	This one concatenates listing files.  I just wrote it as a
	replacement for test_xmltv_module, a program which reads data with
	XMLTV.pm and then writes it again.  This will be useful for
	testing.

2002-02-11 17:31  epaepa

	* README: Added a list of (Perl module) dependencies.  Now README
	and doc/QuickStart can completely replace the 'installation and
	usage' sections of the website, which is probably a good thing
	(info on usage belongs together with the programs themselves, and
	should not be duplicated).

2002-02-11 16:57  epaepa

	* parallel_test, test_xmltv_module, test_scripts/README,
	test_scripts/parallel_test, test_scripts/test_xmltv_module: Tidied
	up the package root directory a little by moving a couple of files
	to test_scripts/.

2002-02-11 16:53  epaepa

	* UK_TZ.pm, ZapListings.pm: Removing old versions of Perl modules
	that have moved to the XMLTV/ directory.

2002-02-11 16:52  epaepa

	* README, doc/QuickStart, doc/coding_standards: Rewrote
	doc/QuickStart as summary documentation for each tool.

2002-02-11 16:37  rmeden

	* README.tv_check: added html option to quick instructions

2002-02-11 15:24  epaepa

	* Ananova_Channel.pm: Removing leftover Ananova_Channel.pm, it has
	moved to the XMLTV/ subdirectory.

2002-02-10 18:25  rmeden

	* README.tv_check: doc update for conflict checking.  also a
	simpler quick-start guide

2002-02-10 18:01  rmeden

	* tv_check: changed hardcoded show column numbers to use names. 
	added column for recording device added conflict detection

2002-02-08 04:40  rmeden

	* tv_check: fix bug on update not updating the correct row

2002-02-07 17:31  epaepa

	* XMLTV.pm, parallel_test, test_xmltv_module, tv_grab_na,
	tv_grab_uk, tv_sort, tv_to_latex, XMLTV/Ananova_Channel.pm,
	XMLTV/UK_TZ.pm, XMLTV/ZapListings.pm: Moved the three miscellaneous
	Perl modules (ie, anything except XMLTV.pm) into the XMLTV::
	namespace and their own directory.  This is not the final file
	reorganization, I'm just changing the code to make it easier to
	package.

2002-02-07 11:44  epaepa

	* tv_extractinfo_en: Dealt with some false positives for children's
	shows.

2002-02-06 05:28  rmeden

	* tv_check: Misc cleanup, improved scoping, added "use strict"
	
	fixed bug/feature with length.	Blank show length now means ignore
	length
	
	added and centralized validation of fields for add/update

2002-02-05 20:49  jveldhuis

	* tv_grab_na: fixed default choice when choosing new provider
	during --configure

2002-02-05 17:53  epaepa

	* tv_check: Okay, the Revision: line works, just making it fontify
	correctly.

2002-02-05 17:49  epaepa

	* tv_check: Trying to fix the Revision: autoexpansion, let's see if
	it works.

2002-02-05 17:40  jveldhuis

	* tv_grab_na: fixed missing semicolon

2002-02-05 17:00  epaepa

	* README, README.tv_check, README.tvcheck, ZapListings.pm,
	getlistings_na, getlistings_uk_ananova, listings_to_latex,
	parallel_test, pick_cgi, sort_listings, tv_check,
	tv_extractinfo_en, tv_grab_na, tv_grab_uk, tv_grep, tv_pick_cgi,
	tv_sort, tv_to_latex, tvcheck, doc/QuickStart,
	doc/tv_check_doc.html, doc/tv_check_doc.jpg, doc/tvcheck_doc.html,
	doc/tvcheck_doc.jpg, test_data/README: *** Great Renaming ***
	
	This is it.  All the executables should now have reasonably
	sensible names beginning with tv_.  Grabbers begin tv_grab, tools
	like tv_sort and tv_grep should have at least some small
	resemblance to their Unix counterparts, and even miscellaneous
	stuff like tv_parsedesc_en begins with the tv_ prefix so you can
	use tab-completion easily.
	
	Note, I have gone through and semi-intelligently replaced
	occurrences of the old names.  I do not believe I have broken
	anything.  However, I didn't test the renamed versions, because I
	want to get this committed to CVS ASAP to avoid conflicts.  (Not
	pretty when renamed files conflict...)
	
	Please 'cvs update' and switch to the new names, I will test the
	renamed versions and then commit any further changes needed to get
	things working again.  If there are breakages, they will be trivial
	and quick to mend.
	
	This renaming is a precursor to making a nice tidy installer and
	perhaps some more shuffling around of directories: but I think that
	the renamed version as it stands now should be releasable.  After
	checking it all works, I will probably tag the tree as 0.4.4pre so
	we have something to fall back on in case we need to release a new
	version urgently.

2002-02-04 18:21  epaepa

	* getlistings_uk_ananova, sort_listings, tv_extractinfo_en,
	tv_grep: Added --output option requested by Andy B. to all programs
	that generate XML listings.  Also a usage message where one was
	missing.

2002-02-04 17:39  jveldhuis

	* doc/coding_standards: fixed Id entry

2002-02-04 17:38  jveldhuis

	* ZapListings.pm: now identifies Comedia categories in french
	listings

2002-02-04 17:37  epaepa

	* XMLTV.pm: Corrected wrong usage example for write_data().  In
	fact the usage of write_data() depends on the arguments to
	construct an XMLTV::Writer, which depends on how you construct an
	XML::Writer... but IMHO this is the least silly way to do it.

2002-02-04 17:30  epaepa

	* filter_shown: Removing filter_shown in favour of tv_grep, which
	does the same job and more (tv_grep --on-after X == filter_shown -d
	X).  tv_grep is 25% slower due to using XMLTV.pm rather than
	manipulating the DOM directly, but that's not worth worrying about.

2002-02-04 17:20  epaepa

	* ZapListings.pm: Turn on env_proxy flag for HTTP::Request::Common,
	so if you have http_proxy set in your environment that proxy server
	will be used.
	
	This may cause problems for some users with dodgy proxy servers: if
	so just unset http_proxy before running.  I thought it was not
	working for me, but it seems to be okay now.

2002-02-04 17:05  epaepa

	* tv_extractinfo_en: Fine-tuned 'presenter' matching so that
	'former Eurotrash presenter Jean-Paul Gaultier' is not treated as
	the presenter of the current programme.  (The word before
	'presenter', if any, must begin with a capital letter.)

2002-02-04 16:19  epaepa

	* tv_grep: Oops, tv_grep was stripping out channel information
	unless some channel predicates were given to specifically include
	it.  Changed the default to be keeping all channels unchanged if no
	channel predicates are specified.

2002-02-02 17:05  epaepa

	* tv_grep: Implemented some suggestions from Jerry about improving
	the usage message.

2002-02-02 16:16  epaepa

	* tv_grep: Implemented filtering on channels: two new predicates
	--channel-name and --channel-id.  These will filter out programmes
	like the others but also remove <channel> elements from the output.
	
	I believe that tv_grep now has all the functionality of Simon K.'s
	filter, although not quite the same syntax.

2002-02-02 15:40  epaepa

	* tv_grep: Better usage message including the autogenerated
	predicates.

2002-02-02 15:31  epaepa

	* tv_grep: Automatically generaete a long option for every key a
	programme hash can have.  Not all these long options are usable,
	for example there is currently no way to search on audio
	characteristics (so using --audio will give an error message).	But
	there are searches defined for simple text, text with language, and
	booleans, so you can say things like:
	
	% tv_grep -i --category drama % tv_grep --title Countdown
	--on-after today % tv_grep -i --new --category comedy
	
	If more keys are added in the DTD and XMLTV.pm, the set of long
	options should expand automatically.

2002-02-02 15:00  epaepa

	* tv_grep: Better argument parsing using a new OptionAbbrev class
	which allows non-ambiguous initial substrings to be used as
	abbreviations for long options.  So for example --o is not an
	acceptable abbreviation, it could be short for --or or --on-after.

2002-02-02 13:46  epaepa

	* XMLTV.pm: Added list_programme_keys() which allows some limited
	querying about the data structure: what keys can be in a programme,
	and what format their values take.  This could be useful for tools
	which need to automatically generate code for each key in turn.  I
	wrote it for tv_grep, so that command line options like --title X
	or --category -X can be created mechanically (and when the DTD
	changes, hopefully only XMLTV.pm needs to be updated).

2002-02-02 13:19  epaepa

	* tv_grep: Added --or (-o) option like find(1).

2002-02-01 19:53  epaepa

	* tv_grep: Another rewrite for tv_grep.  I am trying to make it do
	everything that Simon Kittle's 'filter' program provides.  The new
	version of tv_grep allows boolean expressions composed with 'and'
	and 'or' in the manner of find(1) - or it will when the argument
	parser is finished.  Currently plain regexp search, --on-after, and
	--eval (arbitrary Perl code) are implemented.  Just committing what
	I have so far.

2002-02-01 14:40  epaepa

	* getlistings_uk_ananova, parallel_test: When I converted
	getlistings_uk_ananova to use XMLTV.pm for output I lost the
	timezones in the output.  This is because I forgot that the
	XMLTV.pm data structure should contain the output form of dates and
	times, not the Date::Manip internal form.  We need to convert dates
	for output with date_to_uk() before storing them in the programme
	hash, and call ParseDate() when we read from the programme hash.
	
	The UK listings now include timezones once more - currently 'UT'
	for every programme, I hope it won't break when BST comes around. 
	Also committing the parallel_test setup I used to check this
	release.

2002-01-31 19:07  epaepa

	* tv_grep: Added -e option to specify arbitrary Perl code to
	execute on each programme (truth value returned determines whether
	the programme is included in the output).  This is really just for
	the infrastructure, I will later add ready-made code fragments for
	filtering on category, date and so on.

2002-01-31 18:25  epaepa

	* tv_grep: Added --ignore-case or -i option.

2002-01-31 16:57  epaepa

	* getlistings_uk_ananova: New versions of the Memoize module
	deprecate TIE and want HASH instead.

2002-01-31 16:56  epaepa

	* XMLTV.pm: Bugfix for writing icons.

2002-01-31 16:49  epaepa

	* test_data/README: Added comment about test data for
	tv_extractinfo_en, which I have but cannot commit to CVS.

2002-01-31 15:51  epaepa

	* parallel_test: Test rig I use for checking changes to
	getlistings_uk_ananova: it runs the old version and the new version
	with various arguments and checks the results are identical.  Needs
	a bit of polish, but could be used for testing most programs in the
	XMLTV distribution.

2002-01-31 15:39  epaepa

	* tv_extractinfo_en: Added tv_extractinfo_en, which reads
	English-language programme descriptions and attempts to sniff out
	information which could better be stored in machine-readable form. 
	This is mostly code which used to live in the old
	scrapped_getlistings_uk_ananova in the attic/ directory, I've just
	ported it to the new data structures and tidied it up.
	
	This sort of regular expression matching works well on the long
	detailed descriptions Ananova provides.  It's not so good on the
	North American listings because they have shorter descriptions. 
	But it did manage to extract the names of quiz show hosts.

2002-01-30 16:31  epaepa

	* tv_grep: First version of tv_grep, which filters particular
	programmes from listings.  This version works by stringifying the
	programme hash and regexp matching against that, which is kludgy
	but effective.	Written to fill a need during debugging: more
	fully-featured version to come later.

2002-01-30 07:09  rmeden

	* README.tvcheck, doc/tvcheck_doc.html: document the new color HTML
	output format for a --scan

2002-01-30 06:59  rmeden

	* tvcheck: add HTML output option for color printing

2002-01-29 17:21  epaepa

	* getlistings_na: Changed quoting on Id line so it doesn't end with
	$', which confuses XEmacs.  I apologize for having such a lame
	editor :-(.

2002-01-29 17:18  epaepa

	* Ananova_Channel.pm, XMLTV.pm, listings_to_latex, tvcheck: Added
	support for channel icons and URLs to XMLTV.pm.  The channels data
	structure it returns is different (a hash mapping channel id to
	channel hashes, rather than just lists of display-names) and the
	interface to write_channel() has changed.  I hope I've modified
	every program which depends on this.

2002-01-29 15:47  jveldhuis

	* ZapListings.pm: added a couple more languages I've seen.  no
	longer print	 possible candidate for program detail we didn't
	identify (``movie-title'') for program details that start with ``
	and end in ''.	These seem to be related movie titles actors have
	appeared in before.  I didn't remove them from the output before
	this because i wanted to get a good sense of what they were instead
	of assuming they're something we don't care about.
	
	Changed all POST() calls that have empty param lists [] to GET()
	calls instead. -- suggested by Paul Haggart <xmltv@bsfh.org> (this
	seem to fix some proxy/firewall issues he was having, not sure, but
	a good suggestion either way)

2002-01-29 15:39  jveldhuis

	* getlistings_na: fixed providers question so default choice works
	if return is hit instead of re-asking the question

2002-01-29 13:30  epaepa

	* XMLTV.pm: Factored out going through @Handlers when reading a
	<programme> element into its own subroutine call_handlers_read(). 
	This is because I plan to use the same method for reading channels.

2002-01-28 16:11  epaepa

	* getlistings_uk_ananova: Output categories better.  Ananova's
	categories are 99% in English, they just need some tweaking to get
	the coveted lang="en" certification :-).

2002-01-28 12:42  epaepa

	* XMLTV.pm: Improve checking for bad keys in hashes (to catch
	errors when you misspell '$p{desc}' as '$p{decs}', rather than
	silently skipping over the 'decs' key).  Keys beginning with an
	underscore are now considered to be random junk which shouldn't be
	written (so you can annotate programmes with whatever extra
	information you want).

2002-01-21 16:47  epaepa

	* XMLTV.pm: The [text, language] pair returned from best_name() is
	now one of those originally passed in (remember that these
	anonymous pairs are passed by reference).  This means that you can
	call best_name() on for example the descriptions of a programme,
	find the pair you want, and modify it in-place.

2002-01-21 15:28  epaepa

	* XMLTV.pm, listings_to_latex, pick_cgi: Whoops.  A mistake in the
	comment above best_name() caused me to implement the new return
	value wrongly.	All human-readable text in XMLTV.pm is returned as
	[ text, language ] pairs or maybe just [ text ].  I've corrected
	best_name() to follow this convention.

2002-01-21 15:11  epaepa

	* XMLTV.pm, listings_to_latex, pick_cgi: Changed the behaviour of
	best_name(), which picks the best choice for your current language
	from a list of [language, text] pairs.	The new version returns a
	pair [language, text], so you know what language was picked.  The
	optional comparison function you pass in to compare text strings is
	unchanged.

2002-01-21 06:29  rmeden

	* doc/: tvcheck_doc.html, tvcheck_doc.jpg: initial load

2002-01-20 14:55  epaepa

	* README, getlistings_uk_ananova: Updated version number to 0.4.3.

2002-01-20 04:52  rmeden

	* tvcheck: fixed bug in title chooser

2002-01-19 23:58  jveldhuis

	* getlistings_na: added --offset as per request/suggestion from
	mielikki@users.sourceforge.net

2002-01-19 23:01  jveldhuis

	* getlistings_na: fixed carp() call when running with
	--debuglistings enabled and a program description contains '--',
	which is illegal in XML::Writer.

2002-01-19 22:26  jveldhuis

	* getlistings_na: usage messages now come to stdout when --help is
	used and stderr if usage is incorrect. Also minor version number is
	calculated from rcs id. This is minor since the version information
	is mainly for the output 'tv' element and controling the versions
	of xmltv_na configuration files.

2002-01-19 20:09  rmeden

	* tvcheck: Minor bug-fixes, mostly cleaning up GUI.  Added --output
	option

2002-01-19 19:49  epaepa

	* getlistings_na: Made all grabbing error messages go to stderr
	rather than stdout, so they don't get mixed in with the XML
	listings.  This includes the usage message.  For consistency
	changed the --configure usage message to stderr too.

2002-01-19 18:40  jveldhuis

	* getlistings_na: verifies provider information during configure
	and during grab.

2002-01-19 18:32  epaepa

	* getlistings_uk_ananova: Fixed selection of regions by name. 
	Dealt with FIXME for multiple descriptions - now all the
	descriptions from Ananova are included in the output XML, with the
	main description coming first.

2002-01-19 18:07  epaepa

	* tvcheck: Parse episode-num better.  Still not perfect, but should
	work with files currently generated.

2002-01-19 18:05  epaepa

	* XMLTV.pm: Moved the channel writing code into a subroutine
	write_channel() which can be called externally.  This is needed for
	the new getlistings_uk_ananova.

2002-01-18 20:44  epaepa

	* Ananova_Channel.pm, getlistings_uk_ananova: Refactored
	getlistings_uk_ananova's channel management into
	Ananova_Channel.pm.  Previously there were too many hashes mapping
	between XMLTV channel id, Ananova channel id, Ananova display name
	(which comes in two forms), additional display name, broadcast
	method or region, channel packages, and what the user wishes to
	download.  It's a little bit saner now but still rather ugly.
	
	The Ananova_Channel package is not in any way a general or reusable
	set of channel management routines.  It's very specific to the
	peculiarities of this data source.  The name sucks, but we're going
	to rename everything soon anyway.
	
	Also a few bug fixes including that the episode-num is now written
	out properly (at least until that bit of DTD gets replaced with
	something saner), updates to channel definitions and packages, and
	general tidying.
	
	The old option ALL to get every one of Ananova's pages will
	probably become undocumented in the next release.  It doesn't work
	that well because often two different pages on Ananova are mapped
	to the same XMLTV channel.  It ends up grabbing both.  This is
	however useful for checking the output, running it through
	sort_listings to check that the two Ananova channels are indeed
	identical, so I won't remove this ability completely.

2002-01-17 07:18  rmeden

	* README.tvcheck, tvcheck: Moved Exit button to under file menu. 
	added OnDestroy method on main app close added keyboard shortcuts
	to menus
	
	SHOW TABLE    code for minimum number of rows now works    you can
	no longer select blank rows
	
	Selection List	  changed ENTRY widgets to use a --textvariable,
	simpler code.

2002-01-16 05:50  rmeden

	* tvcheck: replace --guide paramter with --listings to match
	getlistings_na avoid warning when no prefered language is given

2002-01-14 14:16  jveldhuis

	* getlistings_na: changed prompts for add/drop channels to have
	'all' option.

2002-01-11 14:59  epaepa

	* README: Updated for 0.4.2.

2002-01-11 07:05  rmeden

	* tvcheck: remove debug message... oops

2002-01-11 05:37  rmeden

	* README.tvcheck: update readme to match current tvcheck version

2002-01-11 05:36  rmeden

	* tvcheck: fix the revision number in the options list

2002-01-11 05:20  rmeden

	* tvcheck: 
	changed command line options to use getopt::long, like the other
	modules removed allchan option, now all options remove things added
	  chanonly option to replace allchan added   neartime option to
	include only shows within about 3 hours.  bumped  version number to
	2.0... why.. because I deserve it!
	
	and the biggie.  added --configure switch that uses TK to allow you
	to create the shows.xml file!

2002-01-08 13:40  epaepa

	* mkdist: Added --step by step confirmation for cowardly people
	like me.

2002-01-08 13:30  epaepa

	* pick_cgi: Finished rewriting to use XMLTV.pm.  The version
	released with 0.4.1 didn't work at all because I forgot to copy it
	into my CGI directory before testing.  Now writes an XML file to
	the current directory which the user downloads normally.

2002-01-08 13:28  epaepa

	* XMLTV.pm: write_data() now takes extra arguments passed to
	XMLTV::Writer's constructor.  This allows you to easily write
	programmes to a different filehandle, for example.

2002-01-07 17:54  epaepa

	* getlistings_uk_ananova: Removed code which maintains a 'relation'
	among programmes sharing a clump.  With the old grabber this was
	necessary because special fixups to a programme might require
	others in its clump to be updated.  But the special handlers are no
	longer used (though I plan to move them into a tool of their own)
	so there's no need to keep track of clumps beyond just adding the
	clumpidx to each programme hash.  This is just cutting out dead
	code.

2002-01-07 15:33  epaepa

	* analyse_tvprefs/analyse_tvprefs: Tidied by removing trailing
	whitespace on comments; removed CVS logs.

2002-01-07 15:30  epaepa

	* ZapListings.pm: Tidied file by getting rid of spaces on lines
	that were all spaces.

2002-01-07 15:27  epaepa

	* UK_TZ.pm: Tidied up file by removing trailing whitespace.

2002-01-03 04:55  rmeden

	* tvcheck: Display part x/y info stored in the "episode-num" field

2002-01-02 22:10  jveldhuis

	* getlistings_na: added --debuglistings that puts html source in
	output listings as comments

2002-01-02 22:10  jveldhuis

	* ZapListings.pm: fixed occational problem where listings have bad
	end-times

2002-01-02 20:47  jveldhuis

	* ZapListings.pm: added Swedish

2002-01-01 21:14  jveldhuis

	* ZapListings.pm, getlistings_na: - program titles that end in
	'Part \d of \d' get moved   into episode-num section of programme

2002-01-01 20:22  jveldhuis

	* mkdist: better description of whats left after mkdist is run

2002-01-01 19:57  jveldhuis

	* mkdist: added comment about script should be run in an empty
	directory

2002-01-01 19:56  jveldhuis

	* mkdist: checks and fails run if ./xmltv exists

2002-01-01 19:53  jveldhuis

	* mkdist: now warns about README contents should be updated prior
	to mkdist now gets --sfuser from ~/.cvspass if it can instead of
	from the command line.

2002-01-01 19:49  jveldhuis

	* README: updated README contents

2002-01-01 18:11  jveldhuis

	* mkdist: better usage

2001-12-31 23:59  epaepa

	* getlistings_uk_ananova: Updated list of 'gratis' channels based
	on empirical evidence from Sky Digibox.  Unfortunately there are
	still many channels which are viewable but not carried by Ananova
	at all.  Added some error checking for the channel packages to
	catch entry of nonexistent channels.

2001-12-31 18:25  jveldhuis

	* mkdist: new perl script version that does almost everything
	needed to cut a release.

2001-12-31 17:39  rmeden

	* tvcheck: Pretty much a complete rewrite.  Logic reversed. Instead
	of comparing "day" of episode data, now I convert show data to a
	date and use that for the episode check.
	
	If another episode is in a shows timeslot, details for that show
	prints.
	
	Output format now includes some episode details.

2001-12-31 16:47  jveldhuis

	* README: updated version info

2001-12-29 21:30  jveldhuis

	* ZapListings.pm: - only print 'identified possible candidate for
	new language X in (Y-Z) if   one of Y or Z are language matches

2001-12-29 21:27  jveldhuis

	* ZapListings.pm, getlistings_na: - now when it provides a list of
	providers the list is in the same   order as they appeared in the
	www page. They provide the list is   a more logical order than
	ordered by provider id.

2001-12-29 21:11  jveldhuis

	* ZapListings.pm: - added Aboriginal language - now support
	identification of language declarations   'Hindi/Punjabi/Urdu', but
	I'm not sure what it means

2001-12-29 20:48  jveldhuis

	* ZapListings.pm, getlistings_na: - configuration now uses channel
	descriptions (usually	channel # and station letters) instead of
	zap2it channel	 id's.
	
	- handles cable companies who have same channel id for different  
	channels in listings (have same schedule). Looks like they  
	broadcast the same channel, once in analog for peasants and   once
	in digital on two separate channels.
	
	- handles cases where there seems to be two channel listings   on
	the same channel #. For instance in edmonton, my listings  
	currently have two channel 15s. I only get one :)
	
	- this means output comes in channel description sorted order  
	instead of channel id order.
	
	- automatically deals with version 1 config files with warning	 to
	STDERR to re-run --configure.
	
	- added ignored program details (10-1) which show up in sports
	event	descriptions for win/loss stats.
	
	- added ignored program detail (Cont'd) which seem to correlate to 
	 the music only channels where they want the listings to appear
	every	hour in the schedule even though the content is continuous.
	
	- added Oji-Cree to understood languages

2001-12-29 17:50  jveldhuis

	* getlistings_na, ZapListings.pm: - fixed some split calls where
	the first arg was qw// instead of just	 //. (thanks to Seamus
	Venasse) - explicit about mkdir masks (using 0775 instead of
	default 0777)
	
	- fixed scraping problem where programs starting between 12pm and
	1pm   with end times within that 12th hour we're getting adjusted
	by 24 hour   instead of 0. - thanks Ed for this bug report.

2001-12-28 18:59  epaepa

	* README: Mentioned known bug in getlistings_na.

2001-12-28 18:33  epaepa

	* README.channels: Removed README.channels - it is obsolete now we
	no longer have a separate channels file.  Sadly Goofy's channels
	Perl module never got used, although XMLTV.pm provides something
	similar.

2001-12-28 18:32  epaepa

	* getlistings_uk_ananova: Bumped version to XMLTV/0.4.

2001-12-28 18:31  epaepa

	* README: Updated README for version 0.4.

2001-12-28 17:57  epaepa

	* doc/QuickStart: Added an example of using getlistings_uk_ananova
	to download individual channels and packages.

2001-12-28 17:56  epaepa

	* getlistings_uk_ananova: Added more fine-grained choosing of what
	channels to download.  As well as regions you can now specify
	channel names on the command line, or one of several hardcoded
	channel packages.  We agreed on the mailing list that these should
	be stored in separate files, but there isn't time to do this for
	the 0.4 release.  (The whole directory structure needs to be
	reorganized I think.)

2001-12-28 16:31  jveldhuis

	* getlistings_na: changed name of config file from .config_na to
	.xmltv_na

2001-12-28 14:48  epaepa

	* getlistings_uk_ananova: Modified not to write duplicate display
	names for channels that appear under two different Ananova ids.

2001-12-28 14:36  epaepa

	* channels.dtd: Removing channels.dtd, it was merged into
	xmltv.dtd.

2001-12-28 14:34  epaepa

	* getlistings_uk_ananova: The --cache option now takes an argument
	giving the cache filename.  Worked around an error in Ananova's
	data.  Changed the internal names on a couple of channels to make
	the digital and analogue versions distinct, since they differ a
	tiny bit.

2001-12-28 14:32  epaepa

	* XMLTV.pm: Extra checking of attributes for the <programme>
	element; added after I found I was writing 'end' instead of 'stop'
	in test cases!

2001-12-28 14:31  epaepa

	* test_data/: dups.xml, overlap.xml: A couple of test cases for the
	new version of sort_listings.  It should correctly remove the
	duplicates from dups.xml, and identify overlapping programmes in
	overlap.xml.  Making these into automated tests is still todo.

2001-12-28 14:30  epaepa

	* sort_listings: Added code to remove duplicates.  This is useful
	for Ananova's listings which give the same channel in several
	files.	We also check to see if there are overlapping programmes on
	the same channel (which must be wrong).

2001-12-28 11:29  epaepa

	* getlistings_uk_ananova: Bugfix: terrestrial channel codes end in
	a digit, not begin.

2001-12-28 11:28  epaepa

	* tvcheck: Clarified usage message in comment (I hope).

2001-12-27 18:23  jveldhuis

	* ZapListings.pm: minor spelling fixes :)

2001-12-27 00:29  rmeden

	* README.tvcheck: updates to match tvhceck v1.4

2001-12-27 00:19  rmeden

	* tvcheck: 
	added anychan attribute added "sub-title" and "previously-shown" to
	report.  added support for multiple languages changed to use
	XMLTV.pm to read combined guide + channels.

2001-12-23 18:04  jveldhuis

	* getlistings_na: minor adjustment so we don't increment year more
	than once on endofyear fixed

2001-12-23 18:01  jveldhuis

	* getlistings_na: now deals with cross-year listings properly. 
	Thanks to Brian J. Murrell who sent me the bug report. :)

2001-12-23 17:59  jveldhuis

	* ZapListings.pm: added Iranian to list of language identified add
	dramma (french for drama) to items to look for.  idenfies
	'lang-lang' program details just like (lang,lang)

2001-12-21 17:45  jveldhuis

	* getlistings_na: - default location of config file is
	$HOME/.config_na.  - if HOME env variable not set, then
	./.config_na is used.  - updated usages message to reflect.

2001-12-21 14:10  epaepa

	* getlistings_uk_ananova: Moved setting $p{channel} for each
	programme $p into get_file() where it belongs (dealt with FIXME).

2001-12-21 13:59  epaepa

	* getlistings_uk_ananova: Tidied away the ch_to_output hash so that
	the ch_output() function is the only interface to it.

2001-12-21 13:46  epaepa

	* getlistings_uk_ananova: Just changed some comments.

2001-12-21 13:37  epaepa

	* getlistings_uk_ananova: Redid <video> and <audio> handling; now
	if a programme is on a radio station we know that it has no picture
	and does have sound (this deals with one FIXME).  Also if a TV
	programme is stereo we know it has sound; if it's black-and-white
	we know it has a picture.  Unfortunately we don't get enough
	information to say for sure whether these things are part of all
	programmes.  Fortunately the file format allows 'yes', 'no' - or
	missing for 'don't know'.
	
	Cut down on bad date warnings when you're using the cache.

2001-12-21 06:14  rmeden

	* README.tvcheck: changed TVCHECK to "tvcheck" for correctness

2001-12-19 17:19  epaepa

	* xmltv.dtd: Bumped version number reflecting the inclusion of
	channels; allowed channels to have icons.

2001-12-19 16:47  epaepa

	* getlistings_uk_ananova: Explicitly set Date::Manip's timezone so
	it should work on Windows.

2001-12-19 16:06  epaepa

	* listings_to_latex: Removed confusing reference to
	Lingua::Preferred (it's no longer called directly); added comment
	warning about tmpnam() insecurity (but didn't bother to actually
	fix the problem).

2001-12-19 16:05  epaepa

	* getlistings_uk_ananova: Fixed yet another [ text, lang ] bug;
	reinstated memoization of date routines to get a small speedup;
	added special-case code to avoid warning about a known
	inconsistency ('Nickelodeon') in Ananova's data.

2001-12-19 15:10  epaepa

	* getlistings_uk_ananova: Removed the 'FIXME temporary speedup' and
	replaced it with a --cache option to help debugging.  Adjusted the
	(rather pointless) daytime/evening/latenight check to cope with a
	23:59 programme which Ananova classes as 'latenight'.

2001-12-19 12:27  epaepa

	* XMLTV.pm, listings_to_latex, pick_cgi: Both listings_to_latex and
	pick_cgi had code to select one title (or description, etc) from a
	list of several according to language and other factors.  I've
	commonized this code into a routine best_name() in XMLTV.pm, which
	chooses the best piece of text by first finding those that are
	preferred because of their language, and if there is more than one
	in this list, choosing between them based on which appears first in
	the XMLTV file or based on a user-supplied comparator. 
	listings_to_latex passes in a function which chooses the shorter of
	two titles.  This might not work when none of the available
	languages matches what's accepted by the user, should test that.
	
	Also modified pick_cgi to use XMLTV.pm instead of XML::Simple.

2001-12-19 12:21  epaepa

	* getlistings_uk_ananova: Fixed language-undefined bug where the [
	text, lang ] pair was the wrong way round.  Hopefully I've now
	eliminated all of these and standardized on putting text first and
	(optionally) language second.

2001-12-17 05:08  rmeden

	* README.tvcheck: Initial load of README file for tvcheck

2001-12-17 02:51  rmeden

	* tvcheck: another attempt at the ID line.. maybe I should read the
	manual

2001-12-17 02:47  rmeden

	* tvcheck: attempt to add version line

2001-12-14 00:05  jveldhuis

	* ZapListings.pm: - added a couple more languages
	
	- now properly identifies subtitle declarations like:	"X and Y
	subtitles"   "X with Y subtitles"   "X; Y subtitles"   "X, Y
	subtitles"   "X/Y subtitles"
	
	- identifies dubbed declarations like	"X/Y"	"X,Y"	"X and Y"  
	"X with Y"

2001-12-14 00:05  jveldhuis

	* getlistings_na: 
	- added --output synonym for --listings to command line options
	
	- --listings argument can also contain '%postalcode' or '%zipcode' 
	 which gets substituted based on configuration. This allows   you
	to defined output files such as %postalcode-%d%m%Y.xml	 for
	instance.
	
	- makes all missing directories to --listings output file.    This
	allows for --listings %d%m%Y/listings.xml
	
	- now dubbed programmes include both 'orig-language' and 'language'
	  elements

2001-12-13 00:02  jveldhuis

	* getlistings_na: updated minor version #

2001-12-13 00:01  jveldhuis

	* getlistings_na: now attempts to deal with channels in channel #
	order

2001-12-12 22:06  jveldhuis

	* getlistings_na: - should now conforms to new xmltv.dtd  
	(although I havn't run any output through a DOM parser)
	
	- deprecated --programs and --channels as command line options	
	and added --listings

2001-12-12 21:28  jveldhuis

	* getlistings_na, ZapListings.pm: - added requirement for LWP 5.62
	or later.  - added some new languages I found during overnight use
	- fixed incorrect warnings about possibly missing program   details
	that appear in () but in the middle of the   program descriptions. 
	- added check for some categories like (fiction) (drama) that  
	appear at the end of the program description instead of   where the
	rest of the categories appear at the beginning	 of the program
	description.  - removed 'use diagnositics' - --configure is
	interactive so I added a splash screen with   a welcome message and
	version information that might be   helpful down the road when
	doing problem diagnosis.

2001-12-11 18:18  epaepa

	* XMLTV.pm, ZapListings.pm, filter_shown, getlistings_na,
	getlistings_uk_ananova, listings_to_latex, pick_cgi, sort_listings,
	test_xmltv_module, xmltv.dtd, doc/grabber_interface,
	test_data/README, test_data/sort.xml, test_data/test.xml,
	test_data/test_livre.xml: Merged together the channels.dtd and
	xmltv.dtd file formats, so a single XML file gives both programmes
	and channels (with channels listed first).  This has meant changing
	most programs which read or write these formats (although the old
	tv.xml files will continue to work).  I took the opportunity to
	rewrite XMLTV.pm so it inputs and outputs all the different parts
	of the file format, although I'll probably need to rewrite it again
	for speed.
	
	XMLTV.pm now provides read_data() and write_data() routines which
	deal with credits, channels and programmes in one go.  For lazy
	writing of programmes you can use the XMLTV::Writer interface.
	
	Getlistings_uk_ananova needed changing to handle the fact that
	channels are written in the same file and _before_ any programe
	details.  Also for the new cleaned-up XMLTV.pm interface which
	insists on multivalued [ text, language ] pairs.  Added some new
	channels which have appeared in the UK since the last update.
	
	Listings_to_latex and sort_listings were rewritten to use XMLTV.pm
	instead of XML::DOM.
	
	Pick_cgi is probably *BROKEN* although I have made some fixes for
	multivalued text-with-language.  I will fix it ASAP, I just didn't
	want to wait any longer to get code out there.
	
	Fixes to getlistings_na to comply with the old file format - but
	_not_ yet to write channels and programmes in the same file.  That
	is still todo.
	
	Small fixes to ZapListings.pm - not related to the xmltv.dtd
	reorganization.
	
	Added some test files and a test_xmltv_module program (which should
	behave like cat(1) if the code is correct), but a proper automated
	test suite remains to be done.

2001-12-05 01:29  jveldhuis

	* getlistings_na, ZapListings.pm: properly identifies:	 -
	programme star ratings	 - programme subtitles (include language of
	subtitles as well)   - programme languages   - programme ratings
	(MPAA, ESRB and VCHIP)	 - fixed bug where dataElement was called
	with one argument   - better identification of valid programme
	details   - better identification of possible updates to
	identifiable	 details list (ie new languages found)
	
	properly identifies channels commented out of config file.
	
	identifies and skips channels that are no longer available, but
	appear in config file.

2001-11-29 06:15  rmeden

	* tvcheck: Initial load of tvcheck

2001-11-27 21:22  jveldhuis

	* getlistings_na: fixed check for getChannelList failing and
	returning array with one undef element

2001-11-24 22:29  jveldhuis

	* mkdist: no longer ship Changelog.old

2001-11-24 22:27  jveldhuis

	* mkdist: no longer removes CVS dirs to tag can be done before tar
	ball released

2001-11-24 22:25  jveldhuis

	* README, mkdist: prep work for 0.3.1, mkdist now removes CVS,leon
	and todo dirs

2001-11-24 19:16  epaepa

	* doc/QuickStart: Added QuickStart doc from 0.3 release.

2001-11-24 00:12  jveldhuis

	* ZapListings.pm: 1. Fixed problems with cookies not getting set on
	redirects.     We now set the cookie_jar with the UserAgent and the
	cookies     get set automatically prior to requests.
	
	2. dumpPage now increments counter so filenames actually change :)

2001-11-22 18:24  epaepa

	* doc/coding_standards: Briefly explained the criteria I use for
	adding features to the file format.

2001-11-21 20:42  jveldhuis

	* ZapListings.pm: increase in speed (my tests say 2 fold) with
	cookie magic

2001-11-21 05:48  jveldhuis

	* ZapListings.pm, getlistings_na: 
	configure - now should work if you provide postal/zip code and
	provider id		on command line, cookie problems prevented
	this from working.
	
	grab - every grab starts off with warnings about new or missing
	channels	icons are grabbed from grid page to fill in 'icon'
	entries compliant	 with channels.dtd

2001-11-20 22:37  jveldhuis

	* xmltv.dtd: fixed id keyword

2001-11-20 15:25  jveldhuis

	* xmltv.dtd: added icon elements to programmes, ratings and
	star-ratings

2001-11-20 15:24  jveldhuis

	* channels.dtd: added icon elements to channels

2001-11-20 15:13  epaepa

	* getlistings_uk_ananova: Moved the code to generate the hash of
	channels into its own subroutine, channels_output().  The whole
	thing is still a bit of a mess though.

2001-11-20 14:40  epaepa

	* getlistings_uk_ananova: Tidied up trailing spaces on comment
	lines.	XEmacs flags them and they are kinda pointless, I've
	decided.

2001-11-15 17:50  epaepa

	* ZapListings.pm: Removed _getChannelsList(), a subroutine which is
	never called.  Probably it was some older version of the code.	Now
	we have CVS there's less need for that.
	
	Created dumpPage(), a routine which makes a 'core dump' of an HTML
	page for debugging.  This could probably replace existing code to
	write out page content, if Jerry agrees.
	
	Fixed channel-selection bug with some providers by making the
	regexp more liberal.

2001-11-15 00:02  jveldhuis

	* ZapListings.pm, getlistings_na: fixed bug - looks like prototypes
	don't  always work

2001-11-14 17:33  jveldhuis

	* getlistings_na: default --days is now 7 instead of 1

2001-11-14 17:13  jveldhuis

	* ZapListings.pm, getlistings_na: removed support for --startHour
	and --endHour

2001-11-14 16:32  epaepa

	* README, ZapListings.pm, getlistings_na: New README / release
	notes for 0.3 release.	Removed Beer-ware, we are now pure GPL (but
	of course contributors are free to license their code under other
	terms as well).

2001-11-14 16:31  epaepa

	* mkdist: Updated for move from RCS to CVS: you have to update the
	ChangeLog manually (probably by running cvs2cl) before running
	mkdist.

2001-11-14 16:15  epaepa

	* README, getlistings_uk_ananova: Bumped version number to 0.3,
	reflecting new _na grabber.

2001-11-14 15:59  epaepa

	* getlistings_uk_ananova: Give a friendly(ish) usage message for
	the --help option.

2001-11-14 13:47  epaepa

	* doc/coding_standards: Added guidelines for commenting
	subroutines.

2001-11-13 20:46  jveldhuis

	* getlistings_na: removes white space from postal code

2001-11-13 14:53  epaepa

	* ZapListings.pm: Fixed date format (YYYY-MM-DD).

2001-11-13 13:53  epaepa

	* listings_to_latex: Quote characters better for LaTeX output - in
	particular that broken-vertical-bar character appearing
	mysteriously in some Spanish listings.

2001-11-12 22:46  jveldhuis

	* README, UK_TZ.pm, XMLTV.pm, ZapListings.pm, channels.dtd,
	getlistings_na, getlistings_uk_ananova, listings_to_latex, mkdist,
	pick_cgi, sort_listings, xmltv.dtd, README.channels, filter_shown:
	removed \$Log entries as per xmltv-devel mailing list discussion

2001-11-12 17:25  jveldhuis

	* getlistings_na: removed unneeded '&Date::Manip::' prefixes to
	those subroutine calls.  with exception to unexported Date_Split
	call.
	
	fixed when new programs file is initialized.  not supports emitting
	program 'previously-shown' attr.

2001-11-12 17:23  jveldhuis

	* ZapListings.pm: 'Repeat' in details now comes out as
	'previously-shown' attr of program fixed some STDERR status
	messages

2001-11-11 22:30  jveldhuis

	* ChangeLog.old, README, README.channels, UK_TZ.pm, XMLTV.pm,
	channels.dtd, filter_shown, getlistings_uk_ananova,
	listings_to_latex, mkdist, pick_cgi, sort_listings, xmltv.dtd,
	doc/coding_standards: added \$Id \$ as approprate

2001-11-11 22:29  jveldhuis

	* ZapListings.pm: messages go to stderr, both status and debugging.
	 error messages or warnings try and include html that caused
	failure.
	
	acknowledges program detail 'AO' although I don't know what it
	means exactly. Maybe adults only, but not part of any standard, so
	we scrape and ignore.
	
	how print STDERR message for each station page scraped to get more
	feed back to user something is happening.

2001-11-11 22:26  jveldhuis

	* getlistings_na: now only writes channels file when approprate so
	only writes is out every day if you've specified a filename that
	contains imbedded date information, same as with programs
	filenames.
	
	prints summary statistics about how much and how fast the grabber
	was

2001-11-11 22:18  jveldhuis

	* getlistings_ca, ClickListings.pm: no longer supported, use _na
	for ca listings

2001-11-11 18:04  epaepa

	* doc/coding_standards: Added coding standards document, prompted
	by my edict on the mailing list about the format of CVS log
	messages.  Of course I will now look really silly if I fail to
	follow the guidelines I wrote :-).

2001-11-11 17:49  epaepa

	* ZapListings.pm: Fixed a couple of syntax errors (don't know
	whether I caused them last time).

2001-11-11 17:04  epaepa

	* ClickListings.pm: Changed a lot of 'print STDERR' to 'warn', it
	makes it clearer what the purpose is.  Debug statements didn't
	change since they're not actually warnings.

2001-11-11 16:44  epaepa

	* ClickListings.pm, README, README.channels, UK_TZ.pm, XMLTV.pm,
	ZapListings.pm, channels.dtd, filter_shown, getlistings_ca,
	getlistings_na, getlistings_uk_ananova, listings_to_latex, mkdist,
	pick_cgi, sort_listings, xmltv.dtd,
	analyse_tvprefs/analyse_tvprefs: Whoops, just realized that the
	last changelog message would itself get keyword-expanded, causing
	no end of confusion.  I had to perform some emergency censorship of
	funny dollar signs.

2001-11-11 16:41  epaepa

	* ClickListings.pm, README, README.channels, UK_TZ.pm, XMLTV.pm,
	ZapListings.pm, channels.dtd, filter_shown, getlistings_ca,
	getlistings_na, getlistings_uk_ananova, listings_to_latex, mkdist,
	pick_cgi, sort_listings, xmltv.dtd,
	analyse_tvprefs/analyse_tvprefs: Rearranged (or added) comments at
	the start of each file, so the description is near the top and the
	changelog near the bottom.  Added $Log: $ lines to get an
	automatically updated changelog from now on; I hope it works.

2001-11-11 15:57  epaepa

	* ChangeLog.old: Added the RCS version history (from rcs2log) to
	ChangeLog.old.	From now on we will not edit a ChangeLog file, all
	changes will be logged with CVS commit messages.
	
	Still, I said the same thing when I moved to RCS - so perhaps we
	will be doing this again in a year or so when we abandon CVS for
	something else :-).

2001-11-11 15:37  epaepa

	* mkdist: Adding one remaining file from the old working/
	directory: mkdist.  This is a quick and dirty shell script to make
	a tarball of the current version.  I haven't tested that it works
	with CVS working copies, that'll come when I make the next release
	later today (I hope).

2001-11-11 15:35  epaepa

	* listings_to_latex: Moved prototypes higher up the file, so they
	are seen by perl before any of the functions are called.  This
	stops the annoying warnings under newer perls.

2001-11-11 15:34  epaepa

	* getlistings_uk_ananova: Added more prototype declarations to
	avoid warnings under perl 5.6 (and to make the prototype checking
	actually work, in fact).
	
	Don't warn more than once for channel ids without a valid region
	(caused by occasional strangeness at Ananova's end).

2001-11-11 15:21  epaepa

	* ChangeLog: Removing ChangeLog file; it was generated
	automatically from RCS and will not be kept up to date with CVS
	commits.  I plan to make a ChangeLog.old with announcements from
	the RCS days and before; then whenever we make a release tarball
	the ChangeLog file can be generated from the CVS logs.	It is not
	itself kept in CVS.

2001-11-11 15:18  epaepa

	* towatch.dvi: Removing towatch.dvi, another old personal file from
	working/.

2001-11-09 06:48  jveldhuis

	* ZapListings.pm, getlistings_na: minor adjustments

2001-11-09 06:25  jveldhuis

	* ZapListings.pm, getlistings_na: 
	Heres the beta version of the grabber for zap2it.com I went with a
	slightly different approach to how to set things up.
	
	There is a '--configure' command line arg that walks you through
	the required sets for setting it up.
	
	It will prompt you for a postal/zip code, let you choose from the
	list of service providers in your area, then let you choose what
	channels you want.  All of of the info collected during --configure
	is saved in a config file (./.config_na by default) and is used to
	when grabbing listings. All of this gets us around the registration
	normally required by the site. The integration is probably easily
	broken, so keep me posted on what you get for errors.
	
	You should read the 'known bugs' list in the top of the
	getlistings_na file.
	
	Please, please criticize to developers mailings list.
	
	Otherwise, happy hunting.

2001-11-09 06:18  jveldhuis

	* ClickListings.pm: hacked to work with tvguide.ca instead of
	clicktv.com

2001-11-09 06:18  jveldhuis

	* getlistings_ca: updated to work with tvguide.ca

2001-11-02 18:35  jveldhuis

	* TVChannels.pm, channels_nl.xml, channels_uk.xml, channeltest.pl,
	doc.html, getlistings_nl, getlistings_pa, pick_process,
	scrapped_getlistings_uk_ananova, test_memoize, test_xmltv_module,
	tvprefs, tz.pl, uk_tz.pl: no longer included sometime previous to
	0.2.10

2001-11-02 18:28  jveldhuis

	* ChangeLog, ClickListings.pm, README, XMLTV.pm, channels.dtd,
	getlistings_na, getlistings_uk_ananova, sort_listings, towatch.dvi,
	xmltv.dtd, analyse_tvprefs/bnc_freq.txt: xmltv-0.2.10

2001-11-02 18:25  jveldhuis

	* ChangeLog, ClickListings.pm, README, README.channels, XMLTV.pm,
	channels.dtd, getlistings_na, getlistings_uk_ananova,
	listings_to_latex, xmltv.dtd, analyse_tvprefs/analyse_tvprefs:
	xmltv-0.2.9

2001-11-02 18:24  jveldhuis

	* ChangeLog, ClickListings.pm, README, UK_TZ.pm, XMLTV.pm,
	getlistings_na, getlistings_uk_ananova, listings_to_latex,
	pick_cgi, scrapped_getlistings_uk_ananova, test_memoize,
	test_xmltv_module, xmltv.dtd: xmltv-0.2.8

2001-11-02 18:22  jveldhuis

	* ChangeLog, README, getlistings_uk_ananova, pick_cgi: xmltv-0.2.7

2001-11-02 18:21  jveldhuis

	* ChangeLog, README, listings_to_latex, uk_tz.pl: xmltv-0.2.6

2001-11-02 18:20  jveldhuis

	* ChangeLog, README, README.channels, TVChannels.pm, channels.dtd,
	channels_nl.xml, channels_uk.xml, channeltest.pl, getlistings_nl,
	getlistings_uk_ananova, listings_to_latex, pick_cgi, tvprefs,
	uk_tz.pl: xmltv-0.2.5

2001-11-02 18:15  jveldhuis

	* ChangeLog, README, doc.html, getlistings_ca, getlistings_nl,
	getlistings_uk_ananova, listings_to_latex, pick_cgi, sort_listings,
	uk_tz.pl: xmltv-0.2.4

2001-11-02 18:14  jveldhuis

	* ChangeLog, README, doc.html, pick_cgi: xmltv-0.2.3

2001-11-02 18:14  jveldhuis

	* ChangeLog, README, doc.html, getlistings_uk_ananova, uk_tz.pl:
	xmltv-0.2.2

2001-11-02 18:13  jveldhuis

	* ChangeLog, ChangeLog.old, README, doc.html, filter_shown,
	getlistings_ca, getlistings_nl, getlistings_uk_ananova,
	listings_to_latex, pick_cgi, sort_listings, xmltv.dtd: xmltv-0.2.1

2001-11-02 18:09  jveldhuis

	* ChangeLog, README, doc.html, filter_shown, getlistings_ca,
	getlistings_nl, getlistings_uk_ananova, listings_to_latex,
	pick_cgi, sort_listings, uk_tz.pl, xmltv.dtd: xmltv-0.2.0

2001-11-02 18:07  jveldhuis

	* ChangeLog, README, filter_shown, getlistings_pa,
	listings_to_latex, pick_cgi, tz.pl, xmltv.dtd: xmltv-0.1.1

2001-11-02 17:58  jveldhuis

	* COPYING, ChangeLog, README, filter_shown, getlistings_pa,
	listings_to_latex, pick_cgi, pick_process, xmltv.dtd: initial
	revision

