.
This commit is contained in:
parent
144312744c
commit
c10a3decd0
2 changed files with 33 additions and 15 deletions
44
colla.h
44
colla.h
|
|
@ -324,6 +324,8 @@ for_each (chunk, arr) {
|
||||||
(arr)->items[(arr)->count++] = (item); \
|
(arr)->items[(arr)->count++] = (item); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
#define darr_pop(arr) if ((arr) && (arr)->count) --(arr)->count
|
||||||
|
|
||||||
// STRING TYPES /////////////////////////////////
|
// STRING TYPES /////////////////////////////////
|
||||||
|
|
||||||
#define STR_NONE SIZE_MAX
|
#define STR_NONE SIZE_MAX
|
||||||
|
|
@ -487,6 +489,7 @@ usize strv_rfind_view(strview_t ctx, strview_t view, usize from_right);
|
||||||
bool char_is_space(char c);
|
bool char_is_space(char c);
|
||||||
bool char_is_alpha(char c);
|
bool char_is_alpha(char c);
|
||||||
bool char_is_num(char c);
|
bool char_is_num(char c);
|
||||||
|
bool char_is_hex(char c);
|
||||||
char char_lower(char c);
|
char char_lower(char c);
|
||||||
char char_upper(char c);
|
char char_upper(char c);
|
||||||
|
|
||||||
|
|
@ -603,23 +606,23 @@ bool ibstr_get_i16(ibstream_t *ib, i16 *out);
|
||||||
bool ibstr_get_i32(ibstream_t *ib, i32 *out);
|
bool ibstr_get_i32(ibstream_t *ib, i32 *out);
|
||||||
bool ibstr_get_i64(ibstream_t *ib, i64 *out);
|
bool ibstr_get_i64(ibstream_t *ib, i64 *out);
|
||||||
|
|
||||||
// SIMPLE REGEX /////////////////////////////////
|
// REGEX ////////////////////////////////////////
|
||||||
|
|
||||||
// only supports *, every star matches until the following character
|
// typedef struct rg_result_t rg_result_t;
|
||||||
// is found, e.g.
|
// struct rg_result_t {
|
||||||
// ab*e
|
// strview_t text;
|
||||||
// abcde
|
// i64 offset;
|
||||||
// matches (cd)
|
// };
|
||||||
|
//
|
||||||
|
// typedef struct rg_match_t rg_match_t;
|
||||||
|
// struct rg_match_t {
|
||||||
|
// rg_result_t matches[COLLA_RG_MAX_MATCHES];
|
||||||
|
// int count;
|
||||||
|
// bool found_match;
|
||||||
|
// };
|
||||||
|
|
||||||
typedef struct rg_match_t rg_match_t;
|
bool rg_matches(strview_t rg, strview_t text);
|
||||||
struct rg_match_t {
|
bool glob_matches(strview_t glob, strview_t text);
|
||||||
strview_t text[COLLA_RG_MAX_MATCHES];
|
|
||||||
int count;
|
|
||||||
bool matches;
|
|
||||||
};
|
|
||||||
|
|
||||||
rg_match_t rg_match(strview_t rg, strview_t text);
|
|
||||||
bool rg_match_easy(strview_t rg, strview_t text);
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////
|
/////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
@ -725,6 +728,7 @@ void os_abort(int code);
|
||||||
iptr os_get_last_error(void);
|
iptr os_get_last_error(void);
|
||||||
// NOT thread safe
|
// NOT thread safe
|
||||||
str_t os_get_error_string(iptr error);
|
str_t os_get_error_string(iptr error);
|
||||||
|
str_t os_get_last_error_string(void);
|
||||||
|
|
||||||
// == HANDLE ====================================
|
// == HANDLE ====================================
|
||||||
|
|
||||||
|
|
@ -824,6 +828,12 @@ oshandle_t os_stdin(void);
|
||||||
// windows specific
|
// windows specific
|
||||||
oshandle_t os_win_conout(void);
|
oshandle_t os_win_conout(void);
|
||||||
oshandle_t os_win_conin(void);
|
oshandle_t os_win_conin(void);
|
||||||
|
oshandle_t os_win_regopen(arena_t scratch, strview_t name);
|
||||||
|
void os_win_regclose(oshandle_t key);
|
||||||
|
str_t os_win_regread_str(arena_t *arena, oshandle_t key, strview_t value);
|
||||||
|
i64 os_win_regread_int(arena_t scratch, oshandle_t key, strview_t value);
|
||||||
|
str_t os_win_regkey_str(arena_t *arena, strview_t key, strview_t value);
|
||||||
|
|
||||||
|
|
||||||
#define print(...) fmt_print(__VA_ARGS__)
|
#define print(...) fmt_print(__VA_ARGS__)
|
||||||
#define println(...) os_log_print(__FILE__, __LINE__, LOG_BASIC, __VA_ARGS__)
|
#define println(...) os_log_print(__FILE__, __LINE__, LOG_BASIC, __VA_ARGS__)
|
||||||
|
|
@ -921,6 +931,7 @@ typedef strv_list_t os_cmd_t;
|
||||||
typedef struct os_cmd_options_t os_cmd_options_t;
|
typedef struct os_cmd_options_t os_cmd_options_t;
|
||||||
struct os_cmd_options_t {
|
struct os_cmd_options_t {
|
||||||
os_env_t *env;
|
os_env_t *env;
|
||||||
|
bool quiet;
|
||||||
// redirected if !NULL
|
// redirected if !NULL
|
||||||
oshandle_t *error;
|
oshandle_t *error;
|
||||||
oshandle_t *out;
|
oshandle_t *out;
|
||||||
|
|
@ -1035,6 +1046,8 @@ job_t *jq_pop_job(job_queue_t *queue);
|
||||||
|
|
||||||
// == ATOMICS ========================================
|
// == ATOMICS ========================================
|
||||||
|
|
||||||
|
#if !COLLA_NO_ATOMICS
|
||||||
|
|
||||||
i64 atomic_set_i64(i64 *dest, i64 val);
|
i64 atomic_set_i64(i64 *dest, i64 val);
|
||||||
i64 atomic_add_i64(i64 *dest, i64 val);
|
i64 atomic_add_i64(i64 *dest, i64 val);
|
||||||
i64 atomic_and_i64(i64 *dest, i64 val);
|
i64 atomic_and_i64(i64 *dest, i64 val);
|
||||||
|
|
@ -1044,6 +1057,7 @@ i64 atomic_inc_i64(i64 *dest);
|
||||||
i64 atomic_dec_i64(i64 *dest);
|
i64 atomic_dec_i64(i64 *dest);
|
||||||
i64 atomic_or_i64(i64 *dest, i64 val);
|
i64 atomic_or_i64(i64 *dest, i64 val);
|
||||||
i64 atomic_xor_i64(i64 *dest, i64 val);
|
i64 atomic_xor_i64(i64 *dest, i64 val);
|
||||||
|
#endif
|
||||||
|
|
||||||
// PARSERS //////////////////////////////////////
|
// PARSERS //////////////////////////////////////
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,8 @@
|
||||||
#define ntohll(x) be64toh(x)
|
#define ntohll(x) be64toh(x)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void os__log_init(void);
|
||||||
|
|
||||||
strview_t os__fg_colours[LOG_COL__COUNT] = {
|
strview_t os__fg_colours[LOG_COL__COUNT] = {
|
||||||
[LOG_COL_BLACK] = cstrv("\x1b[30m"),
|
[LOG_COL_BLACK] = cstrv("\x1b[30m"),
|
||||||
[LOG_COL_BLUE] = cstrv("\x1b[34m"),
|
[LOG_COL_BLUE] = cstrv("\x1b[34m"),
|
||||||
|
|
@ -132,6 +134,8 @@ void os_init(void) {
|
||||||
struct utsname name = {0};
|
struct utsname name = {0};
|
||||||
uname(&name);
|
uname(&name);
|
||||||
lin_data.info.machine_name = str(&lin_data.arena, name.nodename);
|
lin_data.info.machine_name = str(&lin_data.arena, name.nodename);
|
||||||
|
|
||||||
|
os__log_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void os_cleanup(void) {
|
void os_cleanup(void) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue