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

0.01  Thu Jun 22 08:06:59 2006
	- original version

0.02
    * added example/ scripts
    * fixed S::T::K SYNOPSIS to reflect reality
    * POD fixes
    * added is_valid_utf8() method to S::T::Transliterate
      along with valid utf8 check in convert()
    * rewrote S::T::Keywords logic to:
        * correctly parse stopwords (all are compared with lc())
        * return phrases as phrases
        * additional UTF-8 checks
        * parse according to RegExp character definitions
    * changed default UTF8Char regexp in S::T::RegExp
    * changed default WordChar regexp in S::T::RegExp
    * begin_characters and end_characters are no longer supported
      since they were logically just the inverse of ignore_*_char plus
      word_characters. The entire regexp construction was refactored
      with that in mind.
    * @Search::Tools::Accessors now provides (saner) way for subclasses
      to inherit attributes like word_characters, stemmer, stopwords, etc.
    * S::T::RegExp kw_opts is no longer supported
    * stopwords are intentionally left in phrases, as are special boolean words
    * added ->phrase accessor to S::T::R::Keyword
    * S::T::HiLiter now higlights all phrases before singles so that
      any overlap privileges the phrase match. Example would be 'foo and "foo bar"'
      where the phrase "foo bar" should receive precedence over single word 'foo'.
      
0.03
    * fixed charset/locale issue in S::T::Keywords reported by Debbie Jones

0.04
    * added S::T::SpellCheck
    * fixed (finally I hope) charset/locale/lang issue by making it global
      accessor and checking for C and POSIX
    * reorged default settings in S::T::Keywords to set in new() rather
      than each time in extract()
   
0.05
    * added spellcheck() convenience method to S::T
    * added t/11synopsis.t test
    * changed POD to reflect new methods
    * added query() accessor to S::T::SpellCheck
    * thanks to Kezmega@sbcglobal.net for the above suggestions
    * fixed POD example in S::T::HiLiter
 
0.06
    * Kezmega@sbcglobal.net found a bug when running under -T taint mode.
      fixed in S::T::Keywords.
      
0.07
    * added more utf8 methods to S::T::Transliterate.
    * added $sane threshold to prevent segfaults when checking for valid_utf8 in
      long strings (like file slurps)
    * changed example/swish-e.pl to use SWISH::API::Object
    * fixed subtle regex bug with constructing word boundaries wrt ignore_*_chars
   
0.08
    * fixed bug with S::T::XML utf8_escape() with escaping a literal 0
    * changed required minimum perl to 5.8.3 for correct UTF-8 support.
    * kris@koehntopp.de suggested changes to the default character map in S::T::T
      to better support multiple transliteration options. This resulted in per-instance
      character map and no more package %Map. See doc in S::T::T for map() method.

0.09
    * separated the UTF8 checking into Search::Tools::UTF8 and use XS to check valid utf8.
      Among other things, fixes the string length bug on is_valid_utf8() 
      that previously segfaulted if the string was longer than 24K.

0.10
    * fix bug in Tools.xs where NULL was being returned as SV* instead of &PL_sv_undef

0.11
    * fix bug in UTF8.pm where latin1 was flagged internally as UTF-8 and so fooled the native
      Perl checks.
    * rewrite is_latin1() and find_bad_latin1() as XS.
    * refactored is_valid_utf8() to use internal Perl is_utf8_string() plus is_latin() and is_ascii()
      checks to help reduce ambiguity.
    * hardcode locale into some tests so that latin1 is not magically upgraded to utf8 by perl.

0.12
    * change tests to force locale for spelling dictionaries, or skip if not found

0.13
    * added File::Slurp to requirements, since tests use it.
    * changed 'use <version>' syntax to be portable.

0.14
    * fixed <version> in Makefile.PL

0.15
    * fix t/09locale.t to skip if UTF-8 charset not available via setlocale()

0.16  22 Nov 2007
    * refactor common object stuff into new Search::Tools::Object class
    * change behaviour of XML escape()/unescape() to return filtered values instead of in-place

0.17  22 May 2008
    * fix typos in S::T::SpellCheck
    * refactor some remaining classes to use Search::Tools::Object class

0.18  02 Dec 2008
    * add more debugging to to_utf8() function.
    * make Text::Aspell optional, since it has non-CPAN dependency

0.19  16 Dec 2008
    * more tests
    * clarify use of ebit in Transliterate docs

0.20  16 Dec 2008
    * refactor Transliterate->convert(). now 244% faster.

0.21  22 Jan 2009
    * fix bug in init of Transliterate map that was triggered when multiple instances
      are created in a single app

0.22  22 Jan 2009
    * continue fixing Transliterate bug exposed in version 0.20

0.23  17 July 2009
    * change utf8_safe() XML method to change low non-whitespace ascii chars to single space.
      This makes them XML-spec compliant.

0.24  19 Sept 2009
    * thanks to Henry at zen for prompting the bug fixes and improvements 
      in this release.
    * fix Data::Dump calls from pp() to fully-qualified.
    * Snipper->snip() will always return UTF-8 encoded text.
    * rename Snipper methods snipper_name, snipper_force and snipper_type 
      to type_used, force and type.
    * document Snipper->type().
    * fix some off-by-one errors in all the snip() algorithms
    * fix the debugging code in Snipper
    * add sanity check fallback to plain() hiliter to persevere if plain 
      regex obviously fails.
    * add ignore_fields feature
    * add treat_uris_like_phrases feature
    * RegExp, RegExp::Keywords, RegExp::Keyword and Keywords are all 
      deprecated in favor of the new, tidier and cleaner QueryParser, 
      Query and RegEx classes. Backwards compatibility is preserved
      for existing code, but users should move to the new API as 
      documented in Search::Tools.
      RegExp will carp every time you build() with it.
    * added new Tokenizer, Token and TokenList XS code for must faster snipping.
    * added PP versions of tokenizing code, both for benchmarking and 
      comparision.  As expected, XS is much faster. The extra speed makes it 
      possible to be more accurate in snippet extraction without sacrificing 
      performance.

0.25  19 Sept 2009
    * add missing $VERSION back to Keywords.pm to satisfy CPAN

0.26  23 Sept 2009
    * fix a couple of Perl::Critic warnings (trivial imo)
    * fix repos and homepage links in Makefile.PL
    * fix a couple of regex escape bugs in HiLiter
    * fix an innocuous bug in Object that passed extra args to 
      QueryParser->new in _normalize_args
    * add \002/\003 no-hiliting marker support in HiLiter 
      (for HTML::HiLiter)
    * HiLiter->light() now returned UTF-8 encoded text like 
      Snipper->snip() does.
    * fix regex build bug where phrase could be separated by multiple 
      whitespace chars.

0.27  29 Sept 2009
    * optimize XML->escape() and remove %XML::Ents as public variable.
      escape() is now in C/XS, borrowed from mod_perl.
    * add query_class() to QueryParser to allow subclassing Query