Changeset 3611 in kBuild for vendor/sed/current/NEWS
- Timestamp:
- Sep 13, 2024 9:07:41 AM (3 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/sed/current/NEWS
r599 r3611 1 GNU sed NEWS -*- outline -*- 2 3 * Noteworthy changes in release 4.9 (2022-11-06) [stable] 4 5 ** Bug fixes 6 7 'sed --follow-symlinks -i' no longer loops forever when its operand 8 is a symbolic link cycle. 9 [bug introduced in sed 4.2] 10 11 a program with an execution line longer than 2GB can no longer trigger 12 an out-of-bounds memory write. 13 14 using the R command to read an input line of length longer than 2GB 15 can no longer trigger an out-of-bounds memory read. 16 17 In locales using UTF-8 encoding, the regular expression '.' no 18 longer sometimes fails to match Unicode characters U+D400 through 19 U+D7FF (some Hangul Syllables, and Hangul Jamo Extended-B) and 20 Unicode characters U+108000 through U+10FFFF (half of Supplemental 21 Private Use Area plane B). 22 [bug introduced in sed 4.8] 23 24 I/O errors involving temp files no longer confuse sed into using a 25 FILE * pointer after fclosing it, which has undefined behavior in C. 26 27 ** New Features 28 29 The 'r' command now accepts address 0, allowing inserting a file before 30 the first line. 31 32 ** Changes in behavior 33 34 Sed now prints the less-surprising variant in a corner case of 35 POSIX-unspecified behavior. Before, this would print "n". 36 Now, it prints "X": 37 38 printf n | sed 'sn\nnXn'; echo 39 40 41 * Noteworthy changes in release 4.8 (2020-01-14) [stable] 42 43 ** Bug fixes 44 45 "sed -i" now creates temporary files with correct umask (limited to u=rwx). 46 Previously sed would incorrectly set umask on temporary files, resulting 47 in problems under certain fuse-like file systems. 48 [bug introduced in sed 4.2.1] 49 50 ** Release 51 52 distribute gzip-compressed tarballs once again 53 54 ** Improvements 55 56 a year's worth of gnulib development, including improved DFA performance 57 58 59 * Noteworthy changes in release 4.7 (2018-12-20) [stable] 60 61 ** Bug fixes 62 63 Some uses of \b in the C locale and with the DFA matcher would fail, e.g., 64 the following would mistakenly print "123-x" instead of "123": 65 echo 123-x|LC_ALL=C sed 's/.\bx//' 66 Using a multibyte locale or certain regexp constructs (some ranges, 67 backreferences) would avoid the bug. [bug introduced in sed 4.6] 68 69 70 * Noteworthy changes in release 4.6 (2018-12-19) [stable] 71 72 ** Improvements 73 74 sed now prints a clear error message when r/R/w/W (and s///w) commands 75 are missing a filename. Previously, w/W commands would fail with confusing 76 error message, while r/R would be a silent no-op. 77 78 sed now uses fully-buffered output (instead of line-buffered) when 79 writing to files. This should noticeably improve performance of "sed -i" 80 and other write commands. 81 Buffering can be disabled (as before) with "sed -u". 82 83 sed in non-cygwin windows environments (e.g. mingw) now properly handles 84 '\n' newlines in -b/--binary mode. 85 86 ** Bug fixes 87 88 sed no longer accesses invalid memory (heap overflow) when given invalid 89 backreferences in 's' command [bug#32082, present at least since sed-4.0.6]. 90 91 sed no longer adds extraneous NUL when given s/$//n command. 92 [related to bug#32271, present since sed-4.0.7] 93 94 sed no longer accesses invalid memory (heap overflow) with s/$//n regexes. 95 [bug#32271, present since sed-4.3]. 96 97 ** New Features 98 99 New option, --debug: print the input sed script in canonical form 100 and annotate program execution. 101 102 103 * Noteworthy changes in release 4.5 (2018-03-31) [stable] 104 105 ** Bug fixes 106 107 sed now fails when matching very long input lines (>2GB). 108 Before, sed would silently ignore the regex without indicating an 109 error. [Bug present at least since sed-3.02] 110 111 sed no longer rejects comments and closing braces after y/// commands. 112 [Bug existed at least since sed-3.02] 113 114 sed -E --posix no longer ignores special meaning of '+','?','|' . 115 [Bug introduced in the original implementation of --posix option in 116 v4.1a-5-gba68fb4] 117 118 sed -i now creates selinux context based on the context of the symlink 119 instead of the symlink target. [Bug present since at least sed-4.2] 120 sed -i --follow-symlinks remains unchanged. 121 122 sed now treats the sequence '\x5c' (ASCII 92, backslash) as literal 123 backslash character, not as an escape prefix character. 124 [Bug present since sed-3.02.80] 125 Old behavior: 126 $ echo z | sed -E 's/(z)/\x5c1/' # identical to 's/(z)/\1/' 127 z 128 New behavior: 129 $ echo z | sed -E 's/(z)/\x5c1/' 130 \1 131 132 133 * Noteworthy changes in release 4.4 (2017-02-03) [stable] 134 135 ** Bug fixes 136 137 sed could segfault when invoked with specific combination of newlines 138 in the input and regex pattern. [Bug introduced in sed-4.3] 139 140 141 * Noteworthy changes in release 4.3 (2016-12-30) [stable] 142 143 ** Improvements 144 145 sed's regular expression matching is now typically 10x faster 146 147 sed now uses unlocked-io where available, resulting in faster I/O 148 operations. 149 150 ** Bug fixes 151 152 sed no longer mishandles anchors ^/$ in multiline regex (s///mg) 153 with -z option (NUL terminated lines). [Bug introduced in sed-4.2.2 154 with the initial implementation of -z] 155 156 sed no longer accepts a ":" command without a label; before, it would 157 treat that as defining a label whose name is empty, and subsequent 158 label-free "t" and "b" commands would use that label. Now, sed emits 159 a diagnostic and fails for that invalid construct. 160 161 sed no longer accesses uninitialized memory when processing certain 162 invalid multibyte sequences. Demonstrate with this: 163 echo a | LC_ALL=ja_JP.eucJP valgrind sed/sed 's/a/b\U\xb2c/' 164 The error appears to have been introduced with the sed-4.0a release. 165 166 The 'y' (transliterate) operator once again works with a NUL byte 167 on the RHS. E.g., sed 'y/b/\x00/' now works like tr b '\0'. GNU sed 168 has never before recognized \x00 in this context. However, sed-3.02 169 and prior did accept a literal NUL byte in the RHS, which was possible 170 only when reading a script from a file. For example, this: 171 echo abc|sed -f <(printf 'y/b/\x00/\n')|cat -A 172 is what stopped working. [bug introduced some time after sed-3.02 and 173 prior to the first sed-4* test release] 174 175 When the closed-above line number ranges of N editing commands 176 overlap (N>1), sed would apply commands 2..N to the line just 177 beyond the largest range endpoint. 178 [bug introduced some time after sed-4.09 and prior to release in sed-4.1] 179 Before, this command would mistakenly modify line 5: 180 $ seq 6|sed '2,4d;2,3s/^/x/;3,4s/^/y/' 181 1 182 yx5 183 6 184 Now, it does not: 185 $ seq 6|sed '2,4d;2,3s/^/x/;3,4s/^/y/' 186 1 187 5 188 6 189 190 An erroneous sed invocation like "echo > F; sed -i s//b/ F" no longer 191 leaves behind a temporary file. Before, that command would create a file 192 alongside F with a name matching /^sed......$/ and fail to remove it. 193 194 sed --follow-symlinks now works again for stdin. 195 [bug introduced in sed-4.2.2] 196 197 sed no longer elides invalid bytes in a substitution RHS. 198 Now, sed copies such bytes into the output, just as Perl does. 199 [bug introduced in sed-4.1 -- it was also present prior to 4.0.6] 200 201 sed no longer prints extraneous character when a backslash follows \c. 202 '\c\\' generates control character ^\ (ASCII 0x1C). 203 Other characters after the second backslash are rejected (e.g. '\c\d'). 204 [bug introduced in the sed-4.0.* releases] 205 206 sed no longer mishandles incomplete multibyte sequences in s,y commands 207 and valid multibyte SHIFT-JIS characters in character classes. 208 Previously, the following commands would fail: 209 LC_ALL=en_US.UTF-8 sed $'s/\316/X/' 210 LC_ALL=ja_JP.shiftjis sed $'/[\203]/]/p' 211 [bug introduced some time after sed-4.1.5 and before sed-4.2.1] 212 213 ** Feature removal 214 215 The "L" command (format a paragraph like the fmt(1) command would) 216 has been listed in the documentation as a failed experiment for at 217 least 10 years. That command is now removed. 218 219 ** Build-related 220 221 "make dist" now builds .tar.xz files, rather than .tar.gz ones. 222 xz is portable enough and in wide-enough use that distributing 223 only .tar.xz files is enough. It has been fine for coreutils, grep, 224 diffutils and parted for a few years. 225 226 227 ** New Features 228 229 new --sandbox option rejects programs with r/w/e commands. 230 231 232 * Noteworthy changes in release 4.2.2 (2012-12-22) [stable] 233 234 * don't misbehave (truncate input) for lines of length 2^31 and longer 235 236 * fix endless loop on incomplete multibyte sequences 237 238 * -u also does unbuffered input, rather than unbuffered output only 239 240 * New command `F' to print current input file name 241 242 * sed -i, s///w, and the `w' and `W' commands also obey the --binary option 243 (and create CR/LF-terminated files if the option is absent) 244 245 * --posix fails for scripts (or fragments as passed to the -e option) that 246 end in a backslash, as they are not portable. 247 248 * New option -z (--null-data) to separate lines by ASCII NUL characters. 249 250 * \x26 (and similar escaped sequences) produces a literal & in the 251 replacement argument of the s/// command, rather than including the 252 matched text. 253 254 ---------------------------------------------------------------------------- 255 Sed 4.2.1 256 257 * fix parsing of s/[[[[[[[[[]// 258 259 * security contexts are preserved by -i too under SELinux 260 261 * temporary files for sed -i are not made group/world-readable until 262 they are complete 263 264 ---------------------------------------------------------------------------- 265 Sed 4.2 266 267 * now released under GPLv3 268 269 * added a new extension `z` to clear pattern space even in the presence 270 of invalid multibyte sequences 271 272 * a preexisting GNU gettext installation is needed in order to compile 273 GNU sed with NLS support 274 275 * new option --follow-symlinks, available when editing a file in-place. 276 This option may not be available on some systems (in this case, the 277 option will *not* be a no-op; it will be completely unavailable). 278 In the future, the option may be added as a no-op on systems without 279 symbolic links at all, since in this case a no-op is effectively 280 indistinguishable from a correct implementation. 281 282 * hold-space is reset between different files in -i and -s modes. 283 284 * multibyte processing fixed 285 286 * the following GNU extensions are turned off by --posix: options [iImMsSxX] 287 in the `s' command, address kinds `FIRST~STEP' and `ADDR1,+N' and `ADDR1,~N', 288 line address 0, `e' or `z' commands, text between an `a' or `c' or `i' 289 command and the following backslash, arguments to the `l' command. 290 --posix disables all extensions to regular expressions. 291 292 * fixed bug in 'i\' giving a segmentation violation if given alone. 293 294 * much improved portability 295 296 * much faster in UTF-8 locales 297 298 * will correctly replace ACLs when using -i 299 300 * will now accept NUL bytes for `.' 301 302 ---------------------------------------------------------------------------- 1 303 Sed 4.1.5 2 304 … … 50 352 * yield an error when running -i on terminals or other non regular files 51 353 52 * do not interpret - as stdin when running inin-place editing mode354 * do not interpret - as stdin when using in-place editing mode 53 355 54 356 * fix bug that prevented 's' command modifiers from working … … 356 658 * The s/// command now understands the following escapes 357 659 (in both halves): 358 359 360 361 362 363 364 365 366 660 \a an "alert" (BEL) 661 \f a form-feed 662 \n a newline 663 \r a carriage-return 664 \t a horizontal tab 665 \v a vertical tab 666 \oNNN a character with the octal value NNN 667 \dNNN a character with the decimal value NNN 668 \xNN a character with the hexadecimal value NN 367 669 This behavior is disabled if POSIXLY_CORRECT is set, at least for the 368 670 time being (until I can be convinced that this behavior does not violate
Note:
See TracChangeset
for help on using the changeset viewer.