Beispiel #1
0
static size_t
write_callback(char *ptr, size_t size, size_t nmemb, void *userdata)
{
  curl_write_context *ctx;
  int left_size, need_size;

  ctx = (curl_write_context *) userdata;
  left_size = ctx->length - ctx->index;
  need_size = size * nmemb + 1;
  if (need_size > left_size) {
    ctx->length = calculate_new_length(ctx->length, need_size);
    ctx->p = m2x_realloc(ctx->m2x_ctx, ctx->p, ctx->length);
  }

  strncpy(ctx->p + ctx->index, ptr, size * nmemb);
  ctx->index += size * nmemb;
  ctx->p[ctx->index] = '\0';
  return (size * nmemb);
}
Beispiel #2
0
void *m2x_malloc(m2x_context *ctx, size_t len)
{
  return m2x_realloc(ctx, NULL, len);
}