recutils
Data Structures | Macros | Typedefs | Enumerations | Functions
rec.h File Reference
#include <stdbool.h>
#include <stdio.h>
#include <fcntl.h>

Go to the source code of this file.

Data Structures

struct  rec_mset_list_iter_t
 
struct  rec_mset_iterator_t
 

Macros

#define REC_VERSION_MAJOR   1
 
#define REC_VERSION_MINOR   0
 
#define REC_VERSION_STRING   "1.0"
 
#define MSET_ANY   0
 
#define REC_FNAME_RE   "[a-zA-Z%][a-zA-Z0-9_]*"
 
#define REC_TYPE_NAME_RE   "[a-zA-Z][a-zA-Z0-9_-]*"
 
#define REC_URL_REGEXP   "(file|http|ftp|https)://[^ \t]+"
 
#define REC_FILE_REGEXP   "(/?[^/ \t\n]+)+"
 
#define REC_FNAME_FEX_RE   REC_FNAME_RE "(\\." REC_FNAME_RE ")?"
 
#define REC_FNAME_LIST_RE   REC_FNAME_RE "([ \n\t]+" REC_FNAME_RE ")*"
 
#define REC_FNAME_LIST_CS_RE   REC_FNAME_FEX_RE "(," REC_FNAME_FEX_RE ")*"
 
#define REC_FNAME_SUB_RE   REC_FNAME_FEX_RE "(\\[[0-9]+(-[0-9]+)?\\])?"
 
#define REC_FEX_FUNCTION_NAME   "[a-zA-Z_][a-zA-Z0-9_]*"
 
#define REC_FEX_CALL   REC_FEX_FUNCTION_NAME "\\‍(" REC_FNAME_FEX_RE "\\‍)"
 
#define REC_FNAME_LIST_SUB_ELEM_RE   "(" REC_FNAME_SUB_RE "|" REC_FEX_CALL ")" "(:" REC_FNAME_FEX_RE ")?"
 
#define REC_FNAME_LIST_SUB_RE   REC_FNAME_LIST_SUB_ELEM_RE "(," REC_FNAME_LIST_SUB_ELEM_RE ")*"
 
#define MSET_FIELD   1
 
#define MSET_COMMENT   2
 
#define REC_RECORD_TYPE_RE   REC_FNAME_RE
 
#define MSET_RECORD   1
 
#define REC_F_DESCRIPTOR   1
 
#define REC_F_ICASE   2
 
#define REC_F_UNIQ   4
 
#define REC_Q_NOINDEX   ((size_t)-1)
 
#define REC_F_NOAUTO   8
 
#define REC_F_COMMENT_OUT   16
 
#define REC_SET_ACT_NONE   0
 
#define REC_SET_ACT_RENAME   1
 
#define REC_SET_ACT_SET   2
 
#define REC_SET_ACT_ADD   3
 
#define REC_SET_ACT_SETADD   4
 
#define REC_SET_ACT_DELETE   5
 
#define REC_SET_ACT_COMMENT   6
 
#define REC_ENCRYPTED_PREFIX   "encrypted-"
 

Typedefs

typedef struct rec_mset_srec_mset_t
 
typedef struct rec_mset_elem_srec_mset_elem_t
 
typedef void(* rec_mset_disp_fn_t) (void *data)
 
typedef bool(* rec_mset_equal_fn_t) (void *data1, void *data2)
 
typedef void *(* rec_mset_dup_fn_t) (void *data)
 
typedef int(* rec_mset_compare_fn_t) (void *data1, void *data2, int type2)
 
typedef int rec_mset_type_t
 
typedef struct rec_buf_srec_buf_t
 
typedef char * rec_comment_t
 
typedef struct rec_fex_srec_fex_t
 
typedef struct rec_fex_elem_srec_fex_elem_t
 
typedef struct rec_type_srec_type_t
 
typedef struct rec_type_reg_srec_type_reg_t
 
typedef struct rec_field_srec_field_t
 
typedef struct rec_record_srec_record_t
 
typedef struct rec_rset_srec_rset_t
 
typedef struct rec_sex_srec_sex_t
 
typedef struct rec_db_srec_db_t
 
typedef struct rec_aggregate_reg_srec_aggregate_reg_t
 
typedef struct rec_parser_srec_parser_t
 
typedef struct rec_writer_srec_writer_t
 
typedef enum rec_writer_mode_e rec_writer_mode_t
 
typedef char *(* rec_aggregate_t) (rec_rset_t rset, rec_record_t record, const char *field_name)
 

Enumerations

enum  rec_std_field_e {
  REC_FIELD_AUTO = 0 , REC_FIELD_CONFIDENTIAL , REC_FIELD_KEY , REC_FIELD_MANDATORY ,
  REC_FIELD_PROHIBIT , REC_FIELD_REC , REC_FIELD_SIZE , REC_FIELD_SORT ,
  REC_FIELD_TYPE , REC_FIELD_TYPEDEF , REC_FIELD_UNIQUE , REC_FIELD_CONSTRAINT ,
  REC_FIELD_ALLOWED
}
 
enum  rec_fex_kind_e { REC_FEX_SIMPLE , REC_FEX_CSV , REC_FEX_SUBSCRIPTS }
 
enum  rec_type_kind_e {
  REC_TYPE_NONE = 0 , REC_TYPE_INT , REC_TYPE_BOOL , REC_TYPE_RANGE ,
  REC_TYPE_REAL , REC_TYPE_SIZE , REC_TYPE_LINE , REC_TYPE_REGEXP ,
  REC_TYPE_DATE , REC_TYPE_ENUM , REC_TYPE_FIELD , REC_TYPE_EMAIL ,
  REC_TYPE_UUID , REC_TYPE_REC
}
 
enum  rec_writer_mode_e { REC_WRITER_NORMAL , REC_WRITER_VALUES , REC_WRITER_VALUES_ROW , REC_WRITER_SEXP }
 

Functions

void rec_init (void)
 
void rec_fini (void)
 
rec_mset_t rec_mset_new (void)
 
void rec_mset_destroy (rec_mset_t mset)
 
rec_mset_t rec_mset_dup (rec_mset_t mset)
 
bool rec_mset_type_p (rec_mset_t mset, rec_mset_type_t type)
 
rec_mset_type_t rec_mset_register_type (rec_mset_t mset, char *name, rec_mset_disp_fn_t disp_fn, rec_mset_equal_fn_t equal_fn, rec_mset_dup_fn_t dup_fn, rec_mset_compare_fn_t compare_fn)
 
size_t rec_mset_count (rec_mset_t mset, rec_mset_type_t type)
 
void * rec_mset_get_at (rec_mset_t mset, rec_mset_type_t type, size_t position)
 
rec_mset_elem_t rec_mset_insert_at (rec_mset_t mset, rec_mset_type_t type, void *data, size_t position)
 
rec_mset_elem_t rec_mset_insert_after (rec_mset_t mset, rec_mset_type_t type, void *data, rec_mset_elem_t elem)
 
rec_mset_elem_t rec_mset_append (rec_mset_t mset, rec_mset_type_t elem_type, void *data, rec_mset_type_t type)
 
rec_mset_elem_t rec_mset_add_sorted (rec_mset_t mset, rec_mset_type_t type, void *data)
 
bool rec_mset_remove_at (rec_mset_t mset, rec_mset_type_t type, size_t position)
 
bool rec_mset_remove_elem (rec_mset_t mset, rec_mset_elem_t elem)
 
