|
satyr 0.43
|
Various utility functions, macros and variables that do not fit elsewhere. More...
#include <stdlib.h>#include <stdarg.h>#include <stdbool.h>#include <stdint.h>#include <assert.h>#include <glib.h>Go to the source code of this file.
Macros | |
| #define | SR_lower "abcdefghijklmnopqrstuvwxyz" |
| #define | SR_upper "ABCDEFGHIJKLMNOPQRSTUVWXYZ" |
| #define | SR_alpha SR_lower SR_upper |
| #define | SR_space " \t\r\n\v\f" |
| #define | SR_digit "0123456789" |
| #define | SR_alnum SR_alpha SR_digit |
| #define | __sr_printf(x, y) |
Functions | |
| void | sr_struniq (char **strings, size_t *size) |
| int | sr_ptrstrcmp (const void *s1, const void *s2) |
| char * | sr_strchr_location (const char *s, int c, int *line, int *column) |
| char * | sr_strstr_location (const char *haystack, const char *needle, int *line, int *column) |
| size_t | sr_strspn_location (const char *s, const char *accept, int *line, int *column) |
| char * | sr_file_to_string (const char *filename, char **error_message) |
| bool | sr_string_to_file (const char *filename, char *contents, char **error_message) |
| bool | sr_skip_char (const char **input, char c) |
| bool | sr_skip_char_limited (const char **input, const char *allowed) |
| bool | sr_parse_char_limited (const char **input, const char *allowed, char *result) |
| int | sr_skip_char_sequence (const char **input, char c) |
| int | sr_skip_char_span (const char **input, const char *chars) |
| int | sr_skip_char_span_location (const char **input, const char *chars, int *line, int *column) |
| int | sr_parse_char_span (const char **input, const char *accept, char **result) |
| int | sr_skip_char_cspan (const char **input, const char *reject) |
| bool | sr_parse_char_cspan (const char **input, const char *reject, char **result) |
| int | sr_skip_string (const char **input, const char *string) |
| bool | sr_parse_string (const char **input, const char *string, char **result) |
| char | sr_parse_digit (const char **input) |
| int | sr_skip_uint (const char **input) |
| int | sr_parse_uint32 (const char **input, uint32_t *result) |
| int | sr_parse_uint64 (const char **input, uint64_t *result) |
| int | sr_skip_hexadecimal_uint (const char **input) |
| int | sr_skip_hexadecimal_0xuint (const char **input) |
| int | sr_parse_hexadecimal_uint64 (const char **input, uint64_t *result) |
| int | sr_parse_hexadecimal_0xuint64 (const char **input, uint64_t *result) |
| char * | sr_skip_whitespace (const char *s) |
| char * | sr_skip_non_whitespace (const char *s) |
| bool | sr_skip_to_next_line_location (const char **s, int *line, int *column) |
| char * | sr_bin2hex (char *dst, const char *str, int count) |
| char * | sr_indent (const char *input, int spaces) |
| char * | sr_indent_except_first_line (const char *input, int spaces) |
| char * | sr_build_path (const char *first_element,...) |
| void | sr_parse_os_release (const char *input, void(*callback)(char *, char *, void *), void *data) |
| char * | anonymize_path (char *file_name) |
| char * | sr_demangle_symbol (const char *sym) |
Variables | |
| bool | sr_debug_parser |
Various utility functions, macros and variables that do not fit elsewhere.
Definition in file utils.h.
| #define __sr_printf | ( | x, | |
| y ) |
| char * sr_bin2hex | ( | char * | dst, |
| const char * | str, | ||
| int | count ) |
| char * sr_demangle_symbol | ( | const char * | sym | ) |
Demangles C++ symbol.
References sr_demangle_symbol().
Referenced by sr_demangle_symbol().
| char * sr_file_to_string | ( | const char * | filename, |
| char ** | error_message ) |
Loads file contents to a string.
References sr_file_to_string().
Referenced by sr_file_to_string().
| bool sr_parse_char_cspan | ( | const char ** | input, |
| const char * | reject, | ||
| char ** | result ) |
If the input contains characters which are not in string reject, create a string from this sequence and store it to the result, move the input pointer after the sequence, and return true. Otherwise do not modify the input and return false.
If this function returns true, the caller is responsible to free the result.
References sr_parse_char_cspan().
Referenced by sr_parse_char_cspan().
| bool sr_parse_char_limited | ( | const char ** | input, |
| const char * | allowed, | ||
| char * | result ) |
If the input contains one of allowed characters, store the character to the result, move the input pointer after that character, and return true. Otherwise do not modify the input and return false.
References sr_parse_char_limited().
Referenced by sr_parse_char_limited().
| int sr_parse_char_span | ( | const char ** | input, |
| const char * | accept, | ||
| char ** | result ) |
If the input contains one or more characters from string accept, create a string from this sequence and store it to the result, move the input pointer after the sequence, and return the lenght of the sequence. Otherwise do not modify the input and return 0.
If this function returns nonzero value, the caller is responsible to free the result.
References sr_parse_char_span().
Referenced by sr_parse_char_span().
| char sr_parse_digit | ( | const char ** | input | ) |
If the input contains digit 0-9, return it as a character and move the input pointer after it. Otherwise return '\0' and do not modify the input.
References sr_parse_digit().
Referenced by sr_parse_digit().
| int sr_parse_hexadecimal_0xuint64 | ( | const char ** | input, |
| uint64_t * | result ) |
If the input contains 0x[0-9a-f]+, parse the number, and move the input pointer after it. Otherwise do not modify the input.
References sr_parse_hexadecimal_0xuint64().
Referenced by sr_parse_hexadecimal_0xuint64().
| int sr_parse_hexadecimal_uint64 | ( | const char ** | input, |
| uint64_t * | result ) |
If the input contains [0-9a-f]+, parse the number, and move the input pointer after it. Otherwise do not modify the input.
References sr_parse_hexadecimal_uint64().
Referenced by sr_parse_hexadecimal_uint64().
| void sr_parse_os_release | ( | const char * | input, |
| void(* | callback )(char *, char *, void *), | ||
| void * | data ) |
Parses /etc/os-release file, see http://www.freedesktop.org/software/systemd/man/os-release.html for more information. Calls callback for each key-value pair it reads from the file.
References sr_parse_os_release().
Referenced by sr_parse_os_release().
| bool sr_parse_string | ( | const char ** | input, |
| const char * | string, | ||
| char ** | result ) |
If the input contains the string, copy the string to result, move the input pointer after the string, and return true. Otherwise do not modify the input and return false.
If this function returns true, the caller is responsible to free the result.
References sr_parse_string().
Referenced by sr_parse_string().
| int sr_parse_uint32 | ( | const char ** | input, |
| uint32_t * | result ) |
If the input contains [0-9]+, parse it, move the input pointer after the number.
References sr_parse_uint32().
Referenced by sr_parse_uint32().
| int sr_ptrstrcmp | ( | const void * | s1, |
| const void * | s2 ) |
A wrapper around g_strcmp0 that takes pointers to strings. Can be used as a paramter to qsort or bsearch.
References sr_ptrstrcmp().
Referenced by sr_ptrstrcmp().
| bool sr_skip_char | ( | const char ** | input, |
| char | c ) |
If the input contains character c in the current positon, move the input pointer after the character, and return true. Otherwise do not modify the input and return false.
References sr_skip_char().
Referenced by sr_skip_char().
| int sr_skip_char_cspan | ( | const char ** | input, |
| const char * | reject ) |
If the input contains one or more characters which are not presentin string reject, move the input pointer after the sequence. Otherwise do not modify the input.
References sr_skip_char_cspan().
Referenced by sr_skip_char_cspan().
| bool sr_skip_char_limited | ( | const char ** | input, |
| const char * | allowed ) |
If the input contains one of allowed characters, move the input pointer after that character, and return true. Otherwise do not modify the input and return false.
References sr_skip_char_limited().
Referenced by sr_skip_char_limited().
| int sr_skip_char_sequence | ( | const char ** | input, |
| char | c ) |
If the input contains the character c one or more times, update it so that the characters are skipped. Returns the number of characters skipped, thus zero if **input does not contain c.
References sr_skip_char_sequence().
Referenced by sr_skip_char_sequence().
| int sr_skip_char_span | ( | const char ** | input, |
| const char * | chars ) |
If the input contains one or more characters from string chars, move the input pointer after the sequence. Otherwise do not modify the input.
References sr_skip_char_span().
Referenced by sr_skip_char_span().
| int sr_skip_char_span_location | ( | const char ** | input, |
| const char * | chars, | ||
| int * | line, | ||
| int * | column ) |
If the input contains one or more characters from string chars, move the input pointer after the sequence. Otherwise do not modify the input.
| line | Starts from 1. Corresponds to the returned number. |
| column | Starts from 0. Corresponds to the returned number. |
References sr_skip_char_span_location().
Referenced by sr_skip_char_span_location().
| int sr_skip_hexadecimal_0xuint | ( | const char ** | input | ) |
If the input contains 0x[0-9a-f]+, move the input pointer after that.
References sr_skip_hexadecimal_0xuint().
Referenced by sr_skip_hexadecimal_0xuint().
| int sr_skip_hexadecimal_uint | ( | const char ** | input | ) |
If the input contains [0-9a-f]+, move the input pointer after that.
References sr_skip_hexadecimal_uint().
Referenced by sr_skip_hexadecimal_uint().
| int sr_skip_string | ( | const char ** | input, |
| const char * | string ) |
If the input contains the string, move the input pointer after the sequence. Otherwise do not modify the input.
References sr_skip_string().
Referenced by sr_skip_string().
| int sr_skip_uint | ( | const char ** | input | ) |
If the input contains [0-9]+, move the input pointer after the number.
References sr_skip_uint().
Referenced by sr_skip_uint().
| char * sr_strchr_location | ( | const char * | s, |
| int | c, | ||
| int * | line, | ||
| int * | column ) |
A strchr() variant providing line and column in the string s indicating where the char c was found.
| line | Starts from 1. Its value is valid only when this function does not return NULL. |
| column | Starts from 0. Its value is valid only when this function does not return NULL. |
References sr_strchr_location().
Referenced by sr_strchr_location().
| size_t sr_strspn_location | ( | const char * | s, |
| const char * | accept, | ||
| int * | line, | ||
| int * | column ) |
A strspn() variant providing line and column of the string s which corresponds to the returned length.
| line | Starts from 1. |
| column | Starts from 0. |
References sr_strspn_location().
Referenced by sr_strspn_location().
| char * sr_strstr_location | ( | const char * | haystack, |
| const char * | needle, | ||
| int * | line, | ||
| int * | column ) |
A strstr() variant providing line and column of the haystick indicating where the needle was found.
| line | Starts from 1. Its value is valid only when this function does not return NULL. |
| column | Starts from 0. Its value is valid only when this function does not return NULL. |
References sr_strstr_location().
Referenced by sr_strstr_location().
|
extern |
Debugging output to stdout while parsing. Default value is false.