2 #define OP_MASK 0xff // only get the operation
3 #define OP_OPEN 0x100 // here we only get an opening brace instead of parameters
4 #define OP_1ST 0x200 // in the 1st phase selectors are recorded into the mask
5 #define OP_2ND 0x400 // in the 2nd phase real data are entered
7 extern byte *cf_op_names[];
9 uns cf_type_size(enum cf_type type, struct cf_user_type *utype);
10 byte *cf_interpret_line(byte *name, enum cf_operation op, int number, byte **pars);
11 void cf_init_stack(void);
12 int cf_check_stack(void);
15 void cf_journal_swap(void);
16 void cf_journal_delete(void);
19 #define SEC_FLAG_DYNAMIC 0x80000000 // contains a dynamic attribute
20 #define SEC_FLAG_UNKNOWN 0x40000000 // ignore unknown entriies
21 #define SEC_FLAG_CANT_COPY 0x20000000 // contains lists or parsers
22 #define SEC_FLAG_NUMBER 0x0fffffff // number of entries
23 enum cf_commit_mode { CF_NO_COMMIT, CF_COMMIT, CF_COMMIT_ALL };
24 extern struct cf_section cf_sections;
26 struct cf_item *cf_find_subitem(struct cf_section *sec, byte *name);
27 int cf_commit_all(enum cf_commit_mode cm);
28 void cf_add_dirty(struct cf_section *sec, void *ptr);