rec_mset_elem_t rec_mset_search (rec_mset_t mset, void *data)
 
rec_mset_iterator_t rec_mset_iterator (rec_mset_t mset)
 
bool rec_mset_iterator_next (rec_mset_iterator_t *iterator, rec_mset_type_t type, const void **data, rec_mset_elem_t *elem)
 
void rec_mset_iterator_free (rec_mset_iterator_t *iterator)
 
rec_mset_type_t rec_mset_elem_type (rec_mset_elem_t elem)
 
void rec_mset_elem_set_type (rec_mset_elem_t elem, rec_mset_type_t type)
 
void * rec_mset_elem_data (rec_mset_elem_t elem)
 
void rec_mset_elem_set_data (rec_mset_elem_t elem, void *data)
 
bool rec_mset_elem_equal_p (rec_mset_elem_t elem1, rec_mset_elem_t elem2)
 
void * rec_mset_elem_dup_data (rec_mset_elem_t elem)
 
rec_mset_t rec_mset_sort (rec_mset_t mset)
 
void rec_mset_dump (rec_mset_t mset)
 
rec_buf_t rec_buf_new (char **data, size_t *size)
 
void rec_buf_close (rec_buf_t buffer)
 
int rec_buf_putc (int c, rec_buf_t buffer)
 
int rec_buf_puts (const char *s, rec_buf_t buffer)
 
void rec_buf_rewind (rec_buf_t buf, int n)
 
rec_comment_t rec_comment_new (char *text)
 
void rec_comment_destroy (rec_comment_t comment)
 
rec_comment_t rec_comment_dup (rec_comment_t comment)
 
char * rec_comment_text (rec_comment_t comment)
 
void rec_comment_set_text (rec_comment_t *comment, char *text)
 
bool rec_comment_equal_p (rec_comment_t comment1, rec_comment_t comment2)
 
bool rec_field_name_equal_p (const char *name1, const char *name2)
 
bool rec_field_name_p (const char *str)
 
char * rec_field_name_normalise (const char *str)
 
const char * rec_std_field_name (enum rec_std_field_e std_field)
 
rec_fex_t rec_fex_new (const char *str, enum rec_fex_kind_e kind)
 
void rec_fex_destroy (rec_fex_t fex)
 
rec_fex_t rec_fex_dup (rec_fex_t fex)
 
size_t rec_fex_size (rec_fex_t fex)
 
bool rec_fex_member_p (rec_fex_t fex, const char *fname, int min, int max)
 
rec_fex_elem_t rec_fex_get (rec_fex_t fex, size_t position)
 
rec_fex_elem_t rec_fex_append (rec_fex_t fex, const char *fname, int min, int max)
 
bool rec_fex_all_calls_p (rec_fex_t fex)
 
const char * rec_fex_elem_field_name (rec_fex_elem_t elem)
 
bool rec_fex_elem_set_field_name (rec_fex_elem_t elem, const char *fname)
 
int rec_fex_elem_min (rec_fex_elem_t elem)
 
int rec_fex_elem_max (rec_fex_elem_t elem)
 
const char * rec_fex_elem_rewrite_to (rec_fex_elem_t elem)
 
const char * rec_fex_elem_function_name (rec_fex_elem_t elem)
 
void ** rec_fex_elem_function_data (rec_fex_elem_t elem)
 
bool rec_fex_check (const char *str, enum rec_fex_kind_e kind)
 
void rec_fex_sort (rec_fex_t fex)
 
char * rec_fex_str (rec_fex_t fex, enum rec_fex_kind_e kind)
 
rec_type_t rec_type_new (const char *str)
 
void rec_type_destroy (rec_type_t type)
 
bool rec_type_descr_p (const char *str)
 
enum rec_type_kind_e rec_type_kind (rec_type_t type)
 
char * rec_type_kind_str (rec_type_t type)
 
int rec_type_min (rec_type_t type)
 
int rec_type_max (rec_type_t type)
 
const char * rec_type_rec (rec_type_t type)
 
const char * rec_type_name (rec_type_t type)
 
void rec_type_set_name (rec_type_t type, const char *name)
 
bool rec_type_equal_p (rec_type_t type1, rec_type_t type2)
 
bool rec_type_check (rec_type_t type, const char *str, char **error_str)
 
int rec_type_values_cmp (rec_type_t type, const char *val1, const char *val2)
 
rec_type_reg_t rec_type_reg_new (void)
 
void rec_type_reg_destroy (rec_type_reg_t reg)
 
void rec_type_reg_add (rec_type_reg_t reg, rec_type_t type)
 
void rec_type_reg_add_synonym (rec_type_reg_t reg, const char *type_name, const char *to_name)
 
rec_type_t rec_type_reg_get (rec_type_reg_t reg, const char *type_name)
 
rec_field_t rec_field_new (const char *name, const char *value)
 
void rec_field_destroy (rec_field_t field)
 
rec_field_t rec_field_dup (rec_field_t field)
 
bool rec_field_equal_p (rec_field_t field1, rec_field_t field2)
 
const char * rec_field_name (rec_field_t field)
 
bool rec_field_set_name (rec_field_t field, const char *name)
 
const char * rec_field_value (rec_field_t field)
 
bool rec_field_set_value (rec_field_t field, const char *value)
 
const char * rec_field_source (rec_field_t field)
 
bool rec_field_set_source (rec_field_t field, const char *source)
 
size_t rec_field_location (rec_field_t field)
 
const char * rec_field_location_str (rec_field_t field)
 
bool rec_field_set_location (rec_field_t field, size_t location)
 
size_t rec_field_char_location (rec_field_t field)
 
const char * rec_field_char_location_str (rec_field_t field)
 
bool rec_field_set_char_location (rec_field_t field, size_t location)
 
void rec_field_set_mark (rec_field_t field, int mark)
 
int rec_field_mark (rec_field_t field)
 
rec_comment_t rec_field_to_comment (rec_field_t field)
 
rec_record_t rec_record_new (void)
 
void rec_record_destroy (rec_record_t record)
 
rec_record_t rec_record_dup (rec_record_t record)
 
bool rec_record_subset_p (rec_record_t record1, rec_record_t record2)
 
bool rec_record_equal_p (rec_record_t record1, rec_record_t record2)
 
rec_mset_t rec_record_mset (rec_record_t record)
 
size_t rec_record_num_elems (rec_record_t record)
 
size_t rec_record_num_fields (rec_record_t record)
 
size_t rec_record_num_comments (rec_record_t record)
 
char * rec_record_source (rec_record_t record)
 
void rec_record_set_source (rec_record_t record, char *source)
 
size_t rec_record_location (rec_record_t record)
 
char * rec_record_location_str (rec_record_t record)
 
void rec_record_set_location (rec_record_t record, size_t location)
 
size_t rec_record_char_location (rec_record_t record)
 
char * rec_record_char_location_str (rec_record_t record)
 
void rec_record_set_char_location (rec_record_t record, size_t char_location)
 
size_t rec_record_get_field_index (rec_record_t record, rec_field_t field)
 
size_t rec_record_get_field_index_by_name (rec_record_t record, rec_field_t field)
 
bool rec_record_contains_value (rec_record_t record, const char *value, bool case_insensitive)
 
bool rec_record_contains_field (rec_record_t record, const char *field_name, const char *field_value)
 
bool rec_record_field_p (rec_record_t record, const char *field_name)
 
