1
0
mirror of git://git.sv.gnu.org/sed synced 2025-04-18 02:37:37 +03:00

733 Commits

Author SHA1 Message Date
Jim Meyering
b4d01a9c91 maint: ensure that new "make syntax-check"-run sc_codespell passes
* cfg.mk (codespell_ignore_words_list): Ignore false-positives.
(exclude_file_name_regexp--sc_codespell): Skip some file names.
* sed/debug.c: Fix typo(s).
* sed/mbcs.c: Likewise.
* sed/sed.c: Likewise.
* testsuite/badenc.sh: Likewise.
* testsuite/compile-errors.sh: Likewise.
* testsuite/distrib.inp: Likewise.
* testsuite/distrib.sh: Likewise.
* testsuite/execute-tests.sh: Likewise.
* testsuite/mb-bad-delim.sh: Likewise.
* testsuite/mb-charclass-non-utf8.sh: Likewise.
* testsuite/regex-max-int.sh: Likewise.
* testsuite/subst-options.sh: Likewise.
* testsuite/test-mbrtowc.c: Likewise.
* testsuite/utf8-ru.sh: Likewise.
2025-03-29 11:11:20 -07:00
Arkadiusz Drabczyk
5e9ee78fac doc: correct sentence capitalization errors
* doc/sed.texi: As above.
2025-03-09 09:18:52 -07:00
Jim Meyering
026c55f63c avoid new "make syntax-check" failures
* po/POTFILES.in: Add lib/getopt.c.
* lib/.gitignore: Add getopt-related names for recent change, and sort.
2025-03-09 09:18:44 -07:00
Collin Funk
587cfe1716 build: fix compile errors on platforms without getopt.h
* bootstrap.conf (gnulib_modules): Add getopt-gnu.
* lib/.gitignore: Update from gnulib-tool --import.
* m4/.gitignore: Likewise.
* NEWS: Mention the fix.
2025-03-03 09:06:51 -08:00
Jim Meyering
0f74c04668 doc: correct a small falsehood
* doc/sed.texi (Zero Address): Also mention the FIRST~STEP
notation as a third case in which a zero address is valid.
Reported by Arkadiusz Drabczyk in
https://lists.gnu.org/r/sed-devel/2025-02/msg00008.html
2025-02-15 21:47:20 -08:00
Jim Meyering
bc120003dc build: update gnulib to latest; and update bootstrap 2025-02-15 21:03:58 -08:00
Jim Meyering
7d48e8345e sed: support gnulib-l10n
* sed/sed.c (main): Call bindtextdomain for gnulib-l10n.
2025-02-08 20:13:25 -08:00
Jim Meyering
c27d1ec3de maint: continue writing base64-encoded checksums to announcement
* cfg.mk (announce_gen_args): Set to --cksum-checksums.
2025-02-08 20:09:45 -08:00
Arkadiusz Drabczyk
253c89d9d6 doc: list all commands that have to be terminated by a newline
* doc/sed.texi (multiple sed commands): Mention that e, r, R, w and W
are like the a, c and i commands, in that one cannot terminate such
commands with a semicolon.
2025-02-04 20:10:51 -08:00
Jim Meyering
48bd45146f build: update gnulib to latest; and update bootstrap 2025-02-01 17:19:21 -08:00
Jim Meyering
bb35ae5c09 maint: reflect gnulib module renamings
* bootstrap.conf: Gnulib's stdckdint and stdbool modules are
deprecated, in favor of stdckdint-h and bool.
Induce this change with the following:
  perl -pi -e 's{^stdckdint$}{$1-h};s{^stdbool$}{bool}' bootstrap.conf
