The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for Perl extension e2interface.

0.34 Thu Aug 07 2003
			- Fixed a bug in E2::Interface::extract_cookies:
			  either HTTP::Cookies or e2's server is unreliable
			  as to whether is structures the cookie as
			  'userpass="...";' or 'userpass=...;'. I believe
			  this hit me before, so I switched from one to
			  the other--now I realize it needs to cover both.

			- I think I finally found a usable workaround for
			  the issue of E2 not escaping titles. E2::Interface::
			  post_process now escapes all '<', '>', and '&'
			  between "<e2link .*?>" and "</e2link>".

0.33 Sun Jul 20 2003
			- Resolved a problem with E2::Interface::parse_twig
			  and unicode, so we no longer have to strip unicode
			  to avoid parse errors.
			  
			- Updated E2::Interface::post_process to leave unicode
			  intact--this also removes the requirement for
			  Unicode::String. Also modified the demoronizer to
			  convert nonstandard Microsoft encoding to html
			  entities.

			- Fixed a bug that caused E2::E2Node::get_my_writeup
			  to often return undef even if the user has a
			  writeup in the selected node.

			- Various fixes to E2::UserSearch::compare (added a
			  couple new keys, fixed a bug that terminated
			  execution).

			- Added softlink parameter to E2::Node::load and
			  E2::Node::load_by_id.

			- Removed 'TYPE' parameter in E2::Node::load_by_id
			  and E2::Node::load_from_xml, because, basically,
			  it didn't make any sense.

			- Changed a bunch of use()s to require()s in
			  E2::Interface so use_threads runs much, much faster
			  if called early.

			- Added a third parameter to E2::Interface::thread_then
			  to allow a piece of code to be run after the deferred
			  method finishes, regardless of whether exceptions
			  were thrown.

			- Fixed a couple bugs in E2::Interface::finish that
			  were causing strange behaviour when it was called
			  without a specified job.

			- Added a workaround to the various e2 xmltrue exports
			  that don't in fact escape fields that they should be
			  escaping (E2::Interface::post_process)
			
0.32 Wed Jun 18 2003
			- Removed E2::Ticker::scratch_pad and created
			  E2::Scratchpad, adding the ability to update
			  scratchpads.

			- Various documentation tweaking and updating
			  (writing a script to autoupdate online docs)

			- Added the ability to use multiple parameters
			  in calls to the E2::Message methods archive,
			  unarchive, and delete; added E2::Message::perform
			  to allow a list of messages to be archived,
			  unarchived, and deleted all in the same HTTP request.

			- Added E2::Writeup::vote (basically redundant
			  with E2::E2Node::vote, but E2::Writeup should
			  have the method as well for the sake of
			  intuitiveness (intuititon?).

			- Added E2::Writeup::reply

			- E2::E2Nodes now call clone() on any E2::Writeups
			  they create.

			- Created generate_e2_docs, a script that automatically
			  keeps e2interface's online documentation up-to-date
			  with each release.

			- Fixed a bug in E2::Writeup::update that caused a
			  run-time error.

0.31  Tue Jun 10 2003
			- Fixed a bug in E2::Interface::extract_cookie
			  introduced in 0.30--the method was writing
			  directly to a reference rather than to the
			  data the reference pointed to

			- Simplified E2::Ticker::parse()

			- Modified E2::Ticker and its descendants to be
			  reentrant (or at least _more_ reentrant--strange
			  things still might happen if one uses multiple
			  threads AND calls more than one "update" type of
			  methods simultaneously AND doesn't use 
			  E2::Interface::thread_then() to retrieve the data
			  immediately upon completion)

			- Added E2::Ticker::use_string()--we can now load
			  tickers from xml strings rather than directly
			  from the e2 servers, if we wish

			- Added E2::UserSearch::compare() and stats(), so
			  E2::UserSearch can now do nodetracker-like
			  comparisons

			- Added threading to the list of data that is cloned
			  by a call to E2::Interface::clone(), so background
			  threads can now be shared between multiple objects

			- Added E2::Interface::debug() and debugging info to
			  all classes of e2interface

			- Added E2::Interface::join_threads() and
			  E2::Interface::detach_threads() to allow threads
			  to be finished (getting tired of those "A thread
			  exited while 14 other threads were still running"
			  warnings.

0.30  Wed May 14 2003
			- Added multithreading for all network-dependant
			  methods

			- Reworked E2::Interface::clone() so that changes
			  made to cloned objects after the call to clone()
			  will be propogated

			- Reworked E2::Interface::login() to request cookies
			  instead of packing them itself (there was an issue
			  with case-sensitivity of usernames they way it was
			  originally implemented)

			- Added E2::Interface::document()--callers now have
			  access to the document most recently retrieved and
			  processed.

			- Added archive handling to E2::Message.

			- Brought docs up-to-date.

0.22  Sun Apr 20 2003 (unreleased)
			- Brought E2::Ticker up to parity with the current
			  everything2 tickers.

			- Centralized parse code at E2::Interface::parse_twig

			- Test cases are now included in the tarball.

0.21  Sun Mar 16 2003
			- Added E2::Room, E2::Session, and
			  E2::ClientVersion.

			- Added additional tickers to E2::Ticker.

			- Various bugfixes and new test cases.

			- Initial CPAN release.

0.20  Sun Mar 02 2003
			- Split most of the modules into either subclasses
			  of E2::Node or E2::Ticker and consolidated a lot
			  of the process_request and XML::Twig::parse
			  calls.

			- Standardized the exception handling and documented
			  possible exceptions for each method.

			- Split E2::User into E2::User and E2::UserSearch.

			- Added E2::Usergroup and E2::Superdoc.

			- Removed E2::Code and E2::Nodetrack for the time
			  being.

			- Updated all the documentation and added a couple
			  test cases, in order to be ready for the initial
			  public (e2-wide) release.

0.13  Sun Feb 23 2003
			- Migrated E2::User return values to hashrefs.

			- Added E2::Xmltrue and edited E2::Node ande E2::User
			  to inherit it (so they now provide a consistent
			  interface).

			- Added E2::Ticker

0.12  Fri Feb 21 2003
			- Migrated some list return values to hashrefs.
			
			- Fixed (workaround) the character encoding bug
			  that caused expat to die on certain nodes.

			- Added an (optional) dot directory to the user's
			  home, allowing cookies and other data to persist.

			- Added E2::Code, E2::Nodetrack

0.11  Thu Nov 21 2002
			- Replaced parser XML::Simple with XML::Twig for
			  thread safety.

			- Added E2::User, E2::Search

0.10  Fri Nov 15 2002
			- Initial release to clientdev usergroup on E2