1 | Revision history for Text::Template
|
---|
2 |
|
---|
3 | 1.56 2019-07-09
|
---|
4 | - Fix typos in Changes
|
---|
5 |
|
---|
6 | 1.55 2019-02-25
|
---|
7 | - Improve AppVeyor tests for older Perls (Thanks Roy Ivy)
|
---|
8 | - Check for Test::More 0.94 and skip tests if not installed where
|
---|
9 | done_testing() is used (Thanks Roy Ivy).
|
---|
10 | - Improve workaround for broken Win32 File::Temp taint failure (Thanks Roy Ivy).
|
---|
11 | - Skip/todo tests which fail under Devel::Cover (Thanks Roy Ivy)
|
---|
12 | - Add checks and skip_all checks for non-core test modules (Thanks Roy Ivy)
|
---|
13 |
|
---|
14 | 1.54 2019-01-13
|
---|
15 | - Fix tempfile creation during tests on Win32
|
---|
16 |
|
---|
17 | 1.53 2018-05-02
|
---|
18 | - Add support for decoding template files via ENCODING constructor arg
|
---|
19 | [github #11]
|
---|
20 | - Docs cleanup: replace indirect-object style examples and use class method
|
---|
21 | style constructor calls in the POD docs
|
---|
22 | - Docs cleanup: remove hard tabs from POD, replace dated, unfair synopsis
|
---|
23 | [github #5], convert "THANKS" section to a POD list
|
---|
24 |
|
---|
25 | 1.52 2018-03-19
|
---|
26 | - Fix possible 'Subroutine ... redefined' warning (Github #10)
|
---|
27 |
|
---|
28 | 1.51 2018-03-04
|
---|
29 | - Add test for nested tags breakage that happened in v1.46
|
---|
30 | - Turn off strict+warnings in sections where template code is eval'ed
|
---|
31 | [github #9]
|
---|
32 |
|
---|
33 | 1.50 2018-02-10
|
---|
34 | *** Revert support for identical start/end delimiters (e.g.: @@foo@@, XXfooXX)
|
---|
35 | due to breakage with nested tags (see
|
---|
36 | https://github.com/mschout/perl-text-template/issues/8). Will revisit
|
---|
37 | this in a future release.
|
---|
38 |
|
---|
39 | 1.49 2018-02-07
|
---|
40 | - Fix failing tests in v1.48 under perl < 5.8.9
|
---|
41 |
|
---|
42 | 1.48 2018-02-07
|
---|
43 | - remove COPYING and Artistic files from the dist. These are replaced by
|
---|
44 | the Dist::Zilla generated LICENSE file.
|
---|
45 | - use strict/warnings (thanks Mohammad S Anwar)
|
---|
46 | - remove $VERSION checks from tests. This makes it easier to run the test
|
---|
47 | with Dist::Zilla and avoids maintenance issue of updating the tests for
|
---|
48 | each release (Thanks Andrew Ruder).
|
---|
49 | - Allow precompiled templates to work with preprocessing [#29928] (Thanks
|
---|
50 | Nik LaBelle)
|
---|
51 | - Add "strict" option to fill_in(). This adds "use strict" and "use vars
|
---|
52 | (...)" to the prepend section, and only the keys of the HASH option are
|
---|
53 | allowed in the template. (Thanks Desmond Daignault, Kivanc Yazan, CJM)
|
---|
54 | [55696]
|
---|
55 | - Fix templates with inline comments without newline after comment for perl
|
---|
56 | < 5.18 [34292]
|
---|
57 | - Don't use bareword file handles
|
---|
58 | - use three arg form of open()
|
---|
59 | - Fix BROKEN behaviour so that it returns the text accumulated so far on
|
---|
60 | undef as documented [28974]
|
---|
61 | - Source code cleanups
|
---|
62 | - Minimum perl version is now 5.8.0
|
---|
63 | - Allow start/end delimiters to be identical (e.g.: @@foo@@, XXfooXX)
|
---|
64 | (Thanks mirod) [46639]
|
---|
65 | - Fix + document the FILENAME parameter to fill_in() (Thanks VDB) [106093]
|
---|
66 | - Test suite cleanups:
|
---|
67 | + turn on strict/warnings for all tests
|
---|
68 | + run tests through perltidy and formatting cleanup
|
---|
69 | + remove number prefixes from test names
|
---|
70 | + use Test::More instead of generating TAP by hand
|
---|
71 | + use three-arg form of open()
|
---|
72 | + don't use indirect object syntax
|
---|
73 | + don't use bareword file handles
|
---|
74 | + use File::Temp to generate temporary files
|
---|
75 |
|
---|
76 | 1.47 2017-02-27
|
---|
77 | - Fix longstanding memory leak in _scrubpkg() [#22031]
|
---|
78 | - Fix various spelling errors [#86872]
|
---|
79 |
|
---|
80 | NOTE: Changes for versions prior to 1.47 have been imported from README
|
---|
81 |
|
---|
82 | 1.46 2013-02-11
|
---|
83 | - Thanks to Rik Signes, there is a new
|
---|
84 | Text::Template->append_text_to_output method, which Text::Template always
|
---|
85 | uses whenever it wants to emit output. You can subclass this to get
|
---|
86 | control over the output, for example for postprocessing.
|
---|
87 | - A spurious warning is no longer emitted when the TYPE parameter to ->new
|
---|
88 | is omitted.
|
---|
89 |
|
---|
90 | 1.45 2008-04-16
|
---|
91 |
|
---|
92 | 1.44 2003-04-29
|
---|
93 | - This is a maintenance release. There are no feature changes.
|
---|
94 | - _scrubpkg, which was responsible for eptying out temporary packages after
|
---|
95 | the module had done with them, wasn't always working; the result was
|
---|
96 | memory leaks in long-running applications. This should be fixed now, and
|
---|
97 | there is a test in the test suite for it.
|
---|
98 | - Minor changes to the test suite to prevent spurious errors.
|
---|
99 | - Minor documentation changes.
|
---|
100 |
|
---|
101 | 1.43 2002-03-25
|
---|
102 | - The ->new method now fails immediately and sets $Text::Template::ERROR if
|
---|
103 | the file that is named by a filename argument does not exist or cannot be
|
---|
104 | opened for some other reason. Formerly, the constructor would succeed
|
---|
105 | and the ->fill_in call would fail.
|
---|
106 |
|
---|
107 | 1.42 2001-11-05
|
---|
108 | - This is a maintenance release. There are no feature changes.
|
---|
109 | - Fixed a bug relating to use of UNTAINT under perl 5.005_03 and possibly
|
---|
110 | other versions.
|
---|
111 | - Taint-related tests are now more comprehensive.
|
---|
112 |
|
---|
113 | 1.41 2001-09-04
|
---|
114 | - This is a maintenance release. There are no feature changes.
|
---|
115 | - Tests now work correctly on Windows systems and possibly on other
|
---|
116 | non-unix systems.
|
---|
117 |
|
---|
118 | 1.40 2001-08-30
|
---|
119 | *** INCOMPATIBLE CHANGE ***
|
---|
120 | - The format of the default error message has changed. It used to look
|
---|
121 | like:
|
---|
122 |
|
---|
123 | Program fragment at line 30 delivered error ``Illegal division by zero''
|
---|
124 |
|
---|
125 | It now looks like:
|
---|
126 |
|
---|
127 | Program fragment delivered error ``Illegal division by zero at catalog.tmpl line 37''
|
---|
128 |
|
---|
129 | Note that the default message used to report the line number at which the
|
---|
130 | program fragment began; it now reports the line number at which the error
|
---|
131 | actually occurred.
|
---|
132 |
|
---|
133 | *** INCOMPATIBLE CHANGE ***
|
---|
134 | - The format of the default error message has changed. It used to look like:
|
---|
135 |
|
---|
136 | Program fragment at line 30 delivered error ``Illegal division by zero''
|
---|
137 |
|
---|
138 | It now looks like:
|
---|
139 |
|
---|
140 | Program fragment delivered error ``Illegal division by zero at catalog.tmpl line 37''
|
---|
141 |
|
---|
142 | - Note that the default message used to report the line number at which the
|
---|
143 | program fragment began; it now reports the line number at which the error
|
---|
144 | actually occurred.
|
---|
145 | - New UNTAINT option tells the module that it is safe to 'eval' code even
|
---|
146 | though it has come from a file or filehandle.
|
---|
147 | - Code added to prevent memory leaks when filling many templates. Thanks
|
---|
148 | to Itamar Almeida de Carvalho.
|
---|
149 | - Bug fix: $OUT was not correctly initialized when used in conjunction
|
---|
150 | with SAFE.
|
---|
151 | - You may now use a glob ref when passing a filehandle to the ->new
|
---|
152 | function. Formerly, a glob was required.
|
---|
153 | - New subclass: Text::Template::Preprocess. Just like Text::Template, but
|
---|
154 | you may supply a PREPROCESS option in the constructor or the fill_in
|
---|
155 | call; this is a function which receives each code fragment prior to
|
---|
156 | evaluation, and which may modify and return the fragment; the modified
|
---|
157 | fragment is what is evaluated.
|
---|
158 | - Error messages passed to BROKEN subroutines will now report the correct
|
---|
159 | line number of the template at which the error occurred:
|
---|
160 |
|
---|
161 | Illegal division by zero at template line 37.
|
---|
162 |
|
---|
163 | - If the template comes from a file, the filename will be reported as well:
|
---|
164 |
|
---|
165 | Illegal division by zero at catalog.tmpl line 37.
|
---|
166 |
|
---|
167 | - New UNTAINT option tells the module that it is safe to eval template code
|
---|
168 | even if it has come from a file or filehandle, disabling taint checking
|
---|
169 | in these cases.
|
---|
170 | - Code added to prevent memory leaks when filling many templates. Thanks to
|
---|
171 | Itamar Almeida de Carvalho.
|
---|
172 | - Bug fix: $OUT was not always correctly initialized when used in
|
---|
173 | conjunction with SAFE.
|
---|
174 | - You may now use a glob ref when passing a filehandle to the new function.
|
---|
175 | Formerly, a glob was required.
|
---|
176 | - Error messages passed to BROKEN subroutines will now report the correct
|
---|
177 | line number of the template at which the error occurred:
|
---|
178 |
|
---|
179 | Illegal division by zero at template line 37.
|
---|
180 |
|
---|
181 | If the template comes from a file, the filename will be reported as well:
|
---|
182 |
|
---|
183 | Illegal division by zero at catalog.tmpl line 37.
|
---|
184 |
|
---|
185 | - New subclass: Text::Template::Preprocess. Just like Text::Template, but
|
---|
186 | you may supply a PREPROCESS option in the fill_in call; this is a
|
---|
187 | function which receives each code fragment prior to evaluation, and which
|
---|
188 | may modify and return the fragment; the modified fragment is what is
|
---|
189 | evaluated.
|
---|
190 |
|
---|
191 | 1.31 2001-02-05
|
---|
192 | - Maintenance and bug fix release
|
---|
193 | - fill_in_string was failing. Thanks to Donald L. Greer Jr. for the test case.
|
---|
194 |
|
---|
195 | 1.23 1999-12-21
|
---|
196 | - Small bug fix: DELIMITER and other arguments were being ignored in calls
|
---|
197 | to fill_in_file and fill_this_in. (Thanks to Jonathan Roy for reporting
|
---|
198 | this.)
|
---|
199 |
|
---|
200 | 1.22
|
---|
201 | - You can now specify that certain Perl statements be prepended to the
|
---|
202 | beginning of every program fragment in a template, either per template,
|
---|
203 | or for all templates, or for the duration of only one call to fill_in.
|
---|
204 | This is useful, for example, if you want to enable `strict' checks in
|
---|
205 | your templates but you don't want to manually add `use strict' to the
|
---|
206 | front of every program fragment everywhere.
|
---|
207 |
|
---|
208 | 1.20 1999-03-08
|
---|
209 | - You can now specify that the program fragment delimiters are strings
|
---|
210 | other than { and }. This has three interesting effects: First, it
|
---|
211 | changes the delimiter strings. Second, it disables the special meaning
|
---|
212 | of \, so you have to be really, really sure that the delimiters will not
|
---|
213 | appear in your templates. And third, because of the simplifications
|
---|
214 | introduced by the elimination of \ processing, template parsing is 20-25%
|
---|
215 | faster. See the manual section on `Alternative Delimiters'.
|
---|
216 | - Fixed bug having to do with undefined values in HASH options. In
|
---|
217 | particular, Text::Template no longer generates a warning if you try to
|
---|
218 | give a variable an undefined value.
|
---|
219 |
|
---|
220 | 1.12 1999-02-28
|
---|
221 | - I forgot to say that Text::Template ISA Exporter, so the exported
|
---|
222 | functions never got exported. Duhhh!
|
---|
223 | - Template TYPEs are now case-insensitive. The `new' method now diagnoses
|
---|
224 | attempts to use an invalid TYPE.
|
---|
225 | - More tests for these things.
|
---|
226 |
|
---|
227 | 1.11 1999-02-25
|
---|
228 | - Fixed a bug in the way backslashes were processed. The 1.10 behavior was
|
---|
229 | incompatible with the beta versions and was also inconvenient. (`\n' in
|
---|
230 | templates was replaced with `n' before it was given to Perl for
|
---|
231 | evaluation.) The new behavior is also incompatible with the beta
|
---|
232 | versions, but it is only a little bit incompatible, and it is probably
|
---|
233 | better.
|
---|
234 | - Documentation for the new behavior, and tests for the bug.
|
---|
235 |
|
---|
236 | 1.10 1999-02-13
|
---|
237 | - New OUTPUT option delivers template results directly to a filehandle
|
---|
238 | instead of making them into a string. Saves space and time.
|
---|
239 | - PACKAGE and HASH now work intelligently with SAFE.
|
---|
240 | - Fragments may now output data directly to the template, rather than
|
---|
241 | having to arrange to return it as a return value at the end. This means
|
---|
242 | that where you used to have to write this:
|
---|
243 |
|
---|
244 | { my $blist = '';
|
---|
245 | foreach $i (@items) {
|
---|
246 | $blist .= qq{ * $i\n};
|
---|
247 | }
|
---|
248 | $blist;
|
---|
249 | }
|
---|
250 |
|
---|
251 | You can now write this instead, because $OUT is special.
|
---|
252 |
|
---|
253 | { foreach $i (@items) {
|
---|
254 | $OUT.= " * $i\n";
|
---|
255 | }
|
---|
256 | }
|
---|
257 |
|
---|
258 | (`A spoonful of sugar makes the medicine go down.')
|
---|
259 | - Fixed some small bugs. Worked around a bug in Perl that does the wrong
|
---|
260 | thing with $x = <Y> when $x contains a glob.
|
---|
261 | - More documentation. Errors fixed.
|
---|
262 | - Lots more tests.
|
---|
263 |
|
---|
264 | 1.03 1999-02-06
|
---|
265 | - Code added to support HASH option to fill_in. (Incl. `_gensym'
|
---|
266 | function.)
|
---|
267 | - Documentation for HASH.
|
---|
268 | - New test file for HASH.
|
---|
269 | - Note about failure of lexical variables to propagate into templates. Why
|
---|
270 | does this surprise people?
|
---|
271 | - Bug fix: program fragments are evaluated in an environment with `no
|
---|
272 | strict' by default. Otherwise, you get a lot of `Global symbol "$v"
|
---|
273 | requires explicit package name' failures. Why didn't the test program
|
---|
274 | pick this up? Because the only variable the test program ever used was
|
---|
275 | `$a', which is exempt. Duhhhhh.
|
---|
276 | - Fixed the test program.
|
---|
277 | - Various minor documentation fixes.
|
---|
278 |
|
---|
279 | 1.00 1999-02-05
|
---|
280 | This is a complete rewrite. The new version delivers better functionality
|
---|
281 | but is only 2/3 as long, which I think is a good sign. It is supposed to be
|
---|
282 | 100% backward-compatible with the previous versions. With one cosmetic
|
---|
283 | change, it passes the test suite that the previous versions passed. If you
|
---|
284 | have compatibility problems, please mail me immediately.
|
---|
285 |
|
---|
286 | - At least twice as fast
|
---|
287 | - Better support for filling out the same template more than once
|
---|
288 | - Now supports evaluation of program fragments in Safe compartments.
|
---|
289 | (Thanks, Jonathan!)
|
---|
290 | - Better argument syntax
|
---|
291 | - More convenience functions
|
---|
292 | - The parser is much better and simpler
|
---|
293 | - Once a template is parsed, the parsed version is stored so that
|
---|
294 | it needn't be parsed again.
|
---|
295 | - BROKEN function behavior is rationalized. You can now pass an
|
---|
296 | arbitrary argument to your BROKEN function, or return a value
|
---|
297 | from it to the main program.
|
---|
298 | - Documentation overhauled.
|
---|
299 |
|
---|
300 | Previous Versions
|
---|
301 | - Maintained by Mark Jason Dominus (MJD)
|
---|