From nobody Sat Feb 28 18:15:49 2026 X-Original-To: dev-commits-src-main@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 4fNYKK6sxLz6TrFJ for ; Sat, 28 Feb 2026 18:15:49 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fNYKK62Bqz40hH for ; Sat, 28 Feb 2026 18:15:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772302549; 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=S+1Z36BYOEwpcVBJn05AqdyUwndbEK9haGyXuVfWlNA=; b=LdMryNVHuRyvDfJaNmQN82Wzf/QWSDKhzzszdaxqJBjnEIGXrvSzCfMMbgq1Q9vGJ1wCB5 DCese4rjUdj/UB919Ug3uPVKpTOKYykmJ5n6caw2tPI4WyCjDsKB+xbwXS/Dvzkh7pZ7AW LJ4LN+4hPzmTOT/t6R0mg+p2Wtmi8XF0RPGCeloaxeYEigWoB91EvGF+9M2noJbZKRVJ7Q ic2pDnvWgLiBFcmPVKZjl5VGyCdzzPS+MssqFTi7RpZh/J7PDOlPcbG7oNtQq1t8TsjcKc E+xbaGXKYLz3Kk+rT7FHeIX8qp96NXzEXv3zRDv0tyT4l+wSRarLJFgh/yg/Dg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772302549; a=rsa-sha256; cv=none; b=g8P5HCqgN5xJzm+RElAFvULr86/7IByBjfAgh1ZSk9097S0aZMUrGfsUxUdhw+RCwegwrE E43ox5q3UEhXguA7wl1p70KNWTbGM4R83JX/NVcDCpGS7Kn5mYO7ETJWOsu8GY/SOhG7lb uvvQqQcepQJGOfRFmNUUUZQ5ppoKrb+8Dm355VUK2TayC038WXD1shLmt69PRmlRlUOGaS wGy9qIHOty0euW1v14FI1NygSnOQZKERAA3z9MyExow+jmlanQzS+NyIPIBD8QO3bOGZeJ eBatUFDnMtI+ElrJmbHAyN88ZHnZXlcr8Zm2CQqgaPKwtE/hxR6WNGAIO/bnwg== 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=1772302549; 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=S+1Z36BYOEwpcVBJn05AqdyUwndbEK9haGyXuVfWlNA=; b=Yca6BRcCnMN8KwiXoebpbK9Uz280JNEtpz/pZVmJLqnD1Qv2j8qfpToAGkGtIKosyoVmnl 8D3olYwD1vra2dgVKjs7pUWeDoxv0JOE2Z3ZUNslkSuskfEllvhy2lYZw+HJSxbOG0bDLd 43m1gIv9/Ar7STy6rGoz6gglGKR2p4NAree3cpKnZSM9jMAPJYwrN2PbNZoOr8p04YhpwM MLImj53T57dFSy4RPSApcvsKBTH8kRhkVnVZz+gcCYBxlAZ5hUqycPXncjOAPrlXXyHYJN D5R9d/wnHmL4Jsaes+6rbvInp61iCDxYTHaXwFXRiYuzy2ozVfZBogEZkWEzqw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fNYKK5Bz7zNS for ; Sat, 28 Feb 2026 18:15:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44fd2 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 28 Feb 2026 18:15:49 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: c2dee7786bf3 - main - diff3: Code cleanup List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: c2dee7786bf32cb66cedec226e42e79e06457c51 Auto-Submitted: auto-generated Date: Sat, 28 Feb 2026 18:15:49 +0000 Message-Id: <69a330d5.44fd2.56809847@gitrepo.freebsd.org> The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=c2dee7786bf32cb66cedec226e42e79e06457c51 commit c2dee7786bf32cb66cedec226e42e79e06457c51 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-28 18:15:23 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-28 18:15:23 +0000 diff3: Code cleanup * Order includes. * Turn the diff type into an enum. * Turn an unreachable error message into an assertion. * Remove unused debugging code. * Remove some dead assignments. * Consistently use 1 instead of EXIT_FAILURE. * Turn a return from main() into an exit(). MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: bapt Differential Revision: https://reviews.freebsd.org/D55517 --- usr.bin/diff3/diff3.c | 48 +++++++++++++++++++----------------------------- 1 file changed, 19 insertions(+), 29 deletions(-) diff --git a/usr.bin/diff3/diff3.c b/usr.bin/diff3/diff3.c index 9a01951e60ab..c33e3275d006 100644 --- a/usr.bin/diff3/diff3.c +++ b/usr.bin/diff3/diff3.c @@ -62,19 +62,20 @@ * SUCH DAMAGE. */ +#include #include #include -#include #include +#include #include #include #include #include +#include +#include #include #include -#include -#include #include #include @@ -87,14 +88,15 @@ struct range { int to; }; +enum difftype { + DIFF_NONE, + DIFF_TYPE1, + DIFF_TYPE2, + DIFF_TYPE3, +}; + struct diff { -#define DIFF_TYPE1 1 -#define DIFF_TYPE2 2 -#define DIFF_TYPE3 3 - int type; -#if DEBUG - char *line; -#endif /* DEBUG */ + enum difftype type; /* Ranges as lines */ struct range old; @@ -137,7 +139,7 @@ static const char *newmark = ">>>>>>>"; static const char *divider = "======="; static bool duplicate(struct range *, struct range *); -static int edit(struct diff *, bool, int, int); +static int edit(struct diff *, bool, int, enum difftype); static char *getchange(FILE *); static char *get_line(FILE *, size_t *); static int readin(int fd, struct diff **); @@ -256,9 +258,6 @@ readin(int fd, struct diff **dd) for (i = 0; (p = getchange(f)) != NULL; i++) { if ((size_t)i >= szchanges - 1) increase(); -#if DEBUG - (*dd)[i].line = strdup(p); -#endif /* DEBUG */ a = b = strtoi(p, &p); if (*p == ',') @@ -565,7 +564,7 @@ skip(int i, int from, const char *pr) for (n = 0; cline[i] < from - 1; n += j) { if ((line = get_line(fp[i], &j)) == NULL) - errx(EXIT_FAILURE, "logic error"); + errx(1, "logic error"); if (pr != NULL) printf("%s%s", Tflag == 1 ? "\t" : pr, line); cline[i]++; @@ -596,7 +595,7 @@ duplicate(struct range *r1, struct range *r2) if (c == -1 && d == -1) break; if (c == -1 || d == -1) - errx(EXIT_FAILURE, "logic error"); + errx(1, "logic error"); nchar++; if (c != d) { repos(nchar); @@ -621,7 +620,7 @@ repos(int nchar) * collect an editing script for later regurgitation */ static int -edit(struct diff *diff, bool dup, int j, int difftype) +edit(struct diff *diff, bool dup, int j, enum difftype difftype) { if (!(eflag == EFLAG_UNMERGED || (!dup && eflag == EFLAG_OVERLAP ) || @@ -634,10 +633,6 @@ edit(struct diff *diff, bool dup, int j, int difftype) overlapcnt++; de[j].type = difftype; -#if DEBUG - de[j].line = strdup(diff->line); -#endif /* DEBUG */ - de[j].old.from = diff->old.from; de[j].old.to = diff->old.to; de[j].new.from = diff->new.from; @@ -657,7 +652,7 @@ printrange(FILE *p, struct range *r) return; if (r->from > r->to) - errx(EXIT_FAILURE, "invalid print range"); + errx(1, "invalid print range"); /* * XXX-THJ: We read through all of the file for each range printed. @@ -872,8 +867,7 @@ mergescript(int i, int f1f3delta) } break; default: - printf("Error: Unhandled diff type - exiting\n"); - exit(EXIT_FAILURE); + __assert_unreachable(); } if (de[n].type == DIFF_TYPE2) @@ -886,11 +880,7 @@ mergescript(int i, int f1f3delta) * Print from the final range to the end of 'myfile'. Any deletions or * additions to this file should have been handled by now. */ - new = &de[n-1].new; - old = &de[n-1].old; - r.from -= f1f3delta; - r.to = INT_MAX; printrange(fp[2], &r); exit(overlapcnt > 0); @@ -1109,5 +1099,5 @@ main(int argc, char **argv) merge(m, n); - return (EXIT_SUCCESS); + exit(0); }