| 1 | Sed 4.1.5 | 
|---|
| 2 |  | 
|---|
| 3 | * fix parsing of a negative character class not including a closed bracket, | 
|---|
| 4 | like [^]] or [^]a-z]. | 
|---|
| 5 |  | 
|---|
| 6 | * fix parsing of [ inside an y command, like y/[/A/. | 
|---|
| 7 |  | 
|---|
| 8 | * output the result of commands a, r, R when a q command is found. | 
|---|
| 9 |  | 
|---|
| 10 | ---------------------------------------------------------------------------- | 
|---|
| 11 | Sed 4.1.4 | 
|---|
| 12 |  | 
|---|
| 13 | * \B correctly means "not on a word boundary" rather than "inside a word" | 
|---|
| 14 |  | 
|---|
| 15 | * bugfixes for platform without internationalization | 
|---|
| 16 |  | 
|---|
| 17 | * more thorough testing framework for tarballs (`make full-distcheck') | 
|---|
| 18 |  | 
|---|
| 19 | ---------------------------------------------------------------------------- | 
|---|
| 20 | Sed 4.1.3 | 
|---|
| 21 |  | 
|---|
| 22 | * regex addresses do not use leftmost-longest matching.  In other words, | 
|---|
| 23 | /.\+/ only looks for a single character, and does not try to find as | 
|---|
| 24 | many of them as possible like it used to do. | 
|---|
| 25 |  | 
|---|
| 26 | * added a note to BUGS and the manual about changed interpretation | 
|---|
| 27 | of `s|abc\|def||', and about localization issues. | 
|---|
| 28 |  | 
|---|
| 29 | * fixed --disable-nls build problems on Solaris. | 
|---|
| 30 |  | 
|---|
| 31 | * fixed `make check' in non-English locales. | 
|---|
| 32 |  | 
|---|
| 33 | * `make check' tests the regex library by default if the included regex | 
|---|
| 34 | is used (regex tests had to be enabled separately up to now). | 
|---|
| 35 |  | 
|---|
| 36 | ---------------------------------------------------------------------------- | 
|---|
| 37 | Sed 4.1.2 | 
|---|
| 38 |  | 
|---|
| 39 | * fix bug in 'y' command in multi-byte character sets | 
|---|
| 40 |  | 
|---|
| 41 | * fix severe bug in parsing of ranges with an embedded open bracket | 
|---|
| 42 |  | 
|---|
| 43 | * fix off-by-one error when printing a "bad command" error | 
|---|
| 44 |  | 
|---|
| 45 | ---------------------------------------------------------------------------- | 
|---|
| 46 | Sed 4.1.1 | 
|---|
| 47 |  | 
|---|
| 48 | * preserve permissions of in-place edited files | 
|---|
| 49 |  | 
|---|
| 50 | * yield an error when running -i on terminals or other non regular files | 
|---|
| 51 |  | 
|---|
| 52 | * do not interpret - as stdin when running in in-place editing mode | 
|---|
| 53 |  | 
|---|
| 54 | * fix bug that prevented 's' command modifiers from working | 
|---|
| 55 |  | 
|---|
| 56 | ---------------------------------------------------------------------------- | 
|---|
| 57 | Sed 4.1 | 
|---|
| 58 |  | 
|---|
| 59 | * // matches the last regular expression even in POSIXLY_CORRECT mode. | 
|---|
| 60 |  | 
|---|
| 61 | * change the way we treat lines which are not terminated by a newline. | 
|---|
| 62 | Such lines are printed without the terminating newline (as before) | 
|---|
| 63 | but as soon as more text is sent to the same output stream, the | 
|---|
| 64 | missing newline is printed, so that the two lines don't concatenate. | 
|---|
| 65 | The behavior is now independent from POSIXLY_CORRECT because POSIX | 
|---|
| 66 | actually has undefined behavior in this case, and the new implementation | 
|---|
| 67 | arguably gives the ``least expected surprise''.  Thanks to Stepan | 
|---|
| 68 | Kasal for the implementation. | 
|---|
| 69 |  | 
|---|
| 70 | * documentation improvements, with updated references to the POSIX.2 | 
|---|
| 71 | specification | 
|---|
| 72 |  | 
|---|
| 73 | * error messages on I/O errors are better, and -i does not leave temporary | 
|---|
| 74 | files around (e.g. when running ``sed -i'' on a directory). | 
|---|
| 75 |  | 
|---|
| 76 | * escapes are accepted in the y command (for example: y/o/\n/ transforms | 
|---|
| 77 | o's into newlines) | 
|---|
| 78 |  | 
|---|
| 79 | * -i option tries to set the owner and group to the same as the input file | 
|---|
| 80 |  | 
|---|
| 81 | * `L' command is deprecated and will be removed in sed 4.2. | 
|---|
| 82 |  | 
|---|
| 83 | * line number addresses are processed differently -- this is supposedly | 
|---|
| 84 | conformant to POSIX and surely more idiot-proof.  Line number addresses | 
|---|
| 85 | are not affected by jumping around them: they are activated and | 
|---|
| 86 | deactivated exactly where the script says, while previously | 
|---|
| 87 | 5,8b | 
|---|
| 88 | 1,5d | 
|---|
| 89 | would actually delete lines 1,2,3,4 and 9 (!). | 
|---|
| 90 |  | 
|---|
| 91 | * multibyte characters are taken in consideration to compute the | 
|---|
| 92 | operands of s and y, provided you set LC_CTYPE correctly.  They are | 
|---|
| 93 | also considered by \l, \L, \u, \U, \E. | 
|---|
| 94 |  | 
|---|
| 95 | * [\n] matches either backslash or 'n' when POSIXLY_CORRECT. | 
|---|
| 96 |  | 
|---|
| 97 | * new option --posix, disables all GNU extensions.  POSIXLY_CORRECT only | 
|---|
| 98 | disables GNU extensions that violate the POSIX standard. | 
|---|
| 99 |  | 
|---|
| 100 | * options -h and -V are not supported anymore, use --help and --version. | 
|---|
| 101 |  | 
|---|
| 102 | * removed documentation for \s and \S which worked incorrectly | 
|---|
| 103 |  | 
|---|
| 104 | * restored correct behavior for \w and \W: match [[:alnum:]_] and | 
|---|
| 105 | [^[:alnum:]_] (they used to match [[:alpha:]_] and [^[:alpha:]_] | 
|---|
| 106 |  | 
|---|
| 107 | * the special address 0 can only be used in 0,/RE/ or 0~STEP addresses; | 
|---|
| 108 | other cases give an error (you are hindering portability for no reason | 
|---|
| 109 | if specifying 0,N and you are giving a dead command if specifying 0 | 
|---|
| 110 | alone). | 
|---|
| 111 |  | 
|---|
| 112 | * when a \ is used to escape the character that would terminate an operand | 
|---|
| 113 | of the s or y commands, the backslash is removed before the regex is | 
|---|
| 114 | compiled.  This is left undefined by POSIX; this behavior makes `s+x\+++g' | 
|---|
| 115 | remove occurrences of `x+', consistently with `s/x\///g'.  (However, if | 
|---|
| 116 | you enjoy yourself trying `s*x\***g', sed will use the `x*' regex, and you | 
|---|
| 117 | won't be able to pass down `x\*' while using * as the delimiter; ideas on | 
|---|
| 118 | how to simplify the parser in this respect, and/or gain more coherent | 
|---|
| 119 | semantics, are welcome). | 
|---|
| 120 |  | 
|---|
| 121 |  | 
|---|
| 122 | ---------------------------------------------------------------------------- | 
|---|
| 123 | Sed 4.0.9 | 
|---|
| 124 |  | 
|---|
| 125 | * 0 address behaves correctly in single-file (-i and -s) mode. | 
|---|
| 126 |  | 
|---|
| 127 | * documentation improvements. | 
|---|
| 128 |  | 
|---|
| 129 | * tested with many hosts and compilers. | 
|---|
| 130 |  | 
|---|
| 131 | * updated regex matcher from upstream, with many bugfixes and speedups. | 
|---|
| 132 |  | 
|---|
| 133 | * the `N' command's feature that is detailed in the BUGS file was disabled | 
|---|
| 134 | by the first change below in sed 4.0.8.  The behavior has now been | 
|---|
| 135 | restored, and is only enabled if POSIXLY_CORRECT behavior is not | 
|---|
| 136 | requested. | 
|---|
| 137 |  | 
|---|
| 138 | ---------------------------------------------------------------------------- | 
|---|
| 139 | Sed 4.0.8 | 
|---|
| 140 |  | 
|---|
| 141 | * fix `sed n' printing the last line twice. | 
|---|
| 142 |  | 
|---|
| 143 | * fix incorrect error message for invalid character classes. | 
|---|
| 144 |  | 
|---|
| 145 | * fix segmentation violation with repeated empty subexpressions. | 
|---|
| 146 |  | 
|---|
| 147 | * fix incorrect parsing of ^ after escaped (. | 
|---|
| 148 |  | 
|---|
| 149 | * more comprehensive test suite (and with many expected failures...) | 
|---|
| 150 |  | 
|---|
| 151 | ---------------------------------------------------------------------------- | 
|---|
| 152 | Sed 4.0.7 | 
|---|
| 153 |  | 
|---|
| 154 | * VPATH builds working on non-glibc machines | 
|---|
| 155 |  | 
|---|
| 156 | * fixed bug in s///Np: was printing even if less than N matches were | 
|---|
| 157 | found. | 
|---|
| 158 |  | 
|---|
| 159 | * fixed infinite loop on s///N when LHS matched a null string and | 
|---|
| 160 | there were not enough matches in pattern space | 
|---|
| 161 |  | 
|---|
| 162 | * behavior of s///N is consistent with s///g when the LHS can match | 
|---|
| 163 | a null string (and the infinite loop did not happen :-) | 
|---|
| 164 |  | 
|---|
| 165 | * updated some translations | 
|---|
| 166 |  | 
|---|
| 167 | ---------------------------------------------------------------------------- | 
|---|
| 168 | Sed 4.0.6 | 
|---|
| 169 |  | 
|---|
| 170 | * added parameter to `v' for the version of sed that is expected. | 
|---|
| 171 |  | 
|---|
| 172 | * configure switch --without-included-regex to use the system regex matcher | 
|---|
| 173 |  | 
|---|
| 174 | * fix for -i option under Cygwin | 
|---|
| 175 |  | 
|---|
| 176 | ---------------------------------------------------------------------------- | 
|---|
| 177 | Sed 4.0.5 | 
|---|
| 178 |  | 
|---|
| 179 | * portability fixes | 
|---|
| 180 |  | 
|---|
| 181 | * improvements to some error messages (e.g. y/abc/defg/ incorrectly said | 
|---|
| 182 | `excess characters after command' instead of `y arguments have different | 
|---|
| 183 | lengths') | 
|---|
| 184 |  | 
|---|
| 185 | * `a', `i', `l', `L', `r' accept two addresses except in POSIXLY_CORRECT | 
|---|
| 186 | mode.  Only `q' and `Q' do not accept two addresses in standard (GNU) mode. | 
|---|
| 187 |  | 
|---|
| 188 | ---------------------------------------------------------------------------- | 
|---|
| 189 | Sed 4.0.4 | 
|---|
| 190 |  | 
|---|
| 191 | * documentation fixes | 
|---|
| 192 |  | 
|---|
| 193 | * update regex matcher | 
|---|
| 194 |  | 
|---|
| 195 | ---------------------------------------------------------------------------- | 
|---|
| 196 | Sed 4.0.3 | 
|---|
| 197 |  | 
|---|
| 198 | * fix packaging problem (two missing translation catalogs) | 
|---|
| 199 |  | 
|---|
| 200 | ---------------------------------------------------------------------------- | 
|---|
| 201 | Sed 4.0.2 | 
|---|
| 202 |  | 
|---|
| 203 | * more translations | 
|---|
| 204 |  | 
|---|
| 205 | * fix build problems (vpath builds and bootstrap builds) | 
|---|
| 206 |  | 
|---|
| 207 | ---------------------------------------------------------------------------- | 
|---|
| 208 | Sed 4.0.1 | 
|---|
| 209 |  | 
|---|
| 210 | * Remove last vestiges of super-sed | 
|---|
| 211 |  | 
|---|
| 212 | * man page automatically built | 
|---|
| 213 |  | 
|---|
| 214 | * more translations provided | 
|---|
| 215 |  | 
|---|
| 216 | * portability improvements | 
|---|
| 217 |  | 
|---|
| 218 | ---------------------------------------------------------------------------- | 
|---|
| 219 | Sed 4.0 | 
|---|
| 220 |  | 
|---|
| 221 | * Update regex matcher | 
|---|
| 222 |  | 
|---|
| 223 | ---------------------------------------------------------------------------- | 
|---|
| 224 | Sed 3.96 | 
|---|
| 225 |  | 
|---|
| 226 | * `y' command supports multibyte character sets | 
|---|
| 227 |  | 
|---|
| 228 | * Update regex matcher | 
|---|
| 229 |  | 
|---|
| 230 | ---------------------------------------------------------------------------- | 
|---|
| 231 | Sed 3.95 | 
|---|
| 232 |  | 
|---|
| 233 | * `R' command reads a single line from a file. | 
|---|
| 234 |  | 
|---|
| 235 | * CR-LF pairs are always ignored under Windows, even if (under Cygwin) | 
|---|
| 236 | a disk is mounted as binary. | 
|---|
| 237 |  | 
|---|
| 238 | * More attention to errors on stdout | 
|---|
| 239 |  | 
|---|
| 240 | * New `W' command to write first line of pattern space to a file | 
|---|
| 241 |  | 
|---|
| 242 | * Can customize line wrap width on single `l' commands | 
|---|
| 243 |  | 
|---|
| 244 | * `L' command formats and reflows paragraphs like `fmt' does. | 
|---|
| 245 |  | 
|---|
| 246 | * The test suite makefiles are better organized (this change is | 
|---|
| 247 | transparent however). | 
|---|
| 248 |  | 
|---|
| 249 | * Compiles and bootstraps out-of-the-box under MinGW32 and Cygwin. | 
|---|
| 250 |  | 
|---|
| 251 | * Optimizes cases when pattern space is truncated at its start or at | 
|---|
| 252 | its end by `D' or by a substitution command with an empty RHS. | 
|---|
| 253 | For example scripts like this, | 
|---|
| 254 |  | 
|---|
| 255 | seq 1 10000 | tr \\n \  | ./sed ':a; s/^[0-9][0-9]* //; ta' | 
|---|
| 256 |  | 
|---|
| 257 | whose behavior was quadratic with previous versions of sed, have | 
|---|
| 258 | now linear behavior. | 
|---|
| 259 |  | 
|---|
| 260 | * New command `e' to pipe the output of a command into the output | 
|---|
| 261 | of sed. | 
|---|
| 262 |  | 
|---|
| 263 | * New option `e' to pass the output of the `s' command through the | 
|---|
| 264 | Bourne shell and get the result into pattern space. | 
|---|
| 265 |  | 
|---|
| 266 | * Switched to obstacks in the parser -- less memory-related bugs | 
|---|
| 267 | (there were none AFAIK but you never know) and less memory usage. | 
|---|
| 268 |  | 
|---|
| 269 | * New option -i, to support in-place editing a la Perl.  Usually one | 
|---|
| 270 | had to use ed or, for more complex tasks, resort to Perl; this is | 
|---|
| 271 | not necessary anymore. | 
|---|
| 272 |  | 
|---|
| 273 | * Dumped buffering code.  The performance loss is 10%, but it caused | 
|---|
| 274 | bugs in systems with CRLF termination.  The current solution is | 
|---|
| 275 | not definitive, though. | 
|---|
| 276 |  | 
|---|
| 277 | * Bug fix: Made the behavior of s/A*/x/g (i.e. `s' command with a | 
|---|
| 278 | possibly empty LHS) more consistent: | 
|---|
| 279 |  | 
|---|
| 280 | pattern               GNU sed 3.x       GNU sed 4.x | 
|---|
| 281 | B                      xBx               xBx | 
|---|
| 282 | BC                     xBxCx             xBxCx | 
|---|
| 283 | BAC                    xBxxCx            xBxCx | 
|---|
| 284 | BAAC                   xBxxCx            xBxCx | 
|---|
| 285 |  | 
|---|
| 286 | * Bug fix: the // empty regular expressions now refers to the last | 
|---|
| 287 | regular expression that was matched, rather than to the last | 
|---|
| 288 | regular expression that was compiled.  This richer behavior seems | 
|---|
| 289 | to be the correct one (albeit neither one is POSIXLY_CORRECT). | 
|---|
| 290 |  | 
|---|
| 291 | * Check for invalid backreferences in the RHS of the `s' command | 
|---|
| 292 | (e.g. s/1234/\1/) | 
|---|
| 293 |  | 
|---|
| 294 | * Support for \[lLuUE] in the RHS of the `s' command like in Perl. | 
|---|
| 295 |  | 
|---|
| 296 | * New regular expression matcher | 
|---|
| 297 |  | 
|---|
| 298 | * Bug fix: if a file was redirected to be stdin, sed did not consume | 
|---|
| 299 | it.  So | 
|---|
| 300 | (sed d; sed G) < TESTFILE | 
|---|
| 301 |  | 
|---|
| 302 | double-spaced TESTFILE, while the equivalent `useless use of cat' | 
|---|
| 303 | cat TESTFILE | (sed d; sed G) | 
|---|
| 304 |  | 
|---|
| 305 | printed nothing (which is the correct behavior).  A test for this | 
|---|
| 306 | bug was added to the test suite. | 
|---|
| 307 |  | 
|---|
| 308 | * The documentation is now much better, with a few examples provided, | 
|---|
| 309 | and a thorough description of regular expressions.  The manual often | 
|---|
| 310 | refers to "GNU extensions", but if they are described here they are | 
|---|
| 311 | specific to this version. | 
|---|
| 312 |  | 
|---|
| 313 | * Documented command-line option: | 
|---|
| 314 | -r, --regexp-extended | 
|---|
| 315 | Use extended regexps -- e.g. (abc+) instead of \(abc\+\) | 
|---|
| 316 |  | 
|---|
| 317 | * Added feature to the `w' command and to the `w' option of the `s' | 
|---|
| 318 | command: if the file name is /dev/stderr, it means the standard | 
|---|
| 319 | error (inspired by awk); and similarly for /dev/stdout.  This is | 
|---|
| 320 | disabled if POSIXLY_CORRECT is set. | 
|---|
| 321 |  | 
|---|
| 322 | * Added `m' and `M' modifiers to `s' command for multi-line | 
|---|
| 323 | matching (Perl-style); in addresses, only `M' works. | 
|---|
| 324 |  | 
|---|
| 325 | * Added `Q' command for `silent quit'; added ability to pass | 
|---|
| 326 | an exit code from a sed script to the caller. | 
|---|
| 327 |  | 
|---|
| 328 | * Added `T' command for `branch if failed'. | 
|---|
| 329 |  | 
|---|
| 330 | * Added `v' command, which is a do-nothing intended to fail on | 
|---|
| 331 | seds that do not support GNU sed 4.0's extensions. | 
|---|
| 332 |  | 
|---|
| 333 | ---------------------------------------------------------------------------- | 
|---|
| 334 | Sed 3.02.80 | 
|---|
| 335 |  | 
|---|
| 336 | * Started new version nomenclature for pre-3.03 releases.  (I'm being | 
|---|
| 337 | pessimistic in assuming that .90 won't give me enough breathing room.) | 
|---|
| 338 |  | 
|---|
| 339 | * Bug fixes: the regncomp()/regnexec() interfaces proved to be inadequate to | 
|---|
| 340 | properly handle expressions such as "s/\</#/g".  Re-abstracted the regex | 
|---|
| 341 | code in the sed/ tree, and now use the re_search_2() interface to the GNU | 
|---|
| 342 | regex routines.  This change also fixed a bug where /./ did not match the | 
|---|
| 343 | NUL character.  Had the glibc folk fix a bug in lib/regex.c where | 
|---|
| 344 | 's/0*\([0-9][0-9]\)/X\1X/' failed to match on input "002". | 
|---|
| 345 |  | 
|---|
| 346 | * Added new command-line options: | 
|---|
| 347 | -u, --unbuffered | 
|---|
| 348 | Do not attempt to read-ahead more than required; do not buffer stdout. | 
|---|
| 349 | -l N, --line-length=N | 
|---|
| 350 | Specify the desired line-wrap length for the `l' command. | 
|---|
| 351 | A length of "0" means "never wrap". | 
|---|
| 352 |  | 
|---|
| 353 | * New internationalization translations added: fr ru de it el sk pt_BR sv | 
|---|
| 354 | (plus nl from 3.02a). | 
|---|
| 355 |  | 
|---|
| 356 | * The s/// command now understands the following escapes | 
|---|
| 357 | (in both halves): | 
|---|
| 358 | \a      an "alert" (BEL) | 
|---|
| 359 | \f      a form-feed | 
|---|
| 360 | \n      a newline | 
|---|
| 361 | \r      a carriage-return | 
|---|
| 362 | \t      a horizontal tab | 
|---|
| 363 | \v      a vertical tab | 
|---|
| 364 | \oNNN   a character with the octal value NNN | 
|---|
| 365 | \dNNN   a character with the decimal value NNN | 
|---|
| 366 | \xNN    a character with the hexadecimal value NN | 
|---|
| 367 | This behavior is disabled if POSIXLY_CORRECT is set, at least for the | 
|---|
| 368 | time being (until I can be convinced that this behavior does not violate | 
|---|
| 369 | the POSIX standard).  (Incidentally, \b (backspace) was omitted because | 
|---|
| 370 | of the conflict with the existing "word boundary" meaning. \ooo octal | 
|---|
| 371 | format was omitted because of the conflict with backreference syntax.) | 
|---|
| 372 |  | 
|---|
| 373 | * If POSIXLY_CORRECT is set, the empty RE // now is the null match | 
|---|
| 374 | instead of "repeat the last REmatch".  As far as I can tell | 
|---|
| 375 | this behavior is mandated by POSIX, but it would break too many | 
|---|
| 376 | legacy sed scripts to blithely change GNU sed's default behavior. | 
|---|
| 377 |  | 
|---|
| 378 | ---------------------------------------------------------------------------- | 
|---|
| 379 | Sed 3.02a | 
|---|
| 380 |  | 
|---|
| 381 | * Added internationalization support, and an initial (already out of date) | 
|---|
| 382 | set of Dutch message translations (both provided by Erick Branderhorst). | 
|---|
| 383 |  | 
|---|
| 384 | * Added support for scripts like: | 
|---|
| 385 | sed -e 1ifoo -e '$abar' | 
|---|
| 386 | (note no need for \ <newline> after a, i, and c commands). | 
|---|
| 387 | Also, conditionally (on NO_INPUT_INDENT) added | 
|---|
| 388 | experimental support for skipping leading whitespace on | 
|---|
| 389 | each {a,i,c} input line. | 
|---|
| 390 |  | 
|---|
| 391 | * Added addressing of the form: | 
|---|
| 392 | /foo/,+5 p (print from foo to 5th line following) | 
|---|
| 393 | /foo/,~5 p (print from foo to next line whose line number is a multiple of 5) | 
|---|
| 394 | The first address of these can be any of the previously existing | 
|---|
| 395 | addressing types; the +N and ~N forms are only allowed as the | 
|---|
| 396 | second address of a range. | 
|---|
| 397 |  | 
|---|
| 398 | * Added support for pseudo-address "0" as the first address in an | 
|---|
| 399 | address-range, simplifying scripts which happen to match the end | 
|---|
| 400 | address on the first line of input.  For example, a script | 
|---|
| 401 | which deletes all lines from the beginning of the file to the | 
|---|
| 402 | first line which contains "foo" is now simply "sed 0,/foo/d", | 
|---|
| 403 | whereas before one had to go through contortions to deal with | 
|---|
| 404 | the possibility that "foo" might appear on the first line of | 
|---|
| 405 | the input. | 
|---|
| 406 |  | 
|---|
| 407 | * Made NUL characters in regexps work "correctly" --- i.e., a NUL | 
|---|
| 408 | in a RE matches a NUL; it does not prematurely terminate the RE. | 
|---|
| 409 | (This only works in -f scripts, as the POSIX.1 exec*() interface | 
|---|
| 410 | only passes NUL-terminated strings, and so sed will only be able | 
|---|
| 411 | to see up to the first NUL in any -e scriptlet.) | 
|---|
| 412 |  | 
|---|
| 413 | * Wherever a `;' is accepted as a command terminator, also allow a `}' | 
|---|
| 414 | or a `#' to appear.  (This allows for less cluttered-looking scripts.) | 
|---|
| 415 |  | 
|---|
| 416 | * Lots of internal changes that are only relevant to source junkies | 
|---|
| 417 | and development testing.  Some of which might cause imperceptible | 
|---|
| 418 | performance improvements. | 
|---|
| 419 |  | 
|---|
| 420 | ---------------------------------------------------------------------------- | 
|---|
| 421 | Sed 3.02 | 
|---|
| 422 |  | 
|---|
| 423 | * Fixed a bug in the parsing of character classes (e.g., /[[:space:]]/). | 
|---|
| 424 | Corrected an omission in djgpp/Makefile.am and an improper dependency | 
|---|
| 425 | in testsuite/Makefile.am. | 
|---|
| 426 |  | 
|---|
| 427 | ---------------------------------------------------------------------------- | 
|---|
| 428 | Sed 3.01 | 
|---|
| 429 |  | 
|---|
| 430 | * This version of sed mainly contains bug fixes and portability | 
|---|
| 431 | enhancements, plus performance enhancements related to sed's handling | 
|---|
| 432 | of input files.  Due to excess performance penalties, I have reverted | 
|---|
| 433 | (relative to 3.00) to using regex.c instead of the rx package for | 
|---|
| 434 | regular expression handling, at the expense of losing true POSIX.2 | 
|---|
| 435 | BRE compatibility.  However, performance related to regular expression | 
|---|
| 436 | handling *still* needs a fair bit of work. | 
|---|
| 437 |  | 
|---|
| 438 | * One new feature has been added: regular expressions may be followed | 
|---|
| 439 | with an "I" directive ("i" was taken [the "i"nsert command]) to | 
|---|
| 440 | indicate that the regexp should be matched in a case-insensitive | 
|---|
| 441 | manner.  Also of note are a new organization to the source code, | 
|---|
| 442 | new documentation, and a new maintainer. | 
|---|
| 443 |  | 
|---|
| 444 | ---------------------------------------------------------------------------- | 
|---|
| 445 | Sed 3.0 | 
|---|
| 446 |  | 
|---|
| 447 | * This version of sed passes the new test-suite donated by | 
|---|
| 448 | Jason Molenda. | 
|---|
| 449 |  | 
|---|
| 450 | * Overall performance has been improved in the following sense: Sed 3.0 | 
|---|
| 451 | is often slightly slower than sed 2.05.  On a few scripts, though, sed | 
|---|
| 452 | 2.05 was so slow as to be nearly useless or to use up unreasonable | 
|---|
| 453 | amounts of memory.  These problems have been fixed and in such cases, | 
|---|
| 454 | sed 3.0 should have acceptable performance. | 
|---|