From nobody Tue Sep 23 12:59:08 2025 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 4cWKmr74HNz68cYB; Tue, 23 Sep 2025 12:59:08 +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" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cWKmr64Zxz3W7D; Tue, 23 Sep 2025 12:59:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758632348; 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=PUZQhgHL0ODoVsBsuuHYQqSM28LjzJLRu08ZhqMS/Ro=; b=PsDoJq3L50BWg2PzfJwUb0cfKCCB94QIDfMovYNut8yImA3wGuvMPcfCEdUZcgTEQXWpgC Z9NEfWSdsZmFivwaadXYQIjeLR3w1q2LSSx9kR3uVzgDFRkhJzzJekDQl2PxJPZFDP+AMJ gAQnoKb0dmBD3/+QcF8zkjYkO4vHXeAinXjN4aDgfc7K1Kl3+mFO/AEfBybSC7lNJ+dnzM BGKBqc9rJxUbbTzkJmKL1y/7jYF11ir3rtwHCgw0ppNelwmNhwRNGKg/iYU9Dt3oCFETkd DSvR2WxzuP7K+mqVudgqUAKeJ8O9hTiI4GrkxWoxe5Pw3WzcQh8grbdGC3uQPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758632348; 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=PUZQhgHL0ODoVsBsuuHYQqSM28LjzJLRu08ZhqMS/Ro=; b=qG+f1NOUo6JKCv5kYi6fiCJfUHFCU9vMM3dPsVxeaddTEovXRLGhif4KOA4ooE+nAFLtNT JPs1Yq8LVroINFOot6tjbw4r7rmg6X/0LnL2UOD65lg7FUMNawc3EMBuyDOb9YfsUP9CxM rs+dqBKv8vc7wtx8O2STQfFFQWbqIRjNM5SBmysUWQOt/ukNZVbCOCT8avpGMhUPiszQCu ilsoG/TB+atXE+f5JiR5QnrB22jMclSDl7/aSqKsyZUdEkEsgRLsn8wZtbbG/0I2mi/3lh uLHt2x69EKxVLZ8G2259wYmAKWsaHTgn8VxmI1+R+jk147paO+HG/jIBIGY/SQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758632348; a=rsa-sha256; cv=none; b=XBj1XwtBhrAfyv4mQG0ehpU8ZaVOFi7mIOWgGcr3pD1JlapT1wbTM6+xCZCw9vLZi/V1pE LJlf46LsCF/3A350mOpx3iBSQxSX2Xmtlr9Rudhbq9weQ5SPJBv0uUBkr65s/8o9aDgFIK Zz4f+c0vHg1fTNjjC6EELYjKnkRov7I3DTEq6Om3OUxD8YjDFAnteEOUdAZ99imH1w6RH8 Q1zir/wKijbWV+NJ49cSI9wfaAzlQFNnKPlA/WEbFZJ9neEd7tdjsfkVbpMk9c7eeQ7N0B F9xMLwWUrycwUY0oS0RkoCPb6zgKIN+xDLBJI7fZROMwS8l3VRnJrV8uyxupjg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4cWKmr5hSwzn9x; Tue, 23 Sep 2025 12:59:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 58NCx8ai004821; Tue, 23 Sep 2025 12:59:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58NCx8Yi004818; Tue, 23 Sep 2025 12:59:08 GMT (envelope-from git) Date: Tue, 23 Sep 2025 12:59:08 GMT Message-Id: <202509231259.58NCx8Yi004818@gitrepo.freebsd.org> 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=B8rgrav?= Subject: git: 3aac05f56620 - main - pwait: Fix timeout unit parser 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: 3aac05f56620712744cb57d71a0ef42f8d8e3b52 Auto-Submitted: auto-generated The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=3aac05f56620712744cb57d71a0ef42f8d8e3b52 commit 3aac05f56620712744cb57d71a0ef42f8d8e3b52 Author: Dag-Erling Smørgrav AuthorDate: 2025-09-23 12:56:04 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-09-23 12:56:04 +0000 pwait: Fix timeout unit parser The timeout parser would check the first character after the number and ignore any subsequent ones. While here, switch to bool for booleans and fix some style nits. MFC after: 1 week Reviewed by: 0mp, markj Differential Revision: https://reviews.freebsd.org/D52612 --- bin/pwait/pwait.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/bin/pwait/pwait.c b/bin/pwait/pwait.c index 0fae22562607..a78c0bb84ca8 100644 --- a/bin/pwait/pwait.c +++ b/bin/pwait/pwait.c @@ -39,6 +39,7 @@ #include #include #include +#include #include #include #include @@ -48,7 +49,6 @@ static void usage(void) { - fprintf(stderr, "usage: pwait [-t timeout] [-ov] pid ...\n"); exit(EX_USAGE); } @@ -61,15 +61,15 @@ main(int argc, char *argv[]) { struct itimerval itv; struct kevent *e; - int oflag, tflag, verbose; - int i, kq, n, nleft, opt, status; - long pid; char *end, *s; double timeout; + long pid; + int i, kq, n, nleft, opt, status; + bool oflag, tflag, verbose; - oflag = 0; - tflag = 0; - verbose = 0; + oflag = false; + tflag = false; + verbose = false; memset(&itv, 0, sizeof(itv)); while ((opt = getopt(argc, argv, "ot:v")) != -1) { @@ -78,25 +78,31 @@ main(int argc, char *argv[]) oflag = 1; break; case 't': - tflag = 1; + tflag = true; errno = 0; timeout = strtod(optarg, &end); if (end == optarg || errno == ERANGE || timeout < 0) { errx(EX_DATAERR, "timeout value"); } - switch(*end) { - case 0: + switch (*end) { + case '\0': + break; case 's': + end++; break; case 'h': timeout *= 60; /* FALLTHROUGH */ case 'm': timeout *= 60; + end++; break; default: errx(EX_DATAERR, "timeout unit"); } + if (*end != '\0') { + errx(EX_DATAERR, "timeout unit"); + } if (timeout > 100000000L) { errx(EX_DATAERR, "timeout value"); } @@ -106,7 +112,7 @@ main(int argc, char *argv[]) (suseconds_t)(timeout * 1000000UL); break; case 'v': - verbose = 1; + verbose = true; break; default: usage(); @@ -134,7 +140,7 @@ main(int argc, char *argv[]) for (n = 0; n < argc; n++) { s = argv[n]; /* Undocumented Solaris compat */ - if (!strncmp(s, "/proc/", 6)) { + if (strncmp(s, "/proc/", 6) == 0) { s += 6; } errno = 0;