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;
}
Esempio n. 3
0
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);
}
Esempio n. 4
0
mutable_string_t* mutable_string_append_mutable_string(mutable_string_t *dest, mutable_string_t *src) {
	return mutable_string_append(dest, MUTSTR(src));
}