From nobody Sun Feb 15 08:58:43 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fDKZX3BDJz6SGhM for ; Sun, 15 Feb 2026 08:58:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fDKZW2b6cz46r7 for ; Sun, 15 Feb 2026 08:58:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771145923; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y13XQqhtV1zg/4ehKjUvLkmeJIJcDszfWO6tPC6QL/U=; b=dvS4DyiG0x5tb3FecBkdky7SHsVfsvMbyYY7QzG4Qadq65R4lgZBpZiGU2l8TDzIw5VDfb AyrbZyzT+ThcoS4Z4TbhFekx4/+8CvifFFp5DpXTEUz+34g/muw+GlYVLZXnVxE6mTMebn xiAwJNo6yyUYO/OrvhPhhAneXx5hHoDCgDQwkBUkZzoRex2dCNW1cJGIkBt4aJkkwTnQC9 EELWQCVlXFmNjt/3UmrZo+9vsRDlwx0Fdlr8f2iBc1Qj4ZMb/5RfY532/2y40cl9umph2m 9lGtVeSplKAvHV3UzSKaelBkJR3Sb28AtchYD1dk7oSikq3F79g7v2554X8qZg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771145923; a=rsa-sha256; cv=none; b=UNhzaJcDM9mdM19QNrRg7JyMKshtLA4Pp7w8vBcEe3EprMe4F3KWje14CFdGG+/I7rifuo mGhRbzJlc4C1yWgaYgQfAet2hV6GD1PvqDoJvCScA4J4H5bueh5GFNmJkd+1Y1+na89EK9 b/DS0zLc6Qaeze1nQlDubKoP4My9vbPNTaDTNw62LcLOSGvGJoi+b9S+xJUzEDikbmkMcS Z9zs9xEr110PyP+vTZnP5Xe/7X+jdrriuTwexdTS5KMo8LK++IJjRwdGKdL7MOFtRNNn3n cPAXEtZ2FGeI9febnajJPJz/+JnzJqjmElzHsCRKYOI5QX6QVu9uFiEqUJrO8A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771145923; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y13XQqhtV1zg/4ehKjUvLkmeJIJcDszfWO6tPC6QL/U=; b=CxxUMdN/OdH02gzyNf5/hHst7MqvBUERJ3xbUNUDo9Cl8eogl/fkbAzV+uSMUsRZRCTWL3 RoSVCHOEZ+C60zFirOH7i1u6y95G/TAldVqkfEE1Zl9KfW41jBQ9La+8VNEe1A4+AWCCZF gVJMb9b3w8DhTAZZbPLZ3pLCGwHrAg2/JzFmS0SzSHkEClb5p1WxCc8eACzO6T0BZv7NhE 2/fbHx2WRCG6pbyp91ZEN3gKr8DteJjk47+3LqKNEG0nQYgjsJTel9zbtI1L/XdBYfB+2Z ClCiZPQW9iA/X0FVHujc0EaK66vvq86VWZmxHkydLtvo8yLHvlTlfo4tXyO/wA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fDKZW1sTwzmKx for ; Sun, 15 Feb 2026 08:58:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1c2d3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 15 Feb 2026 08:58:43 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: e661c4c4a3a3 - stable/14 - m4: Change defn processing order List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e661c4c4a3a3aef6645dee66e3c34859766b39be Auto-Submitted: auto-generated Date: Sun, 15 Feb 2026 08:58:43 +0000 Message-Id: <69918ac3.1c2d3.77fd245d@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=e661c4c4a3a3aef6645dee66e3c34859766b39be commit e661c4c4a3a3aef6645dee66e3c34859766b39be Author: Dag-Erling Smørgrav AuthorDate: 2026-02-07 18:16:21 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-15 08:58:34 +0000 m4: Change defn processing order Currently, defn pushes its arguments on the stack in order, which means they are then processed in reverse order. POSIX does not specify what order they are processed in, which arguably suggests that they should be processed in the order they are listed. Push them in reverse order so they will be processed in their original order. This matches GNU m4. PR: 292937 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: obiwac, imp Differential Revision: https://reviews.freebsd.org/D55116 (cherry picked from commit 25a8168f86a1222388475ce858da405e4d06c1c3) --- usr.bin/m4/eval.c | 2 +- usr.bin/m4/tests/Makefile | 2 ++ usr.bin/m4/tests/defn.m4 | 5 +++++ usr.bin/m4/tests/m4_test.sh | 9 +++++++++ usr.bin/m4/tests/regress.defn.out | 1 + 5 files changed, 18 insertions(+), 1 deletion(-) diff --git a/usr.bin/m4/eval.c b/usr.bin/m4/eval.c index 3170d52bfe2a..4e45a71874e1 100644 --- a/usr.bin/m4/eval.c +++ b/usr.bin/m4/eval.c @@ -490,7 +490,7 @@ expand_builtin(const char *argv[], int argc, int td) case DEFNTYPE: if (argc > 2) - for (n = 2; n < argc; n++) + for (n = argc - 1; n >= 2; n--) dodefn(argv[n]); break; diff --git a/usr.bin/m4/tests/Makefile b/usr.bin/m4/tests/Makefile index c5c0fdba7985..0ac13ddc8ebf 100644 --- a/usr.bin/m4/tests/Makefile +++ b/usr.bin/m4/tests/Makefile @@ -6,6 +6,7 @@ ATF_TESTS_SH= m4_test ${PACKAGE}FILES+= args.m4 ${PACKAGE}FILES+= args2.m4 ${PACKAGE}FILES+= comments.m4 +${PACKAGE}FILES+= defn.m4 ${PACKAGE}FILES+= esyscmd.m4 ${PACKAGE}FILES+= eval.m4 ${PACKAGE}FILES+= ff_after_dnl.m4.uu @@ -28,6 +29,7 @@ ${PACKAGE}FILES+= translit2.m4 ${PACKAGE}FILES+= regress.args.out ${PACKAGE}FILES+= regress.args2.out ${PACKAGE}FILES+= regress.comments.out +${PACKAGE}FILES+= regress.defn.out ${PACKAGE}FILES+= regress.esyscmd.out ${PACKAGE}FILES+= regress.eval.out ${PACKAGE}FILES+= regress.ff_after_dnl.out diff --git a/usr.bin/m4/tests/defn.m4 b/usr.bin/m4/tests/defn.m4 new file mode 100644 index 000000000000..6599f95a5f20 --- /dev/null +++ b/usr.bin/m4/tests/defn.m4 @@ -0,0 +1,5 @@ +dnl Check that our defn processes its arguments in order. +define(a,1)dnl +define(b,2)dnl +define(c,3)dnl +defn(`a',`b',`c') diff --git a/usr.bin/m4/tests/m4_test.sh b/usr.bin/m4/tests/m4_test.sh index 671f25ff4673..aa9be767d1c9 100644 --- a/usr.bin/m4/tests/m4_test.sh +++ b/usr.bin/m4/tests/m4_test.sh @@ -70,6 +70,14 @@ comments_body() m4_test comments } +defn_head() +{ +} +defn_body() +{ + m4_test defn +} + esyscmd_head() { } @@ -219,6 +227,7 @@ atf_init_test_cases() atf_add_test_case args atf_add_test_case args2 atf_add_test_case comments + atf_add_test_case defn atf_add_test_case esyscmd atf_add_test_case eval atf_add_test_case ff_after_dnl diff --git a/usr.bin/m4/tests/regress.defn.out b/usr.bin/m4/tests/regress.defn.out new file mode 100644 index 000000000000..190a18037c64 --- /dev/null +++ b/usr.bin/m4/tests/regress.defn.out @@ -0,0 +1 @@ +123