size_t rec_record_get_num_fields_by_name (rec_record_t record, const char *field_name)
 
rec_field_t rec_record_get_field_by_name (rec_record_t record, const char *field_name, size_t n)
 
void rec_record_remove_field_by_name (rec_record_t record, const char *field_name, size_t n)
 
void * rec_record_container (rec_record_t record)
 
void rec_record_set_container (rec_record_t record, void *container)
 
rec_comment_t rec_record_to_comment (rec_record_t record)
 
void rec_record_uniq (rec_record_t record)
 
void rec_record_append (rec_record_t dest_record, rec_record_t src_record)
 
void rec_record_reset_marks (rec_record_t record)
 
bool rec_record_mark_field (rec_record_t record, rec_field_t field, int mark)
 
int rec_record_field_mark (rec_record_t record, rec_field_t field)
 
rec_rset_t rec_rset_new (void)
 
void rec_rset_destroy (rec_rset_t rset)
 
rec_rset_t rec_rset_dup (rec_rset_t rset)
 
rec_mset_t rec_rset_mset (rec_rset_t rset)
 
size_t rec_rset_num_elems (rec_rset_t rset)
 
size_t rec_rset_num_records (rec_rset_t rset)
 
size_t rec_rset_num_comments (rec_rset_t rset)
 
rec_record_t rec_rset_descriptor (rec_rset_t rset)
 
void rec_rset_set_descriptor (rec_rset_t rset, rec_record_t record)
 
size_t rec_rset_descriptor_pos (rec_rset_t rset)
 
void rec_rset_set_descriptor_pos (rec_rset_t rset, size_t position)
 
char * rec_rset_url (rec_rset_t rset)
 
char * rec_rset_type (rec_rset_t rset)
 
void rec_rset_set_type (rec_rset_t rset, const char *type)
 
rec_type_reg_t rec_rset_get_type_reg (rec_rset_t rset)
 
rec_type_t rec_rset_get_field_type (rec_rset_t rset, const char *field_name)
 
size_t rec_rset_min_records (rec_rset_t rset)
 
size_t rec_rset_max_records (rec_rset_t rset)
 
size_t rec_rset_num_sex_constraints (rec_rset_t rset)
 
rec_sex_t rec_rset_sex_constraint (rec_rset_t rset, size_t index)
 
void rec_rset_rename_field (rec_rset_t rset, const char *field_name, const char *new_field_name)
 
rec_fex_t rec_rset_auto (rec_rset_t rset)
 
const char * rec_rset_key (rec_rset_t rset)
 
rec_fex_t rec_rset_confidential (rec_rset_t rset)
 
bool rec_rset_field_confidential_p (rec_rset_t rset, const char *field_name)
 
char * rec_rset_source (rec_rset_t rset)
 
bool rec_rset_set_order_by_fields (rec_rset_t rset, rec_fex_t field_names)
 
rec_fex_t rec_rset_order_by_fields (rec_rset_t rset)
 
rec_rset_t rec_rset_sort (rec_rset_t rset, rec_fex_t sort_by)
 
rec_rset_t rec_rset_group (rec_rset_t rset, rec_fex_t group_by)
 
rec_rset_t rec_rset_add_auto_fields (rec_rset_t rset, rec_record_t record)
 
rec_db_t rec_db_new (void)
 
void rec_db_destroy (rec_db_t db)
 
size_t rec_db_size (rec_db_t db)
 
rec_rset_t rec_db_get_rset (rec_db_t db, size_t position)
 
bool rec_db_insert_rset (rec_db_t db, rec_rset_t rset, size_t position)
 
bool rec_db_remove_rset (rec_db_t db, size_t position)
 
bool rec_db_type_p (rec_db_t db, const char *type)
 
rec_rset_t rec_db_get_rset_by_type (rec_db_t db, const char *type)
 
rec_aggregate_reg_t rec_db_aggregates (rec_db_t db)
 
rec_rset_t rec_db_query (rec_db_t db, const char *type, const char *join, size_t *index, rec_sex_t sex, const char *fast_string, size_t random, rec_fex_t fex, const char *password, rec_fex_t group_by, rec_fex_t sort_by, int flags)
 
bool rec_db_insert (rec_db_t db, const char *type, size_t *index, rec_sex_t sex, const char *fast_string, size_t random, const char *password, rec_record_t record, int flags)
 
bool rec_db_delete (rec_db_t db, const char *type, size_t *index, rec_sex_t sex, const char *fast_string, size_t random, int flags)
 
bool rec_db_set (rec_db_t db, const char *type, size_t *index, rec_sex_t sex, const char *fast_string, size_t random, rec_fex_t fex, int action, const char *action_arg, int flags)
 
int rec_int_check_db (rec_db_t db, bool check_descriptors_p, bool remote_descriptors_p, rec_buf_t errors)
 
int rec_int_check_rset (rec_db_t db, rec_rset_t rset, bool check_descriptor_p, bool remote_descriptor_p, rec_buf_t errors)
 
int rec_int_check_record (rec_db_t db, rec_rset_t rset, rec_record_t orig_rec, rec_record_t rec, rec_buf_t errors)
 
bool rec_int_check_field_type (rec_db_t db, rec_rset_t rset, rec_field_t field, rec_buf_t errors)
 
rec_parser_t rec_parser_new (FILE *in, const char *source)
 
rec_parser_t rec_parser_new_mem (const char *buffer, size_t size, const char *source)
 
rec_parser_t rec_parser_new_str (const char *buffer, const char *source)
 
void rec_parser_destroy (rec_parser_t parser)
 
bool rec_parse_field_name (rec_parser_t parser, char **fname)
 
char * rec_parse_field_name_str (const char *str)
 
bool rec_parse_field (rec_parser_t parser, rec_field_t *field)
 
bool rec_parse_record (rec_parser_t parser, rec_record_t *record)
 
rec_record_t rec_parse_record_str (const char *str)
 
bool rec_parse_rset (rec_parser_t parser, rec_rset_t *rset)
 
bool rec_parse_db (rec_parser_t parser, rec_db_t *db)
 
bool rec_parser_eof (rec_parser_t parser)
 
bool rec_parser_error (rec_parser_t parser)
 
void rec_parser_reset (rec_parser_t parser)
 
void rec_parser_perror (rec_parser_t parser, const char *fmt,...)
 
bool rec_parser_seek (rec_parser_t parser, size_t line_number, size_t position)
 
long rec_parser_tell (rec_parser_t parser)
 
rec_writer_t rec_writer_new (FILE *out)
 
rec_writer_t rec_writer_new_str (char **str, size_t *str_size)
 
void rec_writer_destroy (rec_writer_t writer)
 
void rec_writer_set_collapse (rec_writer_t writer, bool value)
 
void rec_writer_set_skip_comments (rec_writer_t writer, bool value)
 
void rec_writer_set_mode (rec_writer_t writer, enum rec_writer_mode_e mode)
 
bool rec_writer_eof (rec_writer_t writer)
 
bool rec_write_string (rec_writer_t writer, const char *str)
 
bool rec_write_comment (rec_writer_t writer, rec_comment_t comment)
 
bool rec_write_field_name (rec_writer_t writer, const char *field_name)
 
bool rec_write_field (rec_writer_t writer, rec_field_t field)
 
bool rec_write_record (rec_writer_t writer, rec_record_t record)
 
bool rec_write_rset (rec_writer_t writer, rec_rset_t rset)
 
