Module Name:    src
Committed By:   rillig
Date:           Sun Sep 10 10:18:05 UTC 2023

Modified Files:
        src/usr.bin/make: main.c

Log Message:
make: fix lint warning about strchr

main.c(416): warning:
    call to 'strchr' effectively discards 'const' from argument [346]

Even though C23 turns strchr into a const-generic function, it doesn't
do the same for strtol, so use separate pointers for the current parsing
position and the end of a number, as their constness differs.


To generate a diff of this commit:
cvs rdiff -u -r1.596 -r1.597 src/usr.bin/make/main.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/main.c
diff -u src/usr.bin/make/main.c:1.596 src/usr.bin/make/main.c:1.597
--- src/usr.bin/make/main.c:1.596	Sat Sep  9 16:41:04 2023
+++ src/usr.bin/make/main.c	Sun Sep 10 10:18:05 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: main.c,v 1.596 2023/09/09 16:41:04 sjg Exp $	*/
+/*	$NetBSD: main.c,v 1.597 2023/09/10 10:18:05 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -111,7 +111,7 @@
 #include "trace.h"
 
 /*	"@(#)main.c	8.3 (Berkeley) 3/19/94"	*/
-MAKE_RCSID("$NetBSD: main.c,v 1.596 2023/09/09 16:41:04 sjg Exp $");
+MAKE_RCSID("$NetBSD: main.c,v 1.597 2023/09/10 10:18:05 rillig Exp $");
 #if defined(MAKE_NATIVE) && !defined(lint)
 __COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993 "
 	    "The Regents of the University of California.  "
@@ -395,13 +395,15 @@ MainParseArgJobsInternal(const char *arg
 }
 
 static void
-MainParseArgJobs(const char *argvalue)
+MainParseArgJobs(const char *arg)
 {
-	char *p;
+	const char *p;
+	char *end;
 	char v[12];
 
 	forceJobs = true;
-	opts.maxJobs = (int)strtol(argvalue, &p, 0);
+	opts.maxJobs = (int)strtol(arg, &end, 0);
+	p = arg + (end - arg);
 #ifdef _SC_NPROCESSORS_ONLN
 	if (*p != '\0') {
 		double d;
@@ -409,11 +411,12 @@ MainParseArgJobs(const char *argvalue)
 		if (*p == 'C') {
 			d = (opts.maxJobs > 0) ? opts.maxJobs : 1;
 		} else if (*p == '.') {
-			d = strtod(argvalue, &p);
+			d = strtod(arg, &end);
+			p = arg + (end - arg);
 		} else
 			d = 0;
 		if (d > 0) {
-			p = strchr(argvalue, 0);
+			p = "";
 			opts.maxJobs = (int)sysconf(_SC_NPROCESSORS_ONLN);
 			opts.maxJobs = (int)(d * (double)opts.maxJobs);
 		}

Reply via email to