summaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS115
1 files changed, 104 insertions, 11 deletions
diff --git a/NEWS b/NEWS
index e3c94c7..6c610f2 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,97 @@
-Sed 4.2.2
+GNU sed NEWS -*- outline -*-
+
+* Noteworthy changes in release 4.3 (2016-12-30) [stable]
+
+** Improvements
+
+ sed's regular expression matching is now typically 10x faster
+
+ sed now uses unlocked-io where available, resulting in faster I/O
+ operations.
+
+** Bug fixes
+
+ sed no longer mishandles anchors ^/$ in multiline regex (s///mg)
+ with -z option (NUL terminated lines). [Bug introducted in sed-4.2.2
+ with the initial implementation of -z]
+
+ sed no longer accepts a ":" command without a label; before, it would
+ treat that as defining a label whose name is empty, and subsequent
+ label-free "t" and "b" commands would use that label. Now, sed emits
+ a diagnostic and fails for that invalid construct.
+
+ sed no longer accesses uninitialized memory when processing certain
+ invalid multibyte sequences. Demonstrate with this:
+ echo a | LC_ALL=ja_JP.eucJP valgrind sed/sed 's/a/b\U\xb2c/'
+ The error appears to have been introduced with the sed-4.0a release.
+
+ The 'y' (transliterate) operator once again works with a NUL byte
+ on the RHS. E.g., sed 'y/b/\x00/' now works like tr b '\0'. GNU sed
+ has never before recognized \x00 in this context. However, sed-3.02
+ and prior did accept a literal NUL byte in the RHS, which was possible
+ only when reading a script from a file. For example, this:
+ echo abc|sed -f <(printf 'y/b/\x00/\n')|cat -A
+ is what stopped working. [bug introduced some time after sed-3.02 and
+ prior to the first sed-4* test release]
+
+ When the closed-above line number ranges of N editing commands
+ overlap (N>1), sed would apply commands 2..N to the line just
+ beyond the largest range endpoint.
+ [bug introduced some time after sed-4.09 and prior to release in sed-4.1]
+ Before, this command would mistakenly modify line 5:
+ $ seq 6|sed '2,4d;2,3s/^/x/;3,4s/^/y/'
+ 1
+ yx5
+ 6
+ Now, it does not:
+ $ seq 6|sed '2,4d;2,3s/^/x/;3,4s/^/y/'
+ 1
+ 5
+ 6
+
+ An erroneous sed invocation like "echo > F; sed -i s//b/ F" no longer
+ leaves behind a temporary file. Before, that command would create a file
+ alongside F with a name matching /^sed......$/ and fail to remove it.
+
+ sed --follow-symlinks now works again for stdin.
+ [bug introduced in sed-4.2.2]
+
+ sed no longer elides invalid bytes in a substitution RHS.
+ Now, sed copies such bytes into the output, just as Perl does.
+ [bug introduced in sed-4.1 -- it was also present prior to 4.0.6]
+
+ sed no longer prints extraneous character when a backslash follows \c.
+ '\c\\' generates control character ^\ (ASCII 0x1C).
+ Other characters after the second backslash are rejected (e.g. '\c\d').
+ [bug introduced in the sed-4.0.* releases]
+
+ sed no longer mishandles incomplete multibyte sequences in s,y commands
+ and valid multibyte SHIFT-JIS characters in character classes.
+ Previously, the following commands would fail:
+ LC_ALL=en_US.UTF-8 sed $'s/\316/X/'
+ LC_ALL=ja_JP.shiftjis sed $'/[\203]/]/p'
+ [bug introduced some time after sed-4.1.5 and before sed-4.2.1]
+
+** Feature removal
+
+ The "L" command (format a paragraph like the fmt(1) command would)
+ has been listed in the documentation as a failed experiment for at
+ least 10 years. That command is now removed.
+
+** Build-related
+
+ "make dist" now builds .tar.xz files, rather than .tar.gz ones.
+ xz is portable enough and in wide-enough use that distributing
+ only .tar.xz files is enough. It has been fine for coreutils, grep,
+ diffutils and parted for a few years.
+
+
+** New Features
+
+ new --sandbox option rejects programs with r/w/e commands.
+
+
+* Noteworthy changes in release 4.2.2 (2012-12-22) [stable]
* don't misbehave (truncate input) for lines of length 2^31 and longer
@@ -120,7 +213,7 @@ Sed 4.1.1
* yield an error when running -i on terminals or other non regular files
-* do not interpret - as stdin when running in in-place editing mode
+* do not interpret - as stdin when using in-place editing mode
* fix bug that prevented 's' command modifiers from working
@@ -426,15 +519,15 @@ NUL character. Had the glibc folk fix a bug in lib/regex.c where
* The s/// command now understands the following escapes
(in both halves):
- \a an "alert" (BEL)
- \f a form-feed
- \n a newline
- \r a carriage-return
- \t a horizontal tab
- \v a vertical tab
- \oNNN a character with the octal value NNN
- \dNNN a character with the decimal value NNN
- \xNN a character with the hexadecimal value NN
+ \a an "alert" (BEL)
+ \f a form-feed
+ \n a newline
+ \r a carriage-return
+ \t a horizontal tab
+ \v a vertical tab
+ \oNNN a character with the octal value NNN
+ \dNNN a character with the decimal value NNN
+ \xNN a character with the hexadecimal value NN
This behavior is disabled if POSIXLY_CORRECT is set, at least for the
time being (until I can be convinced that this behavior does not violate
the POSIX standard). (Incidentally, \b (backspace) was omitted because