Files
RedBear-OS/recipes/tools/sed/source/ChangeLog
T
vasilito 7686729069 drm: implement syncobj and fence for VIRGL/VirtIO driver
Extract protocol-agnostic FenceTimeline from Intel to shared
src/drivers/fence.rs — atomic-based fence tracking suitable
for Intel, VIRGL, and AMD drivers.

Extract protocol-agnostic SyncobjManager from Intel to shared
src/drivers/syncobj.rs — syncobj create/destroy/signal/reset/
wait/query and sync_file fd export/import.

Wire both into VirtioDriver:
- Add FenceTimeline + SyncobjManager fields
- Implement all 5 GpuDriver syncobj trait methods
  (create, destroy, wait, export_fd, import_fd)
- Track fence seqnos in virgl_submit_3d (allocate
  before submit, signal after completion)

Intel fence.rs and syncobj.rs converted to thin re-export
modules pointing at shared sources — no behavioral change
for Intel driver.

This gives Mesa VIRGL userspace the standard DRM syncobj
API for GPU/compositor synchronization.
2026-06-02 14:33:28 +03:00

1797 lines
66 KiB
Plaintext

2017-02-03 Jim Meyering <meyering@fb.com>
version 4.4
* NEWS: Record release date.
gnulib: update to latest
maint: avoid %x-format argument type mismatch
* sed/compile.c (savchar): Cast %x-format argument to "unsigned int"
rather than to "unsigned char". Reported by Eric Blake in
https://lists.gnu.org/archive/html/sed-devel/2017-02/msg00000.html
2017-02-02 Assaf Gordon <assafgordon@gmail.com>
doc: fix broken xref
Remove an extraneous space after @xref. Older 'makeinfo' would fail with:
./doc/sed.texi:3461: @xref expected braces.
./doc/sed.texi:3461: ` {Execution Cycle} and @ref{Addresses ov...' is
too long for expansion; not expanded.
Introduced in sed-4.3-15-gb0009b8.
* doc/sed.texi: Remove space after @xref.
2017-01-31 Jim Meyering <meyering@fb.com>
gnulib: update to latest
2017-01-31 Assaf Gordon <assafgordon@gmail.com>
doc: add NEWS entry for recent newline bugfix
Bugfix in sed-4.3-12-g44d99bf (for https://bugs.gnu.org/25390) did not
included a corresponding NEWS entry.
* NEWS: Mention bugfix.
2017-01-28 Assaf Gordon <assafgordon@gmail.com>
doc: new 'multiple commands syntax' section
Explain which commands can be separated by semicolon and which require
newlines. Requested by Ori Avtalion in https://bugs.gnu.org/21845 .
* doc/sed.texi (Multiple commands syntax): New section in "sed scripts"
chapter.
2017-01-24 Assaf Gordon <assafgordon@gmail.com>
doc: update 'other resources' chapter
Remove broken link and update other resources in the manual.
Reported by olszkocj@aol.com in https://bugs.gnu.org/24770 .
* doc/sed.texi (Other Resources): Update wording.
2017-01-18 Jim Meyering <meyering@fb.com>
maint: update bootstrap and init.sh
* bootstrap: Update from gnulib.
* testsuite/init.sh: Likewise.
2017-01-16 Assaf Gordon <assafgordon@gmail.com>
doc: add 'branching and flow control' section
* doc/sed.texi (Branching and flow control): New section under 'Advanced
Sed' chapter.
doc: add 'join lines' example
* doc/sed.texi (Joining lines): Add example of joining SMTP header
lines.
2017-01-16 Norihiro Tanaka <noritnk@kcn.ne.jp>
tests: new test for dfa newline bug
sed-4.3 would segfault with:
printf '$LINENO $LINEN\nB\n' | sed -e 'N;s/\$LINENO\(.*\n\)/\1/'
Culprit is dfa crash if multi-lines are read in pattern space.
It is fixed at gnulib commit v0.1-1117-g823b5cb .
Reported by S. Gilles in https://bugs.gnu.org/25390
* testsuite/newline-dfa-bug.sh: New test.
* testsuite/local.mk: Add the test.
2017-01-16 Assaf Gordon <assafgordon@gmail.com>
gnulib: update to latest (with fix for dfa newline bug)
sed-4.3 would segfault due to dfa bug, see https://bugs.gnu.org/25390 .
* gnulib: Update to latest with various dfa fixes and improvement.
* m4/.gitignore: Add 'std-gnu11.m4', 'pthread_rwlock_rdlock.m4'.
2017-01-16 Assaf Gordon <assafgordon@gmail.com>
doc: improve README installation instructions
Mention README-hacking for git users.
Issue raised by Jean-Christophe Manciot in https://bugs.gnu.org/25377 .
* README: Improve installation paragraph based on coreutils' README.
2017-01-16 Jim Meyering <meyering@fb.com>
maint: avoid syntax-check-exposed nit
* doc/local.mk (doc/sed.1): Use $(...) rather than @...@.
2017-01-15 Jim Meyering <meyering@fb.com>
maint: do not distribute COPYING.DOC
* COPYING.DOC: Remove this file, now that we have doc/fdl.texi.
* Makefile.am (EXTRA_DIST): Don't distribute it.
2017-01-14 Jim Meyering <meyering@fb.com>
tests: skip valgrind-running tests when ASAN-enabled
* init.cfg (require_valgrind_): Skip when we detect that the
binary is ASAN-enabled.
2017-01-13 Vagelis Prokopiou <drz4007@gmail.com> (tiny change)
maint: insert missing word in comment
* sed/sed.h (struct vector)[v_allocated]: Insert "of".
2017-01-09 Assaf Gordon <assafgordon@gmail.com>
build: skip building man page if needed
Skip building the man page if building from tarball (where 'doc/sed.1'
is already prebuilt). Build a stub if building from git but generating
the man page isn't possible (if there's no Perl or cross-compiling).
Cross-compilation issue reported by Vishal Biswas in
https://bugs.gnu.org/25358 .
Problematic 'perl' is related to https://bugs.gnu.org/25367 .
* configure.ac: Check for Perl, cross-compilation and tarball build;
Set automake variable BUILD_MAN_PAGE, BUILD_DUMMY_MAN_PAGE accordingly.
* doc/local.mk (doc/sed.1): Build conditionally if BUILD_MAN_PAGE is true;
Create a dummy man page if BUILD_DUMMY_MAN_PAGE is true.
* doc/sed-dummy.1: Stub man page.
2017-01-08 Assaf Gordon <assafgordon@gmail.com>
build: fix out-of-tree builds without dep-tracking
Create sed,lib,doc,testsuite subdirectories at the end of
'configure', preventing build problems when building out of tree
with --disable-dependency-tracking.
Reported by Juan M. Guerrero in https://bugs.gnu.org/25371 .
* configure.ac: Call AS_MKDIR_P() to create subdirectories.
2017-01-07 Jim Meyering <meyering@fb.com>
doc: fix NEWS typo
* NEWS: Fix typo s/introducted/introduced/
* cfg.mk (old_NEWS_hash): Update.
Reported by Karl Berry.
2017-01-01 Jim Meyering <meyering@fb.com>
maint: update gnulib and copyright dates for 2017
* gnulib: Update to latest.
* all files: Run "make update-copyright".
maint: compile warning-free with -DDEBUG_LEAKS
* sed/regexp.c (release_regex) [DEBUG_LEAKS]: Modernize declaration.
2016-12-30 Jim Meyering <meyering@fb.com>
maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
version 4.3
* NEWS: Record release date.
gnulib: update to latest, to fix parallel getopt test failure
2016-12-28 Assaf Gordon <assafgordon@gmail.com>
doc: new annotated example for N/P/D/b commands
Illustrates how to restructure line breaks over multiple lines.
* doc/sed.texi (Line length adjustment): New section.
2016-12-28 Assaf Gordon <assafgordon@gmail.com>
doc: new annotated example section for N/D commands
Illustrate how to use N/D to search for doubled-word spanning
multiple lines.
* doc/sed.texi (Text search across mutliple lines): New section.
2016-12-28 Assaf Gordon <assafgordon@gmail.com>
doc: add 'multiline techniques' section
Expand on using D,G,H,N,P commands to process multiple lines.
* doc/sed.texi (Multiline techniques): New section.
2016-12-22 Assaf Gordon <assafgordon@gmail.com>
maint: update m4/.gitignore
* m4/.gitignore: Add 'dirfd.m4', 'hard-locale.m4'.
2016-12-20 Jim Meyering <meyering@fb.com>
maint: RE_ICASE, RE_NO_SUB: remove useless '#ifdef's
* sed/regexp.c (compile_regex_1): Remove #ifdef RE_ICASE guard,
since dfa.c uses it unconditionally. Suggested by Norihiro Tanaka.
Also remove the nearby "#ifdef RE_NO_SUB". Those macros are guaranteed
to be defined by virtue of configure-time tests that ensure we're using
either a new-enough native glibc (RE_NO_SUB was added in 2004), or the
included replacement.
2016-12-19 Jim Meyering <meyering@fb.com>
gnulib: update to latest; dfa improvement and getopt-posix-tests build fix
2016-12-18 Jim Meyering <meyering@fb.com>
gnulib: update to latest and adapt to modified dfa API
* sed/regexp.c (compile_regex_1): Do away with use of DFA_CASE_FOLD.
This gnulib update pulls in a dfa module in which that symbol no
longer exists. Instead, it uses RE_ICASE in syntax bits.
* m4/.gitignore: Add files created by running bootstrap.
* lib/.gitignore: Likewise.
tests: use just-built sed in more places
* cfg.mk (PATH): Prepend $(srcdir)/src, so that we use the just-
built sed also when running commands like those of "make distcheck".
Tested by running this in a just-built directory:
f=sed/sed; printf '%s\n' '#!/bin/sh' 'sleep 9h' > $f; chmod a+x $f
and then verifying that nearly every "make syntax-check" rule hangs.
2016-12-14 Jim Meyering <meyering@fb.com>
doc: fix sed.1-building rule to work on mingw
* doc/local.mk (doc/sed.1): Add $(EXEEXT) suffix on "sed/sed" dependent.
Patch by Miodrag Milanovic via Stephan T. Lavavej, in
https://lists.gnu.org/archive/html/sed-devel/2016-12/msg00026.html
2016-12-12 Jim Meyering <meyering@fb.com>
tests: port tests to avoid tr NUL-eliding behavior on Solaris
* testsuite/Makefile.tests (elide_cr): Define this to use sed.
Replace every prior use of "$(TR) -d \\r" with it.
Our just-built sed can do that job (elide CR bytes) even when the
input contains NUL bytes. Solaris 11.3's /bin/tr would remove any
NUL byte from the result. Reported by Nelson H.F. Beebe in
https://lists.gnu.org/archive/html/sed-devel/2016-12/msg00006.html
gnulib: update to latest, for solaris-10-vs-configure fix
doc: add a README-hacking file
* README-hacking: New file: instructions for building from a git clone.
Copied from grep's repo, but with s/grep/sed/.
2016-12-11 Jim Meyering <meyering@fb.com>
build: avoid "make dist" failure due to missing dependencies
* sed/local.mk ($(sed_sed_OBJECTS)): Depend on $(BUILT_SOURCES).
Reported by Assaf Gordon in
https://lists.gnu.org/archive/html/sed-devel/2016-12/msg00016.html
2016-12-10 Assaf Gordon <assafgordon@gmail.com>
doc: simplify documentation building
Do not bother autogenerating sed.texi from sed-in.texi. All it did
was to add a few '@group' commands. Since these are rarely modified,
add them manually. This simplifies the documentation-building rules
and lets us distribute only one copy of the texinfo manual.
See http://lists.gnu.org/archive/html/sed-devel/2016-12/msg00013.html
* doc/groupify.sed, doc/sed-in.texi: Remove files.
* doc/sed.texi: Remove the 'auto-generated' warning, as this file is no
longer auto-generated.
* doc/local.mk (doc_sed_TEXINFOS): Rename from sed_TEXINFOS.
(dist_noinst_DATA): The above renaming enables us to remove
doc/config.texi and doc/fdl.texi from this list.
(dist_noinst_SCRIPTS): Remove.
(doc/sed.texi): Remove rule.
(doc/s-texi): Likewise.
2016-12-06 Assaf Gordon <assafgordon@gmail.com>
maint: add missing fdl.texi to distribution
Neglected to add it in commit v4.2.2-175-gc6a55aa.
* doc/local.mk (sed_TEXINFOS, dist_noinst_DATA): Add doc/fdl.texi.
2016-12-06 Assaf Gordon <assafgordon@gmail.com>
doc: follow-up changes for manual improvements
Fixes few missing issues from commit v4.2.2-176-g801a2c8,
discussed in
http://lists.gnu.org/archive/html/sed-devel/2016-12/msg00005.html
* doc/config.texi: Add stub texinfo macros '@codequotebacktick' and
'@codequoteundirected' (needed if using older versions of texinfo).
* doc/sed-in.texi: Fix syntax that's accepted by newer texinfo but
rejected by texinfo-4.13; Disable directed quote characters in examples.
* doc/sed.texi: Auto-regenerated.
2016-12-05 Jim Meyering <meyering@fb.com>
gnulib: update to latest
2016-12-05 Assaf Gordon <assafgordon@gmail.com>
doc: reorganize and expand manual
Discussed in
http://lists.gnu.org/archive/html/sed-devel/2016-11/msg00005.html
* doc/sed-in.texi: Reorganize and expand.
* doc/sed.texi: Auto-regenerated.
2016-12-02 Assaf Gordon <assafgordon@gmail.com>
maint: upgrade documentation license to GFDL-1.3 (or later)
* bootstrap.conf: Add gnulib's fdl module.
* doc/sed-in.texi: Update license blurb to latest recommended text.
Remove duplicated copyright information from title page (copied from
coreutil's texinfo style). Include fdl.texi in a new appendix.
2016-11-29 Jim Meyering <meyering@fb.com>
tests: use "returns_ N env VAR=val ..."
Use "returns_ N env VAR=val ..." rather than "VAR=val returns_ N ...".
Some shells do not propagate envvar settings through our use
of the "returns_" function, so set any envvar via use of "env".
This was an issue at least on Ubuntu, Debian and *BSD-based systems.
* testsuite/mb-bad-delim.sh: As above.
* testsuite/mb-y-translate.sh: Likewise.
gnulib: update to latest
2016-11-27 Jim Meyering <meyering@fb.com>
tests: use "returns_ 1" rather than "&& fail=1"
* testsuite/colon-with-no-label.sh: Rather than failing only upon
success (exit 0), fail upon exit with any value other than 1.
build: stop suppressing many -W... warnings
This code in configure.ac added many -W options to the list
of warnings that we do *not* enable. When I copied most of
this code into this file from coreutils, I did not try to
remove the options that happened not to be needed for sed.
Now, compilers have improved and I have done that triage.
Many -W options can be left enabled.
* configure.ac (GNULIB_WARN_CFLAGS): There is no longer any
need to use a different set of warnings for lib/ files, so
remove this variable, along with many -W-related exemptions.
build: avoid "make distcheck" failure due to leftover .Po files
The following definitions caused trouble for no gain. They caused
some .o file names to have a long additional prefix and even
resulted in some .Po files not being removed by "make distclean"
when building with recent automake. The only reason to use these
definitions was -- long ago -- to require different compiler options
for files in lib/ than elsewhere. That is no longer necessary.
* lib/local.mk (lib_libsed_a_CPPFLAGS): Remove definition.
(lib_libsed_a_CFLAGS, lib_libsed_a_LIBADD): Likewise.
(lib_libsed_a_DEPENDENCIES): Likewise.
maint: fix -Wformat-exposed errors in uses of "panic"
* sed/utils.h (panic): Add __printf__ attribute, so that compilers
can diagnose format/arg-type errors. This exposed the following:
* sed/utils.c (ck_fwrite): Don't try to print size_t via %u.
Instead, use %llu and a cast to unsigned long long.
* sed/mbcs.c (is_mb_char): Cast an "int" to unsigned int, to avoid
mismatch with %x.
maint: remove unused parameters
* sed/compile.c (finish_program): This function's sole argument
was unused. Remove it and update callers.
* sed/sed.h: Update prototype.
* sed/utils.c (register_open_file): This functions's third argument,
"temp", was unused. Remove it and update callers.
* sed/sed.c: Update use.
maint: fix two "make syntax-check" failures
* cfg.mk (exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF):
Also exempt zero-anchor.{inp,good}.
* sed/regexp.c (match_regex): s/can not/cannot/
2016-11-16 Assaf Gordon <assafgordon@gmail.com>
build: remove explicit 'html' makefile target
The 'html' target was a left-over from the recursive Makefiles,
which were converted to non-recursive in sed v4.2.2-129-g3b29bec.
With this removed, the 'html' target in 'Makefile' is correctly
genererated by automake (from doc/local.mk), and 'make html' works again.
* Makefile.am: Remove explicit 'html' target.
2016-11-12 Jim Meyering <meyering@fb.com>
tests: use "returns_ 1" rather than testing $? = 1
* testsuite/temp-file-cleanup.sh: As above.
2016-11-04 Assaf Gordon <assafgordon@gmail.com>
sed: standardize exit code values
Use exit-code constants, and document them:
1=syntax error, 2=bad input files, 4=I/O error or panic.
Add "Exit Status" section in manual.
* sed/utils.h: Define new constants.
* sed/utils.c,
sed/compile.c,
sed/execute.c,
sed/sed.c: Use constants instead of hard-coded values.
* doc/sed-in.texi: Add "Exit Status" section.
* doc/sed.texi: Automatically re-generated.
2016-11-04 Assaf Gordon <assafgordon@gmail.com>
maint: regenerate sed.texi after doc change
Regenerate sed.texi from sed-in.texi after
doc change in v4.2.2-160-10549b7 ( https://bugs.gnu.org/24799 ).
* doc/sed.texi: Regenerated with 'make info'.
2016-11-04 Norihiro Tanaka <noritnk@kcn.ne.jp>
sed: fix multi-line regex matching with -z
Sed incorrectly matches the anchor '^' to a newline character
(ASCII 10) despite using NUL line terminators (-z).
See https://bugs.gnu.org/24615 .
Previous (incorrect) behavior:
$ printf "a\0b\0" | sed -z 'N;s/^/X/mg;' | od -An -a
X a nul b nul
With this fix:
$ printf "a\0b\0" | sed -z 'N;s/^/X/mg;' | od -An -a
X a nul X b nul
Current regex engine can not handle NUL multiline anchors.
Implement such search manually (by breaking the pattern into separate
NUL-terminated lines) and searching each one individually.
* NEWS: Mention it.
* sed/regexp.c (compile_regex_1): Don't use newline_anchor of regex, if
the buffer delimiter is not newline character.
(match_regex): Do above case line-by-line.
* testsuite/zero-anchor.good, testsuite/zero-anchor.inp,
testsuite/zero-anchor.sed: New test.
* testsuite/local.mk: Add the test.
* testsuite/Makefile.tests: Add the test.
* bootstrap.conf: Add memrchr.
* lib/.gitignore, m4/.gitignore: Ignore memrchr files.
2016-11-04 Norihiro Tanaka <noritnk@kcn.ne.jp>
sed: optimize regex processing of lone ^ or $
Optimize /^/ and /$/ patterns and avoid invoking the regular expression
engine if possible.
See https://bugs.gnu.org/24615 .
* sed/regex.c (compile_regex_1): Mark the patterns which consist of ^ or $.
(match_regex): Handle the patterns which consist of ^ or $ manually.
* sed/sed.h (struct regex): New members 'begline' and 'endline'.
* testsuite/newline-anchor.good, testsuite/newline-anchor.sed,
testsuite/newline-anchor.sed: New test.
* testsuite/Makefile.tests: Add the test.
* testsuite/local.mk: Add the test.
2016-10-26 Vincenzo Romano <vincenzo.romano@notorand.it>
doc: make an example's description more precise
* doc/sed-in.texi (Regular Expressions): Mention that the match
must be at the end of a line.
2016-10-02 Jim Meyering <meyering@fb.com>
maint: address syntax-check warnings about @pxref
* doc/sed-in.texi: Improve cross-references.
* doc/sed.texi: Regenerate.
build: address warnings from GCC 7
* sed/sed.c (usage): Declare with the _Noreturn attribute to suppress
this warning/error:
sed/sed.c:359:11: error: this statement may fall through \
[-Werror=implicit-fallthrough]
usage(0);
^~~~~~~~
* sed/execute.c (execute_program) [case 'q']: Add FALLTHROUGH comment
to avoid warning from GCC 7's -Wimplicit-fallthrough.
* sed/compile.c (compile_program): Likewise.
gnulib: update to latest
2016-09-25 Norihiro Tanaka <noritnk@kcn.ne.jp>
sed: fix incorrect match for title case
* sed/regexp.c (compile_regex_1): Avoid building fastmap for case-
insensitive matching.
* testsuite/title-case.sh: New file, to test for this fix.
* testsuite/local.mk (T): Add the new file name and sort alphabetically.
* init.cfg (require_el_iso88597_locale_): Define.
2016-09-11 Jim Meyering <meyering@fb.com>
dfa: reflect move of dfa code to new gnulib module
* bootstrap.conf (gnulib_modules): Add dfa.
* sed/dfa.c: Remove file.
* sed/dfa.h: Likewise.
* sed/local.mk (sed_sed_SOURCES): Remove dfa.c.
(NOINST_HEADERS): Remove dfa.h.
* sed/regexp.c (compile_regex_1): Use new dfasyntax API.
* sed/sed.c (localeinfo): New global.
(main): Call init_localeinfo to initialize it.
* sed/sed.h: Include localeinfo.h and declare the new global.
* lib/.gitignore: Ignore new gnulib-imported files.
* m4/.gitignore: Likewise.
* po/POTFILES.in: s,sed/dfa.c,lib/dfa.c,
gnulib: update to latest, for new dfa module
2016-09-04 Assaf Gordon <assafgordon@gmail.com>
sed: new --sandbox option
In sandbox mode, r/w/e commands are not allowed.
This ensures sed operates only on files designated on the command line,
and cannot execute external programs.
* sed/sed.c (sandbox): New option variable.
(usage): List new option.
(main): Accept new option in getopt.
* sed/sed.h (sandbox): New extern option variable.
* sed/compile.c (DISALLOWED_CMD): New error message.
(read_filename): Abort in sandbox mode (r/w commands).
(compile_program): Abort on 'e' in sandbox mode.
* testsuite/sandbox.sh: Test new option.
* testsuite/local.mk: Add new test.
* NEWS: Mention new option.
* doc/sed-in.texi, doc/sed.texi: Document new option.
2016-08-27 Jim Meyering <meyering@fb.com>
maint: fix distclean-vs-excess-.Po files more cleanly
* doc/local.mk (distclean-local): Remove rule. Moved to ...
* Makefile.am (distclean-local): ...here, and add a command to
remove all .deps directories. It could have stayed in that .mk
file, but since with this change, it is no longer specific to doc/,
the top level makes more sense.
* lib/local.mk (MOSTLYCLEANFILES): Remove this. Covered by the above.
Reported by Assaf Gordon in
https://lists.gnu.org/archive/html/sed-devel/2016-08/msg00019.html
2016-08-26 Assaf Gordon <assafgordon@gmail.com>
maint: update .mailmap
Consolidate author's upper/lower case email addresses.
Fixes the following problem:
$ make THANKS
GEN THANKS
./thanks-gen: THANKS.in: duplicate name: Ralf Wildenhues
Due to:
$ git log --pretty=format:'%aN %aE' | grep -i ralf | sort -u
Ralf Wildenhues ralf.wildenhues@gmx.de
Ralf Wildenhues Ralf.Wildenhues@gmx.de
see http://lists.gnu.org/archive/html/sed-devel/2016-08/msg00023.html
http://lists.gnu.org/archive/html/sed-devel/2016-08/msg00025.html
* .mailmap: Add email mapping.
2016-08-24 Assaf Gordon <assafgordon@gmail.com>
doc: update README
* README: Update information: remove mention of README.boot, mention
AUTHORS, THANKS, website and help/usage information.
maint: update program name in THANKS.in
* THANKS.in: Replace 'grep' with 'sed'.
maint: remove superfluous name from THANKS.in
* THANKS.in: Remove Pádraig Brady: He is the author of two commits
(v4.2.1-1-g737ca5e and v4.2.1-37-g629ef76) and will be automatically
included in the auto-generated THANKS file.
maint: remove README-alpha
* README-alpha: Removed.
2016-08-22 Assaf Gordon <assafgordon@gmail.com>
maint: update AUTHORS
* AUTHORS: Update information.
2016-08-18 Jim Meyering <meyering@fb.com>
doc: work with read-only sed.1
* doc/local.mk (doc/sed.1): Also remove $@, so that mv does not
prompt about read-only target.
2016-08-14 Jim Meyering <meyering@fb.com>
build: fix sed.1 dependency; work with latest automake
* doc/local.mk (doc/sed.1): Depend not on sed.c, but on the binary
that help2man must run. Also depend on .version, to be sure we
pick up a version change. Also, be careful not to write directly
to $@: instead write to $@-t, and make read-only to mark as generated,
and then, only if all is well, rename atomically to $@.
Also, prefix commands with $(AM_V_GEN) and $(AM_V_at) and ensure
that doc/ exists via $(MKDIR_P).
(distclean-local): New target. Use this instead of ...
(dist-hook-man-page): ... this. Remove rule.
(SEDBIN): Remove unnecessary $(top_builddir)/ prefix.
(doc/sed.texi, doc/s-texi): Remove some uses of $(top_builddir).
Replace others with $(srcdir).
* Makefile (dist-hook): remove dependency on dist-hook-man-page.
* lib/local.mk (MOSTLYCLEANFILES): Arrange for lib/.deps/*.Po
to be removed as part of "make distclean", so that make distcheck
no longer fails when using latest automake.
sed: remove obsolete advice from --help output
* sed/sed.c (contact): Now that there is a sed-specific
mailing list, there is no longer any need to include "sed"
in the subject. Remove that advice.
2016-08-11 Assaf Gordon <assafgordon@gmail.com>
doc: mention \s,\S,\<,\> regex gnu-extensions
* doc/sed-in.texi: Mention the extensions.
* doc/sed.texi: Automatically re-generated.
doc: expand on N command
* doc/sed-in.texi: Expand on gnu-extension of 'N' command.
* doc/sed.texi: Automatically re-generated.
2016-08-09 Jim Meyering <meyering@fb.com>
sed: avoid one-byte heap buffer overrun
* sed/execute.c (DFA_SLOP): Define.
(resize_line): Use it in each line-related allocation.
(line_init): Likewise.
(line_copy): Likewise.
2016-08-08 Assaf Gordon <assafgordon@gmail.com>
sed: adjust line-terminator of F/l/= commands when -z is used
Change F/l/= commands to use NUL line terminator if '-z' option is used.
Previously F/l/= used '\n' regardless of -z option.
See: http://lists.gnu.org/archive/html/sed-devel/2016-08/msg00000.html
http://lists.gnu.org/archive/html/sed-devel/2016-08/msg00002.html .
* sed/execute.c: (do_list,execute_program): Use 'buffer_delimiter' as
line delimiter instead of hard-coded '\n'.
* testsuite/nulldata.sh: Adjust tests accordingly.
2016-08-08 Norihiro Tanaka <noritnk@kcn.ne.jp>
sed: use grep's DFA matcher to speed up regular expression matching
When possible, sed now uses grep's DFA matcher to match regular
expression, often resulting in a 10x speed-up.
* NEWS (Improvements): Mention it. Move this section to the top.
* sed/local.mk (sed_sed_SOURCES): Add dfa.c, and sort file names.
(noinst_HEADERS): Add dfa.h, and sort file names.
* sed/regexp.c (dfaerror, dfawarn): New functions.
(compile_regex_1): Compile pattern with dfa.
(match_regex): Use dfa.
* sed/sed.h: Include dfa.h.
(struct regex): New member dfa.
* sed/dfa.c: New file, copied from grep.
* sed/dfa.h: New file, copied from grep.
* po/POTFILES.in: Add sed/dfa.c.
2016-08-08 Assaf Gordon <assafgordon@gmail.com>
sed: reject 's///e' in --posix mode
's///e' modifier is a gnu extension - reject it in --posix mode.
* sed/compile.c: (mark_subst_opt): Exit upon 's///e' in posix mode.
* testsuite/posix-mode-s.sh: Adjust tests accordingly.
2016-08-08 Assaf Gordon <assafgordon@gmail.com>
sed: allow multiple (non-conflicting) -E/-r parameters
Accept multiple -E/-r parameters as they enable the same ERE operation
mode. Previously, sed would reject multiple -E/-r/-R parameters (as
preparation to supporting PERL syntax and wanting to avoid -E/-r/-R
conflicts). This enables 'sed -E -E -r =' which previously would exit with
a failure (and print the help screen).
* sed/sed.c: (main): Don't exit on multiple -E/-r parameters.
2016-07-26 Assaf Gordon <assafgordon@gmail.com>
maint: add static-analysis target to cfg.mk
Run 'make static-anslysis' to perform static code analysis using
clang's 'scan-build' tool.
* cfk.mk: (static-analysis,static-analysis-init,static-analysis-config,
static-analysis-make): New targets.
2016-07-26 Assaf Gordon <assafgordon@gmail.com>
maint: add copyright/license information to configure.ac
Starting year chosen as 1993 based on earliest 'configure.in' found in
sed-1.18.tar.gz from that year.
* configure.ac: Add standard copyright and license information.
2016-07-26 Assaf Gordon <assafgordon@gmail.com>
maint: update .gitignore after bootstrap
Added by running ./bootstrap on a clean sed repository.
* build-aux/.gitignore: Add config.rpath.
* lib/.gitignore: Add additional gnulib C files.
* m4/.gitignore: Add additional gnulib m4 files.
* po/.gitignore: Add additional PO-related files.
2016-07-26 Assaf Gordon <assafgordon@gmail.com>
maint: update .gitignore
* .gitignore: Add coverage files, .dirstamp files, testsuite files.
2016-07-25 Jim Meyering <meyering@fb.com>
maint: skip a check when en_US.UTF-8 collation rules are broken
* cfg.mk (sc_THANKS_in_sorted): This check would fail on systems
for which "." is not ignored. Add a quick sort-based check for
that error, and skip the check on any broken system.
This also corrects the command to use $(srcdir)/THANKS.in,
rather than just THANKS.in.
2016-07-24 Jim Meyering <meyering@fb.com>
maint: sort THANKS.in
* THANKS.in: Move J.T. Conklin's name "down" so it is in
en_US.UTF-8-sorted order.
2016-07-24 Assaf Gordon <assafgordon@gmail.com>
build: switch to non-recursive makefile
* .gitignore: Ignore '.dirstamp' files
* bootstrap.conf: Add 'non-recursive-gnulib-prefix-hack' gnulib module.
Add missing 'stdalign' module.
(bootstrap_post_import_hook): Use module to adjust gnulib.mk file.
* configure.ac: Add 'subdir-objects' automake option, don't generate
makefiles in subdirectories. Adjust path of XFAIL tests.
* Makefile.am: Include 'local.mk' files, adjust for non-recursive make.
* doc/Makefile.am: Rename to ...
* doc/local.mk: Adjust paths. Rename SED to
SEDBIN variable, to avoid overriding the default system-wide SED value
which is automatically set by autotools.
* lib/Makefile.am: Rename to ...
* lib/local.mk: Adjust paths.
* lib/.gitignore: Ignore 'stdalign.h' from gnulib module.
* sed/Makefile.am: Rename to ...
* sed/local.mk: Adjust paths.
* testsuite/Makefile.am: Rename to ...
* testsuite/local.mk: Adjust paths.
* testsuite/init.cfg: Move to ...
* init.cfg: ... here. Moved to avoid changing the path in init.sh, and to
keep the same directory structure as coreutils.
(require_en_utf8_locale_): Adjust path for get-mb-cur-max executable.
(require_ja_shiftjis_locale_,require_valid_ja_shiftjis_locale_): Adjust
path for test-mbrtowc executable.
* m4/.gitignore: Add gnulib's non-recusive-make module.
* testsuite/runtest: Adjust paths of Makefile.tests and dir variables,
Skip utility program 'get-mb-cur-max' which is not a standalone test.
* testsuite/Makefile.tests: Adjust path of sed exeutable.
* testsuite/eval.sed, testsuite/eval.good: Adjust path of sed executable.
* testsuite/cmd-R.sh,
testsuite/cmd-l.sh,
testsuite/colon-with-no-label.sh,
testsuite/comment-n.sh,
testsuite/compile-errors.sh,
testsuite/compile-tests.sh,
testsuite/convert-number.sh,
testsuite/execute-tests.sh,
testsuite/follow-symlinks-stdin.sh,
testsuite/follow-symlinks.sh,
testsuite/help-version.sh,
testsuite/in-place-hyphen.sh,
testsuite/in-place-suffix-backup.sh,
testsuite/invalid-mb-seq-UMR.sh,
testsuite/mb-bad-delim.sh,
testsuite/mb-charclass-non-utf8.sh,
testsuite/mb-match-slash.sh,
testsuite/mb-y-translate.sh,
testsuite/normalize-text.sh,
testsuite/nulldata.sh,
testsuite/panic-tests.sh,
testsuite/posix-char-class.sh,
testsuite/posix-mode-N.sh,
testsuite/posix-mode-addr.sh,
testsuite/posix-mode-bad-ref.sh,
testsuite/posix-mode-s.sh,
testsuite/range-overlap.sh,
testsuite/recursive-escape-c.sh,
testsuite/regex-errors.sh,
testsuite/stdin-prog.sh,
testsuite/subst-mb-incomplete.sh,
testsuite/subst-options.sh,
testsuite/subst-replacement.sh,
testsuite/temp-file-cleanup.sh,
testsuite/unbuffered.sh: Adjust paths of init.sh, sed executable.
2016-07-17 Assaf Gordon <assafgordon@gmail.com>
tests: test --follow-symlinks option
* configure.ac: (TEST_SYMLINKS): New AM_CONDITIONAL.
* testsuite/follow-symlinks.sh: New tests.
* testsuite/Makefile.am: (T): Conditionally add new test (and existing test
'follow-symlink-stdin.sh') based on TEST_SYMLINKS.
tests: test y command in multibyte locales
* testsuite/mb-y-translate.sh: New test.
* testsuite/Makefile.am: Add new test.
2016-07-16 Assaf Gordon <assafgordon@gmail.com>
tests: test y,s non-slash multibyte delimiters
Test various scenarios of using a multibyte delimiters (instead of
slash) for s,y commands under UTF-8 and C locales.
* testsuite/mb-bad-delim.sh: New test.
* testsuite/Makefile.am: Add new test.
2016-07-06 Assaf Gordon <assafgordon@gmail.com>
tests: skip tests upon buggy mbrtowc implementations
Sed tests purposefully use invalid non-utf8 multibyte sequences to
test sed's handling of invalid input/program.
Some implementations wrongly accept invalid sequences, causing false
alarms. Add a test program to detect such buggy implementations and skip
the tests if needed.
See discussion in:
http://lists.gnu.org/archive/html/sed-devel/2016-07/msg00005.html
http://lists.gnu.org/archive/html/sed-devel/2016-07/msg00000.html
http://lists.gnu.org/archive/html/sed-devel/2016-06/msg00031.html
http://lists.gnu.org/archive/html/sed-devel/2016-06/msg00014.html
* bootstrap.conf: Add gnulib's closeout module.
* m4/.gitignore, lib/.gitignore, po/POTFILES.in: Adjust after adding
closeout module.
* testsuite/Makefile.am (check_PROGRAMS): Add new program.
* testsuite/test-mbrtowc.c: New program.
* testsuite/init.cfg (require_valid_ja_eucjp_locale_)
(require_valid_ja_shiftjis_locale_): New functions. Call test-mbrtowc
with known invalid multibyte sequences to ensure implementation is not
buggy and rejects them; Skip test otherwise.
* testsuite/invalid-mb-seq-UMR.sh: Use require_valid_ja_eucjp_locale_.
* testsuite/mb-charclass-non-utf8.sh: Use require_valid_ja_shiftjis_locale_.
2016-07-04 Assaf Gordon <assafgordon@gmail.com>
sed: fix minor multibyte parsing bug
Previously sed would parse multibyte characters incorrectly in two scenarios:
1. Slash following an incomplete-yet-valid multibyte sequence (match_slash):
$ LC_ALL=en_US.UTF-8 sed $'s/\316/X/'
sed: -e expression #1, char 6: unterminated `s' command
2. Open/close brackets as part of a valid mutilbyte string inside a character
class (snarf_char_class). In the example below, '\203]' is a valid
multibyte character in SHIFT-JIS locale:
$ LC_ALL=ja_JP.shiftjis sed $'/[\203]/]/p'
sed: -e expression #1, char #5: Unmatched [ or [^
Both cases stem from mbcs.c:brlen() being non-intuitive:
It returned 1 for valid single-byte character, invalid multibyte-character,
and a for the last byte of a valid multibyte sequence - making it
non-trivial to use correctly.
This commit replaces brlen() with a simpler is_mb_char() function:
returns non-zero for multibyte sequences, zero for single/invalid sequences.
* sed/sed.h: (BRLEN, brlen): Remove delaration.
(IS_MB_CHAR,is_mb_char): Add macro and function declaration.
* sed/mbcs.c: (brlen): Remove function. (is_mb_char): New function.
* sed/compile.c: (snarf_char_class, match_slash): Use IS_MB_CHAR instead of
BRLEN; Adjust local variables accordingly.
* testsuite/mb-match-slash.sh: New test for scenario 1.
* testsuite/mb-charclass-non-utf8.sh: New test for scenario 2,
requires SHIFT-JIS locale.
* testsuite/Makefile.am: Add new tests
* testsuite/init.cfg: (require_ja_shiftjis_locale_): New function.
* NEWS: Mention bug fix.
2016-06-26 Tristan Verniquet <tverniquet@gmail.com>
sed: use unlocked-io
Sed already imports gnulib's unlocked-io module, but it was not included
in 'utils.c'. Suggested in http://bugs.gnu.org/23848 .
* sed/utils.c: Include 'unlocked-io.h' header.
* NEWS: Mention improvement.
2016-06-05 Assaf Gordon <assafgordon@gmail.com>
tests: test text normalization (\X sequences)
Sed understands escape-sequences such as \r \t \n \cX.
Test various scenarios of text normalization.
* testsuite/normalize-text.sh: new test.
* testsuite/Makefile.am: add new test.
2016-06-02 Assaf Gordon <assafgordon@gmail.com>
tests: test \dNNN \oNNN \xNN escape sequences
Test different variations of \dNNN \oNNN \xNN escape sequences,
exercising compile.c:convert_number().
* testsuite/convert-number.sh: new test.
* testsuite/Makefile.am: add new test
2016-06-02 Assaf Gordon <assafgordon@gmail.com>
tests: test less-common compilation cases
Test various odds-and-ends stemming from GNU sed implementation
of the program compilation module.
* testsuite/compile-tests.sh: new test.
* testsuite/Makefile.am: add new test.
2016-06-01 Assaf Gordon <assafgordon@gmail.com>
tests: test less-common execution cases
* testsuite/execute-tests.sh: new test.
* testsuite/Makefile.am: add new test.
tests: test 'R' command
* testsuite/cmd-R.sh: new test.
* testsuite/Makefile.am: add new test.
tests: test program file from STDIN
* testsuite/stdin-prog.sh: new test.
* testsuite/Makefile.am: add new test.
tests: test auto-silent mode with '#n' comments
* testsuite/comment-n.sh: new test.
* testsuite/Makefile.am: add new test.
2016-06-01 Assaf Gordon <assafgordon@gmail.com>
tests: test character-classes escaping in POSIX mode
No \X escaping inside character classes in POSIX mode.
Compare:
$ printf "t\t\n" | sed 's/[\t]/X/' | od -a
0000000 t X nl
$ printf "t\t\n" | sed --posix 's/[\t]/X/' | od -a
0000000 X ht nl
* testsuite/posix-char-class.sh: new test.
* testsuite/Makefile.am: add new test.
2016-06-01 Assaf Gordon <assafgordon@gmail.com>
tests: test substitue replacements (s//\N/)
Test standard POSIX (e.g. \1 \2 \3) and gnu extension (\U \u \L \l \E)
replacements in s/// command.
* testsuite/subst-replacement.st: new test.
* testsuite/Makefile.am: add new test.
2016-06-01 Assaf Gordon <assafgordon@gmail.com>
tests: test s/// modifiers
Test standard posix and gnu extension modifiers to s/// command.
* testsuite/subst-options.sh: new test.
* testsuite/Makefile.am: add new test.
2016-06-01 Assaf Gordon <assafgordon@gmail.com>
tests: test compilation-related errors
Cover code paths in copmile.c leading to errors.
* testsuite/compile-errors.sh: new test.
* testsuite/Makefile.am: add new test.
2016-06-01 Assaf Gordon <assafgordon@gmail.com>
tests: test regex compilation errors
Test scenarios leading to regex compilation errors.
* testsuite/regex-errors.sh: new test.
* testsuite/Makefile.am: add new test.
2016-06-01 Assaf Gordon <assafgordon@gmail.com>
tests: exercise 'panic' calls
Test scenarios in which GNU sed terminates with a panic error message
(and verify the error message text).
* testsuite/panic-tests.sh: new test.
* testsuite/Makefile.am: add new test.
2016-06-01 Assaf Gordon <assafgordon@gmail.com>
tests: test -i/--inplace with backup suffix option
GNU Sed accepts optional backup filename/suffix with -i option.
If the name contains '*', sed replaces it with the input filename.
Test various scenarios of suffix names.
Example:
sed -i'*-*-*.txt' = a
will generate backup file 'a-a-a.txt'.
* testsuite/in-place-suffix-backup.sh: new test.
* testsuite/Makefile.am: add new test.
2016-06-01 Assaf Gordon <assafgordon@gmail.com>
tests: test -u/--unbuffered mode
Test GNU Sed behaviour in --unbuffered mode (reading only the minimum
needed characters from STDIN, leaving output for next program when sed
terminates). Example:
seq 10 | (sed -u 1q ; sort -nr )
* testsuite/unbuffered.sh: new test.
* testsuite/Makefile.am: add new test.
2016-06-01 Assaf Gordon <assafgordon@gmail.com>
tests: test -z/--null-data option
Test input/output line-terminators with -z option.
* testsuite/nulldata.sh: new test.
* testsuite/Makefile.am: add new test.
2016-06-01 Assaf Gordon <assafgordon@gmail.com>
tests: test 'l' command
Test output width of 'l' command, based on COLS envvar,
lN (GNU Extension), '-l N' command-line parameter,
and default output width.
* testsuite/cmd-l.sh: new test.
* testsuite/Makefile.am: add new test.
2016-06-01 Assaf Gordon <assafgordon@gmail.com>
tests: test gnu address extension in gnu/posix modes
The following addresses are gnu extensions:
0,/regexp/
addr1,+N
addr2,~N
* testsuite/posix-mode-addr.sh: new test.
* testsuite/Makefile.am: add new test.
2016-06-01 Assaf Gordon <assafgordon@gmail.com>
tests: test 's///' gnu extensions in gnu/posix modes
s///[iImMe] should be rejected in --posix mode.
s//\[lLuUN]// should have no special meaning in --posix mode.
* testsuite/posix-mode-s.sh: new test.
* testsuite/Makefile.am: add new test.
2016-06-01 Assaf Gordon <assafgordon@gmail.com>
tests: test invalid backreferences in gnu/posix modes
's/foo/\1/' is rejected by default (gnu extension),
silently accepted in POSIX.
* testsuite/posix-mode-bad-ref.sh: new test.
* testsuite/Makefile.am: add new test.
2016-06-01 Assaf Gordon <assafgordon@gmail.com>
tests: test N command in gnu/posix modes
'N' with insufficient output prints nothing in POSIX mode, prints the
last read line in GNU Extension mode.
Compare:
echo a | sed N
echo a | sed --posix N
echo a | POSIXLY_CORRECT=y sed N
* testsuite/posix-mode-N.sh: test output of N command under gnu and
posix modes.
* testsuite/Makefile.am: add new test.
2016-06-01 Assaf Gordon <assafgordon@gmail.com>
tests: invalid-mb-seq-UMR: avoid false-failure
* testsuite/Makefile.am (TESTS_ENVIRONMENT): Propagate the
LOCALE_JA envvar setting determined at configure time into
the test environment. Without this, the test would fail on
some systems: at least CentOS6 and 7, but not Fedora 24.
2016-06-01 Jim Meyering <meyering@fb.com>
tests: don't let any envvar setting perturb tests
* testsuite/envvar-check: New file. Identical to the one from
grep, but with the addition of sed-specific "COLS".
* testsuite/Makefile.am (EXTRA_DIST): Add it here.
(TESTS_ENVIRONMENT): New prologue, mostly copied from grep.
2016-05-29 Assaf Gordon <assafgordon@gmail.com>
sed: reject recursive escaping after \c
previously, sed 's/./\c\\/' or 's/./\c\d/' would produce incorrect
results. Require two backslashes after \c to denote control sequence
^\ (ASCII 0x34), and reject recursive escaping (e.g. \c\x61).
* sed/compile.c: (RECURSIVE_ESCAPE_C): New error message.
(normalize_text): Check for \c-backslash, reject recursive escaping.
* testsuite/recursive-escape-c.sh: New file. Test new behaviour.
* testsuite/Makefile.am (T): Add new test.
* NEWS (Bug fixes): Mention it.
2016-01-02 Jim Meyering <meyering@fb.com>
revert v4.2.2-87-gc033bde, to make sed -i treat "-" as a file name
Stephane Chazelas made a fine case for why sed's --in-place (-i)
should treat "-" as a file name, and not as standard input in
http://debbugs.gnu.org/21249
There was no specific test for the prior behavior, so rather than
letting the revert remove the sole test, adapt and retain it:
* testsuite/in-place-hyphen.sh: However, retain and adapt this
file to test for the restored behavior.
* testsuite/Makefile.am: Retain this change, too.
2016-01-01 Jim Meyering <meyering@fb.com>
maint: update copyright year, bootstrap, init.sh
Run "make update-copyright" and then...
* gnulib: Update to latest.
* tests/init.sh: Update from gnulib.
* bootstrap: Likewise.
2015-12-27 Jim Meyering <meyering@fb.com>
sed: do not elide an invalid byte in a substitution RHS
Now, sed copies such bytes into the output.
* sed/execute.c (str_append_modified): Copy each invalid byte
into the result string, as the comment suggests.
* testsuite/invalid-mb-seq-UMR.sh: Adjust this test to conform.
Perl does the same thing. Also, remove an unnecessary "-e" option.
* NEWS (Bug fixes): Mention it.
Bug introduced prior to the switch to git in 2004,
between the releases of sed-4.0.9 and sed-4.1.
This addresses http://debbugs.gnu.org/22254.
sed: fix a heap-clobbering buffer overrun
* sed/execute.c (str_append_modified): Upon encountering an
incomplete multi-byte sequence in a substitution replacement
string, do not treat mbrtowc's return value of -2 as a large,
positive number.
* testsuite/subst-mb-incomplete.sh: New file/test.
* testsuite/Makefile.am (T): Add it.
Reported by Hanno Böck in http://debbugs.gnu.org/22127.
Hanno used the AFL fuzzer to find the segfault-inducing input
from which I derived the test's input.
Introduced by v4.2.2-76-g78e8e58, this bug was never in a release.
2015-12-12 Jim Meyering <meyering@fb.com>
tests: add helper prog, get-mb-cur-max and re_en_utf8_locale_ function
2015-08-23 Jim Meyering <meyering@fb.com>
sed: reject a ":" command without a label
Before, sed would accept it and treat it as a label whose name
had length 0, and that could be referenced via a "b" or "t"
command with no label.
* sed/compile.c (errors): Add the new diagnostic.
(COLON_LACKS_LABEL): Define.
(compile_program): Reject ":" command with no label.
* testsuite/colon-with-no-label.sh: New file.
* testsuite/Makefile.am (T): Add it.
* NEWS (Bug fixes): Mention it.
Reported by Stephane Chazelas in http://bugs.gnu.org/21250
2015-08-01 Assaf Gordon <assafgordon@gmail.com>
build: comment out definitions of unused macros
* sed/compile.c (OPEN_BRACE): Comment out definition, to prevent gcc-5.2
from failing with -Werror -Wunused-macros.
(END_ERRORS): Likewise.
2015-07-30 Jim Meyering <meyering@fb.com>
tests: avoid false-failure on system with no ja_JP.eucJP locale
* testsuite/invalid-mb-seq-UMR.sh: Use the configure-detected
locale name, $LOCALE_JA, rather than hard-coding ja_JP.eucJP.
If the required type of locale was not detected, then skip
this test. Reported by Assaf Gordon in http://bugs.gnu.org/21124
2015-07-24 Jim Meyering <meyering@fb.com>
maint: remove dead code
* sed/utils.c (ck_mkstemp): Remove $TMP/$TMPDIR-envvar-using code
that would have been run only if this function's second parameter
were to be NULL, but that could never happen, given the current
and sole caller.
Also, use mode_t as the type for the saved umask value, not "int".
Also, move each declaration down to point of definition.
* sed/utils.h (ck_mkstemp): Mark each of the four parameters as nonnull.
2015-07-15 Stanislav Brabec <sbrabec@suse.com>
sed: fix --follow-symlinks to work when reading stdin
When reading from stdin, use of --follow-symlinks would cause failure:
$ echo abc | sed --follow-symlinks s/a/d/
sed: cannot stat -: No such file or directory
* sed/execute.c (open_next_file): Set input->in_file_name earlier,
so we can rearrange logic to avoid calling follow_symlink("-").
* testsuite/follow-symlinks-stdin.sh: New file.
* testsuite/Makefile.am (T): Add it.
* NEWS (Bug fixes): Mention it.
Bug introduced by commit v4.2.1-13-g84066bf.
http://bugs.gnu.org/20795
2015-06-23 Jim Meyering <meyering@fb.com>
typo fix: s/singlebyte/single-byte/
* sed/compile.c (compile_program, normalize_text): Fix typo.
* sed/mbcs.c (brlen): Likewise.
2015-06-20 Jim Meyering <meyering@fb.com>
sed -i: do not treat "-" as a file name
Most GNU utilities treat "-" as standard input, sed itself does that --
in most contexts. However, since the addition of support for
--in-place (-i) in sed-4.0, sed -i has treated a "-" argument as a
file name, i.e., like ./-. Now, that usage evokes a diagnostic:
$ sed -i s/a/b/ -
sed: couldn't edit -: is a terminal
If you require the old behavior, specify the file name as "./-".
Prompted by the report/patch from Stanislav Brabec in
http://bugs.gnu.org/20796 to document the strangely
inconsistent legacy behavior.
* sed/execute.c (open_next_file): Call panic before
even attempting to operate on the file descriptor.
* testsuite/in-place-hyphen.sh: New file. Test for this.
* testsuite/Makefile.am (T): Add it.
* NEWS (Feature removal): Mention it. Admittedly, the old behavior
feels more like a misfeature.
2015-06-20 Jim Meyering <meyering@fb.com>
tests: initialize $fail to 0
* testsuite/range-overlap.sh: Otherwise, with $fail set to
nonzero in the environment, this test would report failure,
even when it should pass.
2015-05-10 Jim Meyering <meyering@fb.com>
build: avoid warning about implicit declaration of unlink
* sed/sed.c: Include <unistd.h>, for declaration of unlink.
Without this change, commit makes sed v4.2.2-84-g7689015 fail
to compile when configured with --enable-gcc-warnings.
sed -i: don't leave behind a temporary sedXXXXXX file
For example, running a command like "sed -i s//b/ F" would fail
to remove a temporary file named sedXXXXXX (for random XXXXXX)
in the directory alongside F.
* sed/sed.c (G_file_to_unlink): New global.
(register_cleanup_file, cancel_cleanup, cleanup): New functions.
(main): Call atexit.
* sed/execute.c (open_next_file): Register for unlink.
(closedown): Call cancel_cleanup right after the rename.
* sed/sed.h: Declare two of the new functions.
* NEWS (Bug fixes): Mention it.
* testsuite/temp-file-cleanup.sh: New file. Test for this.
* testsuite/Makefile.am (T): Add it.
Reported by David Jones in http://bugs.gnu.org/20002.
2015-05-07 Jim Meyering <meyering@fb.com>
maint: remove stray blank line in the middle of a comment
* sed/utils.c (ck_mkstemp): As above.
tests: skip the new test in presence of buggy valgrind
* testsuite/invalid-mb-seq-UMR.sh: Upon failure due to a
valgrind-internal assertion, skip this test.
Reported by Norihiro Tanaka in http://debbugs.gnu.org/20490
2015-05-06 Norihiro Tanaka <noritnk@kcn.ne.jp>
sed: fix mishandling of overlapping address ranges
When the line number ranges of two or more editing commands overlap,
sed applies all commands but the first to a line that is just beyond
the union of all ranges. E.g., with this command,
seq 9|sed '2,7d;3,6d', sed would mistakenly delete line 8.
* sed/execute.c (match_an_address_p) [ADDR_IS_NUM]: Make this
function work also in this case.
(match_address_p): Move the ADDR_IS_NUM +
...->line_number == ...->addr_number comparison "up" into
match_an_address_p, so we can hoist two similar if/return
blocks out of "if" and "else" branches.
Change so that this function returns false when the current
line number is outside the specified range.
* testsuite/range-overlap.sh: New file, to test for this.
* testsuite/Makefile.am (T): Add it to the list.
* NEWS (Bug fixes): Mention it.
Reported as http://bugs.gnu.org/19899
2015-05-04 Jim Meyering <meyering@fb.com>
build: do not require autoconf.git
* configure.ac: Use AC_CONFIG_MACRO_DIR, not
the new (as yet unreleased) AC_CONFIG_MACRO_DIRS.
Reported by Hongyi Zhao in http://debbugs.gnu.org/20424
2015-05-03 Jim Meyering <meyering@fb.com>
maint: housekeeping: sync a few rules from coreutils
* cfg.mk (sc_preprocessor_indentation): New rule, from coreutils.
(local-checks-to-skip): Exempt it, for now.
(sc_THANKS_in_sorted): Another rule from coreutils. Enabled.
(announcement_Cc_): Define, so the auto-generated announcement
message template includes sed-devel@ as a recipient.
(update-copyright-env) [UPDATE_COPYRIGHT_USE_INTERVALS]: Update
to use =2, rather than=1, so that the next time we update
copyright dates, it will collapse a few more ranges.
maint: tweak comments and rearrange code slightly
* sed/execute.c (str_append): Trivial NSC code transformation.
(str_append_modified): Tweak another comment.
tests: test for just-fixed UMR bug
* testsuite/invalid-mb-seq-UMR.sh: New file. Test for just-fixed bug.
* testsuite/Makefile.am (T): New variable.
Add the two init.sh-using test names here, rather than in
two separate lists.
(SEDTESTS, EXTRA_DIST): Use $(T).
(EXTRA_DIST): Add init.cfg.
* testsuite/init.cfg: New file, to add functions from coreutils.
(require_valgrind_, print_ver_): New functions.
2015-05-03 Norihiro Tanaka <noritnk@kcn.ne.jp>
sed: avoid a UMR bug when processing an invalid multibyte sequence
* sed/execute.c (str_append_modified): When attempting to append an
invalid multibyte sequence, e.g., from the RHS of a substitution
expression, we would read uninitialized memory.
Don't capitalize first word of diagnostic; remove exclamation point.
Wrap new translatable strings in _(...).
* NEWS (Bug fixes): Mention it.
This addresses http://debbugs.gnu.org/20490
2015-05-02 Jim Meyering <meyering@fb.com>
maint: remove SED_FEATURE_VERSION; use PACKAGE_VERSION instead
* configure.ac (SED_FEATURE_VERSION): Remove definition et al.
* sed/compile.c (compile_program): Remove sole use.
Use PACKAGE_VERSION instead.
maint: add "/*~" to build-aux/ and m4/.gitignore files
Otherwise, bootstrap would add entries for individual file names.
* build-aux/.gitignore: Add /*~
* m4/.gitignore: Likewise.
2015-05-01 Jim Meyering <meyering@fb.com>
maint: enable sc_file_system
* cfg.mk (local-checks-to-skip): Remove its exemption.
* BUGS (characters): s/filesystem/file system/
* ChangeLog-2014 (setup_jump): Likewise.
* doc/sed-in.texi: Likewise.
* doc/sed.texi: Likewise.
build: require gettext 0.19.2, perl-5.5
* configure.ac: Require gettext-0.19.2.
* bootstrap.conf: List perl and gettext version requirements.
2015-04-27 Jim Meyering <meyering@fb.com>
tests: set sed's expected failure status to 4
* testsuite/help-version.sh (expected_failure_status_sed): As above.
2015-04-26 Jim Meyering <meyering@fb.com>
maint: invoke make via $(MAKE), not via "make"
* Makefile.am (html): Invoke make via $(MAKE).
(full-distcheck): Likewise.
use generated version.[ch] and add init.sh and help-version.sh
* Makefile.am (DISTCLEANFILES): Initialize.
(EXTRA_DIST): Add .version.
(BUILT_SOURCES): Set to .version.
(.version): New rule.
(THANKS): Depend on .version.
* sed/Makefile.am: Add rules to build version.[ch].
* sed/sed.c: Include version.h, and use the new variable, Version.
* testsuite/Makefile.am: Arrange to distribute and run the new
help-version.sh test. Also distribute the new init.sh.
* testsuite/help-version.sh: New file.
* testsuite/init.sh: Likewise.
* .gitignore: Ignore the generated files, .version and src/version.[ch].
2015-03-01 Jim Meyering <meyering@fb.com>
maint: COPYRIGHT_YEAR: remove, along with tests that use it
This is covered by other tests, and the general --help/--version
checks provided by help-version.sh (about to be added) are more
thorough.
* configure.ac (COPYRIGHT_YEAR): Remove definition and AC_SUBST.
* Makefile.am (dist-hook): Remove test.
* testsuite/Makefile.am (SEDTESTS): Remove "version".
* testsuite/version.gin: Remove file.
* .gitignore: Remove mention of generated file, version.good.
2015-01-01 Jim Meyering <meyering@fb.com>
maint: initialize an mbstate_t with "= { 0, };", rather than with memset
I.e., use this:
mbstate_t mbstate = { 0, };
rather than this:
mbstate_t mbstate;
memset (&cur_stat, 0, sizeof (mbstate_t));
Also, prefer "sizeof VAR" over sizeof(TYPE).
* sed/execute.c (execute_program, translate_mb): As above.
* sed/compile.c (match_slash, compile_program, normalize_text):
Likewise.
maint: enable sc_prohibit_long_lines
* cfg.mk (local-checks-to-skip): Remove the overall exemption,
but continue to exempt some files in testsuite/.
* configure.ac: Split a long line.
* doc/sed-in.texi: Split long lines.
* doc/sed.texi: Likewise.
* sed/compile.c: Likewise.
* sed/execute.c: Split long lines.
(execute_program): Reorder "#ifdef HAVE_POPEN" and
"if (pipe_fp != NULL)" if/else blocks to make the code
clearer and (incidentally) the lines shorter, due to a
decrease in nesting level.
* sed/sed.c: Split long lines.
* sed/utils.c: Likewise.
* sed/utils.h: Likewise.
maint: translate_mb: new function factored out of 'y'-handling case
* sed/execute.c (translate_mb): New function, factored out of
the "case 'y':" part of...
(execute_program): ...here.
maint: remove more unnecessary declarations
* sed/execute.c: Remove now-duplicate forward declarations.
maint: update copyright year ranges to include 2015; update gnulib
2014-12-20 Jim Meyering <meyering@fb.com>
maint: enable sc_prohibit_strncpy check
* cfg.mk (exclude_file_name_regexp--sc_prohibit_strncpy): Remove
its exemption.
* sed/compile.c (compile_program): Remove two misuses of strncpy;
use memcpy instead.
* sed/execute.c (do_list): Likewise, for one instance.
maint: begin to use "size_t" more, where appropriate
* sed/execute.c (do_list): Update some "int" locals to "size_t",
and combine a few declarations with needlessly separate initializations.
maint: update .gitignore
* .gitignore: Ignore build artifacts.
maint: remove po/sed.pot from version control
* po/sed.pot: Remove file. It is unnecessary and undesirable to
version-control a file like this (mechanically-derived).
build: update build tool version requirements
* bootstrap.conf (buildreq): Blindly update tool-version number
requirements from those required by coreutils.
maint: fix "make distcheck" failure
* Makefile.am (EXTRA_DIST): List THANKS.in, not THANKS.
Add .mailmap, too.
build: build-aux/texi2dvi: remove file
* build-aux/texi2dvi: Remove file. It was out of date and could
no longer parse our .texi files.
* Makefile.am (EXTRA_DIST): Don't list it here.
* cfg.mk: Remove an exemption for that file.
* doc/Makefile.am (TEXI2DVI): Remove definition.
2014-12-16 Jim Meyering <meyering@fb.com>
remove support for the 'L' (fmt/flow-paragraph) command
* sed/Makefile.am (sed_SOURCES): Remove fmt.c.
* sed/execute.c (execute_program):
* sed/fmt.c: Remove file.
* sed/sed.h (fmt): Remove declaration.
* doc/sed.texi: Remove documentation for 'L' command.
* doc/sed-in.texi: Likewise.
* NEWS (Feature removal): Document it.
Prompted by the report from Jodie Cunningham that using this
command with a large number could cause sed to segfault:
https://bugs.launchpad.net/ubuntu/+source/sed/+bug/1400575
2014-12-01 Jim Meyering <meyering@fb.com>
doc: NEWS: mention the gzip->xz release tarball switch
* NEWS (Build-related): Mention that we are now distributing
only .tar.xz archives; no more gzip-compressed tarballs.
build: avoid warning about unused fchown result
* sed/execute.c: Include "ignore-value.h".
(closedown): Explicitly ignore fchown return value.
* bootstrap.conf (gnulib_modules): Add ignore-value.
* lib/.gitignore: Ignore the new .h file.
* .gitignore: Ignore all **~ backup files.
2014-11-30 Jim Meyering <meyering@fb.com>
build: use gnulib's manywarnings module
bootstrap.conf: Add the module name.
configure.ac: Copy boilerplate and exclusions from coreutils.
sed/Makefile.am (AM_CFLAGS): Define in terms of the two new
variables, $(WARN_CFLAGS) and $(WERROR_CFLAGS).
m4/.gitignore: Add the two new .m4 files.
maint: add three casts-in-initialization to avoid warnings
* sed/compile.c (special_files): When initializing, cast string
literals to (char *) to avoid warnings.
maint: avoid a gcc "const discard" warning
* sed/compile.c (compile_program): Make a local "const" to avoid
discarding "const" attribute in assignment.
maint: avoid more gcc warnings: apply _GL_ATTRIBUTE_PURE
* sed/utils.h (get_buffer, size_buffer): Make each functions
sole parameter "const" and declare the function itself with the
"pure" attribute.
* sed/utils.c (get_buffer, size_buffer): Adjust definitions to match.
maint: add _Noreturn attribute to two functions
This avoids two gcc may-be-noreturn warnings:
* sed/sed.h (bad_prog): Add _Noreturn attribute.
* sed/utils.h (panic): Likewise.
maint: manually convert K&R to ANSI style decls; and add "static"
Convert many function definitions from K&R to ANSI style.
When possible, make a function static and remove the immediately-
preceding declaration of that same function.
Also, add the const to a few declarations.
* sed/compile.c: As above.
(special_files): Likewise.
* sed/execute.c: Likewise.
* sed/fmt.c: Likewise.
* sed/mbcs.c: Likewise.
* sed/regexp.c: Likewise.
* sed/sed.c: Likewise.
* sed/sed.h: Likewise.
* sed/utils.c: Likewise.
maint: declare several "int" locals to be of type size_t
* sed/compile.c (compile_program): Using "int" was wrong: not only
too narrow, but would also evoke warnings from gcc when comparing
with variables of unsigned type.
maint: avoid gcc warning about unused macro
* sed/regexp.c (END_ERRORS): Remove definition of unused macro.
maint: avoid false-positive used-uninit. warning from gcc
* sed/sed.h (IF_LINT): Define.
* sed/compile.c (snarf_char_class) [lint]: Use it to initialize DELIM,
so that gcc doesn't report it is used uninitialized.
maint: enable sc_prohibit_empty_lines_at_EOF check
* cfg.mk (exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF):
* cfg.mk (local-checks-to-skip): Remove its exemption.
Adjust many files to end in a single newline, but exempt a few
test suite input and output files.
* testsuite/fasts.sed: Remove three empty lines at EOF.
* BUGS: Remove empty line at EOF.
* sed/mbcs.c: Likewise.
* sed/sed.h: Likewise.
* testsuite/BOOST.tests: Likewise.
* testsuite/dc.inp: Add a newline at EOF; there was none.
* testsuite/flipcase.sed: Likewise.
* testsuite/utf8-1.good: Likewise.
* testsuite/utf8-1.inp: Likewise.
* testsuite/utf8-2.good: Likewise.
* testsuite/utf8-2.inp: Likewise.
* testsuite/utf8-3.good: Likewise.
* testsuite/utf8-3.inp: Likewise.
* testsuite/utf8-4.good: Likewise.
* testsuite/utf8-4.inp: Likewise.
* testsuite/xbxcx.good: Likewise.
* testsuite/xbxcx.inp: Likewise.
* testsuite/xemacs.good: Likewise.
* testsuite/xemacs.inp: Likewise.
maint: enable sc_prohibit_tab_based_indentation syntax check
* cfg.mk (local-checks-to-skip): Remove its exemption.
Exempt all files under testsuite/, for now, and a few others.
* .gitmodules: Change each leading TAB to 8 spaces spaces.
* BUGS: Likewise.
* NEWS: Likewise.
* configure.ac: Likewise.
* sed/compile.c: Likewise.
* sed/execute.c: Likewise.
* sed/fmt.c: Likewise.
* sed/regexp.c: Likewise.
* sed/sed.c: Likewise.
* sed/sed.h: Likewise.
* sed/utils.c: Likewise.
* sed/utils.h: Likewise.
* COPYING: Update from coreutils.
maint: enable sc_m4_quote_check syntax check
* cfg.mk (local-checks-to-skip): Remove its exemption.
* configure.ac: Fix the under-quoting problems thus exposed.
maint: enable sc_cast_of_argument_to_free syntax check
* cfg.mk (local-checks-to-skip): Remove its exemption.
* testsuite/tst-rxspencer.c (mb_test): Remove a cast.
maint: enable sc_cast_of_alloca_return_value syntax check
* cfg.mk (local-checks-to-skip): Remove its exemption.
* sed/regexp.c (match_regex): Do not cast return value of alloca.
maint: enable sc_po_check syntax check
* cfg.mk (local-checks-to-skip): Remove its exemption.
* po/POTFILES.in: Adjust to reflect added/removed file names.
maint: enable sc_prohibit_always_true_header_tests syntax check
* cfg.mk (local-checks-to-skip): Remove its exemption.
Exempt configure.ac.
maint: enable sc_makefile_at_at_check syntax check
* cfg.mk (local-checks-to-skip): Remove its exemption.
* testsuite/Makefile.am (LDADD, TESTS_ENVIRONMENT): Use $(...)
rather than obsolescent @...@ notation.
maint: enable sc_space_tab syntax check
* cfg.mk (local-checks-to-skip): Remove its exemption.
* doc/groupify.sed: Reverse SP-TAB sequences.
* sed/compile.c (compile_program): Remove spaces before TAB.
* sed/execute.c (append_replacement): Likewise.
maint: enable sc_program_name syntax check
* cfg.mk (local-checks-to-skip): Remove its exemption.
* sed/sed.c: Include progname.h".
(program_name): Remove now-unnecessary declaration.
(main): Call set_program_name.
* bootstrap.conf (gnulib_modules): Add progname.
* lib/.gitignore: Append the two new names.
maint: enable more checks
* cfg.mk (local-checks-to-skip): Remove exemptions
for immutable NEWS as well as the two config.h checks.
Also accept "sed.h", since the first thing it does is
to include <config.h>.
* sed/sed.h: Change "config.h" to <config.h>, for consistency
with other GNU tools.
* sed/utils.c: Likewise, here and for each of the following.
* testsuite/bug-regex10.c:
* testsuite/bug-regex11.c:
* testsuite/bug-regex12.c:
* testsuite/bug-regex13.c:
* testsuite/bug-regex14.c:
* testsuite/bug-regex15.c:
* testsuite/bug-regex16.c:
* testsuite/bug-regex21.c:
* testsuite/bug-regex7.c:
* testsuite/bug-regex8.c:
* testsuite/bug-regex9.c:
* testsuite/runptests.c:
* testsuite/runtests.c:
* testsuite/tst-boost.c:
* testsuite/tst-pcre.c:
* testsuite/tst-regex.c:
* testsuite/tst-regex2.c:
* testsuite/tst-rxspencer.c:
maint: enable sc_const_long_option syntax check
* sed/sed.c (main): Add "const" to decl of longopts.
* cfg.mk (local-checks-to-skip): Remove its exemption.
maint: enable double-word prohibition
* cfg.mk (local-checks-to-skip): Remove exemption for
sc_prohibit_doubled_word.
Exempt 4 files under testsuite/.
doc: remove doubled word
* doc/sed-in.texi: Remove doubled "the".
* doc/sed.texi: Likewise.
maint: add .prev-version
* .prev-version: New file.
maint: turn on the test that prohibits use of HAVE_CONFIG_H
* cfg.mk (local-checks-to-skip): Remove the exemption here.
* testsuite/bug-regex10.c: Remove the use of the offending macro.
* testsuite/bug-regex11.c: Likewise.
* testsuite/bug-regex12.c: Likewise.
* testsuite/bug-regex13.c: Likewise.
* testsuite/bug-regex14.c: Likewise.
* testsuite/bug-regex15.c: Likewise.
* testsuite/bug-regex16.c: Likewise.
* testsuite/bug-regex21.c: Likewise.
* testsuite/bug-regex7.c: Likewise.
* testsuite/bug-regex8.c: Likewise.
* testsuite/bug-regex9.c: Likewise.
* testsuite/runptests.c: Likewise.
* testsuite/runtests.c: Likewise.
* testsuite/tst-boost.c: Likewise.
* testsuite/tst-pcre.c: Likewise.
* testsuite/tst-regex.c: Likewise.
* testsuite/tst-regex2.c: Likewise.
* testsuite/tst-rxspencer.c: Likewise.
maint: generate THANKS from THANKS.in
* THANKS.in: Renamed from THANKS, adjusted formatting
and added header. Also remove from this list of names those
that are now generated automatically.
* THANKS: Removed, now that it's generated.
* thanks-gen: New file.
* Makefile.am (EXTRA_DIST): Add thanks-gen
(THANKS): New rule.
* .mailmap: New file.
maint: add cfg.mk, derived from grep's
* cfg.mk (local-checks-to-skip): Exempt many failing tests.
(old_NEWS_hash): Define.
* NEWS: Tweak wording to avoid semblance of doubled word: in in-place.
tests: hook up gnulib-tests
* Makefile.am (SUBDIRS): Add gnulib-tests.
* gnulib-tests/Makefile.am: New file.
* configure.ac (AC_CONFIG_FILES): Add gnulib-tests/Makefile.
* .gitignore: Ignore all but Makefile.am.
maint: .gitignore: ignore more
maint: remove ACLOCAL_AMFLAGS in favor of AC_CONFIG_MACRO_DIRS
* Makefile.am (ACLOCAL_AMFLAGS): Remove this assignment.
* configure.ac: Use this macro instead.
maint: do not version-control generated files.
* doc/sed.1: Remove.
* po/sed.pot: Likewise.
* po/Makevars: Likewise.
* .gitignore: Add their names.
maint: begin to modernize configure.ac
* configure.ac: Turn on silent rules, by default.
Use git-derived versions all the time. Required a new, signed
v4.2.2 tag, which I've pushed.
Distribute .tar.xz tarballs, not .bzip2 or .gz.
* Makefile.am (AUTOMAKE_OPTIONS): Remove.
* bootstrap.conf (gnulib_modules): Add git-version-gen.
maint: convert obsolescent @VAR@ notation to $(VAR)
* sed/Makefile.am (sed_LDADD): Use $(VAR), no @VAR@.
maint: update copyright dates; use gnulib's update-copyright module
* bootstrap.conf (gnulib_modules): Add update-copyright.
Then, run "make update-copyright".
* Makefile.am: Add copyright header.
maint: remove all trailing white space
First, run this command:
git grep -l ' $'|xargs perl -pi -e 's/[ \t]+$//'
Then some minor fix-up to make the two newly-failing tests
pass once again:
* testsuite/mac-mf.sed: Append this, s/ $//,
to eliminate trailing spaces in the actual output.
* testsuite/y-newline.good: Manually remove a trailing
space between two concatenated prompts.
maint: update autogenerated .gitignore files
maint: update build/gnulib infrastructure; generate ChangeLog
* ChangeLog-2014: Renamed from ChangeLog.
* po/ChangeLog-2014: Renamed from po/ChangeLog.
* Makefile.am (EXTRA_DIST): Add the two new file names.
(dist-hook): Generate ChangeLog at tarball-creation time.
(gen-ChangeLog): New rule. Just like the one in coreutils and grep.
* bootstrap.conf (gnulib_modules): Add the modules, readme-release
and gitlog-to-changelog, and revamp to be much more like grep and
coreutils.
* lib/Makefile.am: Update.
maint: update bootstrap from gnulib
2014-09-06 Jim Meyering <meyering@fb.com>
fixup: add the properly-named new test files
* testsuite/Makefile.am (EXTRA_DIST): Add y-zero.*,
not y-NUL.* here.