#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)
{
for (z = b->val; *z; z++)
if (*z < ' ' && *z != '\t')
{
- log(L_ERROR, "obj_dump: Found non-ASCII characters (URL might be %s)", obj_find_aval(d, 'U'));
+ log(L_ERROR, "obj_dump: Found non-ASCII character %02x (URL might be %s) in %c%s", *z, obj_find_aval(d, 'U'), a->attr, b->val);
*z = '?';
}
ASSERT(z - b->val <= MAX_ATTR_SIZE-2);