bool rec_write_db (rec_writer_t writer, rec_db_t db)
 
char * rec_write_field_name_str (const char *field_name, rec_writer_mode_t mode)
 
char * rec_write_field_str (rec_field_t field, rec_writer_mode_t mode)
 
char * rec_write_comment_str (rec_comment_t comment, rec_writer_mode_t mode)
 
rec_sex_t rec_sex_new (bool case_insensitive)
 
void rec_sex_destroy (rec_sex_t sex)
 
bool rec_sex_compile (rec_sex_t sex, const char *expr)
 
bool rec_sex_eval (rec_sex_t sex, rec_record_t record, bool *status)
 
char * rec_sex_eval_str (rec_sex_t sex, rec_record_t record)
 
void rec_sex_print_ast (rec_sex_t sex)
 
bool rec_encrypt (char *in, size_t in_size, const char *password, char **out, size_t *out_size)
 
bool rec_encrypt_field (rec_field_t field, const char *password)
 
bool rec_encrypt_record (rec_rset_t rset, rec_record_t record, const char *password)
 
bool rec_decrypt (char *in, size_t in_size, const char *password, char **out, size_t *out_size)
 
bool rec_decrypt_field (rec_field_t field, const char *password)
 
bool rec_decrypt_record (rec_rset_t rset, rec_record_t record, const char *password)
 
rec_aggregate_reg_t rec_aggregate_reg_new (void)
 
void rec_aggregate_reg_destroy (rec_aggregate_reg_t func_reg)
 
bool rec_aggregate_reg_add (rec_aggregate_reg_t func_reg, const char *name, rec_aggregate_t function)
 
rec_aggregate_t rec_aggregate_reg_get (rec_aggregate_reg_t func_get, const char *name)
 
void rec_aggregate_reg_add_standard (rec_aggregate_reg_t func_reg)
 
bool rec_aggregate_std_p (const char *name)
 

Macro Definition Documentation

◆ MSET_ANY

#define MSET_ANY   0

◆ MSET_COMMENT

#define MSET_COMMENT   2

◆ MSET_FIELD

#define MSET_FIELD   1

◆ MSET_RECORD

#define MSET_RECORD   1

◆ REC_ENCRYPTED_PREFIX

#define REC_ENCRYPTED_PREFIX   "encrypted-"

◆ REC_F_COMMENT_OUT

#define REC_F_COMMENT_OUT   16

◆ REC_F_DESCRIPTOR

#define REC_F_DESCRIPTOR   1

◆ REC_F_ICASE

#define REC_F_ICASE   2

◆ REC_F_NOAUTO

#define REC_F_NOAUTO   8

◆ REC_F_UNIQ

#define REC_F_UNIQ   4

◆ REC_FEX_CALL

#define REC_FEX_CALL   REC_FEX_FUNCTION_NAME "\\‍(" REC_FNAME_FEX_RE "\\‍)"

◆ REC_FEX_FUNCTION_NAME

#define REC_FEX_FUNCTION_NAME   "[a-zA-Z_][a-zA-Z0-9_]*"

◆ REC_FILE_REGEXP

#define REC_FILE_REGEXP   "(/?[^/ \t\n]+)+"

◆ REC_FNAME_FEX_RE

#define REC_FNAME_FEX_RE   REC_FNAME_RE "(\\." REC_FNAME_RE ")?"

◆ REC_FNAME_LIST_CS_RE

#define REC_FNAME_LIST_CS_RE   REC_FNAME_FEX_RE "(," REC_FNAME_FEX_RE ")*"

◆ REC_FNAME_LIST_RE

#define REC_FNAME_LIST_RE   REC_FNAME_RE "([ \n\t]+" REC_FNAME_RE ")*"

◆ REC_FNAME_LIST_SUB_ELEM_RE

#define REC_FNAME_LIST_SUB_ELEM_RE   "(" REC_FNAME_SUB_RE "|" REC_FEX_CALL ")" "(:" REC_FNAME_FEX_RE ")?"

◆ REC_FNAME_LIST_SUB_RE

#define REC_FNAME_LIST_SUB_RE   REC_FNAME_LIST_SUB_ELEM_RE "(," REC_FNAME_LIST_SUB_ELEM_RE ")*"

◆ REC_FNAME_RE

#define REC_FNAME_RE   "[a-zA-Z%][a-zA-Z0-9_]*"

◆ REC_FNAME_SUB_RE

#define REC_FNAME_SUB_RE   REC_FNAME_FEX_RE "(\\[[0-9]+(-[0-9]+)?\\])?"

◆ REC_Q_NOINDEX

#define REC_Q_NOINDEX   ((size_t)-1)

◆ REC_RECORD_TYPE_RE

#define REC_RECORD_TYPE_RE   REC_FNAME_RE

◆ REC_SET_ACT_ADD

#define REC_SET_ACT_ADD   3

◆ REC_SET_ACT_COMMENT

#define REC_SET_ACT_COMMENT   6

◆ REC_SET_ACT_DELETE

#define REC_SET_ACT_DELETE   5

◆ REC_SET_ACT_NONE

#define REC_SET_ACT_NONE   0

◆ REC_SET_ACT_RENAME

#define REC_SET_ACT_RENAME   1

◆ REC_SET_ACT_SET

#define REC_SET_ACT_SET   2

◆ REC_SET_ACT_SETADD

#define REC_SET_ACT_SETADD   4

◆ REC_TYPE_NAME_RE

#define REC_TYPE_NAME_RE   "[a-zA-Z][a-zA-Z0-9_-]*"

◆ REC_URL_REGEXP

#define REC_URL_REGEXP   "(file|http|ftp|https)://[^ \t]+"

◆ REC_VERSION_MAJOR

#define REC_VERSION_MAJOR   1

◆ REC_VERSION_MINOR

#define REC_VERSION_MINOR   0

◆ REC_VERSION_STRING

#define REC_VERSION_STRING   "1.0"

Typedef Documentation

◆ rec_aggregate_reg_t

◆ rec_aggregate_t

typedef char*(* rec_aggregate_t) (rec_rset_t rset, rec_record_t record, const char *field_name)

◆ rec_buf_t

typedef struct rec_buf_s* rec_buf_t

◆ rec_comment_t

typedef char* rec_comment_t

◆ rec_db_t

typedef struct rec_db_s* rec_db_t

◆ rec_fex_elem_t

typedef struct rec_fex_elem_s* rec_fex_elem_t

◆ rec_fex_t

typedef struct rec_fex_s* rec_fex_t

◆ rec_field_t

typedef struct rec_field_s* rec_field_t

◆ rec_mset_compare_fn_t

typedef int(* rec_mset_compare_fn_t) (void *data1, void *data2, int type2)

◆ rec_mset_disp_fn_t

typedef void(* rec_mset_disp_fn_t) (void *data)

◆ rec_mset_dup_fn_t

typedef void*(* rec_mset_dup_fn_t) (void *data)

◆ rec_mset_elem_t

◆ rec_mset_equal_fn_t

typedef bool(* rec_mset_equal_fn_t) (void *data1, void *data2)

◆ rec_mset_t

typedef struct rec_mset_s* rec_mset_t

◆ rec_mset_type_t

typedef int rec_mset_type_t

◆ rec_parser_t

typedef struct rec_parser_s* rec_parser_t

◆ rec_record_t

typedef struct rec_record_s* rec_record_t

◆ rec_rset_t

