either by EOF or by a NUL byte) are very common, so let's introduce a special
function for reading them.
return 0;
}
+void
+obj_read_multi(struct fastbuf *f, struct odes *o)
+{
+ /* Read a multi-part object ending with either EOF or a NUL character */
+ byte buf[MAX_ATTR_SIZE];
+ while (bpeekc(f) > 0 && bgets(f, buf, sizeof(buf)))
+ if (buf[0])
+ obj_add_attr(o, buf[0], buf+1);
+}
+
void
obj_write(struct fastbuf *f, struct odes *d)
{
void obj_dump(struct odes *);
struct odes *obj_new(struct mempool *);
int obj_read(struct fastbuf *, struct odes *);
+void obj_read_multi(struct fastbuf *, struct odes *);
void obj_write(struct fastbuf *, struct odes *);
void obj_write_nocheck(struct fastbuf *, struct odes *);
struct oattr *obj_find_attr(struct odes *, uns);