VirtualBox

Changeset 3611 in kBuild for vendor/sed/current/NEWS


Ignore:
Timestamp:
Sep 13, 2024 9:07:41 AM (3 months ago)
Author:
bird
Message:

vendor/sed/current: GNU sed 4.9 (sed-4.9.tar.xz sha256:6e226b732e1cd739464ad6862bd1a1aba42d7982922da7a53519631d24975181)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vendor/sed/current/NEWS

    r599 r3611  
     1GNU 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----------------------------------------------------------------------------
     255Sed 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----------------------------------------------------------------------------
     265Sed 4.2
     266
     267* now released under GPLv3
     268
     269* added a new extension `z` to clear pattern space even in the presence
     270of invalid multibyte sequences
     271
     272* a preexisting GNU gettext installation is needed in order to compile
     273GNU sed with NLS support
     274
     275* new option --follow-symlinks, available when editing a file in-place.
     276This option may not be available on some systems (in this case, the
     277option will *not* be a no-op; it will be completely unavailable).
     278In the future, the option may be added as a no-op on systems without
     279symbolic links at all, since in this case a no-op is effectively
     280indistinguishable 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]
     287in the `s' command, address kinds `FIRST~STEP' and `ADDR1,+N' and `ADDR1,~N',
     288line address 0, `e' or `z' commands, text between an `a' or `c' or `i'
     289command 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----------------------------------------------------------------------------
    1303Sed 4.1.5
    2304
     
    50352* yield an error when running -i on terminals or other non regular files
    51353
    52 * do not interpret - as stdin when running in in-place editing mode
     354* do not interpret - as stdin when using in-place editing mode
    53355
    54356* fix bug that prevented 's' command modifiers from working
     
    356658* The s/// command now understands the following escapes
    357659(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
     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
    367669This behavior is disabled if POSIXLY_CORRECT is set, at least for the
    368670time being (until I can be convinced that this behavior does not violate
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette