* of the GNU Lesser General Public License.
*/
-#include "ucw/lib.h"
-#include "ucw/mempool.h"
+#include <ucw/lib.h>
+#include <ucw/mempool.h>
#include <alloca.h>
#include <stdio.h>
#include <string.h>
static char *
-mp_vprintf_at(struct mempool *mp, uns ofs, const char *fmt, va_list args)
+mp_vprintf_at(struct mempool *mp, size_t ofs, const char *fmt, va_list args)
{
char *ret = mp_grow(mp, ofs + 1) + ofs;
va_list args2;
}
while (cnt < 0);
}
- else if ((uns)cnt >= mp_avail(mp) - ofs)
+ else if ((uint)cnt >= mp_avail(mp) - ofs)
{
- ret = mp_grow(mp, cnt + 1) + ofs;
+ ret = mp_grow(mp, ofs + cnt + 1) + ofs;
va_copy(args2, args);
int cnt2 = vsnprintf(ret, cnt + 1, fmt, args2);
va_end(args2);
}
char *
-mp_vprintf_append(struct mempool *mp, char *ptr, const char *fmt, va_list args)
+mp_append_vprintf(struct mempool *mp, char *ptr, const char *fmt, va_list args)
{
- uns ofs = mp_open(mp, ptr);
- ASSERT(ofs);
+ size_t ofs = mp_open(mp, ptr);
+ ASSERT(ofs && !ptr[ofs - 1]);
return mp_vprintf_at(mp, ofs - 1, fmt, args);
}
char *
-mp_printf_append(struct mempool *mp, char *ptr, const char *fmt, ...)
+mp_append_printf(struct mempool *mp, char *ptr, const char *fmt, ...)
{
va_list args;
va_start(args, fmt);
struct mempool *mp = mp_new(64);
char *x = mp_printf(mp, "<Hello, %s!>", "World");
fputs(x, stdout);
- x = mp_printf_append(mp, x, "<Appended>");
+ x = mp_append_printf(mp, x, "<Appended>");
fputs(x, stdout);
x = mp_printf(mp, "<Hello, %50s!>\n", "World");
fputs(x, stdout);