2018-04-18 00:34:41 +02:00
|
|
|
/*
|
2019-08-03 19:43:48 +02:00
|
|
|
* This software is licensed under the terms of the MIT License.
|
2018-04-18 00:34:41 +02:00
|
|
|
* See COPYING for further information.
|
|
|
|
* ---
|
2024-05-16 23:30:41 +02:00
|
|
|
* Copyright (c) 2011-2024, Lukas Weber <laochailan@web.de>.
|
|
|
|
* Copyright (c) 2012-2024, Andrei Alexeyev <akari@taisei-project.org>.
|
2018-04-18 00:34:41 +02:00
|
|
|
*/
|
|
|
|
|
2021-08-12 23:09:01 +02:00
|
|
|
#pragma once
|
2018-04-18 00:34:41 +02:00
|
|
|
#include "taisei.h"
|
|
|
|
|
2019-09-15 11:52:24 +02:00
|
|
|
const char *env_get_string(const char *var, const char *fallback)
|
|
|
|
attr_nonnull(1);
|
|
|
|
|
|
|
|
const char *env_get_string_nonempty(const char *var, const char *fallback)
|
2018-04-18 00:34:41 +02:00
|
|
|
attr_nonnull(1);
|
|
|
|
|
|
|
|
void env_set_string(const char *var, const char *val, bool override)
|
|
|
|
attr_nonnull(1, 2);
|
|
|
|
|
|
|
|
int64_t env_get_int(const char *var, int64_t fallback)
|
|
|
|
attr_nonnull(1);
|
|
|
|
|
|
|
|
void env_set_int(const char *var, int64_t val, bool override)
|
|
|
|
attr_nonnull(1);
|
|
|
|
|
|
|
|
double env_get_double(const char *var, double fallback)
|
|
|
|
attr_nonnull(1);
|
|
|
|
|
|
|
|
void env_set_double(const char *var, double val, bool override)
|
|
|
|
attr_nonnull(1);
|
|
|
|
|
|
|
|
#define env_get(var, fallback) (_Generic((fallback), \
|
|
|
|
const char* : env_get_string, \
|
|
|
|
char* : env_get_string, \
|
|
|
|
void* : env_get_string, \
|
2018-04-18 01:17:28 +02:00
|
|
|
bool : env_get_int, \
|
2018-04-18 00:34:41 +02:00
|
|
|
int8_t : env_get_int, \
|
|
|
|
uint8_t : env_get_int, \
|
|
|
|
int16_t : env_get_int, \
|
|
|
|
uint16_t : env_get_int, \
|
|
|
|
int32_t : env_get_int, \
|
|
|
|
uint32_t : env_get_int, \
|
|
|
|
int64_t : env_get_int, \
|
|
|
|
uint64_t : env_get_int, \
|
|
|
|
double : env_get_double, \
|
|
|
|
float : env_get_double \
|
|
|
|
)(var, fallback))
|
|
|
|
|
|
|
|
#define env_set(var, val, override) (_Generic((val), \
|
|
|
|
const char* : env_set_string, \
|
|
|
|
char* : env_set_string, \
|
|
|
|
void* : env_set_string, \
|
2018-04-18 01:17:28 +02:00
|
|
|
bool : env_set_int, \
|
2018-04-18 00:34:41 +02:00
|
|
|
int8_t : env_set_int, \
|
|
|
|
uint8_t : env_set_int, \
|
|
|
|
int16_t : env_set_int, \
|
|
|
|
uint16_t : env_set_int, \
|
|
|
|
int32_t : env_set_int, \
|
|
|
|
uint32_t : env_set_int, \
|
|
|
|
int64_t : env_set_int, \
|
|
|
|
uint64_t : env_set_int, \
|
|
|
|
double : env_set_double, \
|
|
|
|
float : env_set_double \
|
|
|
|
)(var, val, override))
|