2 * Generating V33 buckets
4 * (c) 2004, Robert Spalek <robert@ucw.cz>
7 #define WRITE_V33(ptr, type, text, len) ({\
9 PUT_UTF8(ptr, _len+1); \
10 memcpy(ptr, text, _len); \
15 #define PUTS_V33(ptr, type, text) WRITE_V33(ptr, type, text, strlen(text))
17 #define VPRINTF_V33(ptr, type, mask, va) ({\
18 uns _len = vsprintf(ptr+1, mask, va) + 1; \
22 }) // requires _len < 127 !
24 #define PRINTF_V33(ptr, type, mask...) ({\
25 uns _len = sprintf(ptr+1, mask) + 1; \
29 }) // requires _len < 127 !
31 #define PUTL_V33(ptr, type, num) PRINTF_V33(ptr, type, "%d", num)
33 #include "charset/unistream.h"
36 bwrite_v33(struct fastbuf *b, uns type, byte *text, uns len)
44 bputs_v33(struct fastbuf *b, uns type, byte *text)
46 bwrite_v33(b, type, text, strlen(text));
52 bprintf_v33(struct fastbuf *b, uns type, byte *mask, ...)
53 /* requires _len < 127 ! */
56 if (bdirect_write_prepare(b, &ptr) < 130)
59 bdirect_write_prepare(b, &ptr);
63 VPRINTF_V33(ptr, type, mask, va);
64 bdirect_write_commit(b, ptr);
68 bputl_v33(struct fastbuf *b, uns type, uns num)
71 if (bdirect_write_prepare(b, &ptr) < 20)
74 bdirect_write_prepare(b, &ptr);
76 PUTL_V33(ptr, type, num);
77 bdirect_write_commit(b, ptr);