typedef struct rec_rset_s* rec_rset_t

◆ rec_sex_t

typedef struct rec_sex_s* rec_sex_t

◆ rec_type_reg_t

typedef struct rec_type_reg_s* rec_type_reg_t

◆ rec_type_t

typedef struct rec_type_s* rec_type_t

◆ rec_writer_mode_t

◆ rec_writer_t

typedef struct rec_writer_s* rec_writer_t

Enumeration Type Documentation

◆ rec_fex_kind_e

Enumerator
REC_FEX_SIMPLE 
REC_FEX_CSV 
REC_FEX_SUBSCRIPTS 

◆ rec_std_field_e

Enumerator
REC_FIELD_AUTO 
REC_FIELD_CONFIDENTIAL 
REC_FIELD_KEY 
REC_FIELD_MANDATORY 
REC_FIELD_PROHIBIT 
REC_FIELD_REC 
REC_FIELD_SIZE 
REC_FIELD_SORT 
REC_FIELD_TYPE 
REC_FIELD_TYPEDEF 
REC_FIELD_UNIQUE 
REC_FIELD_CONSTRAINT 
REC_FIELD_ALLOWED 

◆ rec_type_kind_e

Enumerator
REC_TYPE_NONE 
REC_TYPE_INT 
REC_TYPE_BOOL 
REC_TYPE_RANGE 
REC_TYPE_REAL 
REC_TYPE_SIZE 
REC_TYPE_LINE 
REC_TYPE_REGEXP 
REC_TYPE_DATE 
REC_TYPE_ENUM 
REC_TYPE_FIELD 
REC_TYPE_EMAIL 
REC_TYPE_UUID 
REC_TYPE_REC 

◆ rec_writer_mode_e

Enumerator
REC_WRITER_NORMAL 
REC_WRITER_VALUES 
REC_WRITER_VALUES_ROW 
REC_WRITER_SEXP 

Function Documentation

◆ rec_aggregate_reg_add()

bool rec_aggregate_reg_add ( rec_aggregate_reg_t  func_reg,
const char *  name,
rec_aggregate_t  function 
)

◆ rec_aggregate_reg_add_standard()

void rec_aggregate_reg_add_standard ( rec_aggregate_reg_t  func_reg)

◆ rec_aggregate_reg_destroy()

void rec_aggregate_reg_destroy ( rec_aggregate_reg_t  func_reg)

◆ rec_aggregate_reg_get()

rec_aggregate_t rec_aggregate_reg_get ( rec_aggregate_reg_t  func_get,
const char *  name 
)

◆ rec_aggregate_reg_new()

rec_aggregate_reg_t rec_aggregate_reg_new ( void  )

◆ rec_aggregate_std_p()

bool rec_aggregate_std_p ( const char *  name)

◆ rec_buf_close()

void rec_buf_close ( rec_buf_t  buffer)

◆ rec_buf_new()

rec_buf_t rec_buf_new ( char **  data,
size_t *  size 
)

◆ rec_buf_putc()

int rec_buf_putc ( int  c,
rec_buf_t  buffer 
)

◆ rec_buf_puts()

int rec_buf_puts ( const char *  s,
rec_buf_t  buffer 
)

◆ rec_buf_rewind()

void rec_buf_rewind ( rec_buf_t  buf,
int  n 
)

◆ rec_comment_destroy()

void rec_comment_destroy ( rec_comment_t  comment)

◆ rec_comment_dup()

rec_comment_t rec_comment_dup ( rec_comment_t  comment)

◆ rec_comment_equal_p()

bool rec_comment_equal_p ( rec_comment_t  comment1,
rec_comment_t  comment2 
)

◆ rec_comment_new()

rec_comment_t rec_comment_new ( char *  text)

◆ rec_comment_set_text()

void rec_comment_set_text ( rec_comment_t comment,
char *  text 
)

◆ rec_comment_text()

char* rec_comment_text ( rec_comment_t  comment)

◆ rec_db_aggregates()

rec_aggregate_reg_t rec_db_aggregates ( rec_db_t  db)

◆ rec_db_delete()

bool rec_db_delete ( rec_db_t  db,
const char *  type,
size_t *  index,
rec_sex_t  sex,
const char *  fast_string,
size_t  random,
int  flags 
)

◆ rec_db_destroy()

void rec_db_destroy ( rec_db_t  db)

◆ rec_db_get_rset()

rec_rset_t rec_db_get_rset ( rec_db_t  db,
size_t  position 
)

◆ rec_db_get_rset_by_type()

rec_rset_t rec_db_get_rset_by_type ( rec_db_t  db,
const char *  type 
)

◆ rec_db_insert()

bool rec_db_insert ( rec_db_t  db,
const char *  type,
size_t *  index,
rec_sex_t  sex,
const char *  fast_string,
size_t  random,
const char *  password,
rec_record_t  record,
int  flags 
)

◆ rec_db_insert_rset()

bool rec_db_insert_rset ( rec_db_t  db,
rec_rset_t  rset,
size_t  position 
)

◆ rec_db_new()

rec_db_t rec_db_new ( void  )

◆ rec_db_query()

rec_rset_t rec_db_query ( rec_db_t  db,
const char *  type,
const char *  join,
size_t *  index,
rec_sex_t  sex,
const char *  fast_string,
size_t  random,
rec_fex_t  fex,
const char *  password,
rec_fex_t  group_by,
rec_fex_t  sort_by,
int  flags 
)

◆ rec_db_remove_rset()

bool rec_db_remove_rset ( rec_db_t  db,
size_t  position 
)

◆ rec_db_set()

bool rec_db_set ( rec_db_t  db,
const char *  type,
size_t *  index,
rec_sex_t  sex,
const char *  fast_string,
size_t  random,
rec_fex_t  fex,
int  action,
const char *  action_arg,
int  flags 
)

◆ rec_db_size()

size_t rec_db_size ( rec_db_t  db)

◆ rec_db_type_p()

bool rec_db_type_p ( rec_db_t  db,
const char *  type 
)

◆ rec_decrypt()

bool rec_decrypt ( char *  in,
size_t  in_size,
const char *  password,
char **  out,
size_t *  out_size 
)

◆ rec_decrypt_field()

bool rec_decrypt_field ( rec_field_t  field,
const char *  password 
)

◆ rec_decrypt_record()

bool rec_decrypt_record ( rec_rset_t  rset,
rec_record_t  record,
const char *  password 
)

◆ rec_encrypt()

bool rec_encrypt ( char *  in,
size_t  in_size,
const char *  password,
char **  out,
size_t *  out_size 
)

◆ rec_encrypt_field()

bool rec_encrypt_field ( rec_field_t  field,
const char *  password 
)

◆ rec_encrypt_record()

bool rec_encrypt_record ( rec_rset_t  rset,
rec_record_t  record,
const char *  password 
)

◆ rec_fex_all_calls_p()

bool rec_fex_all_calls_p ( rec_fex_t  fex)

◆ rec_fex_append()

rec_fex_elem_t rec_fex_append ( rec_fex_t  fex,
const char *  fname,
int  min,
int  max 
)

◆ rec_fex_check()

bool rec_fex_check ( const char *  str,
enum rec_fex_kind_e  kind 
)

◆ rec_fex_destroy()

void rec_fex_destroy ( rec_fex_t  fex)

◆ rec_fex_dup()

rec_fex_t rec_fex_dup ( rec_fex_t  fex)

