40 #define SR_lower "abcdefghijklmnopqrstuvwxyz" 41 #define SR_upper "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 42 #define SR_alpha SR_lower SR_upper 43 #define SR_space " \t\r\n\v\f" 44 #define SR_digit "0123456789" 45 #define SR_alnum SR_alpha SR_digit 47 #define __sr_printf(x, y) __attribute__((format(printf, (x), (y)))) 96 sr_asprintf(
const char *format, ...) __sr_printf(1, 2);
111 sr_struniq(
char **strings,
size_t *size);
177 char **error_message);
180 sr_string_to_file(const
char *filename,
182 char **error_message);
303 sr_parse_string(const
char **input, const
char *
string,
char **result);
333 sr_parse_uint64(const
char **input, uint64_t *result);
376 sr_skip_whitespace(const
char *s);
379 sr_skip_non_whitespace(const
char *s);
382 sr_skip_to_next_line_location(const
char **s,
int *line,
int *column);
388 sr_bin2hex(
char *dst, const
char *str,
int count);
391 sr_indent(const
char *input,
int spaces);
394 sr_indent_except_first_line(const
char *input,
int spaces);
397 sr_build_path(const
char *first_element, ...);
406 void (*callback)(
char*,
char*,
void*),
410 anonymize_path(
char *file_name);
int sr_parse_char_span(const char **input, const char *accept, char **result)
bool sr_parse_char_cspan(const char **input, const char *reject, char **result)
void * sr_mallocz(size_t size)
char * sr_strstr_location(const char *haystack, const char *needle, int *line, int *column)
int sr_skip_uint(const char **input)
size_t sr_strspn_location(const char *s, const char *accept, int *line, int *column)
char * sr_demangle_symbol(const char *sym)
char * sr_file_to_string(const char *filename, char **error_message)
void * sr_realloc(void *ptr, size_t size)
char * sr_asprintf(const char *format,...) __sr_printf(1
int sr_strcmp0(const char *s1, const char *s2)
int sr_skip_char_sequence(const char **input, char c)
int sr_parse_hexadecimal_0xuint64(const char **input, uint64_t *result)
char * sr_bin2hex(char *dst, const char *str, int count)
char * sr_strndup(const char *s, size_t n)
bool sr_skip_char(const char **input, char c)
void * sr_malloc_array(size_t elems, size_t elem_size)
char * sr_strchr_location(const char *s, int c, int *line, int *column)
int sr_ptrstrcmp(const void *s1, const void *s2)
char * sr_vasprintf(const char *format, va_list p)
bool sr_skip_char_limited(const char **input, const char *allowed)
void * sr_realloc_array(void *ptr, size_t elems, size_t elem_size)
void sr_parse_os_release(const char *input, void(*callback)(char *, char *, void *), void *data)
char char * sr_strdup(const char *s)
bool sr_parse_char_limited(const char **input, const char *allowed, char *result)
bool sr_parse_string(const char **input, const char *string, char **result)
int sr_skip_hexadecimal_uint(const char **input)
int sr_parse_hexadecimal_uint64(const char **input, uint64_t *result)
int sr_skip_char_span_location(const char **input, const char *chars, int *line, int *column)
int sr_skip_char_span(const char **input, const char *chars)
char sr_parse_digit(const char **input)
int sr_skip_string(const char **input, const char *string)
int sr_parse_uint32(const char **input, uint32_t *result)
void * sr_malloc(size_t size)
int sr_skip_hexadecimal_0xuint(const char **input)
int sr_skip_char_cspan(const char **input, const char *reject)