ne_buffer_append, ne_buffer_zappend, ne_buffer_qappend, ne_buffer_concat, ne_buffer_snprintf — append data to a string buffer
#include <ne_string.h>
void ne_buffer_append(ne_buffer *buf, const char *string, size_t len);void ne_buffer_zappend(ne_buffer *buf, const char *string);void ne_buffer_qappend(ne_buffer *buf, const char *string, size_t len);void ne_buffer_concat(ne_buffer *buf, ...);size_t ne_buffer_snprintf(ne_buffer *buf, size_t max, const char *format, ...);The ne_buffer_append and
ne_buffer_zappend functions append a string to
the end of a buffer; extending the buffer as necessary. The
len passed to
ne_buffer_append specifies the length of the
string to append; there must be no NUL terminator in the first
len bytes of the string.
ne_buffer_zappend must be passed a
NUL-terminated string.
The ne_buffer_qappend function
behaves similarly to ne_buffer_append,
except that any non-ASCII characters or ASCII control
characters are escaped using C-style hex escaping. For
example, the C string "foo<TAB>bar",
where TAB represents ASCII character 9, would be appended as
"foo\x09bar". Any NUL bytes within the
length specified are also escaped. This function is useful to
make strings from untrusted sources safe for logging or output
in a user interface.
The ne_buffer_concat function takes
a variable-length argument list; each argument must be a
char * pointer to a NUL-terminated string. A
NULL pointer must be given as the last argument to mark the
end of the list. The strings are appended to the buffer in
the order given. None of the strings passed to
ne_buffer_concat are modified.
The ne_buffer_snprintf function behaves
like snprintf, appending the output string
formatted according to the format parameter.
At most max bytes are written including the
trailing NUL terminator.
The ne_buffer_snprintf function
returns the number of bytes appended
excluding the trailing NUL
terminator.