Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <string.h>
- #include "exercise.h"
- int smart_append(TextBuffer* dest, const char* src) {
- /* REMEMBER: Length != Size */
- int src_len, remaining_space;
- int current_buf_len;
- int const MAX_BUF_SIZE = 64;
- if (dest == NULL || src == NULL)
- return 1;
- src_len = strlen(src);
- current_buf_len = strlen(dest->buffer);
- /* Sub buffer len from max_size, acct'ing for '\0' */
- remaining_space = MAX_BUF_SIZE - (current_buf_len + 1);
- if (src_len > remaining_space) {
- /* Cp as much as possible, update & return 1 */
- strncat(dest->buffer, src, remaining_space);
- dest->length = MAX_BUF_SIZE - 1;
- 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