#include <stdarg.h>
static uns use_v33;
+static int hdr_sep;
void
attr_set_type(uns type)
switch (type)
{
case BUCKET_TYPE_PLAIN:
+ use_v33 = 0;
+ hdr_sep = -1;
+ break;
case BUCKET_TYPE_V30:
use_v33 = 0;
+ hdr_sep = '\n';
break;
case BUCKET_TYPE_V33:
case BUCKET_TYPE_V33_LIZARD:
use_v33 = 1;
+ hdr_sep = 0;
break;
default:
die("Don't know how to generate buckets of type %08x", type);
return ptr;
}
+byte *
+put_attr_separator(byte *ptr)
+{
+ if (hdr_sep >= 0)
+ *ptr++ = hdr_sep;
+ return ptr;
+}
+
inline void
bput_attr(struct fastbuf *b, uns type, byte *val, uns len)
{
bprintf(b, "%c%d\n", type, val);
}
+void
+bput_attr_separator(struct fastbuf *b)
+{
+ if (hdr_sep >= 0)
+ bputc(b, hdr_sep);
+}
+
void
obj_write(struct fastbuf *f, struct odes *d)
{
byte *put_attr_vformat(byte *ptr, uns type, byte *mask, va_list va);
byte *put_attr_format(byte *ptr, uns type, char *mask, ...) __attribute__((format(printf,3,4)));
byte *put_attr_num(byte *ptr, uns type, uns val);
+byte *put_attr_separator(byte *ptr);
void bput_attr(struct fastbuf *b, uns type, byte *val, uns len);
void bput_attr_str(struct fastbuf *b, uns type, byte *val);
void bput_attr_vformat(struct fastbuf *b, uns type, byte *mask, va_list va);
void bput_attr_format(struct fastbuf *b, uns type, char *mask, ...) __attribute__((format(printf,3,4)));
void bput_attr_num(struct fastbuf *b, uns type, uns val);
+void bput_attr_separator(struct fastbuf *b);
void obj_write(struct fastbuf *, struct odes *);
void obj_write_nocheck(struct fastbuf *, struct odes *);