1 #ifndef _RECORD_H_INCLUDED_
2 #define _RECORD_H_INCLUDED_
29 #define REC_TYPE_EOF -1
30 #define REC_TYPE_ERROR -2
39 extern
int rec_fputs(VSTREAM *,
int, const
char *);
40 extern
int rec_goto(VSTREAM *, const
char *);
41 extern
int rec_pad(VSTREAM *,
int, ssize_t);
43 #define REC_PUT_BUF(v, t, b) rec_put((v), (t), vstring_str(b), VSTRING_LEN(b))
45 #define REC_FLAG_NONE (0)
46 #define REC_FLAG_FOLLOW_PTR (1<<0)
47 #define REC_FLAG_SKIP_DTXT (1<<1)
48 #define REC_FLAG_SEEK_END (1<<2)
50 #define REC_FLAG_DEFAULT \
51 (REC_FLAG_FOLLOW_PTR | REC_FLAG_SKIP_DTXT | REC_FLAG_SEEK_END)
53 #define REC_GET_HIDDEN_TYPE(t) \
54 ((t) == REC_TYPE_PTR || (t) == REC_TYPE_DTXT)
56 #define rec_get(fp, buf, limit) \
57 rec_get_raw((fp), (buf), (limit), REC_FLAG_DEFAULT)
59 #define REC_SPACE_NEED(buflen, reclen) do { \
61 for (_c = 1, _l = (buflen); (_l >>= 7U) != 0; _c++) \
63 (reclen) = 1 + _c + (buflen); \
69 extern int rec_vfprintf(VSTREAM *,
int,
const char *, va_list);
int rec_vfprintf(VSTREAM *, int, const char *, va_list)
int rec_put_type(VSTREAM *, int, off_t)
int rec_get_raw(VSTREAM *, VSTRING *, ssize_t, int)
int const char int rec_fputs(VSTREAM *, int, const char *)
int PRINTFLIKE(3, 4) rec_fprintf(VSTREAM *
int rec_put(VSTREAM *, int, const char *, ssize_t)
int rec_fprintf(VSTREAM *stream, int type, const char *format,...)
int rec_goto(VSTREAM *, const char *)
int rec_pad(VSTREAM *, int, ssize_t)