0.23 - redesign release - added buffer to context structure to avoid mallocs - added context_root function to return the root of a group of contexts - eliminated memory leak in new parsing engine - minor syntax fix to template_cc.h - one-line wrapper functions replaced with macros - minor optimizations to echo and include tag functions - optimizations to the new parsing engine - completely rewrote the parser as a separate tokenizer and a parser, a much cleaner approach 0.22 - feature release - removed calls to destroy() from tests - added destroy() to Tmpl.pm for backwards compatibility, and removed references to destroy() from documentation - made destructor work without explicit calling by piggybacking in the MAGIC structure - updated typemap and perl_tags.c to use '~' magic for storage of context_p variables, so that the pointer can't be changed from Perl - updated parse_arg() to use append_output() for string management - fixed a minor bug in the typemap - added template_fetch_loop_iteration function, for loading an existing iteration from a loop by number; added related tests and XS code - removed some debugging code which was accidentally released - made 2_debug.t test the debug tag more rigorously 0.21 - bugfix release - fixed a severe bug which broke debugging output completely - the non-anonymous children of anonymous contexts were incorrectly inheriting the anonymous flag (gphan@sydney.daveb.net) - removed extraneous memory allocation from context_init() - added t/2_debug.* for minimal testing of the debugging tag pair. 0.20 - bugfix release - fixed a null termination bug in the parser (ak@dasburo.de) - added t/3_relationships.t to test for bugs related to the size of variables and the size of variable names 0.19 - performance release - modified append_output() in parser.c to never call strlen(), which is a *huge* performance win for large templates - removed unnecessary atoi() call in default_tags.c (ak@dasburo.de) 0.18 - bugfix release - added additional tests for large input problems - fixed a bug (introduced in 0.17) with variables larger than 1024 bytes, under certain circumstances (ak@dasburo.de) 0.17 - bugfix and feature release - moved some constant strings into #defines where they belonged - moved the placeholder debugging code into the new 'flags', and attendant changes - fixed instances in C code of multiple recalculations of the lengths of the same string - optimized the context structure by using bitwise 'flags' field rather than several boolean fields and internal variables - echo tag now echoes all arguments instead of only the first - added 3_deep_nesting.t to test the functioning of extremely deeply nested contexts - added template_strerror(), Text::Tmpl::errno, Text::Tmpl::strerror and very basic test code - added template_errno and relevant error reporting code - fixed innumerable cases of duplicated argument checking in C code - fixed a couple of small potential bugs in C code - made boolean tags (if and ifn) treat strings which don't contain numbers as true rather than false (ak@dasburo.de) - replaced calloc() with malloc() through most of the code - added a pointer to the last peer context (loop iteration) to the context structure to improve the performance of long loops - integrated with Devel::PPPort v1.0007 - added examples/ directory, and a few simple example programs - added C++ class header file template_cc.h 0.16 - compatibility release - reversed the #defines for backwards compatibility with na and sv_undef (schinder@pobox.com) - included XSUB.h in perl_tags.c so that it'll still work with a perl built with PERL_IMPLICIT_CONTEXT (multiplicity, threads or perl_object) 0.15 - bugfix and feature release - fixed template.c problem with systems which don't define MAXPATHLEN (Artur.Silveira@rezo.com) - added t/3_huge_input.t to test large string input to some functions - added t/3_long_lists.t to test adding tons of variables to a context, and tons of loop iterations - simplified the logic of adding to certain linked list structures - fixed warnings from Tmpl.xs (Artur.Silveira@rezo.com) - removed '-g' flag from default compiler flags (you can always add it back if you need it...) - tidied up the code in Tmpl.xs a bit - tidied up the code in typemap a bit - Minor changes to typemap and Tmpl.xs to better support subclassing. - Added t/3_subclass tests for the correct behavior of subclassed packages of Text::Tmpl. 0.14 - bugfix and feature release - Cleaned up the perl_tags.c code a little. - Moved tag delimiters into context-specific variables. (No more globals!) Related test and documentation changes. As a side effect, there is no arbitrary limit on tag delimiter size anymore. - Updated perl_tags.c and Tmpl.xs so that perl tags are also context-specific. - Made simple tags and tag pairs context-specific, with attendant test and documentation changes. This fixes bugs related to multiple contexts. - Added 3_multiplicity test to detect glaring multiple context problems. (Vladimir Tomasovic ) - Added alias_simple and alias_pair functions, and all relevant tests and documentation. - switched to PL_na and PL_sv_undef notation, and added #defines for backwards compatibility (schinder@pobox.com) 0.13 - bugfix and feature release - added t/1_exporter.t to test use of exported symbols - made Text::Tmpl a subclass of Exporter, and added the package global functions and constants to @EXPORT_OK - updated documentation and tests to use new instead of init - added a new() constructor, which allows subclassing and whose syntax is the familiar "my $context = new Text::Tmpl;" - added a CREDITS file - added tests to t/3_undef_input.t for set_values() - fixed warnings generated by set_values() when some values in the hashref are undefined (Tibor Lorincz ) - fixed a bug with set_dir() requiring that the directory end with a trailing slash to work correctly (Tibor Lorincz ) 0.12 - interim release - updated the README file for readability and accuracy - moved libtmpl stuff into base directory & got rid of standalone Makefile; also added libtmpl.a target to Makefile.PL - tiny fix to Tmpl.xs - removed assumption about gcc from libtmpl/Makefile (Artur.Silveira@rezo.com) 0.11 - bugfix release - removed t/2_debug.* for now, because the test is filesystem location dependent. (schinder@pobox.com) - added documentation of the debug tag pair, and extended the template_syntax document in general. - added context_get_value() call to Tmpl.xs 0.10 - interim release - updated README file - changed the memory allocation scheme used by the parser so that it is more efficient with large variable values and templates - made perl_simple_tag and perl_tag_pair bless the contexts they pass into the underlying perl functions they call - added documentation for set_values() - added set_values() method - updated the documentation a bit - moved tests into t/*.t format & started adding more tests - made XS code & typemap more robust in the face of undef input 0.09 - bugfix release - fixed a bunch of memory leaks in the underlying C library - updated README file - added TODO file 0.08 - bugfix release - fixed a coredumping problem when parsing a nonexistent or empty template 0.07 - bugfix release - fixed a memory leak in Tmpl.xs - added a test or two - fixed another bug in Tmpl.xs 0.06 - bugfix release - fixed a bug in Tmpl.xs, which may have been the root of all these optimizer woes. 0.05 - compatibility fix release - added some casts to avoid compiler warnings on solaris. - gcc bug on solaris. Added hints/solaris.pl as workaround. (schinder@pobox.com) 0.04 - compatibility fix release - ExtUtils::MakeMaker will write a Makefile that is syntactically incorrect for gmake(1) if there are .pod files with '::' in them. Fixed. (schinder@pobox.com) 0.03 - first public release