summaryrefslogtreecommitdiffstats
path: root/src/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/util')
-rw-r--r--src/util/debug.c25
-rw-r--r--src/util/debug.h3
-rw-r--r--src/util/format_srgb.h2
-rw-r--r--src/util/macros.h4
-rw-r--r--src/util/u_atomic_test.c2
5 files changed, 33 insertions, 3 deletions
diff --git a/src/util/debug.c b/src/util/debug.c
index 3729ce85670..98b1853325d 100644
--- a/src/util/debug.c
+++ b/src/util/debug.c
@@ -51,3 +51,28 @@ parse_debug_string(const char *debug,
return flag;
}
+
+/**
+ * Reads an environment variable and interprets its value as a boolean.
+ *
+ * Recognizes 0/false/no and 1/true/yes. Other values result in the default value.
+ */
+bool
+env_var_as_boolean(const char *var_name, bool default_value)
+{
+ const char *str = getenv(var_name);
+ if (str == NULL)
+ return default_value;
+
+ if (strcmp(str, "1") == 0 ||
+ strcasecmp(str, "true") == 0 ||
+ strcasecmp(str, "yes") == 0) {
+ return true;
+ } else if (strcmp(str, "0") == 0 ||
+ strcasecmp(str, "false") == 0 ||
+ strcasecmp(str, "no") == 0) {
+ return false;
+ } else {
+ return default_value;
+ }
+}
diff --git a/src/util/debug.h b/src/util/debug.h
index 801736aafff..11a8561eb57 100644
--- a/src/util/debug.h
+++ b/src/util/debug.h
@@ -25,6 +25,7 @@
#define _DEBUG_H
#include <stdint.h>
+#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
@@ -38,6 +39,8 @@ struct debug_control {
uint64_t
parse_debug_string(const char *debug,
const struct debug_control *control);
+bool
+env_var_as_boolean(const char *var_name, bool default_value);
#ifdef __cplusplus
} /* extern C */
diff --git a/src/util/format_srgb.h b/src/util/format_srgb.h
index 4a8d73f125f..34b50afe3d1 100644
--- a/src/util/format_srgb.h
+++ b/src/util/format_srgb.h
@@ -57,7 +57,7 @@ util_format_linear_to_srgb_helper_table[104];
static inline float
util_format_linear_to_srgb_float(float cl)
{
- if (cl < 0.0f)
+ if (cl <= 0.0f)
return 0.0f;
else if (cl < 0.0031308f)
return 12.92f * cl;
diff --git a/src/util/macros.h b/src/util/macros.h
index 84e4f182bcf..0c8958feae9 100644
--- a/src/util/macros.h
+++ b/src/util/macros.h
@@ -24,6 +24,8 @@
#ifndef UTIL_MACROS_H
#define UTIL_MACROS_H
+#include <assert.h>
+
/* Compute the size of an array */
#ifndef ARRAY_SIZE
# define ARRAY_SIZE(x) (sizeof(x) / sizeof(*(x)))
@@ -184,7 +186,7 @@ do { \
* inline a static function that we later use in an alias. - ajax
*/
#ifndef PUBLIC
-# if defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
+# if defined(__GNUC__)
# define PUBLIC __attribute__((visibility("default")))
# define USED __attribute__((used))
# elif defined(_MSC_VER)
diff --git a/src/util/u_atomic_test.c b/src/util/u_atomic_test.c
index 7844f616222..7a77768c966 100644
--- a/src/util/u_atomic_test.c
+++ b/src/util/u_atomic_test.c
@@ -26,7 +26,7 @@
**************************************************************************/
-/* Force assertions, even on debug builds. */
+/* Force assertions, even on release builds. */
#undef NDEBUG