mirror of
https://github.com/Ed94/metadesk.git
synced 2026-08-04 14:48:44 +00:00
c11.refactor (base should be mapped)
This commit is contained in:
@@ -82,7 +82,7 @@ cmd_line_insert_opt_alloc(AllocatorInfo ainfo, CmdLine* cmd_line, String8 string
|
|||||||
var = alloc_array(ainfo, CmdLineOpt, 1);
|
var = alloc_array(ainfo, CmdLineOpt, 1);
|
||||||
var->hash_next = *slot;
|
var->hash_next = *slot;
|
||||||
var->hash = cmd_line_hash_from_string(string);
|
var->hash = cmd_line_hash_from_string(string);
|
||||||
var->string = str8_copy(ainfo, string);
|
var->string = alloc_str8_copy(ainfo, string);
|
||||||
var->value_strings = values;
|
var->value_strings = values;
|
||||||
|
|
||||||
StringJoin join = {0};
|
StringJoin join = {0};
|
||||||
|
|||||||
+1
-1
@@ -8,6 +8,6 @@
|
|||||||
|
|
||||||
void
|
void
|
||||||
set_thread_name(String8 string) {
|
set_thread_name(String8 string) {
|
||||||
ProfThreadName("%.*s", str8_varg(string));
|
prof_thread_name("%.*s", str8_varg(string));
|
||||||
os_set_thread_name(string);
|
os_set_thread_name(string);
|
||||||
}
|
}
|
||||||
|
|||||||
+55
-106
@@ -4,73 +4,20 @@
|
|||||||
# include "debug.h"
|
# include "debug.h"
|
||||||
# include "strings.h"
|
# include "strings.h"
|
||||||
# include "thread_context.h"
|
# include "thread_context.h"
|
||||||
|
////////////////////////////////
|
||||||
|
//~ rjf: Third Party Includes
|
||||||
|
#if !BUILD_SUPPLEMENTARY_UNIT
|
||||||
|
# define STB_SPRINTF_IMPLEMENTATION
|
||||||
|
# define STB_SPRINTF_STATIC
|
||||||
|
# include "third_party/stb/stb_sprintf.h"
|
||||||
|
// Note(Ed): We should inject when generating the library segmented or singleheader
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Copyright (c) 2024 Epic Games Tools
|
// Copyright (c) 2024 Epic Games Tools
|
||||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||||
|
|
||||||
////////////////////////////////
|
|
||||||
//~ rjf: Third Party Includes
|
|
||||||
|
|
||||||
// #if !BUILD_SUPPLEMENTARY_UNIT
|
|
||||||
// # define STB_SPRINTF_IMPLEMENTATION
|
|
||||||
// # define STB_SPRINTF_STATIC
|
|
||||||
// # include "third_party/stb/stb_sprintf.h"
|
|
||||||
// #endif
|
|
||||||
|
|
||||||
////////////////////////////////
|
|
||||||
//~ NOTE(allen): String <-> Integer Tables
|
|
||||||
|
|
||||||
MD_API_C read_only global U8 integer_symbols[16] = {
|
|
||||||
'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F',
|
|
||||||
};
|
|
||||||
|
|
||||||
// NOTE(allen): Includes reverses for uppercase and lowercase hex.
|
|
||||||
MD_API_C read_only global U8 integer_symbol_reverse[128] = {
|
|
||||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
|
||||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
|
||||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
|
||||||
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
|
||||||
0xFF,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
|
||||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
|
||||||
0xFF,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
|
||||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
|
||||||
};
|
|
||||||
|
|
||||||
MD_API_C read_only global U8 base64[64] = {
|
|
||||||
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
|
|
||||||
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
|
|
||||||
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
|
|
||||||
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
|
|
||||||
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
|
|
||||||
'_', '$',
|
|
||||||
};
|
|
||||||
|
|
||||||
MD_API_C read_only global U8 base64_reverse[128] = {
|
|
||||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
|
||||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
|
||||||
0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
|
||||||
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
|
|
||||||
0xFF,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,
|
|
||||||
0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0xFF,0xFF,0xFF,0xFF,0x3E,
|
|
||||||
0xFF,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,
|
|
||||||
0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0xFF,0xFF,0xFF,0xFF,0xFF,
|
|
||||||
};
|
|
||||||
|
|
||||||
////////////////////////////////
|
|
||||||
//~ rjf: Character Classification & Conversion Functions
|
|
||||||
|
|
||||||
B32 char_is_digit(U8 c, U32 base) {
|
|
||||||
B32 result = 0;
|
|
||||||
if (0 < base && base <= 16) {
|
|
||||||
U8 val = integer_symbol_reverse[c];
|
|
||||||
if (val < base) {
|
|
||||||
result = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
//~ rjf: String Matching
|
//~ rjf: String Matching
|
||||||
|
|
||||||
@@ -140,6 +87,20 @@ str8_find_needle(String8 string, U64 start_pos, String8 needle, StringMatchFlags
|
|||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
U64
|
||||||
|
str8_find_needle_reverse(String8 string, U64 start_pos, String8 needle, StringMatchFlags flags) {
|
||||||
|
U64 result = 0;
|
||||||
|
for (S64 i = string.size - start_pos - needle.size; i >= 0; --i)
|
||||||
|
{
|
||||||
|
String8 haystack = str8_substr(string, rng_1u64(i, i + needle.size));
|
||||||
|
if (str8_match(haystack, needle, flags)) {
|
||||||
|
result = (U64)i + needle.size;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
//~ rjf: String Slicing
|
//~ rjf: String Slicing
|
||||||
|
|
||||||
@@ -174,7 +135,7 @@ push_str8_cat(Arena* arena, String8 s1, String8 s2)
|
|||||||
str.str[str.size] = 0;
|
str.str[str.size] = 0;
|
||||||
return(str);
|
return(str);
|
||||||
#else
|
#else
|
||||||
return str8_cat(arena_allocator(arena), s1, s2);
|
return alloc_str8_cat(arena_allocator(arena), s1, s2);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -188,7 +149,7 @@ push_str8_copy(Arena* arena, String8 s){
|
|||||||
str.str[str.size] = 0;
|
str.str[str.size] = 0;
|
||||||
return(str);
|
return(str);
|
||||||
#else
|
#else
|
||||||
return str8_copy(arena_allocator(arena), s);
|
return alloc_str8_copy(arena_allocator(arena), s);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -205,12 +166,12 @@ push_str8fv(Arena* arena, char* fmt, va_list args){
|
|||||||
va_end(args2);
|
va_end(args2);
|
||||||
return(result);
|
return(result);
|
||||||
#else
|
#else
|
||||||
return str8fv(arena_allocator(arena), fmt, args);
|
return alloc_str8fv(arena_allocator(arena), fmt, args);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
String8
|
String8
|
||||||
str8_cat(AllocatorInfo ainfo, String8 s1, String8 s2)
|
alloc_str8_cat(AllocatorInfo ainfo, String8 s1, String8 s2)
|
||||||
{
|
{
|
||||||
String8 str;
|
String8 str;
|
||||||
str.size = s1.size + s2.size;
|
str.size = s1.size + s2.size;
|
||||||
@@ -222,7 +183,7 @@ str8_cat(AllocatorInfo ainfo, String8 s1, String8 s2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
String8
|
String8
|
||||||
str8_copy(AllocatorInfo ainfo, String8 s)
|
alloc_str8_copy(AllocatorInfo ainfo, String8 s)
|
||||||
{
|
{
|
||||||
String8 str;
|
String8 str;
|
||||||
str.size = s.size;
|
str.size = s.size;
|
||||||
@@ -233,7 +194,7 @@ str8_copy(AllocatorInfo ainfo, String8 s)
|
|||||||
}
|
}
|
||||||
|
|
||||||
String8
|
String8
|
||||||
str8fv(AllocatorInfo ainfo, char *fmt, va_list args){
|
alloc_str8fv(AllocatorInfo ainfo, char *fmt, va_list args){
|
||||||
va_list args2;
|
va_list args2;
|
||||||
va_copy(args2, args);
|
va_copy(args2, args);
|
||||||
U32 needed_bytes = md_vsnprintf(0, 0, fmt, args) + 1;
|
U32 needed_bytes = md_vsnprintf(0, 0, fmt, args) + 1;
|
||||||
@@ -278,7 +239,7 @@ str8_is_integer(String8 string, U32 radix){
|
|||||||
result = 1;
|
result = 1;
|
||||||
for (U64 i = 0; i < string.size; i += 1) {
|
for (U64 i = 0; i < string.size; i += 1) {
|
||||||
U8 c = string.str[i];
|
U8 c = string.str[i];
|
||||||
if ( ! (c < 0x80) || integer_symbol_reverse[c] >= radix){
|
if ( ! (c < 0x80) || integer_symbol_reverse(c) >= radix){
|
||||||
result = 0;
|
result = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -287,18 +248,6 @@ str8_is_integer(String8 string, U32 radix){
|
|||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
U64
|
|
||||||
u64_from_str8(String8 string, U32 radix) {
|
|
||||||
U64 x = 0;
|
|
||||||
if (1 < radix && radix <= 16) {
|
|
||||||
for (U64 i = 0; i < string.size; i += 1) {
|
|
||||||
x *= radix;
|
|
||||||
x += integer_symbol_reverse[string.str[i]&0x7F];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return(x);
|
|
||||||
}
|
|
||||||
|
|
||||||
B32
|
B32
|
||||||
try_u64_from_str8_c_rules(String8 string, U64 *x)
|
try_u64_from_str8_c_rules(String8 string, U64 *x)
|
||||||
{
|
{
|
||||||
@@ -364,16 +313,16 @@ String8
|
|||||||
str8_from_allocator_size(AllocatorInfo ainfo, U64 z) {
|
str8_from_allocator_size(AllocatorInfo ainfo, U64 z) {
|
||||||
String8 result = {0};
|
String8 result = {0};
|
||||||
if (z < KB(1)) {
|
if (z < KB(1)) {
|
||||||
result = str8f(ainfo, "%llu b", z);
|
result = alloc_str8f(ainfo, "%llu b", z);
|
||||||
}
|
}
|
||||||
else if (z < MB(1)) {
|
else if (z < MB(1)) {
|
||||||
result = str8f(ainfo, "%llu.%02llu Kb", z/KB(1), ((100*z)/KB(1))%100);
|
result = alloc_str8f(ainfo, "%llu.%02llu Kb", z/KB(1), ((100*z)/KB(1))%100);
|
||||||
}
|
}
|
||||||
else if (z < GB(1)) {
|
else if (z < GB(1)) {
|
||||||
result = str8f(ainfo, "%llu.%02llu Mb", z/MB(1), ((100*z)/MB(1))%100);
|
result = alloc_str8f(ainfo, "%llu.%02llu Mb", z/MB(1), ((100*z)/MB(1))%100);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
result = str8f(ainfo, "%llu.%02llu Gb", z/GB(1), ((100*z)/GB(1))%100);
|
result = alloc_str8f(ainfo, "%llu.%02llu Gb", z/GB(1), ((100*z)/GB(1))%100);
|
||||||
}
|
}
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
@@ -423,8 +372,8 @@ str8_from_u64(Arena* arena, U64 u64, U32 radix, U8 min_digits, U8 digit_group_se
|
|||||||
U64 needed_separators = 0;
|
U64 needed_separators = 0;
|
||||||
if (digit_group_separator != 0)
|
if (digit_group_separator != 0)
|
||||||
{
|
{
|
||||||
needed_separators = (needed_digits+needed_leading_0s)/digit_group_size;
|
needed_separators = (needed_digits + needed_leading_0s) / digit_group_size;
|
||||||
if(needed_separators > 0 && (needed_digits+needed_leading_0s)%digit_group_size == 0)
|
if(needed_separators > 0 && (needed_digits + needed_leading_0s) % digit_group_size == 0)
|
||||||
{
|
{
|
||||||
needed_separators -= 1;
|
needed_separators -= 1;
|
||||||
}
|
}
|
||||||
@@ -442,10 +391,10 @@ str8_from_u64(Arena* arena, U64 u64, U32 radix, U8 min_digits, U8 digit_group_se
|
|||||||
{
|
{
|
||||||
if(digits_until_separator == 0 && digit_group_separator != 0) {
|
if(digits_until_separator == 0 && digit_group_separator != 0) {
|
||||||
result.str[result.size - idx - 1] = digit_group_separator;
|
result.str[result.size - idx - 1] = digit_group_separator;
|
||||||
digits_until_separator = digit_group_size+1;
|
digits_until_separator = digit_group_size + 1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
result.str[result.size - idx - 1] = char_to_lower(integer_symbols[u64_reduce%radix]);
|
result.str[result.size - idx - 1] = char_to_lower(integer_symbols(u64_reduce % radix));
|
||||||
u64_reduce /= radix;
|
u64_reduce /= radix;
|
||||||
}
|
}
|
||||||
digits_until_separator -= 1;
|
digits_until_separator -= 1;
|
||||||
@@ -515,8 +464,8 @@ str8_from_allocator_u64(AllocatorInfo ainfo, U64 u64, U32 radix, U8 min_digits,
|
|||||||
U64 needed_separators = 0;
|
U64 needed_separators = 0;
|
||||||
if (digit_group_separator != 0)
|
if (digit_group_separator != 0)
|
||||||
{
|
{
|
||||||
needed_separators = (needed_digits+needed_leading_0s)/digit_group_size;
|
needed_separators = (needed_digits + needed_leading_0s) / digit_group_size;
|
||||||
if(needed_separators > 0 && (needed_digits+needed_leading_0s)%digit_group_size == 0)
|
if(needed_separators > 0 && (needed_digits + needed_leading_0s) % digit_group_size == 0)
|
||||||
{
|
{
|
||||||
needed_separators -= 1;
|
needed_separators -= 1;
|
||||||
}
|
}
|
||||||
@@ -534,10 +483,10 @@ str8_from_allocator_u64(AllocatorInfo ainfo, U64 u64, U32 radix, U8 min_digits,
|
|||||||
{
|
{
|
||||||
if(digits_until_separator == 0 && digit_group_separator != 0) {
|
if(digits_until_separator == 0 && digit_group_separator != 0) {
|
||||||
result.str[result.size - idx - 1] = digit_group_separator;
|
result.str[result.size - idx - 1] = digit_group_separator;
|
||||||
digits_until_separator = digit_group_size+1;
|
digits_until_separator = digit_group_size + 1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
result.str[result.size - idx - 1] = char_to_lower(integer_symbols[u64_reduce%radix]);
|
result.str[result.size - idx - 1] = char_to_lower(integer_symbols(u64_reduce % radix));
|
||||||
u64_reduce /= radix;
|
u64_reduce /= radix;
|
||||||
}
|
}
|
||||||
digits_until_separator -= 1;
|
digits_until_separator -= 1;
|
||||||
@@ -588,12 +537,12 @@ str8_from_alloctor_s64(AllocatorInfo ainfo, S64 s64, U32 radix, U8 min_digits, U
|
|||||||
if(s64 < 0) {
|
if(s64 < 0) {
|
||||||
// TODO(Ed): Review, we should just keep using thread scratch arenas (and provide them to teh context)
|
// TODO(Ed): Review, we should just keep using thread scratch arenas (and provide them to teh context)
|
||||||
U8 bytes[KB(8)];
|
U8 bytes[KB(8)];
|
||||||
FArena scratch = farena_from_memory(bytes, size_of(bytes));
|
FArena scratch = farena_from_memory(bytes, size_of(bytes));
|
||||||
String8 numeric_part = str8_from_allocator_u64(farena_allocator(scratch), (U64)(-s64), radix, min_digits, digit_group_separator);
|
String8 numeric_part = str8_from_allocator_u64(farena_allocator(scratch), (U64)(-s64), radix, min_digits, digit_group_separator);
|
||||||
result = str8f(ainfo, "-%S", numeric_part);
|
result = alloc_str8f(ainfo, "-%S", numeric_part);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
result = str8__from_allocator_u64(ainfo, (U64)s64, radix, min_digits, digit_group_separator);
|
result = str8_from_allocator_u64(ainfo, (U64)s64, radix, min_digits, digit_group_separator);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -743,7 +692,7 @@ str8_list_alloc_copy(AllocatorInfo ainfo, String8List* list) {
|
|||||||
String8List result = {0};
|
String8List result = {0};
|
||||||
for (String8Node* node = list->first; node != 0; node = node->next) {
|
for (String8Node* node = list->first; node != 0; node = node->next) {
|
||||||
String8Node* new_node = alloc_array_no_zero(ainfo, String8Node, 1);
|
String8Node* new_node = alloc_array_no_zero(ainfo, String8Node, 1);
|
||||||
String8 new_string = str8_copy(ainfo, node->string);
|
String8 new_string = alloc_str8_copy(ainfo, node->string);
|
||||||
str8_list_push_node_set_string(&result, new_node, new_string);
|
str8_list_push_node_set_string(&result, new_node, new_string);
|
||||||
}
|
}
|
||||||
return(result);
|
return(result);
|
||||||
@@ -1313,7 +1262,7 @@ str8_from_16(AllocatorInfo ainfo, String16 in) {
|
|||||||
size += utf8_encode(str + size, consume.codepoint);
|
size += utf8_encode(str + size, consume.codepoint);
|
||||||
}
|
}
|
||||||
str[size] = 0;
|
str[size] = 0;
|
||||||
resize(ainfo, str, (cap - size));
|
resize(ainfo, str, cap + 1, (cap - size));
|
||||||
return(str8(str, size));
|
return(str8(str, size));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1330,7 +1279,7 @@ str16_from_8(AllocatorInfo ainfo, String8 in) {
|
|||||||
size += utf16_encode(str + size, consume.codepoint);
|
size += utf16_encode(str + size, consume.codepoint);
|
||||||
}
|
}
|
||||||
str[size] = 0;
|
str[size] = 0;
|
||||||
resize(ainfo, str, (cap - size));
|
resize(ainfo, str, cap + 1, (cap - size));
|
||||||
return(str16(str, size));
|
return(str16(str, size));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1345,7 +1294,7 @@ str8_from_32(AllocatorInfo ainfo, String32 in){
|
|||||||
size += utf8_encode(str + size, *ptr);
|
size += utf8_encode(str + size, *ptr);
|
||||||
}
|
}
|
||||||
str[size] = 0;
|
str[size] = 0;
|
||||||
resize(ainfo, str, (cap - size));
|
resize(ainfo, str, cap + 1, (cap - size));
|
||||||
return(str8(str, size));
|
return(str8(str, size));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1363,7 +1312,7 @@ str32_from_8(AllocatorInfo ainfo, String8 in){
|
|||||||
size += 1;
|
size += 1;
|
||||||
}
|
}
|
||||||
str[size] = 0;
|
str[size] = 0;
|
||||||
resize(ainfo, str, (cap - size));
|
resize(ainfo, str, cap + 1, (cap - size));
|
||||||
return(str32(str, size));
|
return(str32(str, size));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1481,7 +1430,7 @@ alloc_date_time_string(AllocatorInfo ainfo, DateTime* date_time) {
|
|||||||
ampm = "pm";
|
ampm = "pm";
|
||||||
}
|
}
|
||||||
|
|
||||||
String8 result = str8f(ainfo,
|
String8 result = alloc_str8f(ainfo,
|
||||||
"%d %s %d, %02d:%02d:%02d %s",
|
"%d %s %d, %02d:%02d:%02d %s",
|
||||||
date_time->day, mon_str, date_time->year,
|
date_time->day, mon_str, date_time->year,
|
||||||
adjusted_hour, date_time->min, date_time->sec, ampm
|
adjusted_hour, date_time->min, date_time->sec, ampm
|
||||||
@@ -1493,7 +1442,7 @@ String8
|
|||||||
alloc_file_name_date_time_string(AllocatorInfo ainfo, DateTime* date_time) {
|
alloc_file_name_date_time_string(AllocatorInfo ainfo, DateTime* date_time) {
|
||||||
char* mon_str = (char*)string_from_month(date_time->month).str;
|
char* mon_str = (char*)string_from_month(date_time->month).str;
|
||||||
|
|
||||||
String8 result = str8f(ainfo,
|
String8 result = alloc_str8f(ainfo,
|
||||||
"%d-%s-%0d--%02d-%02d-%02d",
|
"%d-%s-%0d--%02d-%02d-%02d",
|
||||||
date_time->year, mon_str, date_time->day,
|
date_time->year, mon_str, date_time->day,
|
||||||
date_time->hour, date_time->min, date_time->sec
|
date_time->hour, date_time->min, date_time->sec
|
||||||
@@ -1976,7 +1925,7 @@ wrapped_lines_from_string_alloc(AllocatorInfo ainfo, String8 string, U64 first_l
|
|||||||
{
|
{
|
||||||
String8 line = str8_substr(string, line_range);
|
String8 line = str8_substr(string, line_range);
|
||||||
if (wrapped_indent_level > 0){
|
if (wrapped_indent_level > 0){
|
||||||
line = str8f(ainfo, "%.*s%S", wrapped_indent_level, spaces, line);
|
line = alloc_str8f(ainfo, "%.*s%S", wrapped_indent_level, spaces, line);
|
||||||
}
|
}
|
||||||
str8_list_alloc(ainfo, &list, line);
|
str8_list_alloc(ainfo, &list, line);
|
||||||
line_range = r1u64(line_range.max + 1, candidate_line_range.max);
|
line_range = r1u64(line_range.max + 1, candidate_line_range.max);
|
||||||
@@ -1990,7 +1939,7 @@ wrapped_lines_from_string_alloc(AllocatorInfo ainfo, String8 string, U64 first_l
|
|||||||
if (line_range.min < string.size && line_range.max > line_range.min) {
|
if (line_range.min < string.size && line_range.max > line_range.min) {
|
||||||
String8 line = str8_substr(string, line_range);
|
String8 line = str8_substr(string, line_range);
|
||||||
if (wrapped_indent_level > 0) {
|
if (wrapped_indent_level > 0) {
|
||||||
line = str8f(ainfo, "%.*s%S", wrapped_indent_level, spaces, line);
|
line = alloc_str8f(ainfo, "%.*s%S", wrapped_indent_level, spaces, line);
|
||||||
}
|
}
|
||||||
str8_list_alloc(ainfo, &list, line);
|
str8_list_alloc(ainfo, &list, line);
|
||||||
}
|
}
|
||||||
@@ -2197,7 +2146,7 @@ str8_serial_push_size(Arena* arena, String8List* srl, U64 size) {
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
#else
|
#else
|
||||||
return str8_serial_alloc_size(arena_allocator(arena, srl, size));
|
return str8_serial_alloc_size(arena_allocator(arena), srl, size);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+233
-69
@@ -11,17 +11,16 @@
|
|||||||
# include "math.h"
|
# include "math.h"
|
||||||
# include "toolchain.h"
|
# include "toolchain.h"
|
||||||
# include "time.h"
|
# include "time.h"
|
||||||
|
////////////////////////////////
|
||||||
|
//~ rjf: Third Party Includes
|
||||||
|
# define STB_SPRINTF_DECORATE(name) md_##name
|
||||||
|
# include "third_party/stb/stb_sprintf.h"
|
||||||
|
// Note(Ed): We should inject when generating the library segmented or singleheader
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Copyright (c) 2024 Epic Games Tools
|
// Copyright (c) 2024 Epic Games Tools
|
||||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||||
|
|
||||||
////////////////////////////////
|
|
||||||
//~ rjf: Third Party Includes
|
|
||||||
|
|
||||||
#define STB_SPRINTF_DECORATE(name) md_##name
|
|
||||||
#include "third_party/stb/stb_sprintf.h"
|
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
//~ rjf: String Types
|
//~ rjf: String Types
|
||||||
|
|
||||||
@@ -150,6 +149,65 @@ struct FuzzyMatchRangeList
|
|||||||
U64 total_dim;
|
U64 total_dim;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
////////////////////////////////
|
||||||
|
//~ NOTE(allen): String <-> Integer Tables
|
||||||
|
|
||||||
|
inline U8
|
||||||
|
integer_symbols(U8 value) {
|
||||||
|
read_only local_persist thread_local
|
||||||
|
U8 lookup_table[16] = {
|
||||||
|
'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F',
|
||||||
|
};
|
||||||
|
return lookup_table[value];
|
||||||
|
}
|
||||||
|
|
||||||
|
inline U8
|
||||||
|
base64(U8 value) {
|
||||||
|
read_only local_persist thread_local
|
||||||
|
U8 lookup_table[64] = {
|
||||||
|
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
|
||||||
|
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
|
||||||
|
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
|
||||||
|
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
|
||||||
|
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
|
||||||
|
'_', '$',
|
||||||
|
};
|
||||||
|
return lookup_table[value];
|
||||||
|
}
|
||||||
|
|
||||||
|
inline U8
|
||||||
|
base64_reverse(U8 value) {
|
||||||
|
read_only local_persist thread_local
|
||||||
|
U8 lookup_table[128] = {
|
||||||
|
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||||
|
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||||
|
0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||||
|
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
|
||||||
|
0xFF,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,
|
||||||
|
0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0xFF,0xFF,0xFF,0xFF,0x3E,
|
||||||
|
0xFF,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,
|
||||||
|
0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||||
|
};
|
||||||
|
return lookup_table[value];
|
||||||
|
}
|
||||||
|
|
||||||
|
// NOTE(allen): Includes reverses for uppercase and lowercase hex.
|
||||||
|
inline U8
|
||||||
|
integer_symbol_reverse(U8 value) {
|
||||||
|
read_only local_persist thread_local
|
||||||
|
lookup_table[128] = {
|
||||||
|
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||||
|
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||||
|
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||||
|
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||||
|
0xFF,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||||
|
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||||
|
0xFF,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||||
|
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||||
|
};
|
||||||
|
return lookup_table[value];
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
//~ rjf: Character Classification & Conversion Functions
|
//~ rjf: Character Classification & Conversion Functions
|
||||||
|
|
||||||
@@ -162,7 +220,17 @@ inline U8 char_to_lower (U8 c) { if (char_is_upper(c)) { c += ('a' - 'A'
|
|||||||
inline U8 char_to_upper (U8 c) { if (char_is_lower(c)) { c += ('A' - 'a'); } return(c); }
|
inline U8 char_to_upper (U8 c) { if (char_is_lower(c)) { c += ('A' - 'a'); } return(c); }
|
||||||
inline U8 char_to_correct_slash(U8 c) { if (char_is_slash(c)) { c = '/'; } return(c); }
|
inline U8 char_to_correct_slash(U8 c) { if (char_is_slash(c)) { c = '/'; } return(c); }
|
||||||
|
|
||||||
B32 char_is_digit(U8 c, U32 base);
|
inline B32
|
||||||
|
char_is_digit(U8 c, U32 base) {
|
||||||
|
B32 result = 0;
|
||||||
|
if (0 < base && base <= 16) {
|
||||||
|
U8 val = integer_symbol_reverse(c);
|
||||||
|
if (val < base) {
|
||||||
|
result = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
//~ rjf: C-String Measurement
|
//~ rjf: C-String Measurement
|
||||||
@@ -171,6 +239,8 @@ inline U64 cstring8_length (U8* c) { U8* p = c; for (; *p != 0; p += 1); retur
|
|||||||
inline U64 cstring16_length(U16* c) { U16* p = c; for (; *p != 0; p += 1); return(p - c); }
|
inline U64 cstring16_length(U16* c) { U16* p = c; for (; *p != 0; p += 1); return(p - c); }
|
||||||
inline U64 cstring32_length(U32 *c) { U32* p = c; for (; *p != 0; p += 1); return(p - c); }
|
inline U64 cstring32_length(U32 *c) { U32* p = c; for (; *p != 0; p += 1); return(p - c); }
|
||||||
|
|
||||||
|
#define cstring_length(c) _Generic(c, U8: cstring8_length, U16: cstring16_length, U32: cstring32_length)(c)
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
//~ rjf: String Constructors
|
//~ rjf: String Constructors
|
||||||
|
|
||||||
@@ -195,18 +265,49 @@ inline String8 str8_cstring (char* c) { String8 result
|
|||||||
inline String16 str16_cstring(U16* c) { String16 result = {(U16*)c, cstring16_length((U16*)c)}; return(result); }
|
inline String16 str16_cstring(U16* c) { String16 result = {(U16*)c, cstring16_length((U16*)c)}; return(result); }
|
||||||
inline String32 str32_cstring(U32* c) { String32 result = {(U32*)c, cstring32_length((U32*)c)}; return(result); }
|
inline String32 str32_cstring(U32* c) { String32 result = {(U32*)c, cstring32_length((U32*)c)}; return(result); }
|
||||||
|
|
||||||
// TODO(Ed): review these
|
#define str_range(str, one_past_last) _Generic(str, U8: str8_range, U16: str16_range, U32: str32_range )(str, one_past_last)
|
||||||
internal String16 str16_cstring_capped(void *cstr, void *cap);
|
#define str_cstring(c) _Generic(c, U8: str8_cstring, U16: str16_cstring, U32: str32_cstring)(c)
|
||||||
internal String8 str8_cstring_capped_reverse(void *raw_start, void *raw_cap);
|
|
||||||
|
String8 str8_cstring_capped (void* cstr, void* cap);
|
||||||
|
String16 str16_cstring_capped (void* cstr, void* cap);
|
||||||
|
String8 str8_cstring_capped_reverse(void* raw_start, void* raw_cap);
|
||||||
|
|
||||||
inline String8
|
inline String8
|
||||||
str8_cstring_capped(void *cstr, void *cap) {
|
str8_cstring_capped(void* cstr, void* cap) {
|
||||||
char *ptr = (char*)cstr;
|
char* ptr = (char*)cstr;
|
||||||
char *opl = (char*)cap;
|
char* opl = (char*)cap;
|
||||||
for (;ptr < opl && *ptr != 0; ptr += 1);
|
for (;ptr < opl && *ptr != 0; ptr += 1);
|
||||||
U64 size = (U64)(ptr - (char *)cstr);
|
U64 size = (U64)(ptr - (char *)cstr);
|
||||||
String8 result = {(U8*)cstr, size};
|
String8 result = {(U8*)cstr, size};
|
||||||
return(result);
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline String16
|
||||||
|
str16_cstring_capped(void* cstr, void* cap)
|
||||||
|
{
|
||||||
|
U16* ptr = (U16*)cstr;
|
||||||
|
U16* opl = (U16*)cap;
|
||||||
|
for (;ptr < opl && *ptr != 0; ptr += 1);
|
||||||
|
U64 size = (U64)(ptr - (U16 *)cstr);
|
||||||
|
String16 result = str16(cstr, size);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline String8
|
||||||
|
str8_cstring_capped_reverse(void* raw_start, void* raw_cap)
|
||||||
|
{
|
||||||
|
U8* start = raw_start;
|
||||||
|
U8* ptr = raw_cap;
|
||||||
|
for (; ptr > start; )
|
||||||
|
{
|
||||||
|
ptr -= 1;
|
||||||
|
if (*ptr == '\0') {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
U64 size = (U64)(ptr - start);
|
||||||
|
String8 result = str8(start, size);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
@@ -216,9 +317,9 @@ inline String8 upper_from_str8 (Arena* arena, String8 string) { string = pu
|
|||||||
inline String8 lower_from_str8 (Arena* arena, String8 string) { string = push_str8_copy(arena, string); for(U64 idx = 0; idx < string.size; idx += 1) { string.str[idx] = char_to_lower(string.str[idx]); } return string; }
|
inline String8 lower_from_str8 (Arena* arena, String8 string) { string = push_str8_copy(arena, string); for(U64 idx = 0; idx < string.size; idx += 1) { string.str[idx] = char_to_lower(string.str[idx]); } return string; }
|
||||||
inline String8 backslashed_from_str8(Arena *arena, String8 string) { string = push_str8_copy(arena, string); for(U64 idx = 0; idx < string.size; idx += 1) { string.str[idx] = char_is_slash(string.str[idx]) ? '\\' : string.str[idx]; } return string; }
|
inline String8 backslashed_from_str8(Arena *arena, String8 string) { string = push_str8_copy(arena, string); for(U64 idx = 0; idx < string.size; idx += 1) { string.str[idx] = char_is_slash(string.str[idx]) ? '\\' : string.str[idx]; } return string; }
|
||||||
|
|
||||||
inline String8 upper_from_str8_alloc (AllocatorInfo ainfo, String8 string) { string = str8_copy(ainfo, string); for(U64 idx = 0; idx < string.size; idx += 1) { string.str[idx] = char_to_upper(string.str[idx]); } return string; }
|
inline String8 upper_from_str8_alloc (AllocatorInfo ainfo, String8 string) { string = alloc_str8_copy(ainfo, string); for(U64 idx = 0; idx < string.size; idx += 1) { string.str[idx] = char_to_upper(string.str[idx]); } return string; }
|
||||||
inline String8 lower_from_str8_alloc (AllocatorInfo ainfo, String8 string) { string = str8_copy(ainfo, string); for(U64 idx = 0; idx < string.size; idx += 1) { string.str[idx] = char_to_lower(string.str[idx]); } return string; }
|
inline String8 lower_from_str8_alloc (AllocatorInfo ainfo, String8 string) { string = alloc_str8_copy(ainfo, string); for(U64 idx = 0; idx < string.size; idx += 1) { string.str[idx] = char_to_lower(string.str[idx]); } return string; }
|
||||||
inline String8 backslashed_from_str8_alloc(AllocatorInfo ainfo, String8 string) { string = str8_copy(ainfo, string); for(U64 idx = 0; idx < string.size; idx += 1) { string.str[idx] = char_is_slash(string.str[idx]) ? '\\' : string.str[idx]; } return string; }
|
inline String8 backslashed_from_str8_alloc(AllocatorInfo ainfo, String8 string) { string = alloc_str8_copy(ainfo, string); for(U64 idx = 0; idx < string.size; idx += 1) { string.str[idx] = char_is_slash(string.str[idx]) ? '\\' : string.str[idx]; } return string; }
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
//~ rjf: String Matching
|
//~ rjf: String Matching
|
||||||
@@ -227,17 +328,16 @@ inline String8 backslashed_from_str8_alloc(AllocatorInfo ainfo, String8 string)
|
|||||||
#define str8_match_cstr(a_cstr, b, flags) str8_match(str8_cstring(a_cstr), (b), (flags))
|
#define str8_match_cstr(a_cstr, b, flags) str8_match(str8_cstring(a_cstr), (b), (flags))
|
||||||
#define str8_ends_with_lit(string, end_lit, flags) str8_ends_with((string), str8_lit(end_lit), (flags))
|
#define str8_ends_with_lit(string, end_lit, flags) str8_ends_with((string), str8_lit(end_lit), (flags))
|
||||||
|
|
||||||
MD_API B32 str8_match (String8 a, String8 b, StringMatchFlags flags);
|
MD_API B32 str8_match (String8 a, String8 b, StringMatchFlags flags);
|
||||||
MD_API U64 str8_find_needle(String8 string, U64 start_pos, String8 needle, StringMatchFlags flags);
|
MD_API U64 str8_find_needle (String8 string, U64 start_pos, String8 needle, StringMatchFlags flags);
|
||||||
B32 str8_ends_with (String8 string, String8 end, StringMatchFlags flags);
|
MD_API U64 str8_find_needle_reverse(String8 string, U64 start_pos, String8 needle, StringMatchFlags flags);
|
||||||
|
B32 str8_ends_with (String8 string, String8 end, StringMatchFlags flags);
|
||||||
internal U64 str8_find_needle_reverse(String8 string, U64 start_pos, String8 needle, StringMatchFlags flags);
|
|
||||||
|
|
||||||
inline B32
|
inline B32
|
||||||
str8_ends_with(String8 string, String8 end, StringMatchFlags flags) {
|
str8_ends_with(String8 string, String8 end, StringMatchFlags flags) {
|
||||||
String8 postfix = str8_postfix(string, end.size);
|
String8 postfix = str8_postfix(string, end.size);
|
||||||
B32 is_match = str8_match(end, postfix, flags);
|
B32 is_match = str8_match(end, postfix, flags);
|
||||||
return is_match;
|
return is_match;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
@@ -253,40 +353,40 @@ String8 str8_chop (String8 str, U64 amt);
|
|||||||
|
|
||||||
inline String8
|
inline String8
|
||||||
str8_substr(String8 str, Rng1U64 range){
|
str8_substr(String8 str, Rng1U64 range){
|
||||||
range.min = clamp_top(range.min, str.size);
|
range.min = clamp_top(range.min, str.size);
|
||||||
range.max = clamp_top(range.max, str.size);
|
range.max = clamp_top(range.max, str.size);
|
||||||
str.str += range.min;
|
str.str += range.min;
|
||||||
str.size = dim_1u64(range);
|
str.size = dim_1u64(range);
|
||||||
return(str);
|
return(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline String8
|
inline String8
|
||||||
str8_prefix(String8 str, U64 size){
|
str8_prefix(String8 str, U64 size){
|
||||||
str.size = clamp_top(size, str.size);
|
str.size = clamp_top(size, str.size);
|
||||||
return(str);
|
return(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline String8
|
inline String8
|
||||||
str8_skip(String8 str, U64 amt){
|
str8_skip(String8 str, U64 amt){
|
||||||
amt = clamp_top(amt, str.size);
|
amt = clamp_top(amt, str.size);
|
||||||
str.str += amt;
|
str.str += amt;
|
||||||
str.size -= amt;
|
str.size -= amt;
|
||||||
return(str);
|
return(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline String8
|
inline String8
|
||||||
str8_postfix(String8 str, U64 size){
|
str8_postfix(String8 str, U64 size){
|
||||||
size = clamp_top(size, str.size);
|
size = clamp_top(size, str.size);
|
||||||
str.str = (str.str + str.size) - size;
|
str.str = (str.str + str.size) - size;
|
||||||
str.size = size;
|
str.size = size;
|
||||||
return(str);
|
return(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline String8
|
inline String8
|
||||||
str8_chop(String8 str, U64 amt){
|
str8_chop(String8 str, U64 amt){
|
||||||
amt = clamp_top(amt, str.size);
|
amt = clamp_top(amt, str.size);
|
||||||
str.size -= amt;
|
str.size -= amt;
|
||||||
return(str);
|
return(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
@@ -297,10 +397,10 @@ MD_API String8 push_str8_copy(Arena* arena, String8 s);
|
|||||||
MD_API String8 push_str8fv (Arena* arena, char* fmt, va_list args);
|
MD_API String8 push_str8fv (Arena* arena, char* fmt, va_list args);
|
||||||
String8 push_str8f (Arena* arena, char* fmt, ...);
|
String8 push_str8f (Arena* arena, char* fmt, ...);
|
||||||
|
|
||||||
MD_API String8 str8_cat (AllocatorInfo ainfo, String8 s1, String8 s2);
|
MD_API String8 alloc_str8_cat (AllocatorInfo ainfo, String8 s1, String8 s2);
|
||||||
MD_API String8 str8_copy(AllocatorInfo ainfo, String8 s);
|
MD_API String8 alloc_str8_copy(AllocatorInfo ainfo, String8 s);
|
||||||
MD_API String8 str8fv (AllocatorInfo ainfo, char* fmt, va_list args);
|
MD_API String8 alloc_str8fv (AllocatorInfo ainfo, char* fmt, va_list args);
|
||||||
String8 str8f (AllocatorInfo ainfo, char* fmt, ...);
|
String8 alloc_str8f (AllocatorInfo ainfo, char* fmt, ...);
|
||||||
|
|
||||||
inline String8
|
inline String8
|
||||||
push_str8f(Arena *arena, char *fmt, ...){
|
push_str8f(Arena *arena, char *fmt, ...){
|
||||||
@@ -312,10 +412,10 @@ push_str8f(Arena *arena, char *fmt, ...){
|
|||||||
}
|
}
|
||||||
|
|
||||||
inline String8
|
inline String8
|
||||||
str8f(AllocatorInfo ainfo, char *fmt, ...){
|
alloc_str8f(AllocatorInfo ainfo, char *fmt, ...){
|
||||||
va_list args;
|
va_list args;
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
String8 result = str8fv(ainfo, fmt, args);
|
String8 result = alloc_str8fv(ainfo, fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
@@ -324,26 +424,23 @@ str8f(AllocatorInfo ainfo, char *fmt, ...){
|
|||||||
//~ rjf: String <=> Integer Conversions
|
//~ rjf: String <=> Integer Conversions
|
||||||
|
|
||||||
//- rjf: string -> integer
|
//- rjf: string -> integer
|
||||||
MD_API S64 sign_from_str8 (String8 string, String8* string_tail);
|
MD_API S64 sign_from_str8 (String8 string, String8* string_tail);
|
||||||
MD_API B32 str8_is_integer (String8 string, U32 radix);
|
MD_API B32 str8_is_integer(String8 string, U32 radix);
|
||||||
MD_API U64 u64_from_str8 (String8 string, U32 radix);
|
U64 u64_from_str8 (String8 string, U32 radix);
|
||||||
S64 s64_from_str8 (String8 string, U32 radix);
|
S64 s64_from_str8 (String8 string, U32 radix);
|
||||||
|
U32 u32_from_str8 (String8 string, U32 radix);
|
||||||
|
S32 s32_from_str8 (String8 string, U32 radix);
|
||||||
|
|
||||||
// TODO(Ed): review these
|
MD_API B32 try_u64_from_str8_c_rules(String8 string, U64* x);
|
||||||
internal U32 u32_from_str8(String8 string, U32 radix);
|
B32 try_s64_from_str8_c_rules(String8 string, S64* x);
|
||||||
internal S32 s32_from_str8(String8 string, U32 radix);
|
|
||||||
|
|
||||||
MD_API B32 try_u64_from_str8_c_rules(String8 string, U64* x);
|
|
||||||
B32 try_s64_from_str8_c_rules(String8 string, S64* x);
|
|
||||||
|
|
||||||
//- rjf: integer -> string
|
//- rjf: integer -> string
|
||||||
MD_API String8 str8_from_memory_size(Arena* arena, U64 z);
|
MD_API String8 str8_from_memory_size(Arena* arena, U64 z);
|
||||||
MD_API String8 str8_from_u64 (Arena* arena, U64 u64, U32 radix, U8 min_digits, U8 digit_group_separator);
|
MD_API String8 str8_from_u64 (Arena* arena, U64 u64, U32 radix, U8 min_digits, U8 digit_group_separator);
|
||||||
MD_API String8 str8_from_s64 (Arena* arena, S64 s64, U32 radix, U8 min_digits, U8 digit_group_separator);
|
MD_API String8 str8_from_s64 (Arena* arena, S64 s64, U32 radix, U8 min_digits, U8 digit_group_separator);
|
||||||
|
|
||||||
// TODO(Ed): review these
|
String8 str8_from_bits_u32(Arena* arena, U32 x);
|
||||||
internal String8 str8_from_bits_u32(Arena *arena, U32 x);
|
String8 str8_from_bits_u64(Arena* arena, U64 x);
|
||||||
internal String8 str8_from_bits_u64(Arena *arena, U64 x);
|
|
||||||
|
|
||||||
MD_API String8 str8_from_allocator_size(AllocatorInfo ainfo, U64 z);
|
MD_API String8 str8_from_allocator_size(AllocatorInfo ainfo, U64 z);
|
||||||
MD_API String8 str8_from_allocator_u64 (AllocatorInfo ainfo, U64 u64, U32 radix, U8 min_digits, U8 digit_group_separator);
|
MD_API String8 str8_from_allocator_u64 (AllocatorInfo ainfo, U64 u64, U32 radix, U8 min_digits, U8 digit_group_separator);
|
||||||
@@ -356,8 +453,34 @@ s64_from_str8(String8 string, U32 radix) {
|
|||||||
return(x);
|
return(x);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline U64
|
||||||
|
u64_from_str8(String8 string, U32 radix) {
|
||||||
|
U64 x = 0;
|
||||||
|
if (1 < radix && radix <= 16) {
|
||||||
|
for (U64 i = 0; i < string.size; i += 1) {
|
||||||
|
x *= radix;
|
||||||
|
x += integer_symbol_reverse(string.str[i]&0x7F);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline U32
|
||||||
|
u32_from_str8(String8 string, U32 radix) {
|
||||||
|
U64 x64 = u64_from_str8(string, radix);
|
||||||
|
U32 x32 = safe_cast_u32(x64);
|
||||||
|
return x32;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline S32
|
||||||
|
s32_from_str8(String8 string, U32 radix) {
|
||||||
|
S64 x64 = s64_from_str8(string, radix);
|
||||||
|
S32 x32 = safe_cast_s32(x64);
|
||||||
|
return x32;
|
||||||
|
}
|
||||||
|
|
||||||
inline B32
|
inline B32
|
||||||
try_s64_from_str8_c_rules(String8 string, S64 *x) {
|
try_s64_from_str8_c_rules(String8 string, S64* x) {
|
||||||
String8 string_tail = {0};
|
String8 string_tail = {0};
|
||||||
S64 sign = sign_from_str8(string, &string_tail);
|
S64 sign = sign_from_str8(string, &string_tail);
|
||||||
U64 x_u64 = 0;
|
U64 x_u64 = 0;
|
||||||
@@ -366,6 +489,47 @@ try_s64_from_str8_c_rules(String8 string, S64 *x) {
|
|||||||
return(is_integer);
|
return(is_integer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline String8
|
||||||
|
str8_from_bits_u32(Arena* arena, U32 x)
|
||||||
|
{
|
||||||
|
U8 c0 = 'a' + ((x >> 28) & 0xf);
|
||||||
|
U8 c1 = 'a' + ((x >> 24) & 0xf);
|
||||||
|
U8 c2 = 'a' + ((x >> 20) & 0xf);
|
||||||
|
U8 c3 = 'a' + ((x >> 16) & 0xf);
|
||||||
|
U8 c4 = 'a' + ((x >> 12) & 0xf);
|
||||||
|
U8 c5 = 'a' + ((x >> 8) & 0xf);
|
||||||
|
U8 c6 = 'a' + ((x >> 4) & 0xf);
|
||||||
|
U8 c7 = 'a' + ((x >> 0) & 0xf);
|
||||||
|
String8 result = push_str8f(arena, "%c%c%c%c%c%c%c%c", c0, c1, c2, c3, c4, c5, c6, c7);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline String8
|
||||||
|
str8_from_bits_u64(Arena* arena, U64 x)
|
||||||
|
{
|
||||||
|
U8 c0 = 'a' + ((x >> 60) & 0xf);
|
||||||
|
U8 c1 = 'a' + ((x >> 56) & 0xf);
|
||||||
|
U8 c2 = 'a' + ((x >> 52) & 0xf);
|
||||||
|
U8 c3 = 'a' + ((x >> 48) & 0xf);
|
||||||
|
U8 c4 = 'a' + ((x >> 44) & 0xf);
|
||||||
|
U8 c5 = 'a' + ((x >> 40) & 0xf);
|
||||||
|
U8 c6 = 'a' + ((x >> 36) & 0xf);
|
||||||
|
U8 c7 = 'a' + ((x >> 32) & 0xf);
|
||||||
|
U8 c8 = 'a' + ((x >> 28) & 0xf);
|
||||||
|
U8 c9 = 'a' + ((x >> 24) & 0xf);
|
||||||
|
U8 ca = 'a' + ((x >> 20) & 0xf);
|
||||||
|
U8 cb = 'a' + ((x >> 16) & 0xf);
|
||||||
|
U8 cc = 'a' + ((x >> 12) & 0xf);
|
||||||
|
U8 cd = 'a' + ((x >> 8) & 0xf);
|
||||||
|
U8 ce = 'a' + ((x >> 4) & 0xf);
|
||||||
|
U8 cf = 'a' + ((x >> 0) & 0xf);
|
||||||
|
String8 result = push_str8f(arena,
|
||||||
|
"%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",
|
||||||
|
c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, ca, cb, cc, cd, ce, cf
|
||||||
|
);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
//~ rjf: String <=> Float Conversions
|
//~ rjf: String <=> Float Conversions
|
||||||
|
|
||||||
@@ -492,7 +656,7 @@ inline String8Node*
|
|||||||
str8_list_allocf(AllocatorInfo ainfo, String8List* list, char* fmt, ...) {
|
str8_list_allocf(AllocatorInfo ainfo, String8List* list, char* fmt, ...) {
|
||||||
va_list args;
|
va_list args;
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
String8 string = str8fv(ainfo, fmt, args);
|
String8 string = alloc_str8fv(ainfo, fmt, args);
|
||||||
String8Node* result = str8_list_alloc(ainfo, list, string);
|
String8Node* result = str8_list_alloc(ainfo, list, string);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
return(result);
|
return(result);
|
||||||
@@ -502,7 +666,7 @@ inline String8Node*
|
|||||||
str8_list_alloc_frontf(AllocatorInfo ainfo, String8List* list, char* fmt, ...) {
|
str8_list_alloc_frontf(AllocatorInfo ainfo, String8List* list, char* fmt, ...) {
|
||||||
va_list args;
|
va_list args;
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
String8 string = str8fv(ainfo, fmt, args);
|
String8 string = alloc_str8fv(ainfo, fmt, args);
|
||||||
String8Node* result = str8_list_alloc_front(ainfo, list, string);
|
String8Node* result = str8_list_alloc_front(ainfo, list, string);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
return(result);
|
return(result);
|
||||||
@@ -861,7 +1025,7 @@ MD_API String8List wrapped_lines_from_string_alloc(AllocatorInfo ainfo, String8
|
|||||||
//~ rjf: String <-> Color
|
//~ rjf: String <-> Color
|
||||||
|
|
||||||
inline String8 hex_string_from_rgba_4f32 (Arena* arena, Vec4F32 rgba) { String8 hex_string = push_str8f(arena, "%02x%02x%02x%02x", (U8)(rgba.x*255.f), (U8)(rgba.y*255.f), (U8)(rgba.z*255.f), (U8)(rgba.w*255.f)); return hex_string; }
|
inline String8 hex_string_from_rgba_4f32 (Arena* arena, Vec4F32 rgba) { String8 hex_string = push_str8f(arena, "%02x%02x%02x%02x", (U8)(rgba.x*255.f), (U8)(rgba.y*255.f), (U8)(rgba.z*255.f), (U8)(rgba.w*255.f)); return hex_string; }
|
||||||
inline String8 hex_string_from_rgba_4f32_alloc(AllocatorInfo ainfo, Vec4F32 rgba) { String8 hex_string = str8f(ainfo, "%02x%02x%02x%02x", (U8)(rgba.x*255.f), (U8)(rgba.y*255.f), (U8)(rgba.z*255.f), (U8)(rgba.w*255.f)); return hex_string; }
|
inline String8 hex_string_from_rgba_4f32_alloc(AllocatorInfo ainfo, Vec4F32 rgba) { String8 hex_string = alloc_str8f(ainfo, "%02x%02x%02x%02x", (U8)(rgba.x*255.f), (U8)(rgba.y*255.f), (U8)(rgba.z*255.f), (U8)(rgba.w*255.f)); return hex_string; }
|
||||||
|
|
||||||
MD_API Vec4F32 rgba_from_hex_string_4f32(String8 hex_string);
|
MD_API Vec4F32 rgba_from_hex_string_4f32(String8 hex_string);
|
||||||
|
|
||||||
|
|||||||
@@ -295,7 +295,7 @@ os_full_path_from_path_alloc(AllocatorInfo ainfo, String8 path)
|
|||||||
realpath((char *)path_copy.str, buffer);
|
realpath((char *)path_copy.str, buffer);
|
||||||
}
|
}
|
||||||
scratch_end(scratch);
|
scratch_end(scratch);
|
||||||
String8 result = str8_copy(ainfo, str8_cstring(buffer));
|
String8 result = alloc_str8_copy(ainfo, str8_cstring(buffer));
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -211,7 +211,7 @@ os_get_current_path(Arena* arena) {
|
|||||||
inline String8
|
inline String8
|
||||||
os_get_current_path(AllocatorInfo ainfo) {
|
os_get_current_path(AllocatorInfo ainfo) {
|
||||||
char* cwdir = getcwd(0, 0);
|
char* cwdir = getcwd(0, 0);
|
||||||
String8 string = str8_copy(ainfo, str8_cstring(cwdir));
|
String8 string = alloc_str8_copy(ainfo, str8_cstring(cwdir));
|
||||||
return string;
|
return string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -315,7 +315,7 @@ os_string_from_guid(Arena* arena, OS_Guid guid) {
|
|||||||
|
|
||||||
inline String8
|
inline String8
|
||||||
os_string_from_guid(AllocatorInfo ainfo, OS_Guid guid) {
|
os_string_from_guid(AllocatorInfo ainfo, OS_Guid guid) {
|
||||||
String8 result = str8f(ainfo,
|
String8 result = alloc_str8f(ainfo,
|
||||||
"%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X",
|
"%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X",
|
||||||
guid.data1,
|
guid.data1,
|
||||||
guid.data2,
|
guid.data2,
|
||||||
|
|||||||
+142
-2
@@ -438,6 +438,10 @@ word AllocatorQueryFlags, MD_AllocatorQueryFlags
|
|||||||
word AllocatorProc, MD_AllocatorProc
|
word AllocatorProc, MD_AllocatorProc
|
||||||
word AllocatorInfo, MD_AllocatorInfo
|
word AllocatorInfo, MD_AllocatorInfo
|
||||||
|
|
||||||
|
namespace AllocatorType_, MD_AllocatorType_
|
||||||
|
namespace AllocatorMode_, MD_AllocatorMode_
|
||||||
|
namespace AllocatorQuery_, MD_AllocatorQuery_
|
||||||
|
|
||||||
word default_allocator, md_default_allocator
|
word default_allocator, md_default_allocator
|
||||||
|
|
||||||
word ALLOCATOR_FLAG_CLEAR_TO_ZERO, MD_ALLOCATOR_FLAG_CLEAR_TO_ZERO
|
word ALLOCATOR_FLAG_CLEAR_TO_ZERO, MD_ALLOCATOR_FLAG_CLEAR_TO_ZERO
|
||||||
@@ -473,6 +477,8 @@ namespace VARENA_, MD_VARENA_
|
|||||||
word VArenaFlags, MD_VArenaFlags
|
word VArenaFlags, MD_VArenaFlags
|
||||||
word VArena, MD_VArena
|
word VArena, MD_VArena
|
||||||
|
|
||||||
|
namespace VArenaFlag_, MD_VArenaFlag_
|
||||||
|
|
||||||
word varena__alloc, md_varena__alloc
|
word varena__alloc, md_varena__alloc
|
||||||
word varena_commit, md_varena_commit
|
word varena_commit, md_varena_commit
|
||||||
word varena_release, md_varena_release
|
word varena_release, md_varena_release
|
||||||
@@ -510,6 +516,12 @@ word Axis2, MD_Axis2
|
|||||||
word Corner, MD_corner
|
word Corner, MD_corner
|
||||||
word Dir2, MD_Dir2
|
word Dir2, MD_Dir2
|
||||||
|
|
||||||
|
namespace Dimension_, MD_Dimension_
|
||||||
|
namespace Side_, MD_Side_
|
||||||
|
namespace Axis2_, MD_Axis2_
|
||||||
|
namespace Corner_, MD_Corner_
|
||||||
|
namespace Dir2_, MD_Dir2_
|
||||||
|
|
||||||
word axis_from_dir2, md_axis_from_dir2
|
word axis_from_dir2, md_axis_from_dir2
|
||||||
word side_from_dir2, md_side_from_dir2
|
word side_from_dir2, md_side_from_dir2
|
||||||
|
|
||||||
@@ -837,7 +849,7 @@ word rgba_from_hsva, md_rgba_from_hsva
|
|||||||
word rgba_from_u32, md_rgba_from_u32
|
word rgba_from_u32, md_rgba_from_u32
|
||||||
word u32_from_rgba, md_u32_from_rgba
|
word u32_from_rgba, md_u32_from_rgba
|
||||||
|
|
||||||
word rgba_from_u32_lit_comp, md_rgba_from_u32_lit_comp
|
namespace rgba_from_, md_rgba_from_
|
||||||
|
|
||||||
word rng1s64_list_push, md_rng1s64_list_push
|
word rng1s64_list_push, md_rng1s64_list_push
|
||||||
word rng1s64_array_from_list, md_rng1s64_array_from_list
|
word rng1s64_array_from_list, md_rng1s64_array_from_list
|
||||||
@@ -846,11 +858,139 @@ word rng1s64_array_from_list_alloc, md_rng1s64_array_from_list_alloc
|
|||||||
|
|
||||||
// base/toolchain.h
|
// base/toolchain.h
|
||||||
|
|
||||||
|
word OperatingSystem, MD_OperatingSystem
|
||||||
|
word ImageType, MD_ImageType
|
||||||
|
word Arch, MD_Arch
|
||||||
|
word Compiler, MD_Compiler
|
||||||
|
|
||||||
|
namespace OperatingSystem_, MD_OperatingSystem_
|
||||||
|
namespace Image_, MD_Image_
|
||||||
|
namespace Arch_, MD_Arch_
|
||||||
|
namespace Compiler_, MD_Compiler_
|
||||||
|
|
||||||
|
word bit_size_from_arch, md_bit_size_from_arch
|
||||||
|
word max_instruction_size_from_arch, md_max_instruction_size_from_arch
|
||||||
|
word operating_system_from_context, md_operating_system_from_context
|
||||||
|
word arch_from_context, md_arch_from_contexto
|
||||||
|
word compiler_from_context, md_compiler_from_context
|
||||||
|
|
||||||
// base/strings.h
|
// base/strings.h
|
||||||
|
|
||||||
word String8, MD_String8
|
word String8, MD_String8
|
||||||
|
word String16, MD_String16
|
||||||
|
word String32, MD_String32
|
||||||
|
word String8Node, MD_String8Node
|
||||||
|
word String8MetaNode, MD_String8MetaNode
|
||||||
|
word String8List, MD_String8List
|
||||||
|
word String8Array, MD_String8Array
|
||||||
|
word StringMatchFlags, MD_StringMatchFlags
|
||||||
|
word StringSplitFlags, MD_StringSplitFlags
|
||||||
|
word PathStyle, MD_PathStyle
|
||||||
|
word StringJoin, MD_StringJoin
|
||||||
|
word UnicodeDecode, MD_UnicodeDecode
|
||||||
|
word FuzzyMatchRangeNode, MD_FuzzyMatchRangeNode
|
||||||
|
word FuzzyMatchRangeList, MD_FuzzyMatchRangeList
|
||||||
|
|
||||||
|
namespace StringMatchFlag_, MD_StringMatchFlag_
|
||||||
|
namespace StringSplitFlag_, MD_StringSplitFlag_
|
||||||
|
namespace PathStyle_, MD_PathStyle_
|
||||||
|
|
||||||
|
namepsace char_, md_char_
|
||||||
|
|
||||||
|
word cstring8_length, md_cstring8_length
|
||||||
|
word cstring16_length, md_cstring16_length
|
||||||
|
word cstring32_length, md_cstring32_length
|
||||||
|
word cstring_length, md_cstring_length
|
||||||
|
|
||||||
|
namespace str8_, md_str8_
|
||||||
|
namespace str16_, md_str16_
|
||||||
|
namespace str32_, md_str32_
|
||||||
|
namespace str_, md_str_
|
||||||
|
namespace upper_from_, md_upper_from
|
||||||
|
namespace lower_from_, md_lower_from
|
||||||
|
namespace backslashed_from_, md_backslashed_from_
|
||||||
|
namespace push_, md_push_
|
||||||
|
namespace alloc_, md_alloc_
|
||||||
|
namespace sign_from_, md_sign_from_
|
||||||
|
namespace u64_from_, md_u64_from_
|
||||||
|
namespace s64_from_, md_s64_from_
|
||||||
|
namespace u32_from_, md_u32_from_
|
||||||
|
namespace try_, md_try_
|
||||||
|
namespace f64_from_, md_f64_from_
|
||||||
|
namespace string_, md_string_
|
||||||
|
namespace guid_, md_guid_
|
||||||
|
namespace indented_from_, md_indented_from_
|
||||||
|
namespace escaped_from_, md_escaped_from_
|
||||||
|
namespace raw_from, md_raw_from_
|
||||||
|
namespace wrapped_lines_, md_wrapped_lines_
|
||||||
|
namespace hex_string_, md_hex_string_
|
||||||
|
//namespace rgba_from_, md_rgba_from_ (done by math.h)
|
||||||
|
namespace fuzzy_match_, md_fuzzy_match_
|
||||||
|
|
||||||
|
// base/thread_context.h
|
||||||
|
|
||||||
|
word TCTX, MD_TCTX
|
||||||
|
|
||||||
|
namespace tctx, md_tctx
|
||||||
|
|
||||||
|
word scratch_begin, md_scratch_begin
|
||||||
|
|
||||||
|
// base/command_line.h
|
||||||
|
|
||||||
|
word CmdLineOpt, MD_CmdLineOpt
|
||||||
|
word CmdLineOptList, MD_CmdLineOptList
|
||||||
|
word CmdLine, MD_CmdLine
|
||||||
|
|
||||||
|
namespace cmd_line_, md_cmd_line_
|
||||||
|
|
||||||
|
// base/markup.h
|
||||||
|
|
||||||
|
word set_thread_name, md_set_thread_name
|
||||||
|
word set_thread_namef, md_set_thread_namef
|
||||||
|
word thread_namef, md_thread_namef
|
||||||
|
word thread_name, md_thread_name
|
||||||
|
|
||||||
|
// base/logger.h
|
||||||
|
|
||||||
|
word LogMsgKind, MD_LogMsgKind
|
||||||
|
word LogScope, MD_LogScope
|
||||||
|
word LogScopeResult, MD_LogScopeResult
|
||||||
|
word Log, MD_Log
|
||||||
|
|
||||||
|
namespace LogMsgKind_, MD_LogMsgKind_
|
||||||
|
|
||||||
|
namespace LOG_DEFAULT_, MD_LOG_DEFAULT_
|
||||||
|
|
||||||
|
namespace log_, md_log_
|
||||||
|
|
||||||
|
// base/entry_point.h
|
||||||
|
|
||||||
|
word MainThread_EntryPointProc, MD_MainThread_EntryPointProc
|
||||||
|
word SupplementThread_EntryPointProc, MD_SupplementThread_EntryPointProc
|
||||||
|
|
||||||
|
word main_thread_base_entry_point, md_main_thread_base_entry_point
|
||||||
|
word supplement_thread_base_entry_point, md_supplement_thread_base_entry_point
|
||||||
|
|
||||||
|
// base/time.h
|
||||||
|
|
||||||
|
word WeekDay, MD_WeekDay
|
||||||
|
word Month, MD_Month
|
||||||
|
word DateTime, MD_DateTime
|
||||||
|
word DenseTime, MD_DenseTime
|
||||||
|
|
||||||
|
namespace WeekDay_, MD_WeekDay_
|
||||||
|
namespace Month_, MD_Month_
|
||||||
|
|
||||||
|
word dense_time_from_date_time, md_dense_time_from_date_time
|
||||||
|
|
||||||
|
namespace date_time_, md_date_time_
|
||||||
|
|
||||||
|
// base/file.h
|
||||||
|
|
||||||
|
word FilePropertyFlags, MD_FilePropertyFlags
|
||||||
|
word FileProperties, MD_FileProperties
|
||||||
|
|
||||||
|
namespace FilePropertyFlag_, MD_FilePropertyFlag_
|
||||||
|
|
||||||
// metadesk module
|
// metadesk module
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user