The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
2003/08/29

Added a patch from Andrew Eland that provides a warning if you have a
macro definition that runs away to the end of the file.

2000/04/27

Reduced amount of internal error checking for marginal speed improvements.

Class is now inheritable.

I've reached a kind of watershed with this module: it does the pre-processing
I want it to do, but because I opted for power vs speed it is best used for
batch work rather than on-the-fly processing. There are also several modules
that do similar things but with different tradeoffs. Feedback on what you use
it for, what it lacks, etc would be helpful in deciding where to go with it. 


2000/02/22

Minor correction to _croak so that error messages don't list filename and line
twice.


2000/02/18

Corrected tarball so that make test will work. Additional tests to
macroscript.t would be welcome.


2000/02/06

Wrote skeletal test program. It does hardly anything yet but at least its a
start.


2000/02/01

Literal #s should always be escaped if they are followed by digits but need
not be otherwise. Missing parameters now carps rather than croaks (unless you
try to use a missing parameter in which case we croak).


2000/01/30

Literal #s will now rarely have to be escaped in script or macro bodies.
Added new example macro which is used to produce menus on pages to html.macro. 


2000/01/25

Made the relevant macroutil.pl functions XHTML compliant.


2000/01/24

You can now have literal #s in macro and script bodies providing you escape
them, i.e. # is signified by \#. This is thanks to Richard Bradbury who
spotted that this is a problem for HTML work, e.g. something like 
<font color="#121212"> as a macro body gave a missing parameter error.
Now you can now write things like this: 
    $Macro->define( -macro, 'GREY', '<font color="\#121212">#0</font>' ) ;
which would be used (in embedded style) thus:
    The text is coloured <:GREY[grey]:>.

Updated the documentation to reflect this plus added some text on how to
convert macros into scripts.

Note that you can no longer have nuls in macro and script bodies. In the case
of a macro make it a script and for a script represent a nul as chr(0).

Added an image function to macroutil.pl.


2000/01/15

All the exportable functions have now been moved to a function library called
macroutil.pl. This library has two new functions imageif which can be used to
include images (e.g. updated) up until specified dates and copyright. 

The macro language now supports %REQUIRE[yourlibrary.pl] so you can load in
the supplied library and/or your own function libraries which is a far cleaner
and more versatile approach than adding the functions to Text::MacroScript
itself.


2000/01/14

Moved relpath function to Text::MacroScript.pm so it is now accessible either
by use Text::MacroScript qw( relpath ) or by calling it at
Text::MacroScript::relpath. 

Added abspath and today importable functions.

Various internal improvements, plus bug fixes to variable handling. 

html.macro example now includes examples of macro, script and variable usage.


2000/01/08

Added &main::relpath function for use in macros; now supply an example macro
file for html processing, html.macro, which includes example macros for
inserting `new' or `updated' images up until a user-specified expiry date.


1999/11/24

Now croaks gracefully if it cannot open a file.
Added --dir (target directory) option to macrodir.


1999/11/15

Added macrodir to the bundle.


1999/09/21

Updated the ordered array code to be more efficient (as per errata for
the Wolf book).


1999/09/19

Macros and scripts are now stored in an ordered array. The tradeoffs of this
are: slightly slower define for new macros and scripts; faster expansion (up
to 40%). (The implementation of variables has not been changed.) Since one
would expect most scenarios to involve relatively few (10's, 100's) of
definitions, but lots of expansion, (100's, 1000's or 10,000's lines) this
should improve overall performance. For greater insertion speed we'd need to
use either a balanced binary tree or a B*tree.


1999/09/11  

Removed study. Treats newline as any other character so you can process lines,
paragraphs or entire files with identical results.


1999/09/10  

Renamed package Text::MacroScript.pm as per John Porter's (CPAN) suggestion.


1999/09/07  

Added support for embedded processing.


1999/09/04  

localised $_ before eval calls.


1999/09/02  

Minor documentation corrections.

1999/09/01  

Minor documentation corrections.

1999/08/29  

Minor documentation corrections.

1999/08/28  

Minor documentation corrections.

1999/08/22  

Version 1.00.

1999/08/18  

Created.