1Revision history for Perl extension Text::Balanced. 2 31.00 Mon Aug 11 12:42:56 1997 4 5 - original version 6 7 81.01 Mon Sep 8 18:09:18 EST 1997 9 10 - changed "quotemeta" to "quotemeta $_" to work 11 around bug in Perl 5.002 and 5.003 12 13 141.10 Tue Sep 30 17:23:23 EST 1997 15 16 - reworked extract_quotelike to correct handling of some obscure cases 17 18 191.21 Sat Oct 4 17:21:54 EST 1997 20 21 - synchronised with Parse::RecDescent distribution (version number 22 will now reflect that package) 23 241.23 Fri Oct 17 10:26:38 EST 1997 25 26 - changed behaviour in scalar and void contexts. Scalar contexts 27 now return only the extracted string. Void contexts now remove 28 the extracted string from the first argument (or $_). 29 301.24 31 32 - changed behaviour in scalar contexts. Scalar contexts 33 now return the extracted string _and_ remove it from the 34 first argument (or $_). 35 36 - changed return values on failure (all contexts return undef 37 for invalid return fields) 38 39 - fixed some lurking bugs with trailing modifier handling 40 41 - added :ALL tag to simplify wholesale importing of functions 42 43 - fixed serious bug with embedded division operators ("/") 44 This now also allows the ?...? form of pattern matching! 45 461.35 Wed Jun 24 09:53:31 1998 47 48 - fixed handling of :: quantifiers in extract_variable() 49 50 - numerous trivial lexical changes to make xemacs happy 51 52 531.36 Tue Jul 14 12:26:04 1998 54 55 - Reinstated POD file missing from previous distribution 56 57 - Added undocumented fourth parameter to extract_codeblock 58 so as to correctly handle (?) and (s?) modifiers in 59 RecDescent grammars. 60 61 621.40 Tue Aug 4 13:54:52 1998 63 64 - Added (optional) handling of embedded quoted text to 65 extract_delimited (see revised entry in Balanced.pod) 66 67 - Added extract_tagged which extracts text between arbitrary, 68 optionally nested start and end tags (see new entry in 69 Balanced.pod). 70 71 - Added delimited_pat which builds a pattern which matches a 72 string delimited by any of the delimiters specified (see new 73 entry in Balanced.pod). 74 75 - Added test.pl 76 77 781.41 Mon Aug 10 14:51:50 1998 79 80 - Reinstated change to extract_codeblock from 1.36 which were 81 mysteriously lost in 1.40 82 83 841.50 Thu Aug 27 09:20:19 1998 85 86 - Improved the structure of the regex generated by 87 delimited_pat (and used in extract_delimited). It's 88 considerably more complex, but also more robust and 89 much faster in the worst case. 90 91 - Altered extract_variable to accept whitespace in variables, 92 e.g. '$ a -> {'b'} -> [2]' 93 94 95 961.51 Sat Feb 13 10:31:55 1999 97 98 - Fixed bugs in prefix matching in extract_variable: 99 * incorrectly used default if '' specified 100 * now handles $#array correctly 101 102 - Fixed bugs in extract_codeblock: 103 * Now handles !~ properly 104 * Now handles embedded comments better. 105 * Now handles "raw" pattern matches better. 106 107 - Added support for single strings or qr's as 108 'reject' and 'ignore' args to extract_tagged() 109 110 - Added gen_extract_tagged() to "precompile" 111 a specific tag extractor for repeated use 112 (approximately 3 times faster!) 113 114 1151.52 Thu Mar 4 12:43:38 1999 116 117 - Added CSV parsing example to documentation of extract_multiple. 118 119 - Fixed a bug with extract_codeblock in "RecDescent" mode 120 (it would accept "subrule(s?)" and "subrule(?)", but 121 not "subrule(s)"). Thanks, Jan. 122 123 1241.66 Fri Jul 2 13:29:22 1999 125 126 - Added ability to use quotelike operators in extract_bracketed 127 128 - Fixed bug under 5.003 ('foreach my $func' not understood) 129 130 - Added escape specification as fourth arg to &extract_delimited 131 132 - Fixed handling of &delimited_pat and &extract_delimited 133 when delimiter is same as escape 134 135 - Fixed handling of ->, =>, and >> in &extract_code 136 when delimiters are "<>" 137 138 1391.76 Fri Nov 19 06:51:54 1999 140 141 - IMPORTANT: Now requires 5.005 or better. 142 143 - IMPORTANT: Made extract methods sensitive to the pos() 144 value of the text they are parsing. In other words, 145 all extract subroutines now act like patterns of the form 146 /\G.../gc. See documentation for details. 147 148 - IMPORTANT: Changed semantics of extract_multiple, in line 149 with the above change, and to simplify the semantics to 150 something vaguely predictable. See documentation for details. 151 152 - Added ability to use qr/../'s and raw strings as extractors 153 in extract_multiple. See documentation. 154 155 - Added fourth argument to extract_codeblock to allow 156 outermost brackets to be separately specified. See 157 documentation for details. 158 159 - Reimplemented internals of all extraction subroutines 160 for significant speed-ups (between 100% and 2000% 161 improvement). 162 163 - Fixed nasty bug in extract_variable and extract_codeblock 164 (they were returning prefix as well in scalar context) 165 166 - Allowed read-only strings to be used as arguments in 167 scalar contexts. 168 169 - Renamed delimited_pat to gen-delimited pat (in line with 170 gen_extract_tagged). Old name still works, but is now deprecated. 171 172 - Tweaked all extraction subs so they correctly handle 173 zero-length prefix matches after another zero-length match. 174 175 1761.77 Mon Nov 22 06:08:23 1999 177 178 - Fixed major bug in extract_codeblock (would not 179 terminate if there was trailing whitespace) 180 181 - Improved /.../ pattern parsing within codeblocks 182 183 1841.81 Wed Sep 13 11:58:49 2000 185 186 - Fixed test count in extract_codeblock.t 187 188 - Fixed improbable bug with trailing ->'s in extract_variable 189 190 - Fixed (HT|X)ML tag extraction in extract_tagged (thanks, Tim) 191 192 - Added explanatory note about prefix matching (thanks again, Tim) 193 194 - Added handling of globs and sub refs to extract_variable 195 196 - Pod tweak (thanks Abigail) 197 198 - Allowed right tags to be run-time evaluated, so 199 extract_tagged($text, '/([a-z]+)', '/end$1') works 200 as expected. 201 202 - Added optional blessing of matches via extract_multiple 203 204 - Fixed bug in autogeneration of closing tags in extract_tagged 205 (Thanks, Coke) 206 207 - Fixed bug in interaction between extract_multiple and 208 gen_extract_tagged (Thanks Anthony) 209 210 2111.82 Sun Jan 14 16:56:04 2001 212 213 - Fixed nit in extract_variable.t 214 (tested more cases than it promised to) 215 216 - Fixed bug extracting prefix in extract_quotelike (Thanks Michael) 217 218 - Added handling of Perl 4 package qualifier: $Package'var, etc. 219 220 - Added handling of here docs (see documentation for limitations) 221 222 - Added reporting of failure position via $@->{pos} (see documentation) 223 224 2251.83 Mon Jan 15 12:43:12 2001 226 227 - Fixed numerous bugs in here doc extraction (many thanks Tim) 228 229 2301.84 Thu Apr 26 11:58:13 2001 231 232 - Fixed bug in certain extractions not matching strings 233 with embedded newlines (thanks Robin) 234 235 2361.85 Sun Jun 3 07:47:18 2001 237 238 - Fixed bug in extract_variable recognizing method calls that 239 start with an underscore (thanks Jeff) 240 241 2421.86 Mon Sep 3 06:57:08 2001 243 244 - Revised licence for inclusion in core distribution 245 246 - Consolidated POD in .pm file 247 248 - renamed tests to let DOS cope with them 249 250 2511.87 Thu Nov 15 21:25:35 2001 252 253 - Made extract_multiple aware of skipped prefixes returned 254 by subroutine extractors (such as extract_quotelike, etc.) 255 256 - Made extract_variable aware of punctuation variables 257 258 - Corified tests 259 260 2611.89 Sun Nov 18 22:49:50 2001 262 263 - Fixed extvar.t tests 264 265 2661.90 Tue Mar 25 11:14:38 2003 267 268 - Fixed subtle bug in gen_extract_tagged (thanks Martin) 269 270 - Doc fix: removed suggestion that extract_tagged defaults 271 to matching HTML tags 272 273 - Doc fix: clarified general matching behaviour 274 275 - Fixed bug in parsing /.../ after a ( 276 277 - Doc fix: documented extract_variable 278 279 - Fixed extract_variable handling of $h{qr}, $h{tr}, etc. 280 (thanks, Briac) 281 282 - Fixed incorrect handling of $::var (thanks Tim) 283 284 2851.91 Fri Mar 28 23:19:17 2003 286 287 - Fixed error count on t/extract_variable.t 288 289 - Fixed bug in extract_codelike when non-standard delimiters used 290 291 2921.94 Sun Apr 13 02:18:41 2003 293 294 - rereleased in attempt to fix CPAN problems 295 296 2971.95 Mon Apr 28 00:22:04 2003 298 299 - Constrainted _match_quote to only match at word boundaries 300 (so "exemplum(hic)" doesn't match "m(hic)") 301 (thanks Craig) 302