aboutsummaryrefslogtreecommitdiff
path: root/contrib/bmake/enum.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bmake/enum.c')
-rwxr-xr-xcontrib/bmake/enum.c80
1 files changed, 0 insertions, 80 deletions
diff --git a/contrib/bmake/enum.c b/contrib/bmake/enum.c
deleted file mode 100755
index a0ae8569b322..000000000000
--- a/contrib/bmake/enum.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* $NetBSD: enum.c,v 1.15 2021/02/02 17:56:31 rillig Exp $ */
-
-/*
- Copyright (c) 2020 Roland Illig <rillig@NetBSD.org>
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "make.h"
-
-MAKE_RCSID("$NetBSD: enum.c,v 1.15 2021/02/02 17:56:31 rillig Exp $");
-
-/*
- * Convert a bitset into a string representation, showing the names of the
- * individual bits.
- *
- * Optionally, shortcuts for groups of bits can be added. To have an effect,
- * they need to be listed before their individual bits.
- */
-const char *
-Enum_FlagsToString(char *buf, size_t buf_size,
- int value, const EnumToStringSpec *spec)
-{
- const char *buf_start = buf;
- const char *sep = "";
- size_t sep_len = 0;
-
- for (; spec->es_value != 0; spec++) {
- size_t name_len;
-
- if ((value & spec->es_value) != spec->es_value)
- continue;
- value &= ~spec->es_value;
-
- assert(buf_size >= sep_len + 1);
- memcpy(buf, sep, sep_len);
- buf += sep_len;
- buf_size -= sep_len;
-
- name_len = strlen(spec->es_name);
- assert(buf_size >= name_len + 1);
- memcpy(buf, spec->es_name, name_len);
- buf += name_len;
- buf_size -= name_len;
-
- sep = ENUM__SEP;
- sep_len = sizeof ENUM__SEP - 1;
- }
-
- /* If this assertion fails, the listed enum values are incomplete. */
- assert(value == 0);
-
- if (buf == buf_start)
- return "none";
-
- assert(buf_size >= 1);
- buf[0] = '\0';
- return buf_start;
-}