Module Name: src Committed By: rillig Date: Mon Jun 21 18:25:20 UTC 2021
Modified Files: src/usr.bin/make: var.c Log Message: make: use more practical data type in RegexReplace While size_t is most appropriate for array indexes, make needs to be compatible with C90, which does not support the %zu printf conversion. To avoid type casts, use a simple unsigned int here, which is more than enough for storing a single decimal digit. No functional change. To generate a diff of this commit: cvs rdiff -u -r1.937 -r1.938 src/usr.bin/make/var.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.bin/make/var.c diff -u src/usr.bin/make/var.c:1.937 src/usr.bin/make/var.c:1.938 --- src/usr.bin/make/var.c:1.937 Mon Jun 21 18:12:49 2021 +++ src/usr.bin/make/var.c Mon Jun 21 18:25:20 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: var.c,v 1.937 2021/06/21 18:12:49 rillig Exp $ */ +/* $NetBSD: var.c,v 1.938 2021/06/21 18:25:20 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -140,7 +140,7 @@ #include "metachar.h" /* "@(#)var.c 8.3 (Berkeley) 3/19/94" */ -MAKE_RCSID("$NetBSD: var.c,v 1.937 2021/06/21 18:12:49 rillig Exp $"); +MAKE_RCSID("$NetBSD: var.c,v 1.938 2021/06/21 18:25:20 rillig Exp $"); /* * Variables are defined using one of the VAR=value assignments. Their @@ -1594,7 +1594,7 @@ RegexReplace(const char *replace, SepBuf const regmatch_t *m, size_t nsub) { const char *rp; - size_t n; + unsigned int n; for (rp = replace; *rp != '\0'; rp++) { if (*rp == '\\' && (rp[1] == '&' || rp[1] == '\\')) { @@ -1615,15 +1615,14 @@ RegexReplace(const char *replace, SepBuf } /* \0 to \9 backreference */ - n = (size_t)(rp[1] - '0'); + n = rp[1] - '0'; rp++; if (n >= nsub) { - Error("No subexpression \\%u", (unsigned)n); + Error("No subexpression \\%u", n); } else if (m[n].rm_so == -1) { if (opts.strict) { - Error("No match for subexpression \\%u", - (unsigned)n); + Error("No match for subexpression \\%u", n); } } else { SepBuf_AddBytesBetween(buf,