◆ rec_fex_elem_field_name()

const char* rec_fex_elem_field_name ( rec_fex_elem_t  elem)

◆ rec_fex_elem_function_data()

void** rec_fex_elem_function_data ( rec_fex_elem_t  elem)

◆ rec_fex_elem_function_name()

const char* rec_fex_elem_function_name ( rec_fex_elem_t  elem)

◆ rec_fex_elem_max()

int rec_fex_elem_max ( rec_fex_elem_t  elem)

◆ rec_fex_elem_min()

int rec_fex_elem_min ( rec_fex_elem_t  elem)

◆ rec_fex_elem_rewrite_to()

const char* rec_fex_elem_rewrite_to ( rec_fex_elem_t  elem)

◆ rec_fex_elem_set_field_name()

bool rec_fex_elem_set_field_name ( rec_fex_elem_t  elem,
const char *  fname 
)

◆ rec_fex_get()

rec_fex_elem_t rec_fex_get ( rec_fex_t  fex,
size_t  position 
)

◆ rec_fex_member_p()

bool rec_fex_member_p ( rec_fex_t  fex,
const char *  fname,
int  min,
int  max 
)

◆ rec_fex_new()

rec_fex_t rec_fex_new ( const char *  str,
enum rec_fex_kind_e  kind 
)

◆ rec_fex_size()

size_t rec_fex_size ( rec_fex_t  fex)

◆ rec_fex_sort()

void rec_fex_sort ( rec_fex_t  fex)

◆ rec_fex_str()

char* rec_fex_str ( rec_fex_t  fex,
enum rec_fex_kind_e  kind 
)

◆ rec_field_char_location()

size_t rec_field_char_location ( rec_field_t  field)

◆ rec_field_char_location_str()

const char* rec_field_char_location_str ( rec_field_t  field)

◆ rec_field_destroy()

void rec_field_destroy ( rec_field_t  field)

◆ rec_field_dup()

rec_field_t rec_field_dup ( rec_field_t  field)

◆ rec_field_equal_p()

bool rec_field_equal_p ( rec_field_t  field1,
rec_field_t  field2 
)

◆ rec_field_location()

size_t rec_field_location ( rec_field_t  field)

◆ rec_field_location_str()

const char* rec_field_location_str ( rec_field_t  field)

◆ rec_field_mark()

int rec_field_mark ( rec_field_t  field)

◆ rec_field_name()

const char* rec_field_name ( rec_field_t  field)

◆ rec_field_name_equal_p()

bool rec_field_name_equal_p ( const char *  name1,
const char *  name2 
)

◆ rec_field_name_normalise()

char* rec_field_name_normalise ( const char *  str)

◆ rec_field_name_p()

bool rec_field_name_p ( const char *  str)

◆ rec_field_new()

rec_field_t rec_field_new ( const char *  name,
const char *  value 
)

◆ rec_field_set_char_location()

bool rec_field_set_char_location ( rec_field_t  field,
size_t  location 
)

◆ rec_field_set_location()

bool rec_field_set_location ( rec_field_t  field,
size_t  location 
)

◆ rec_field_set_mark()

void rec_field_set_mark ( rec_field_t  field,
int  mark 
)

◆ rec_field_set_name()

bool rec_field_set_name ( rec_field_t  field,
const char *  name 
)

◆ rec_field_set_source()

bool rec_field_set_source ( rec_field_t  field,
const char *  source 
)

◆ rec_field_set_value()

bool rec_field_set_value ( rec_field_t  field,
const char *  value 
)

◆ rec_field_source()

const char* rec_field_source ( rec_field_t  field)

◆ rec_field_to_comment()

rec_comment_t rec_field_to_comment ( rec_field_t  field)

◆ rec_field_value()

const char* rec_field_value ( rec_field_t  field)

◆ rec_fini()

void rec_fini ( void  )

◆ rec_init()

void rec_init ( void  )

◆ rec_int_check_db()

int rec_int_check_db ( rec_db_t  db,
bool  check_descriptors_p,
bool  remote_descriptors_p,
rec_buf_t  errors 
)

◆ rec_int_check_field_type()

bool rec_int_check_field_type ( rec_db_t  db,
rec_rset_t  rset,
rec_field_t  field,
rec_buf_t  errors 
)

◆ rec_int_check_record()

int rec_int_check_record ( rec_db_t  db,
rec_rset_t  rset,
rec_record_t  orig_rec,
rec_record_t  rec,
rec_buf_t  errors 
)

◆ rec_int_check_rset()

int rec_int_check_rset ( rec_db_t  db,
rec_rset_t  rset,
bool  check_descriptor_p,
bool  remote_descriptor_p,
rec_buf_t  errors 
)

◆ rec_mset_add_sorted()

rec_mset_elem_t rec_mset_add_sorted ( rec_mset_t  mset,
rec_mset_type_t  type,
void *  data 
)

◆ rec_mset_append()

rec_mset_elem_t rec_mset_append ( rec_mset_t  mset,
rec_mset_type_t  elem_type,
void *  data,
rec_mset_type_t  type 
)

◆ rec_mset_count()

size_t rec_mset_count ( rec_mset_t  mset,
rec_mset_type_t  type 
)

◆ rec_mset_destroy()

void rec_mset_destroy ( rec_mset_t  mset)

◆ rec_mset_dump()

void rec_mset_dump ( rec_mset_t  mset)

◆ rec_mset_dup()

rec_mset_t rec_mset_dup ( rec_mset_t  mset)

◆ rec_mset_elem_data()

void* rec_mset_elem_data ( rec_mset_elem_t  elem)

◆ rec_mset_elem_dup_data()

void* rec_mset_elem_dup_data ( rec_mset_elem_t  elem)

◆ rec_mset_elem_equal_p()

bool rec_mset_elem_equal_p ( rec_mset_elem_t  elem1,
rec_mset_elem_t  elem2 
)

◆ rec_mset_elem_set_data()

void rec_mset_elem_set_data ( rec_mset_elem_t  elem,
void *  data 
)

◆ rec_mset_elem_set_type()

void rec_mset_elem_set_type ( rec_mset_elem_t  elem,
rec_mset_type_t  type 
)

◆ rec_mset_elem_type()

rec_mset_type_t rec_mset_elem_type ( rec_mset_elem_t  elem)

◆ rec_mset_get_at()

void* rec_mset_get_at ( rec_mset_t  mset,
rec_mset_type_t  type,
size_t  position 
)

◆ rec_mset_insert_after()

rec_mset_elem_t rec_mset_insert_after ( rec_mset_t  mset,
rec_mset_type_t  type,
void *  data,
rec_mset_elem_t  elem 
)

◆ rec_mset_insert_at()

rec_mset_elem_t rec_mset_insert_at ( rec_mset_t  mset,
rec_mset_type_t  type,
void *  data,
size_t  position 
)

◆ rec_mset_iterator()

rec_mset_iterator_t rec_mset_iterator ( rec_mset_t  mset)

◆ rec_mset_iterator_free()

void rec_mset_iterator_free ( rec_mset_iterator_t iterator)

◆ rec_mset_iterator_next()

bool rec_mset_iterator_next ( rec_mset_iterator_t iterator,
rec_mset_type_t  type,
const void **  data,
rec_mset_elem_t elem 
)

◆ rec_mset_new()

rec_mset_t rec_mset_new ( void  )

◆ rec_mset_register_type()

