sapling/eden/scm/lib/clib/buffer.c
Adam Simpkins ab3a7cb21f Move fb-mercurial sources into an eden/scm subdirectory.
Summary:
In preparation for merging fb-mercurial sources to the Eden repository,
move everything from the top-level directory into an `eden/scm`
subdirectory.
2019-11-13 16:04:48 -08:00

42 lines
949 B
C

// Copyright (c) 2004-present, Facebook, Inc.
// All Rights Reserved.
//
// This software may be used and distributed according to the terms of the
// GNU General Public License version 2 or any later version.
// buffer.c: implementation for a generic mechanism to expand a heap-allocated
// buffer.
// no-check-code
#include <stdlib.h>
#include <string.h>
#include "lib/clib/buffer.h"
bool buffer_append(
char** buffer,
size_t* buffer_idx,
size_t* buffer_sz,
char* input,
size_t input_sz,
const float factor,
const size_t min_increment,
const size_t max_increment) {
if (expand_to_fit(
(void**)buffer,
*buffer_idx,
buffer_sz,
input_sz,
sizeof(char),
factor,
min_increment,
max_increment) == false) {
return false;
}
memcpy(&(*buffer)[*buffer_idx], input, input_sz);
*buffer_idx += input_sz;
return true;
}