And sort the resulting list of module names.
2025-02-01 17:19:06 -08:00
Jim Meyering
d3456f4482 maint: update all copyright dates via "make update-copyright" 2025-01-03 09:56:57 -08:00
Jim Meyering
90a04e55e7 build: update gnulib to latest, and update bootstrap 2025-01-03 09:56:24 -08:00
Jim Meyering
1b8470a7ea build: update gnulib to latest; update bootstrap 2024-11-17 17:42:42 -08:00
Jim Meyering
9724c47367 maint: reflect gnulib's renaming: copy_acl -> xcopy_acl
* sed/execute.c (closedown): Use xcopy_acl, not the old name, copy_acl.
2024-11-17 17:21:32 -08:00
Collin Funk
0c1fe22cca maint: import tests/init.sh from Gnulib during bootstrap
* bootstrap.conf (bootstrap_post_import_hook): Use gnulib-tool
--copy-file to import tests/init.sh.
* testsuite/init.sh: Remove file.
* .gitignore (/testsuite/init.sh): Add entry.
2024-07-04 14:30:46 -07:00
Jim Meyering
e37e61cb55 build: update gnulib to latest and update bootstrap and .gitignore files 2024-07-04 14:30:46 -07:00
Jim Meyering
202d177800 build: update gnulib to latest; also update init.sh 2024-02-24 19:54:31 -08:00
Jim Meyering
bfc489486c maint: avoid syntax-check failure: use <>, not "" for system headers
* sed/sed.c: Spell as <selinux/selinux.h> and hoist it to be with
other system header includes.
2024-02-24 19:54:30 -08:00
Jim Meyering
ad97abb865 maint: avoid syntax-check failure: use <>, not "" for system headers
* sed/sed.c: Spell as <getopt.h> and hoist it to be with other system
header includes. Also, use "", not <> for "selinux/selinux.h".
* testsuite/test-mbrtowc.c: Same, for <error.h>.
2024-02-23 08:50:18 -08:00
Jim Meyering
781bfba0bb build: update gnulib to latest; also update bootstrap and init.sh 2024-01-05 09:15:38 -08:00
Jim Meyering
15b14e4b4e maint: avoid new syntax-check failure
* README: Reference the COPYING file.
2024-01-05 08:44:01 -08:00
Jim Meyering
2037812a6d maint: update copyright dates 2024-01-05 08:44:01 -08:00
Bruno Haible
5420e97c91 build: Ensure that makeinfo ≥ 6.8 checks the @menu structure.
See <https://lists.gnu.org/archive/html/bug-texinfo/2023-06/msg00015.html>.