rec_mset_type_t rec_mset_register_type ( rec_mset_t  mset,
char *  name,
rec_mset_disp_fn_t  disp_fn,
rec_mset_equal_fn_t  equal_fn,
rec_mset_dup_fn_t  dup_fn,
rec_mset_compare_fn_t  compare_fn 
)

◆ rec_mset_remove_at()

bool rec_mset_remove_at ( rec_mset_t  mset,
rec_mset_type_t  type,
size_t  position 
)

◆ rec_mset_remove_elem()

bool rec_mset_remove_elem ( rec_mset_t  mset,
rec_mset_elem_t  elem 
)

◆ rec_mset_search()

rec_mset_elem_t rec_mset_search ( rec_mset_t  mset,
void *  data 
)

◆ rec_mset_sort()

rec_mset_t rec_mset_sort ( rec_mset_t  mset)

◆ rec_mset_type_p()

bool rec_mset_type_p ( rec_mset_t  mset,
rec_mset_type_t  type 
)

◆ rec_parse_db()

bool rec_parse_db ( rec_parser_t  parser,
rec_db_t db 
)

◆ rec_parse_field()

bool rec_parse_field ( rec_parser_t  parser,
rec_field_t field 
)

◆ rec_parse_field_name()

bool rec_parse_field_name ( rec_parser_t  parser,
char **  fname 
)

◆ rec_parse_field_name_str()

char* rec_parse_field_name_str ( const char *  str)

◆ rec_parse_record()

bool rec_parse_record ( rec_parser_t  parser,
rec_record_t record 
)

◆ rec_parse_record_str()

rec_record_t rec_parse_record_str ( const char *  str)

◆ rec_parse_rset()

bool rec_parse_rset ( rec_parser_t  parser,
rec_rset_t rset 
)

◆ rec_parser_destroy()

void rec_parser_destroy ( rec_parser_t  parser)

◆ rec_parser_eof()

bool rec_parser_eof ( rec_parser_t  parser)

◆ rec_parser_error()

bool rec_parser_error ( rec_parser_t  parser)

◆ rec_parser_new()

rec_parser_t rec_parser_new ( FILE *  in,
const char *  source 
)

◆ rec_parser_new_mem()

rec_parser_t rec_parser_new_mem ( const char *  buffer,
size_t  size,
const char *  source 
)

◆ rec_parser_new_str()

rec_parser_t rec_parser_new_str ( const char *  buffer,
const char *  source 
)

◆ rec_parser_perror()

void rec_parser_perror ( rec_parser_t  parser,
const char *  fmt,
  ... 
)

◆ rec_parser_reset()

void rec_parser_reset ( rec_parser_t  parser)

◆ rec_parser_seek()

bool rec_parser_seek ( rec_parser_t  parser,
size_t  line_number,
size_t  position 
)

◆ rec_parser_tell()

long rec_parser_tell ( rec_parser_t  parser)

◆ rec_record_append()

void rec_record_append ( rec_record_t  dest_record,
rec_record_t  src_record 
)

◆ rec_record_char_location()

size_t rec_record_char_location ( rec_record_t  record)

◆ rec_record_char_location_str()

char* rec_record_char_location_str ( rec_record_t  record)

◆ rec_record_container()

void* rec_record_container ( rec_record_t  record)

◆ rec_record_contains_field()

bool rec_record_contains_field ( rec_record_t  record,
const char *  field_name,
const char *  field_value 
)

◆ rec_record_contains_value()

bool rec_record_contains_value ( rec_record_t  record,
const char *  value,
bool  case_insensitive 
)

◆ rec_record_destroy()

void rec_record_destroy ( rec_record_t  record)

◆ rec_record_dup()

rec_record_t rec_record_dup ( rec_record_t  record)

◆ rec_record_equal_p()

bool rec_record_equal_p ( rec_record_t  record1,
rec_record_t  record2 
)

◆ rec_record_field_mark()

int rec_record_field_mark ( rec_record_t  record,
rec_field_t  field 
)

◆ rec_record_field_p()

bool rec_record_field_p ( rec_record_t  record,
const char *  field_name 
)

◆ rec_record_get_field_by_name()

rec_field_t rec_record_get_field_by_name ( rec_record_t  record,
const char *  field_name,
size_t  n 
)

◆ rec_record_get_field_index()

size_t rec_record_get_field_index ( rec_record_t  record,
rec_field_t  field 
)

◆ rec_record_get_field_index_by_name()

size_t rec_record_get_field_index_by_name ( rec_record_t  record,
rec_field_t  field 
)

◆ rec_record_get_num_fields_by_name()

size_t rec_record_get_num_fields_by_name ( rec_record_t  record,
const char *  field_name 
)

◆ rec_record_location()

size_t rec_record_location ( rec_record_t  record)

◆ rec_record_location_str()

char* rec_record_location_str ( rec_record_t  record)

◆ rec_record_mark_field()

bool rec_record_mark_field ( rec_record_t  record,
rec_field_t  field,
int  mark 
)

◆ rec_record_mset()

rec_mset_t rec_record_mset ( rec_record_t  record)

◆ rec_record_new()

rec_record_t rec_record_new ( void  )

◆ rec_record_num_comments()

size_t rec_record_num_comments ( rec_record_t  record)

◆ rec_record_num_elems()

size_t rec_record_num_elems ( rec_record_t  record)

◆ rec_record_num_fields()

size_t rec_record_num_fields ( rec_record_t  record)

◆ rec_record_remove_field_by_name()

void rec_record_remove_field_by_name ( rec_record_t  record,
const char *  field_name,
size_t  n 
)

◆ rec_record_reset_marks()

void rec_record_reset_marks ( rec_record_t  record)

◆ rec_record_set_char_location()

void rec_record_set_char_location ( rec_record_t  record,
size_t  char_location 
)

◆ rec_record_set_container()

void rec_record_set_container ( rec_record_t  record,
void *  container 
)

◆ rec_record_set_location()

void rec_record_set_location ( rec_record_t  record,
size_t  location 
)

◆ rec_record_set_source()

void rec_record_set_source ( rec_record_t  record,
char *  source 
)

◆ rec_record_source()

char* rec_record_source ( rec_record_t  record)

◆ rec_record_subset_p()

bool rec_record_subset_p ( rec_record_t  record1,
rec_record_t  record2 
)

◆ rec_record_to_comment()

rec_comment_t rec_record_to_comment ( rec_record_t  record)

◆ rec_record_uniq()

void rec_record_uniq ( rec_record_t  record)

◆ rec_rset_add_auto_fields()

rec_rset_t rec_rset_add_auto_fields ( rec_rset_t  rset,
rec_record_t  record 
)

◆ rec_rset_auto()

rec_fex_t rec_rset_auto ( rec_rset_t  rset)

◆ rec_rset_confidential()

rec_fex_t rec_rset_confidential ( rec_rset_t  rset)

◆ rec_rset_descriptor()

rec_record_t rec_rset_descriptor ( rec_rset_t  rset)

◆ rec_rset_descriptor_pos()

size_t rec_rset_descriptor_pos ( rec_rset_t  rset)

◆ rec_rset_destroy()

void rec_rset_destroy ( rec_rset_t  rset)

◆ rec_rset_dup()

rec_rset_t rec_rset_dup ( rec_rset_t  rset)

◆ rec_rset_field_confidential_p()

bool rec_rset_field_confidential_p ( rec_rset_t  rset,
const char *  field_name 
)

