Module Name:    src
Committed By:   rillig
Date:           Tue Aug 17 22:29:11 UTC 2021

Modified Files:
        src/usr.bin/xlint/lint1: main1.c

Log Message:
lint: extract suppress_messages from main

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.55 -r1.56 src/usr.bin/xlint/lint1/main1.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/xlint/lint1/main1.c
diff -u src/usr.bin/xlint/lint1/main1.c:1.55 src/usr.bin/xlint/lint1/main1.c:1.56
--- src/usr.bin/xlint/lint1/main1.c:1.55	Tue Aug 17 21:19:02 2021
+++ src/usr.bin/xlint/lint1/main1.c	Tue Aug 17 22:29:11 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: main1.c,v 1.55 2021/08/17 21:19:02 rillig Exp $	*/
+/*	$NetBSD: main1.c,v 1.56 2021/08/17 22:29:11 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: main1.c,v 1.55 2021/08/17 21:19:02 rillig Exp $");
+__RCSID("$NetBSD: main1.c,v 1.56 2021/08/17 22:29:11 rillig Exp $");
 #endif
 
 #include <sys/types.h>
@@ -168,11 +168,28 @@ sigfpe(int s)
 	fpe = 1;
 }
 
+static void
+suppress_messages(char *ids)
+{
+	char *ptr, *end;
+	long id;
+
+	for (ptr = strtok(ids, ","); ptr != NULL; ptr = strtok(NULL, ",")) {
+		errno = 0;
+		id = strtol(ptr, &end, 0);
+		if ((id == TARG_LONG_MIN || id == TARG_LONG_MAX) &&
+		    errno == ERANGE)
+			err(1, "invalid error message id '%s'", ptr);
+		if (*end != '\0' || ptr == end || id < 0 || id >= ERR_SETSIZE)
+			errx(1, "invalid error message id '%s'", ptr);
+		ERR_SET(id, &msgset);
+	}
+}
+
 int
 main(int argc, char *argv[])
 {
-	int	c;
-	char	*ptr;
+	int c;
 
 	setprogname(argv[0]);
 
@@ -217,23 +234,7 @@ main(int argc, char *argv[])
 			break;
 
 		case 'X':
-			for (ptr = strtok(optarg, ","); ptr != NULL;
-			    ptr = strtok(NULL, ",")) {
-				char *eptr;
-				long msg;
-
-				errno = 0;
-				msg = strtol(ptr, &eptr, 0);
-				if ((msg == TARG_LONG_MIN || msg == TARG_LONG_MAX) &&
-				    errno == ERANGE)
-				    err(1, "invalid error message id '%s'",
-					ptr);
-				if (*eptr != '\0' || ptr == eptr || msg < 0 ||
-				    msg >= ERR_SETSIZE)
-					errx(1, "invalid error message id '%s'",
-					    ptr);
-				ERR_SET(msg, &msgset);
-			}
+			suppress_messages(optarg);
 			break;
 		default:
 			usage();

Reply via email to