37 #define REC_VERSION_MAJOR 1
38 #define REC_VERSION_MINOR 0
39 #define REC_VERSION_STRING "1.0"
97 typedef void *(*rec_mset_dup_fn_t) (
void *
data);
377 #define REC_FNAME_RE "[a-zA-Z%][a-zA-Z0-9_]*"
379 #define REC_TYPE_NAME_RE "[a-zA-Z][a-zA-Z0-9_-]*"
380 #define REC_URL_REGEXP "(file|http|ftp|https)://[^ \t]+"
381 #define REC_FILE_REGEXP "(/?[^/ \t\n]+)+"
455 #define REC_FNAME_FEX_RE REC_FNAME_RE "(\\." REC_FNAME_RE ")?"
456 #define REC_FNAME_LIST_RE REC_FNAME_RE "([ \n\t]+" REC_FNAME_RE ")*"
457 #define REC_FNAME_LIST_CS_RE REC_FNAME_FEX_RE "(," REC_FNAME_FEX_RE ")*"
458 #define REC_FNAME_SUB_RE REC_FNAME_FEX_RE "(\\[[0-9]+(-[0-9]+)?\\])?"
459 #define REC_FEX_FUNCTION_NAME "[a-zA-Z_][a-zA-Z0-9_]*"
460 #define REC_FEX_CALL REC_FEX_FUNCTION_NAME "\\(" REC_FNAME_FEX_RE "\\)"
461 #define REC_FNAME_LIST_SUB_ELEM_RE "(" REC_FNAME_SUB_RE "|" REC_FEX_CALL ")" "(:" REC_FNAME_FEX_RE ")?"
462 #define REC_FNAME_LIST_SUB_RE REC_FNAME_LIST_SUB_ELEM_RE "(," REC_FNAME_LIST_SUB_ELEM_RE ")*"
702 const char *to_name);
855 #define MSET_COMMENT 2
996 const char *field_name);
1002 const char *field_name,
1009 const char *field_name,
1066 #define REC_RECORD_TYPE_RE REC_FNAME_RE
1080 #define MSET_RECORD 1
1184 const char *field_name);
1223 const char *field_name,
1224 const char *new_field_name);
1480 #define REC_F_DESCRIPTOR 1
1481 #define REC_F_ICASE 2
1482 #define REC_F_UNIQ 4
1484 #define REC_Q_NOINDEX ((size_t)-1)
1491 const char *fast_string,
1494 const char *password,
1583 #define REC_F_NOAUTO 8
1589 const char *fast_string,
1591 const char *password,
1661 #define REC_F_COMMENT_OUT 16
1667 const char *fast_string,
1778 #define REC_SET_ACT_NONE 0
1779 #define REC_SET_ACT_RENAME 1
1780 #define REC_SET_ACT_SET 2
1781 #define REC_SET_ACT_ADD 3
1782 #define REC_SET_ACT_SETADD 4
1783 #define REC_SET_ACT_DELETE 5
1784 #define REC_SET_ACT_COMMENT 6
1790 const char *fast_string,
1794 const char *action_arg,
1807 bool check_descriptors_p,
1808 bool remote_descriptors_p,
1817 bool check_descriptor_p,
1818 bool remote_descriptor_p,
2145 #define REC_ENCRYPTED_PREFIX "encrypted-"
2154 bool rec_encrypt (
char *in,
size_t in_size,
const char *password,
2155 char **out,
size_t *out_size);
2174 const char *password);
2183 bool rec_decrypt (
char *in,
size_t in_size,
const char *password,
2184 char **out,
size_t *out_size);
2202 const char *password);
2220 const char *field_name);
bool rec_field_equal_p(rec_field_t field1, rec_field_t field2)
Definition: rec-field.c:178
rec_type_reg_t rec_type_reg_new(void)
Definition: rec-types.c:703
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)
Definition: rec-db.c:726
rec_sex_t rec_rset_sex_constraint(rec_rset_t rset, size_t index)
Definition: rec-rset.c:922
rec_parser_t rec_parser_new_str(const char *buffer, const char *source)
Definition: rec-parser.c:137
void rec_aggregate_reg_add_standard(rec_aggregate_reg_t func_reg)
Definition: rec-aggregate.c:188
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)
Definition: rec-db.c:817
char *(* rec_aggregate_t)(rec_rset_t rset, rec_record_t record, const char *field_name)
Definition: rec.h:2218
rec_buf_t rec_buf_new(char **data, size_t *size)
Definition: rec-buf.c:51
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)
Definition: rec-mset.c:292
bool rec_field_name_equal_p(const char *name1, const char *name2)
Definition: rec-field-name.c:113
void rec_type_destroy(rec_type_t type)
Definition: rec-types.c:679
char * rec_write_field_str(rec_field_t field, rec_writer_mode_t mode)
Definition: rec-writer.c:625
rec_comment_t rec_comment_new(char *text)
Definition: rec-comment.c:38
bool rec_field_set_location(rec_field_t field, size_t location)
Definition: rec-field.c:247
void rec_mset_dump(rec_mset_t mset)
Definition: rec-mset.c:704
void * rec_record_container(rec_record_t record)
Definition: rec-record.c:639
bool rec_db_remove_rset(rec_db_t db, size_t position)
Definition: rec-db.c:193
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)
Definition: rec-int.c:123
rec_rset_t rec_rset_group(rec_rset_t rset, rec_fex_t group_by)
Definition: rec-rset.c:750
rec_comment_t rec_field_to_comment(rec_field_t field)
Definition: rec-field.c:199
bool rec_write_comment(rec_writer_t writer, rec_comment_t comment)
Definition: rec-writer.c:127
rec_mset_t rec_record_mset(rec_record_t record)
Definition: rec-record.c:263
rec_fex_elem_t rec_fex_append(rec_fex_t fex, const char *fname, int min, int max)
Definition: rec-fex.c:442
bool rec_db_type_p(rec_db_t db, const char *type)
Definition: rec-db.c:218
bool rec_type_equal_p(rec_type_t type1, rec_type_t type2)
Definition: rec-types.c:873
bool rec_record_contains_field(rec_record_t record, const char *field_name, const char *field_value)
Definition: rec-record.c:614
bool rec_write_string(rec_writer_t writer, const char *str)
Definition: rec-writer.c:685
rec_mset_iterator_t rec_mset_iterator(rec_mset_t mset)
Definition: rec-mset.c:593
rec_std_field_e
Definition: rec.h:394
@ REC_FIELD_TYPEDEF
Definition: rec.h:404
@ REC_FIELD_ALLOWED
Definition: rec.h:407
@ REC_FIELD_REC
Definition: rec.h:400
@ REC_FIELD_AUTO
Definition: rec.h:395
@ REC_FIELD_PROHIBIT
Definition: rec.h:399
@ REC_FIELD_KEY
Definition: rec.h:397
@ REC_FIELD_SORT
Definition: rec.h:402
@ REC_FIELD_SIZE
Definition: rec.h:401
@ REC_FIELD_CONSTRAINT
Definition: rec.h:406
@ REC_FIELD_TYPE
Definition: rec.h:403
@ REC_FIELD_MANDATORY
Definition: rec.h:398
@ REC_FIELD_CONFIDENTIAL
Definition: rec.h:396
@ REC_FIELD_UNIQUE
Definition: rec.h:405
void ** rec_fex_elem_function_data(rec_fex_elem_t elem)
Definition: rec-fex.c:491
rec_record_t rec_parse_record_str(const char *str)
Definition: rec-parser.c:699
struct rec_record_s * rec_record_t
Definition: rec.h:846
int rec_mset_type_t
Definition: rec.h:106
rec_mset_t rec_mset_sort(rec_mset_t mset)
Definition: rec-mset.c:225
rec_type_t rec_type_reg_get(rec_type_reg_t reg, const char *type_name)
Definition: rec-types.c:820
void rec_comment_destroy(rec_comment_t comment)
Definition: rec-comment.c:47
size_t rec_field_location(rec_field_t field)
Definition: rec-field.c:241
enum rec_writer_mode_e rec_writer_mode_t
Definition: rec.h:1981
rec_comment_t rec_comment_dup(rec_comment_t comment)
Definition: rec-comment.c:53
bool rec_record_mark_field(rec_record_t record, rec_field_t field, int mark)
Definition: rec-record.c:755
rec_writer_mode_e
Definition: rec.h:1974
@ REC_WRITER_VALUES
Definition: rec.h:1976
@ REC_WRITER_VALUES_ROW
Definition: rec.h:1977
@ REC_WRITER_NORMAL
Definition: rec.h:1975
@ REC_WRITER_SEXP
Definition: rec.h:1978
char * rec_comment_text(rec_comment_t comment)
Definition: rec-comment.c:59
size_t rec_rset_descriptor_pos(rec_rset_t rset)
Definition: rec-rset.c:360
bool rec_type_descr_p(const char *str)
Definition: rec-types.c:302
void rec_fini(void)
Definition: rec.c:46
bool rec_mset_elem_equal_p(rec_mset_elem_t elem1, rec_mset_elem_t elem2)
Definition: rec-mset.c:690
bool rec_mset_remove_elem(rec_mset_t mset, rec_mset_elem_t elem)
Definition: rec-mset.c:491
bool rec_int_check_field_type(rec_db_t db, rec_rset_t rset, rec_field_t field, rec_buf_t errors)
Definition: rec-int.c:244
const char * rec_fex_elem_rewrite_to(rec_fex_elem_t elem)
Definition: rec-fex.c:300
size_t rec_record_get_field_index_by_name(rec_record_t record, rec_field_t field)
Definition: rec-record.c:395
void rec_writer_set_collapse(rec_writer_t writer, bool value)
Definition: rec-writer.c:692
rec_writer_t rec_writer_new(FILE *out)
Definition: rec-writer.c:79
void rec_rset_set_descriptor_pos(rec_rset_t rset, size_t position)
Definition: rec-rset.c:366
const char * rec_type_rec(rec_type_t type)
Definition: rec-types.c:951
void rec_rset_destroy(rec_rset_t rset)
Definition: rec-rset.c:230
void rec_sex_destroy(rec_sex_t sex)
Definition: rec-sex.c:95
char * rec_type_kind_str(rec_type_t type)
Definition: rec-types.c:485
rec_mset_elem_t rec_mset_search(rec_mset_t mset, void *data)
Definition: rec-mset.c:570
void *(* rec_mset_dup_fn_t)(void *data)
Definition: rec.h:97
char * rec_record_location_str(rec_record_t record)
Definition: rec-record.c:507
bool rec_decrypt_field(rec_field_t field, const char *password)
Definition: rec-crypt-dummy.c:66
bool rec_writer_eof(rec_writer_t writer)
bool rec_fex_all_calls_p(rec_fex_t fex)
Definition: rec-fex.c:497
bool rec_parse_db(rec_parser_t parser, rec_db_t *db)
Definition: rec-parser.c:620
void rec_writer_set_mode(rec_writer_t writer, enum rec_writer_mode_e mode)
Definition: rec-writer.c:706
void rec_buf_close(rec_buf_t buffer)
Definition: rec-buf.c:76
void rec_aggregate_reg_destroy(rec_aggregate_reg_t func_reg)
Definition: rec-aggregate.c:125
bool rec_record_contains_value(rec_record_t record, const char *value, bool case_insensitive)
Definition: rec-record.c:577
rec_rset_t rec_rset_dup(rec_rset_t rset)
Definition: rec-rset.c:269
size_t rec_record_location(rec_record_t record)
Definition: rec-record.c:501
rec_aggregate_t rec_aggregate_reg_get(rec_aggregate_reg_t func_get, const char *name)
Definition: rec-aggregate.c:171
rec_parser_t rec_parser_new(FILE *in, const char *source)
Definition: rec-parser.c:114
bool rec_aggregate_std_p(const char *name)
Definition: rec-aggregate.c:197
size_t rec_record_num_fields(rec_record_t record)
Definition: rec-record.c:275
rec_record_t rec_rset_descriptor(rec_rset_t rset)
Definition: rec-rset.c:337
size_t rec_record_num_elems(rec_record_t record)
Definition: rec-record.c:269
size_t rec_fex_size(rec_fex_t fex)
Definition: rec-fex.c:255
char * rec_rset_type(rec_rset_t rset)
Definition: rec-rset.c:407
rec_aggregate_reg_t rec_db_aggregates(rec_db_t db)
Definition: rec-db.c:963
void rec_parser_destroy(rec_parser_t parser)
Definition: rec-parser.c:168
char * rec_write_field_name_str(const char *field_name, rec_writer_mode_t mode)
Definition: rec-writer.c:645
bool rec_rset_set_order_by_fields(rec_rset_t rset, rec_fex_t field_names)
Definition: rec-rset.c:706
rec_type_t rec_rset_get_field_type(rec_rset_t rset, const char *field_name)
Definition: rec-rset.c:656
void rec_record_set_char_location(rec_record_t record, size_t char_location)
Definition: rec-record.c:562
rec_mset_t rec_mset_dup(rec_mset_t mset)
Definition: rec-mset.c:158
rec_mset_elem_t rec_mset_insert_at(rec_mset_t mset, rec_mset_type_t type, void *data, size_t position)
Definition: rec-mset.c:421
rec_record_t rec_record_dup(rec_record_t record)
Definition: rec-record.c:149
int rec_fex_elem_min(rec_fex_elem_t elem)
Definition: rec-fex.c:288
void rec_field_destroy(rec_field_t field)
Definition: rec-field.c:185
bool rec_parse_rset(rec_parser_t parser, rec_rset_t *rset)
Definition: rec-parser.c:514
int rec_type_max(rec_type_t type)
Definition: rec-types.c:934
size_t rec_field_char_location(rec_field_t field)
Definition: rec-field.c:274
size_t rec_mset_count(rec_mset_t mset, rec_mset_type_t type)
Definition: rec-mset.c:313
char * rec_comment_t
Definition: rec.h:341
void rec_record_remove_field_by_name(rec_record_t record, const char *field_name, size_t n)
Definition: rec-record.c:369
bool rec_write_record(rec_writer_t writer, rec_record_t record)
Definition: rec-writer.c:377
void rec_comment_set_text(rec_comment_t *comment, char *text)
Definition: rec-comment.c:65
bool rec_record_field_p(rec_record_t record, const char *field_name)
Definition: rec-record.c:311
rec_writer_t rec_writer_new_str(char **str, size_t *str_size)
Definition: rec-writer.c:94
size_t rec_record_get_field_index(rec_record_t record, rec_field_t field)
Definition: rec-record.c:287
void rec_record_uniq(rec_record_t record)
Definition: rec-record.c:651
struct rec_type_reg_s * rec_type_reg_t
Definition: rec.h:684
bool rec_type_check(rec_type_t type, const char *str, char **error_str)
Definition: rec-types.c:574
void(* rec_mset_disp_fn_t)(void *data)
Definition: rec.h:95
const char * rec_fex_elem_field_name(rec_fex_elem_t elem)
Definition: rec-fex.c:273
const char * rec_field_source(rec_field_t field)
Definition: rec-field.c:226
rec_fex_t rec_fex_new(const char *str, enum rec_fex_kind_e kind)
Definition: rec-fex.c:77
char * rec_record_source(rec_record_t record)
Definition: rec-record.c:471
bool rec_write_field(rec_writer_t writer, rec_field_t field)
Definition: rec-writer.c:210
rec_mset_elem_t rec_mset_append(rec_mset_t mset, rec_mset_type_t elem_type, void *data, rec_mset_type_t type)
Definition: rec-mset.c:479
bool rec_field_set_char_location(rec_field_t field, size_t location)
Definition: rec-field.c:280
bool rec_write_rset(rec_writer_t writer, rec_rset_t rset)
Definition: rec-writer.c:476
bool rec_field_name_p(const char *str)
Definition: rec-field-name.c:69
void rec_record_append(rec_record_t dest_record, rec_record_t src_record)
Definition: rec-record.c:719
rec_type_t rec_type_new(const char *str)
Definition: rec-types.c:351
rec_field_t rec_field_dup(rec_field_t field)
Definition: rec-field.c:128
rec_mset_type_t rec_mset_elem_type(rec_mset_elem_t elem)
Definition: rec-mset.c:662
char * rec_write_comment_str(rec_comment_t comment, rec_writer_mode_t mode)
Definition: rec-writer.c:665
bool rec_write_field_name(rec_writer_t writer, const char *field_name)
Definition: rec-writer.c:331
void * rec_mset_elem_dup_data(rec_mset_elem_t elem)
Definition: rec-mset.c:698
void rec_record_set_source(rec_record_t record, char *source)
Definition: rec-record.c:488
bool rec_write_db(rec_writer_t writer, rec_db_t db)
Definition: rec-writer.c:594
rec_fex_kind_e
Definition: rec.h:447
@ REC_FEX_SIMPLE
Definition: rec.h:448
@ REC_FEX_CSV
Definition: rec.h:449
@ REC_FEX_SUBSCRIPTS
Definition: rec.h:450
void rec_rset_set_type(rec_rset_t rset, const char *type)
Definition: rec-rset.c:373
const char * rec_fex_elem_function_name(rec_fex_elem_t elem)
Definition: rec-fex.c:485
void rec_parser_perror(rec_parser_t parser, const char *fmt,...)
Definition: rec-parser.c:190
int rec_record_field_mark(rec_record_t record, rec_field_t field)
Definition: rec-record.c:778
bool rec_rset_field_confidential_p(rec_rset_t rset, const char *field_name)
rec_mset_t rec_mset_new(void)
Definition: rec-mset.c:104
const char * rec_field_value(rec_field_t field)
Definition: rec-field.c:83
const char * rec_field_name(rec_field_t field)
Definition: rec-field.c:69
bool rec_encrypt_field(rec_field_t field, const char *password)
Definition: rec-crypt-dummy.c:59
bool rec_parse_field_name(rec_parser_t parser, char **fname)
Definition: rec-parser.c:214
rec_rset_t rec_rset_add_auto_fields(rec_rset_t rset, rec_record_t record)
Definition: rec-rset.c:839
rec_rset_t rec_db_get_rset_by_type(rec_db_t db, const char *type)
Definition: rec-db.c:225
bool rec_parser_seek(rec_parser_t parser, size_t line_number, size_t position)
Definition: rec-parser.c:717
bool rec_mset_remove_at(rec_mset_t mset, rec_mset_type_t type, size_t position)
Definition: rec-mset.c:390
bool rec_parse_field(rec_parser_t parser, rec_field_t *field)
Definition: rec-parser.c:352
rec_fex_t rec_fex_dup(rec_fex_t fex)
Definition: rec-fex.c:155
rec_parser_t rec_parser_new_mem(const char *buffer, size_t size, const char *source)
Definition: rec-parser.c:144
bool rec_encrypt_record(rec_rset_t rset, rec_record_t record, const char *password)
Definition: rec-crypt-dummy.c:51
struct rec_rset_s * rec_rset_t
Definition: rec.h:1070
bool rec_sex_eval(rec_sex_t sex, rec_record_t record, bool *status)
Definition: rec-sex.c:196
int rec_field_mark(rec_field_t field)
Definition: rec-field.c:313
bool rec_decrypt(char *in, size_t in_size, const char *password, char **out, size_t *out_size)
Definition: rec-crypt-dummy.c:41
struct rec_fex_elem_s * rec_fex_elem_t
Definition: rec.h:444
rec_type_kind_e
Definition: rec.h:575
@ REC_TYPE_UUID
Definition: rec.h:601
@ REC_TYPE_ENUM
Definition: rec.h:595
@ REC_TYPE_NONE
Definition: rec.h:577
@ REC_TYPE_BOOL
Definition: rec.h:581
@ REC_TYPE_SIZE
Definition: rec.h:587
@ REC_TYPE_REC
Definition: rec.h:603
@ REC_TYPE_REAL
Definition: rec.h:585
@ REC_TYPE_FIELD
Definition: rec.h:597
@ REC_TYPE_LINE
Definition: rec.h:589
@ REC_TYPE_RANGE
Definition: rec.h:583
@ REC_TYPE_EMAIL
Definition: rec.h:599
@ REC_TYPE_REGEXP
Definition: rec.h:591
@ REC_TYPE_INT
Definition: rec.h:579
@ REC_TYPE_DATE
Definition: rec.h:593
void rec_mset_iterator_free(rec_mset_iterator_t *iterator)
Definition: rec-mset.c:649
bool rec_db_insert_rset(rec_db_t db, rec_rset_t rset, size_t position)
Definition: rec-db.c:158
void rec_buf_rewind(rec_buf_t buf, int n)
Definition: rec-buf.c:92
size_t rec_rset_num_elems(rec_rset_t rset)
Definition: rec-rset.c:319
int rec_buf_puts(const char *s, rec_buf_t buffer)
Definition: rec-buf.c:127
rec_type_reg_t rec_rset_get_type_reg(rec_rset_t rset)
Definition: rec-rset.c:449
int rec_buf_putc(int c, rec_buf_t buffer)
Definition: rec-buf.c:99
bool rec_fex_check(const char *str, enum rec_fex_kind_e kind)
Definition: rec-fex.c:223
rec_comment_t rec_record_to_comment(rec_record_t record)
Definition: rec-record.c:422
struct rec_mset_s * rec_mset_t
Definition: rec.h:64
const char * rec_std_field_name(enum rec_std_field_e std_field)
Definition: rec-field-name.c:63
struct rec_buf_s * rec_buf_t
Definition: rec.h:319
void rec_init(void)
Definition: rec.c:37
rec_fex_t rec_rset_confidential(rec_rset_t rset)
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)
Definition: rec-db.c:267
rec_mset_elem_t rec_mset_add_sorted(rec_mset_t mset, rec_mset_type_t type, void *data)
Definition: rec-mset.c:736
void rec_mset_destroy(rec_mset_t mset)
Definition: rec-mset.c:144
bool(* rec_mset_equal_fn_t)(void *data1, void *data2)
Definition: rec.h:96
void rec_rset_rename_field(rec_rset_t rset, const char *field_name, const char *new_field_name)
Definition: rec-rset.c:455
void rec_type_reg_destroy(rec_type_reg_t reg)
Definition: rec-types.c:718
rec_sex_t rec_sex_new(bool case_insensitive)
Definition: rec-sex.c:75
void rec_db_destroy(rec_db_t db)
Definition: rec-db.c:120
void rec_writer_destroy(rec_writer_t writer)
Definition: rec-writer.c:109
struct rec_fex_s * rec_fex_t
Definition: rec.h:443
rec_fex_elem_t rec_fex_get(rec_fex_t fex, size_t position)
Definition: rec-fex.c:261
bool rec_field_set_name(rec_field_t field, const char *name)
Definition: rec-field.c:75
size_t rec_record_get_num_fields_by_name(rec_record_t record, const char *field_name)
Definition: rec-record.c:318
int(* rec_mset_compare_fn_t)(void *data1, void *data2, int type2)
Definition: rec.h:98
size_t rec_rset_max_records(rec_rset_t rset)
Definition: rec-rset.c:682
char * rec_field_name_normalise(const char *str)
Definition: rec-field-name.c:75
rec_db_t rec_db_new(void)
Definition: rec-db.c:82
bool rec_mset_type_p(rec_mset_t mset, rec_mset_type_t type)
Definition: rec-mset.c:285
struct rec_field_s * rec_field_t
Definition: rec.h:716
const char * rec_type_name(rec_type_t type)
Definition: rec-types.c:861
void rec_record_set_container(rec_record_t record, void *container)
Definition: rec-record.c:645
rec_rset_t rec_rset_sort(rec_rset_t rset, rec_fex_t sort_by)
Definition: rec-rset.c:721
bool rec_decrypt_record(rec_rset_t rset, rec_record_t record, const char *password)
Definition: rec-crypt-dummy.c:73
bool rec_field_set_value(rec_field_t field, const char *value)
Definition: rec-field.c:89
void rec_sex_print_ast(rec_sex_t sex)
Definition: rec-sex.c:271
struct rec_parser_s * rec_parser_t
Definition: rec.h:1849
void rec_record_set_location(rec_record_t record, size_t location)
Definition: rec-record.c:524
struct rec_type_s * rec_type_t
Definition: rec.h:606
char * rec_rset_url(rec_rset_t rset)
Definition: rec-rset.c:428
void rec_parser_reset(rec_parser_t parser)
Definition: rec-parser.c:344
struct rec_sex_s * rec_sex_t
Definition: rec.h:1076
bool rec_encrypt(char *in, size_t in_size, const char *password, char **out, size_t *out_size)
Definition: rec-crypt-dummy.c:31
bool rec_sex_compile(rec_sex_t sex, const char *expr)
Definition: rec-sex.c:114
void rec_type_reg_add_synonym(rec_type_reg_t reg, const char *type_name, const char *to_name)
Definition: rec-types.c:781
void * rec_mset_get_at(rec_mset_t mset, rec_mset_type_t type, size_t position)
Definition: rec-mset.c:320
rec_aggregate_reg_t rec_aggregate_reg_new(void)
Definition: rec-aggregate.c:113
long rec_parser_tell(rec_parser_t parser)
Definition: rec-parser.c:745
const char * rec_field_char_location_str(rec_field_t field)
Definition: rec-field.c:290
struct rec_writer_s * rec_writer_t
Definition: rec.h:1967
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)
Definition: rec-int.c:220
size_t rec_rset_min_records(rec_rset_t rset)
Definition: rec-rset.c:676
void rec_mset_elem_set_type(rec_mset_elem_t elem, rec_mset_type_t type)
Definition: rec-mset.c:668
void rec_type_reg_add(rec_type_reg_t reg, rec_type_t type)
Definition: rec-types.c:736
struct rec_mset_elem_s * rec_mset_elem_t
Definition: rec.h:69
struct rec_aggregate_reg_s * rec_aggregate_reg_t
Definition: rec.h:1310
enum rec_type_kind_e rec_type_kind(rec_type_t type)
Definition: rec-types.c:479
const char * rec_rset_key(rec_rset_t rset)
Definition: rec-rset.c:559
bool rec_parse_record(rec_parser_t parser, rec_record_t *record)
Definition: rec-parser.c:399
rec_mset_elem_t rec_mset_insert_after(rec_mset_t mset, rec_mset_type_t type, void *data, rec_mset_elem_t elem)
Definition: rec-mset.c:511
rec_fex_t rec_rset_order_by_fields(rec_rset_t rset)
Definition: rec-rset.c:715
char * rec_fex_str(rec_fex_t fex, enum rec_fex_kind_e kind)
Definition: rec-fex.c:343
void rec_record_reset_marks(rec_record_t record)
Definition: rec-record.c:741
size_t rec_record_num_comments(rec_record_t record)
Definition: rec-record.c:281
bool rec_fex_elem_set_field_name(rec_fex_elem_t elem, const char *fname)
Definition: rec-fex.c:279
void rec_writer_set_skip_comments(rec_writer_t writer, bool value)
Definition: rec-writer.c:699
char * rec_rset_source(rec_rset_t rset)
Definition: rec-rset.c:688
int rec_type_min(rec_type_t type)
Definition: rec-types.c:917
int rec_fex_elem_max(rec_fex_elem_t elem)
Definition: rec-fex.c:294
bool rec_aggregate_reg_add(rec_aggregate_reg_t func_reg, const char *name, rec_aggregate_t function)
Definition: rec-aggregate.c:138
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)
Definition: rec-db.c:517
void rec_rset_set_descriptor(rec_rset_t rset, rec_record_t record)
Definition: rec-rset.c:343
char * rec_parse_field_name_str(const char *str)
Definition: rec-parser.c:658
void rec_type_set_name(rec_type_t type, const char *name)
Definition: rec-types.c:867
rec_rset_t rec_db_get_rset(rec_db_t db, size_t position)
Definition: rec-db.c:137
struct rec_db_s * rec_db_t
Definition: rec.h:1304
void rec_field_set_mark(rec_field_t field, int mark)
Definition: rec-field.c:307
rec_fex_t rec_rset_auto(rec_rset_t rset)
Definition: rec-rset.c:579
const char * rec_field_location_str(rec_field_t field)
Definition: rec-field.c:257
bool rec_comment_equal_p(rec_comment_t comment1, rec_comment_t comment2)
Definition: rec-comment.c:73
rec_field_t rec_field_new(const char *name, const char *value)
Definition: rec-field.c:98
void * rec_mset_elem_data(rec_mset_elem_t elem)
Definition: rec-mset.c:677
bool rec_record_subset_p(rec_record_t record1, rec_record_t record2)
Definition: rec-record.c:210
size_t rec_db_size(rec_db_t db)
Definition: rec-db.c:131
size_t rec_rset_num_records(rec_rset_t rset)
Definition: rec-rset.c:325
size_t rec_rset_num_sex_constraints(rec_rset_t rset)
Definition: rec-rset.c:916
char * rec_sex_eval_str(rec_sex_t sex, rec_record_t record)
Definition: rec-sex.c:153
bool rec_parser_eof(rec_parser_t parser)
Definition: rec-parser.c:178
void rec_fex_destroy(rec_fex_t fex)
Definition: rec-fex.c:135
void rec_mset_elem_set_data(rec_mset_elem_t elem, void *data)
Definition: rec-mset.c:683
char * rec_record_char_location_str(rec_record_t record)
Definition: rec-record.c:545
bool rec_parser_error(rec_parser_t parser)
Definition: rec-parser.c:184
void rec_fex_sort(rec_fex_t fex)
Definition: rec-fex.c:306
rec_field_t rec_record_get_field_by_name(rec_record_t record, const char *field_name, size_t n)
Definition: rec-record.c:339
bool rec_fex_member_p(rec_fex_t fex, const char *fname, int min, int max)
Definition: rec-fex.c:418
bool rec_mset_iterator_next(rec_mset_iterator_t *iterator, rec_mset_type_t type, const void **data, rec_mset_elem_t *elem)
Definition: rec-mset.c:611
size_t rec_record_char_location(rec_record_t record)
Definition: rec-record.c:539
rec_rset_t rec_rset_new(void)
Definition: rec-rset.c:165
bool rec_field_set_source(rec_field_t field, const char *source)
Definition: rec-field.c:232
size_t rec_rset_num_comments(rec_rset_t rset)
Definition: rec-rset.c:331
void rec_record_destroy(rec_record_t record)
Definition: rec-record.c:136
int rec_int_check_db(rec_db_t db, bool check_descriptors_p, bool remote_descriptors_p, rec_buf_t errors)
Definition: rec-int.c:96
bool rec_record_equal_p(rec_record_t record1, rec_record_t record2)
Definition: rec-record.c:255
rec_record_t rec_record_new(void)
Definition: rec-record.c:77
int rec_type_values_cmp(rec_type_t type, const char *val1, const char *val2)
Definition: rec-types.c:964
rec_mset_t rec_rset_mset(rec_rset_t rset)
Definition: rec-rset.c:313
Definition: rec-aggregate.c:50
size_t size
Definition: rec-buf.c:37
char * data
Definition: rec-buf.c:36
int min
Definition: rec-fex.c:47
char * str
Definition: rec-fex.c:42
int max
Definition: rec-fex.c:46
Definition: rec-field.c:40
int mark
Definition: rec-field.c:57
char * value
Definition: rec-field.c:45
char * name
Definition: rec-field.c:44
size_t location
Definition: rec-field.c:50
char * source
Definition: rec-field.c:49
Definition: rec-mset.c:44
rec_mset_type_t type
Definition: rec-mset.c:45
void * data
Definition: rec-mset.c:46
rec_mset_t mset
Definition: rec-mset.c:51
rec_mset_list_iter_t list_iter
Definition: rec.h:88
rec_mset_t mset
Definition: rec.h:87
void * p
Definition: rec.h:81
size_t count
Definition: rec.h:80
void * list
Definition: rec.h:79
size_t i
Definition: rec.h:82
void * vtable
Definition: rec.h:78
Definition: rec-mset.c:55
Definition: rec-parser.c:72
char * source
Definition: rec-parser.c:78
Definition: rec-record.c:38
void * container
Definition: rec-record.c:42
size_t char_location
Definition: rec-record.c:54
size_t location
Definition: rec-record.c:52
char * source
Definition: rec-record.c:51
Definition: rec-rset.c:73
Definition: rec-types.c:261
Definition: rec-types.c:228
char * name
Definition: rec-types.c:229
Definition: rec-writer.c:46
enum rec_writer_mode_e mode
Definition: rec-writer.c:60