From: Pavel Charvat Date: Tue, 19 Sep 2006 08:57:11 +0000 (+0200) Subject: bb_ofs_printf() -> bb_printf_at() X-Git-Tag: holmes-import~530 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=6fa80a52b7530bd9d4a855bda79d846ce879504e;p=libucw.git bb_ofs_printf() -> bb_printf_at() added bb_printf() --- diff --git a/lib/bbuf.c b/lib/bbuf.c index b664a79d..fae58700 100644 --- a/lib/bbuf.c +++ b/lib/bbuf.c @@ -13,7 +13,7 @@ #include char * -bb_ofs_vprintf(bb_t *bb, uns ofs, char *fmt, va_list args) +bb_vprintf_at(bb_t *bb, uns ofs, char *fmt, va_list args) { bb_grow(bb, ofs + 1); va_list args2; @@ -32,7 +32,7 @@ bb_ofs_vprintf(bb_t *bb, uns ofs, char *fmt, va_list args) } while (cnt < 0); } - else if (cnt >= bb->len - ofs) + else if ((uns)cnt >= bb->len - ofs) { bb_do_grow(bb, ofs + cnt + 1); va_copy(args2, args); @@ -44,11 +44,27 @@ bb_ofs_vprintf(bb_t *bb, uns ofs, char *fmt, va_list args) } char * -bb_ofs_printf(bb_t *bb, uns ofs, char *fmt, ...) +bb_printf_at(bb_t *bb, uns ofs, char *fmt, ...) { va_list args; va_start(args, fmt); - char *res = bb_ofs_vprintf(bb, ofs, fmt, args); + char *res = bb_vprintf_at(bb, ofs, fmt, args); + va_end(args); + return res; +} + +char * +bb_vprintf(bb_t *bb, char *fmt, va_list args) +{ + return bb_vprintf_at(bb, 0, fmt, args); +} + +char * +bb_printf(bb_t *bb, char *fmt, ...) +{ + va_list args; + va_start(args, fmt); + char *res = bb_vprintf_at(bb, 0, fmt, args); va_end(args); return res; } @@ -59,9 +75,9 @@ int main(void) { bb_t bb; bb_init(&bb); - char *x = bb_ofs_printf(&bb, 0, "", "World"); + char *x = bb_printf(&bb, "", "World"); fputs(x, stdout); - x = bb_ofs_printf(&bb, 5, "\n", "World"); + x = bb_printf_at(&bb, 5, "\n", "World"); fputs(x, stdout); bb_done(&bb); return 0; diff --git a/lib/bbuf.h b/lib/bbuf.h index ad7ce39d..2585bec3 100644 --- a/lib/bbuf.h +++ b/lib/bbuf.h @@ -14,7 +14,9 @@ #define GBUF_PREFIX(x) bb_##x #include "lib/gbuf.h" -char *bb_ofs_vprintf(bb_t *bb, uns ofs, char *fmt, va_list args); -char *bb_ofs_printf(bb_t *bb, uns ofs, char *fmt, ...); +char *bb_vprintf(bb_t *bb, char *fmt, va_list args); +char *bb_printf(bb_t *bb, char *fmt, ...); +char *bb_vprintf_at(bb_t *bb, uns ofs, char *fmt, va_list args); +char *bb_printf_at(bb_t *bb, uns ofs, char *fmt, ...); #endif