Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.bin/make make(1): clean up ParseBoolean
details: https://anonhg.NetBSD.org/src/rev/8438bcdd0f81
branches: trunk
changeset: 957056:8438bcdd0f81
user: rillig <rillig%NetBSD.org@localhost>
date: Sun Nov 15 09:54:16 2020 +0000
description:
make(1): clean up ParseBoolean
diffstat:
usr.bin/make/main.c | 34 +++++++++++++---------------------
1 files changed, 13 insertions(+), 21 deletions(-)
diffs (57 lines):
diff -r 686ca6ece80d -r 8438bcdd0f81 usr.bin/make/main.c
--- a/usr.bin/make/main.c Sun Nov 15 09:38:44 2020 +0000
+++ b/usr.bin/make/main.c Sun Nov 15 09:54:16 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: main.c,v 1.473 2020/11/15 09:38:44 rillig Exp $ */
+/* $NetBSD: main.c,v 1.474 2020/11/15 09:54:16 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -109,7 +109,7 @@
#include "trace.h"
/* "@(#)main.c 8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: main.c,v 1.473 2020/11/15 09:38:44 rillig Exp $");
+MAKE_RCSID("$NetBSD: main.c,v 1.474 2020/11/15 09:54:16 rillig Exp $");
#if defined(MAKE_NATIVE) && !defined(lint)
__COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993 "
"The Regents of the University of California. "
@@ -2225,27 +2225,19 @@
}
/*
- * Convert a string representation of a boolean.
- * Anything that looks like "No", "False", "Off", "0" etc,
- * is FALSE, otherwise TRUE.
+ * Convert a string representation of a boolean into a boolean value.
+ * Anything that looks like "No", "False", "Off", "0" etc. is FALSE,
+ * the empty string is the fallback, everything else is TRUE.
*/
Boolean
-ParseBoolean(const char *s, Boolean bf)
+ParseBoolean(const char *s, Boolean fallback)
{
- switch (s[0]) {
- case '\0': /* not set - the default wins */
- break;
- case '0':
- case 'F':
- case 'f':
- case 'N':
- case 'n':
+ char ch = ch_tolower(s[0]);
+ if (ch == '\0')
+ return fallback;
+ if (ch == '0' || ch == 'f' || ch == 'n')
return FALSE;
- case 'O':
- case 'o':
- return s[1] != 'F' && s[1] != 'f';
- default:
- return TRUE;
- }
- return bf;
+ if (ch == 'o')
+ return ch_tolower(s[1]) != 'f';
+ return TRUE;
}
Home |
Main Index |
Thread Index |
Old Index