* doc/local.mk (MAKEINFO): New variable.
* cfg.mk (_makefile_at_at_check_exceptions): New variable.
2023-06-24 18:38:02 -07:00
Jim Meyering
923ddd024f maint: old-NEWS modified: avoid syntax-check failure
* cfg.mk (old_NEWS_hash): Update to reflect the January quoting
change that modified old NEWS items.
2023-06-12 08:35:26 -07:00
Jim Meyering
cdf182c16e maint: THANKS duplicates: avoid new syntax-check failure
* THANKS.in: Remove Bruno Haible's name. Now that he's authored
a commit, we must not list his name in this template.
2023-06-12 08:30:24 -07:00
Jim Meyering
f4ac1e7931 maint: long_lines vs bootstrap: avoid syntax-check failure
* cfg.mk (exclude_file_name_regexp--sc_long_lines):
Exempt generated bootstrap from line-length check.
2023-06-12 08:30:04 -07:00
Jim Meyering
26cf2ade2e sed: also print target file name upon rename failure
* sed/utils.c (ck_rename): When diagnosting rename failure,
also mention the target file name.
* testsuite/in-place-suffix-backup.sh: Adjust test expectations
to match.
Reported by Sebastian Carlos in https://bugs.gnu.org/63833
2023-06-10 18:15:34 -07:00
Jim Meyering
e6d60177ac build: update gnulib to latest 2023-06-10 16:20:49 -07:00
Jim Meyering
a9e25136f9 build: modernize bootstrap prerequsite tools
Following Pádraig Brady's example from coreutils, ...
* bootstrap.conf: Add an explicit requirement on m4.
Add an explicit requirement on texi2pdf -- often packaged separately
rather than with makeinfo -- its absence would otherwise induce a
failure late in the build process.
Replace the rsync dependency with wget,
which gnulib changed to in 2018.
Also, add an xz requirement and a version for autopoint.
2023-05-28 09:21:26 -07:00
Jim Meyering
8edd37f3c5 maint: prefer https: to git:
The idea is to defend against some adversary-in-the-middle attacks.
Also prefer git.savannah.gnu.org over its shorter alias, git.sv.gnu.org
to avoid a warning e.g., from git clone.
Also, drop any final ".git" suffix on the resulting URIs.
Inspired by Paul Eggert's nearly identical changes to coreutils.
2023-02-04 21:43:48 -08:00
Paul Eggert
fd9898dc4b maint: omit unnecessary Gnulib modules
* basicdefs.h: Do not include alloca.h.
* bootstrap.conf (gnulib_modules): Remove alloca, stdalign,
c-ctype, closeout, mbrlen, verify.
Add version-etc.
* lib/.gitignore, m4/.gitignore: Omit now-unused files.
* po/POTFILES.in: Remove closeout.c.
* testsuite/test-mbrtowc.c: Do not include closeout.h.
(main): Close stdout by hand, to avoid a dependency on closeout.
2023-01-30 09:58:54 -08:00
Paul Eggert
1b995bcf1b maint: update Gnulib library list
* sed/local.mk (sed_sed_LDADD): Update for current Gnulib
by using $(CLOCK_LIB__GETTIME), $(GETRANDOM_LIB),
$(HARD_LOCALE_LIB), $(MBRTOWC_LIB), $(SETLOCALE_NULL_LIB)
instead of $(LIB_CLOCK_GETTIME), $(LIB_GETRANDOM),
$(LIB_HARD_LOCALE, $(LIB_MBRTOWC), $(LIB_SETLOCALE_NULL).
2023-01-30 09:58:54 -08:00
Paul Eggert
8a13de6943 maint: update .gitignore files 2023-01-30 09:58:54 -08:00
Paul Eggert
ccef237b83 maint: sync bootstrap
* bootstrap: Sync from gnulib.
2023-01-30 09:58:54 -08:00
Paul Eggert
4b580108ee maint: sync README-hacking
* README-hacking: Sync from coreutils.
2023-01-30 09:58:54 -08:00
Paul Eggert
5c359da036 sed: fix int width in decl
* sed/sed.h (lcmd_out_line_len): Declare intmax_t, not idx_t.
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/sed-devel/2023-01/msg00001.html
2023-01-30 09:58:54 -08:00
Paul Eggert
8c802c5078 maint: quote 'like this' not `like this' 2023-01-30 09:58:54 -08:00
Jim Meyering
fa9e4e4fc0 tests: reflect recent diagnostic change
v4.9-14-g3d75b4a changed the diagnostic, but did not update
the occurrences of the diagnostic in expected test outputs.
* testsuite/compile-errors.sh: Accommodate changed diagnostic.
* testsuite/mb-y-translate.sh: Likewise.
* testsuite/normalize-text.sh: Likewise.
Reported by Bruno Haible in https://bugs.gnu.org/61159
2023-01-29 17:36:34 -08:00
Bruno Haible
c2683c7ba2 build: accommodate ACL change in updated gnulib
* sed/local.mk (sed_sed_LDADD): Add $(QCOPY_ACL_LIB).
Reported in https://lists.gnu.org/r/sed-devel/2023-01/msg00001.html
2023-01-29 17:36:34 -08:00
Jim Meyering
4d231bb07d build: update gnulib to latest
* lib/.gitignore, m4/.gitignore: Also reflect regenerated .gitignore files.
2023-01-29 17:18:21 -08:00
Jim Meyering
3d75b4a278 maint: reword to avoid a too-long-line warning
* sed/compile.c (compile_program): Improve diagnostic wording
that also happens to shorten the line so it's length is < 80.
2023-01-01 17:38:09 -08:00
Jim Meyering
f6df64598f maint: expand a few TABs to placate make syntax-check
* sed/execute.c (alloc): Indent with spaces, not TABs.
2023-01-01 17:30:41 -08:00
Jim Meyering
805a40757e build: update gnulib to latest 2023-01-01 17:20:41 -08:00
Jim Meyering
d81710cc8d maint: update copyright dates 2023-01-01 17:19:34 -08:00
Paul Eggert
602c0cb92c maint: add test cases for integer overflow
* testsuite/execute-tests.sh: Add some tests with
enormous integers.
2022-12-19 13:47:19 -08:00
Paul Eggert
a9b1b679b6 sed: improve integer overflow checking
Fix some some longstanding but unlikely integer overflows.
Internally, 'sed' now more often prefers signed integer arithmetic,
which can be checked automatically via 'gcc -fsanitize=undefined'.
* basicdefs.h (countT): Remove.  All uses replaced
with a more-specific signed type, e.g., idx_t.
Similarly, change uses of types like size_t to
signed types like idx_t when appropriate.
(REALLOC): Remove; no longer used.  We now use xpalloc
because that detects integer overflow in size calculations.
Also, we no longer use XCALLOC since the code never relies
on the storage being zero, and leaving it uninitialized is
more likely to catch errors when debugging implementations
are used.  We use XNMALLOC instead, or xpalloc.
* bootstrap.conf (gnulib_modules): Add stdckdint, strtoimax.
* lib/.gitignore, m4/.gitignore: Update for new Gnulib modules.
* sed/compile.c: Include stdckdint.h.
(VECTOR_ALLOC_INCREMENT): Remove; no longer used.
(in_integer): Return maximal value if integer overflow.
All callers changed to expect this.
(next_cmd_entry): Use xpalloc instead of reallocating by hand,
which might suffer integer overflow.
(normalize_text): Don’t rely on system-defined conversion
of out-of-range size_t to int.
(next_cmd_entry): Arg is now pointer, not pointer-to-pointer.
All uses changed.
* sed/debug.c (debug_print_function): Don’t attempt to
fwrite a null pointer with a zero size.
* sed/execute.c: Include <stdckdint.h>, "minmax.h".
(resize_line): LEN arg is now increment, not total length,
to avoid overflow when calculating total length.
All uses changed.  Do not assume lb->alloc * 2 cannot overflow.
(resize_line, line_copy): Use xpalloc instead of doing realloc by
hand, which might suffer integer overflow.
(str_append_modified): Do not add n to to->length until
after it's known this cannot overflow.
(read_file_line): Don’t assume ssize_t fits in long.
(get_backup_file_name): Don’t assume string length fits in int.
Do not assume PTR-1+1 works; behavior is undefined if PTR
is at buffer start.  Check for integer overflow in buffer
size calculation.
(read_pattern_space): Check for line number overflow.
(match_address_p): Check for address overflow.
(debug_print_line): Omit unnecessary test for in->active being null.
(execute_program): Check for Q overflow.
* sed/regexp.c: Include <stdckdint.h>.
(match_regex): Don’t assume TYPE_MAXIMUM (regoff_t) == INT_MAX.
* sed/sed.c: Include inttypes.h, for strtoimax.
(main): Use strtoimax, not atoi.
* sed/utils.c (init_buffer): Use xmalloc and xpalloc
instead of guessing sizes ourselves, and unnecessarily
initializing.
(resize_buffer): Remove; all callers changed to use xpalloc.
(free_buffer): Don’t call free (NULL), since we already
test whether the pointer is null.
2022-12-19 12:35:32 -08:00
Paul Eggert
fc0655d782 sed: simplify by aborting rather than asserting
* sed/debug.c: Do not include assert.h.
(debug_print_function): Use plain abort () rather than assert (0).
This is simpler and just as useful.
2022-12-19 12:33:57 -08:00
Paul Eggert
3ac95905f4 sed: fix unlikely mkostemp-related overflow
* bootstrap.conf (gnulib_modules): Add mempcpy.
* sed/utils.c (ck_mkstemp): Use mempcpy instead of sprintf,
which doesn’t work with strings longer than INT_MAX.
2022-12-19 12:33:57 -08:00
Paul Eggert
03488eeea9 sed: do octal escapes ourselves
* sed/execute.c (do_list): Simplify by doing octal escapes
by hand (!) instead of having sprintf do it.  This makes it
easier for compilers and humans see that buffer overflow
is impossible.  And it’s quite a bit faster if the input
consists mostly of odd control bytes.
2022-12-19 12:33:57 -08:00