void t_mutable_string_append(void) { mutable_string_t a; CU_ASSERT_PTR_NOT_NULL( mutable_string_init( &a ) ); CU_ASSERT_EQUAL( mutable_string_get_length(&a), 0 ); CU_ASSERT_PTR_NOT_NULL( mutable_string_assign( &a, TEST_APPEND_HEAD ) ); CU_ASSERT_STRING_EQUAL( MUTSTR(&a), TEST_APPEND_HEAD ); CU_ASSERT_PTR_NOT_NULL( mutable_string_append( &a, TEST_APPEND_TAIL ) ); CU_ASSERT_STRING_EQUAL( MUTSTR(&a), TEST_APPEND_WHOLE ); mutable_string_free(&a); }
LIB_MUTABLE_STRING_API MutableString* mutable_string_escape(const MutableString* ms) { if(ms == NULL) return NULL; if(ms->buffer == NULL) return NULL; MutableString* out; size_t i; char c; out = mutable_string_new_len(ms->length + 1); if(out == NULL) return NULL; for(i = 0; i < ms->length; i++) { c = ms->buffer[i]; if(c == '\n') { mutable_string_append(out, "\\n"); } else if(c == '\t') { mutable_string_append(out, "\\t"); } else if(c == '\b') { mutable_string_append(out, "\\b"); } else if(c == '\r') { mutable_string_append(out, "\\r"); } else if(c == '\f') { mutable_string_append(out, "\\f"); } else if(c == '"') { mutable_string_append(out, "\""); } else { mutable_string_append_c(out, c); } } return out; }
mutable_string_t* mutable_string_append_char(mutable_string_t *dest, char src) { char _src[2]; sprintf(_src, "%c", src); return mutable_string_append(dest, _src); }
mutable_string_t* mutable_string_append_mutable_string(mutable_string_t *dest, mutable_string_t *src) { return mutable_string_append(dest, MUTSTR(src)); }