silc_buffer_sstrformat to preserve buffer locations.
authorPekka Riikonen <priikone@silcnet.org>
Wed, 20 Sep 2006 16:47:56 +0000 (16:47 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Wed, 20 Sep 2006 16:47:56 +0000 (16:47 +0000)
lib/silcutil/silcbuffmt.c
lib/silcutil/silcbuffmt.h

index 4dd54965084e33a18a8351c6e6da426d0311dc31..902d28055c3ad01e7acabfd5db5b7fb4678757be 100644 (file)
@@ -619,6 +619,7 @@ int silc_buffer_strformat(SilcBuffer dst, ...)
 int silc_buffer_sstrformat(SilcStack stack, SilcBuffer dst, ...)
 {
   int len = silc_buffer_truelen(dst);
+  int hlen = silc_buffer_headlen(dst);
   va_list va;
 
   va_start(va, dst);
@@ -651,7 +652,7 @@ int silc_buffer_sstrformat(SilcStack stack, SilcBuffer dst, ...)
 
  ok:
   dst->end = dst->head + len;
-  dst->data = dst->head;
+  dst->data = dst->head + hlen;
   dst->tail = dst->end;
 
   va_end(va);
index cf0ed7b3f2f2f9b7204d43f87e9d48d58fd035ea..a3ff49dc18e1229be8d8a2a204dfbc28749906ec 100644 (file)
@@ -66,7 +66,7 @@
  *    silc_buffer_purge(&buffer);
  *
  *    // Allocate zero size buffer
- *    buf = silc_buffer_alloc();
+ *    buf = silc_buffer_alloc(0);
  *    ret = silc_buffer_format(buf,
  *                             SILC_STR_INT(intval),
  *                             SILC_STR_CHAR(charval),