head 1.2; access; symbols pkgsrc-2026Q1:1.1.0.4 pkgsrc-2026Q1-base:1.1 pkgsrc-2025Q4:1.1.0.2 pkgsrc-2025Q4-base:1.1; locks; strict; comment @ * @; 1.2 date 2026.05.13.06.02.27; author wiz; state dead; branches; next 1.1; commitid 0kdrbB3WpVFQhCFG; 1.1 date 2025.10.05.11.59.43; author js; state Exp; branches; next ; commitid mOfATZ0vyK2rlndG; desc @@ 1.2 log @gsed: update to 4.10. * Noteworthy changes in release 4.10 (2026-04-21) [stable] ** Bug fixes sed 's/a/b/g' (and other global substitutions) now works on input lines longer than 2GB. Previously, matches beyond the 2^31 byte offset would evoke a "panic" (exit 4). [bug present since the beginning] 'sed --follow-symlinks -i' no longer has a TOCTOU race that could let an attacker swap a symlink between resolution and open, causing sed to read attacker-chosen content and write it to the original target. [bug introduced in sed 4.1e] sed no longer falsely matches when back-references are combined with optional groups (.?) and the $ anchor. For example, this no longer falsely matches the empty string at beginning of line: $ echo ab | sed -E 's/^(.?)(.?).?\2\1$/X/' Xab [bug present since "the beginning"] In --posix mode, sed no longer mishandles backslash escapes (\n, \t, \a, etc.) after a named character class like [[:alpha:]]. For example, 's/^A\n[[:alpha:]]\n*/XXX/' would fail to match the trailing newline, treating \n as a literal backslash and an 'n' rather than a newline. This happened when an earlier backslash escape in the same regex had already been converted, shifting the in-place normalization buffer. [bug introduced in sed 4.9] sed --debug no longer crashes when a label (":") command is compiled before the --debug option is processed, e.g., sed -f<(...) --debug. [bug introduced in sed 4.7 with --debug] sed no longer rejects the documented GNU extension 'a**' (equivalent to 'a*') in Basic Regular Expression (BRE) mode. Previously, this worked only with -E (ERE mode), even though grep has always accepted it in BRE mode. [bug present since "the beginning"] sed no longer rejects "\c[" in regular expressions [bug present since the beginning] 'sed --follow-symlinks -i' no longer mishandles an operand that is a short symbolic link to a long symbolic link to a file. [bug introduced in sed 4.9] 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'. ** Changes in behavior In the default C locale, diagnostics now quote 'like this' (with apostrophes) instead of `like this' (with a grave accent and an apostrophe). This tracks the GNU coding standards. 'sed --posix' now warns about uses of backslashes in the 's' command that are handled by GNU sed but are not portable to other implementations. ** Build-related builds no longer fail on platforms without the header or getopt_long function. [bug introduced in sed 4.9] @ text @$NetBSD: patch-sed_compile.c,v 1.1 2025/10/05 11:59:43 js Exp $ Fix "error: #pragma GCC diagnostic not allowed inside functions" --- sed/compile.c.orig 2022-10-23 17:52:23.000000000 +0000 +++ sed/compile.c @@@@ -198,17 +198,17 @@@@ static struct output *file_read = NULL; static struct output *file_write = NULL; /* Complain about an unknown command and exit. */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wformat-nonliteral" static void bad_command (char ch) { const char *msg = _(UNKNOWN_CMD); char *unknown_cmd = xmalloc (strlen (msg)); -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wformat-nonliteral" sprintf (unknown_cmd, msg, ch); -#pragma GCC diagnostic pop bad_prog (unknown_cmd); } +#pragma GCC diagnostic pop /* Complain about a programming error and exit. */ void @ 1.1 log @textproc/gsed: Fix building on QNX @ text @d1 1 a1 1 $NetBSD$ @