diff options
Diffstat (limited to 'vendor/librune/include/internal/common.h')
| -rw-r--r-- | vendor/librune/include/internal/common.h | 39 | 
1 files changed, 39 insertions, 0 deletions
diff --git a/vendor/librune/include/internal/common.h b/vendor/librune/include/internal/common.h new file mode 100644 index 0000000..7107528 --- /dev/null +++ b/vendor/librune/include/internal/common.h @@ -0,0 +1,39 @@ +#ifndef RUNE_INTERNAL_COMMON_H +#define RUNE_INTERNAL_COMMON_H + +#if __STDC_VERSION__ >= 202311L +#	define RUNE_IS_23 1 +#endif + +#if !RUNE_IS_23 +#	include <stddef.h> /* IWYU pragma: export */ +#	define nullptr NULL +#endif + +#ifndef unreachable +#	if RUNE_IS_23 +#		include <stddef.h> /* IWYU pragma: export */ +#	elif defined(__GNUC__) || defined(__clang__) +#		define unreachable() __builtin_unreachable() +#	else +#		define unreachable() \ +			do \ +				*(int *)0 = 0; \ +			while (0) +#	endif +#endif + +#define U1(x) (((x)&0x80) == 0x00) +#define U2(x) (((x)&0xE0) == 0xC0) +#define U3(x) (((x)&0xF0) == 0xE0) +#define U4(x) (((x)&0xF8) == 0xF0) +#define UC(x) (((x)&0xC0) == 0x80) + +/* Maximum value of a 1–4-byte long UTF-8 sequence */ +#include "rune.h" +#define _1B_MAX RUNE_C(0x00007F) +#define _2B_MAX RUNE_C(0x0007FF) +#define _3B_MAX RUNE_C(0x00FFFF) +#define _4B_MAX RUNE_C(0x10FFFF) + +#endif /* !RUNE_INTERNAL_COMMON_H */  |