Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int smart_append(TextBuffer* dest, const char* src) {
- int src_len, src_size, remaining_space;
- int current_buf_size, current_buf_len;
- int const MAX_BUF_SIZE = 64;
- int const MAX_BUF_INDEX = MAX_BUF_SIZE - 1;
- if (dest == NULL || src == NULL)
- return 1;
- src_len = strlen(src);
- src_size = src_len + 1;
- current_buf_len = strlen(dest->buffer);
- current_buf_size = current_buf_len + 1;
- /* Sub buffer len from max_size, acct'ing for '\0' */
- remaining_space = MAX_BUF_SIZE - current_buf_size;
- if (src_size > remaining_space) {
- /* Cp as much as possible, update & return 1 */
- strncat(dest->buffer, src, (remaining_space - 1));
- dest->length = MAX_BUF_SIZE;
- return 1;
- } else {
- strncat(dest->buffer, src, src_len);
- dest->length += src_len;
- return 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement