X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Fbuck2obj.c;h=7d651dfe6b65f6941f375a4c32ef53f88033c06d;hb=a010e5f6e075097c0d6362d40fb49e812e99e185;hp=3e7b78fc96ab532994013ec711f4d8b9768f9ac6;hpb=997624f88f37bec5cb96cf9fc3b3cac05ccc6ed8;p=libucw.git diff --git a/lib/buck2obj.c b/lib/buck2obj.c index 3e7b78fc..7d651dfe 100644 --- a/lib/buck2obj.c +++ b/lib/buck2obj.c @@ -9,7 +9,7 @@ #include "lib/unaligned.h" #include "lib/pools.h" #include "lib/fastbuf.h" -#include "charset/unicode.h" +#include "lib/unicode.h" #include "lib/object.h" #include "lib/bucket.h" #include "lib/lizard.h" @@ -163,3 +163,27 @@ obj_read_bucket(struct buck2obj_buf *buf, struct mempool *pool, uns buck_type, u else return o; } + +int +obj_read(struct fastbuf *f, struct odes *o) +{ + byte buf[MAX_ATTR_SIZE]; + + while (bgets(f, buf, sizeof(buf))) + { + if (!buf[0]) + return 1; + obj_add_attr(o, buf[0], buf+1); + } + 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); +}