◆ rec_rset_get_field_type()

rec_type_t rec_rset_get_field_type ( rec_rset_t  rset,
const char *  field_name 
)

◆ rec_rset_get_type_reg()

rec_type_reg_t rec_rset_get_type_reg ( rec_rset_t  rset)

◆ rec_rset_group()

rec_rset_t rec_rset_group ( rec_rset_t  rset,
rec_fex_t  group_by 
)

◆ rec_rset_key()

const char* rec_rset_key ( rec_rset_t  rset)

◆ rec_rset_max_records()

size_t rec_rset_max_records ( rec_rset_t  rset)

◆ rec_rset_min_records()

size_t rec_rset_min_records ( rec_rset_t  rset)

◆ rec_rset_mset()

rec_mset_t rec_rset_mset ( rec_rset_t  rset)

◆ rec_rset_new()

rec_rset_t rec_rset_new ( void  )

◆ rec_rset_num_comments()

size_t rec_rset_num_comments ( rec_rset_t  rset)

◆ rec_rset_num_elems()

size_t rec_rset_num_elems ( rec_rset_t  rset)

◆ rec_rset_num_records()

size_t rec_rset_num_records ( rec_rset_t  rset)

◆ rec_rset_num_sex_constraints()

size_t rec_rset_num_sex_constraints ( rec_rset_t  rset)

◆ rec_rset_order_by_fields()

rec_fex_t rec_rset_order_by_fields ( rec_rset_t  rset)

◆ rec_rset_rename_field()

void rec_rset_rename_field ( rec_rset_t  rset,
const char *  field_name,
const char *  new_field_name 
)

◆ rec_rset_set_descriptor()

void rec_rset_set_descriptor ( rec_rset_t  rset,
rec_record_t  record 
)

◆ rec_rset_set_descriptor_pos()

void rec_rset_set_descriptor_pos ( rec_rset_t  rset,
size_t  position 
)

◆ rec_rset_set_order_by_fields()

bool rec_rset_set_order_by_fields ( rec_rset_t  rset,
rec_fex_t  field_names 
)

◆ rec_rset_set_type()

void rec_rset_set_type ( rec_rset_t  rset,
const char *  type 
)

◆ rec_rset_sex_constraint()

rec_sex_t rec_rset_sex_constraint ( rec_rset_t  rset,
size_t  index 
)

◆ rec_rset_sort()

rec_rset_t rec_rset_sort ( rec_rset_t  rset,
rec_fex_t  sort_by 
)

◆ rec_rset_source()

char* rec_rset_source ( rec_rset_t  rset)

◆ rec_rset_type()

char* rec_rset_type ( rec_rset_t  rset)

◆ rec_rset_url()

char* rec_rset_url ( rec_rset_t  rset)

◆ rec_sex_compile()

bool rec_sex_compile ( rec_sex_t  sex,
const char *  expr 
)

◆ rec_sex_destroy()

void rec_sex_destroy ( rec_sex_t  sex)

◆ rec_sex_eval()

bool rec_sex_eval ( rec_sex_t  sex,
rec_record_t  record,
bool *  status 
)

◆ rec_sex_eval_str()

char* rec_sex_eval_str ( rec_sex_t  sex,
rec_record_t  record 
)

◆ rec_sex_new()

rec_sex_t rec_sex_new ( bool  case_insensitive)

◆ rec_sex_print_ast()

void rec_sex_print_ast ( rec_sex_t  sex)

◆ rec_std_field_name()

const char* rec_std_field_name ( enum rec_std_field_e  std_field)

◆ rec_type_check()

bool rec_type_check ( rec_type_t  type,
const char *  str,
char **  error_str 
)

◆ rec_type_descr_p()

bool rec_type_descr_p ( const char *  str)

◆ rec_type_destroy()

void rec_type_destroy ( rec_type_t  type)

◆ rec_type_equal_p()

bool rec_type_equal_p ( rec_type_t  type1,
rec_type_t  type2 
)

◆ rec_type_kind()

enum rec_type_kind_e rec_type_kind ( rec_type_t  type)

◆ rec_type_kind_str()

char* rec_type_kind_str ( rec_type_t  type)

◆ rec_type_max()

int rec_type_max ( rec_type_t  type)

◆ rec_type_min()

int rec_type_min ( rec_type_t  type)

◆ rec_type_name()

const char* rec_type_name ( rec_type_t  type)

◆ rec_type_new()

rec_type_t rec_type_new ( const char *  str)

◆ rec_type_rec()

const char* rec_type_rec ( rec_type_t  type)

◆ rec_type_reg_add()

void rec_type_reg_add ( rec_type_reg_t  reg,
rec_type_t  type 
)

◆ rec_type_reg_add_synonym()

void rec_type_reg_add_synonym ( rec_type_reg_t  reg,
const char *  type_name,
const char *  to_name 
)

◆ rec_type_reg_destroy()

void rec_type_reg_destroy ( rec_type_reg_t  reg)

◆ rec_type_reg_get()

rec_type_t rec_type_reg_get ( rec_type_reg_t  reg,
const char *  type_name 
)

◆ rec_type_reg_new()

rec_type_reg_t rec_type_reg_new ( void  )

◆ rec_type_set_name()

void rec_type_set_name ( rec_type_t  type,
const char *  name 
)

◆ rec_type_values_cmp()

int rec_type_values_cmp ( rec_type_t  type,
const char *  val1,
const char *  val2 
)

◆ rec_write_comment()

bool rec_write_comment ( rec_writer_t  writer,
rec_comment_t  comment 
)

◆ rec_write_comment_str()

char* rec_write_comment_str ( rec_comment_t  comment,
rec_writer_mode_t  mode 
)

◆ rec_write_db()

bool rec_write_db ( rec_writer_t  writer,
rec_db_t  db 
)

◆ rec_write_field()

bool rec_write_field ( rec_writer_t  writer,
rec_field_t  field 
)

◆ rec_write_field_name()

bool rec_write_field_name ( rec_writer_t  writer,
const char *  field_name 
)

◆ rec_write_field_name_str()

char* rec_write_field_name_str ( const char *  field_name,
rec_writer_mode_t  mode 
)

◆ rec_write_field_str()

char* rec_write_field_str ( rec_field_t  field,
rec_writer_mode_t  mode 
)

◆ rec_write_record()

bool rec_write_record ( rec_writer_t  writer,
rec_record_t  record 
)

◆ rec_write_rset()

bool rec_write_rset ( rec_writer_t  writer,
rec_rset_t  rset 
)

◆ rec_write_string()

bool rec_write_string ( rec_writer_t  writer,
const char *  str 
)

◆ rec_writer_destroy()

void rec_writer_destroy ( rec_writer_t  writer)

◆ rec_writer_eof()

bool rec_writer_eof ( rec_writer_t  writer)

◆ rec_writer_new()

rec_writer_t rec_writer_new ( FILE *  out)

◆ rec_writer_new_str()

rec_writer_t rec_writer_new_str ( char **  str,
size_t *  str_size 
)

◆ rec_writer_set_collapse()

void rec_writer_set_collapse ( rec_writer_t  writer,
bool  value 
)

◆ rec_writer_set_mode()

void rec_writer_set_mode ( rec_writer_t  writer,
enum rec_writer_mode_e  mode 
)

◆ rec_writer_set_skip_comments()

void rec_writer_set_skip_comments ( rec_writer_t  writer,
bool  value 
)