END_TEST START_TEST (test_StringBuffer_accessWithNULL) { StringBuffer_append(NULL, NULL); StringBuffer_appendChar(NULL, ' '); StringBuffer_appendExp(NULL, 0.0); StringBuffer_appendInt(NULL, 0); StringBuffer_appendNumber(NULL, NULL); StringBuffer_appendReal(NULL, 0.0); fail_unless (StringBuffer_capacity(NULL) == 0); StringBuffer_ensureCapacity(NULL, 0); StringBuffer_free(NULL); fail_unless (StringBuffer_getBuffer(NULL) == NULL); StringBuffer_grow(NULL, 0); fail_unless (StringBuffer_length(NULL) == 0); StringBuffer_reset(NULL); fail_unless (StringBuffer_toString(NULL) == NULL); }
/** * Appends the given character to this StringBuffer. */ LIBSBML_EXTERN void StringBuffer_appendChar (StringBuffer_t *sb, char c) { StringBuffer_ensureCapacity(sb, 1); sb->buffer[sb->length++] = c; sb->buffer[sb->length] = '\0'; }
/** * Appends the given string to this StringBuffer. */ LIBSBML_EXTERN void StringBuffer_append (StringBuffer_t *sb, const char *s) { unsigned long len = strlen(s); StringBuffer_ensureCapacity(sb, len); strncpy(sb->buffer + sb->length, s, len + 1); sb->length += len; }
LIBSBML_EXTERN void StringBuffer_appendWithLength (StringBuffer_t *sb, const char *s, unsigned long len) { if (sb == NULL || s == NULL) return; StringBuffer_ensureCapacity(sb, len); strncpy(sb->buffer + sb->length, s, len + 1); sb->length += len; }
/** * Appends a string representation of the given number to this StringBuffer * The function snprintf is used to do the conversion and currently n = 42; * i.e. the number will be truncated after 42 characters, regardless of the * buffer size. * * The format argument should be a printf conversion specifier, e.g. "%d", * "%f", "%g", etc. */ LIBSBML_EXTERN void StringBuffer_appendNumber (StringBuffer_t *sb, const char *format, ...) { #ifdef _MSC_VER # define vsnprintf _vsnprintf #endif const int size = 42; int len; va_list ap; StringBuffer_ensureCapacity(sb, size); va_start(ap, format); len = c_locale_vsnprintf(sb->buffer + sb->length, size, format, ap); va_end(ap); sb->length += (len < 0 || len > size) ? size : len; sb->buffer[sb->length] = '\0'; }