Example #1
0
File: str_buf.c Project: layus/Os
str_buf *
str_buf_concat(str_buf * buf1, str_buf * buf2)
{
    str_buf * buf;

    if ( buf1 == NULL ) {
        if ( buf2 == NULL ) 
            buf = str_buf_alloc(0);
        else
            buf = str_buf_alloc_substr(buf2->data, buf2->length);
    } 
    else if ( buf2 == NULL ) {
        buf = str_buf_alloc_substr(buf1->data, buf1->length);
    }
    else {
        buf = str_buf_alloc( buf1->length + buf2->length );

        if ( buf == NULL ) return NULL ;

        strcpy(buf->data, buf1->data);
        strcpy(buf->data + buf1->length, buf2->data);
        buf->length = buf->size;
    }

    return buf;
}
Example #2
0
void test_str_buf_put_str(){
    str_buf *b1;
		b1 = str_buf_alloc(10);
		assert(str_buf_put_str(b1,"abcdef"));
		assert(strcmp(str_buf_head(b1),"abcdef")==0);
        str_buf_free(b1);
}
Example #3
0
void
test_str_buf_free(){
    str_buf *b1;
    str_buf *b2;
    b1 = str_buf_alloc(100);
    b2 = str_buf_alloc_str("abcdef");
    str_buf_free(b1);
    str_buf_free(b2);
}
Example #4
0
void
test_str_buf_len(){
    str_buf *b1, *b2;
		b1 = str_buf_alloc(10);
		b2 = str_buf_alloc_str("abc");
		assert(str_buf_len(b1)==0);
		assert(str_buf_len(b2)==3);
        str_buf_free(b1);
        str_buf_free(b2);
}
Example #5
0
void
test_str_buf_put_buf(){
    str_buf *b1;
    str_buf *b2;
    str_buf *b3;
    str_buf *b4;
		b1 = str_buf_alloc(10);
		b2 = str_buf_alloc_str("abcdef");
		assert(str_buf_put_buf(b1,b2));
		assert(strcmp(str_buf_head(b1),"abcdef")==0);
		b3 = str_buf_alloc(10);
		b4 = str_buf_alloc_str("efg");
		assert(str_buf_put_str(b3,"abcd"));
		assert(str_buf_put_buf(b3,b4));
		assert(strcmp(str_buf_head(b3),"abcdefg")==0);
        str_buf_free(b1);
        str_buf_free(b2);
        str_buf_free(b3);
        str_buf_free(b4);
}
Example #6
0
File: str_buf.c Project: layus/Os
str_buf *
str_buf_alloc_substr(const char * str, size_t str_len)
{
    str_buf * buf;

    buf = str_buf_alloc( str_len );
    if ( buf == NULL ) return NULL;

    strncpy(buf->data, str, str_len);
    buf->length = buf->size;

    return buf;
}
Example #7
0
void 
test_str_buf_concat(){
    str_buf * b1;
    str_buf * b2;
    str_buf * b3;
    str_buf * b4;
    str_buf * b5;
    str_buf * b6;
    str_buf * b7;
		
		b1 = str_buf_alloc(10);
		b2 = str_buf_alloc_str("abc");
		b3 = str_buf_alloc_str("wxyz");

		b4 = str_buf_concat(b1, b2);

			
		assert(str_buf_len(b4) == 3);
		assert(str_buf_equals(b4, b2));
		
		b5 = str_buf_concat(b2, b1);
			
		assert(str_buf_equals(b5, b2));
		assert(str_buf_len(b5) == 3);
	
		b6 = str_buf_concat(b4, b3);
		b7 = str_buf_alloc_str("abcwxyz");
		assert(str_buf_equals(b6, b7));
			
		str_buf_free(b1);
		str_buf_free(b2);
		str_buf_free(b3);
		str_buf_free(b4);
		str_buf_free(b5);
		str_buf_free(b6);
		str_buf_free(b7);	
}