/* Creation date: 2005-06-27 22:19:17 * Authors: Don * Change log: */ #include "cfustring.h" #include #include #ifdef CFU_DEBUG #ifdef NDEBUG #undef NDEBUG #endif #else #ifndef NDEBUG #define NDEBUG 1 #endif #endif #include int main(int argc, char **argv) { cfustring_t *buf = cfustring_new_with_initial_size(32); char **strings = NULL; size_t num_strings = 0; size_t num_headers = 0; size_t i = 0; char *ref_addr = NULL; char *s = NULL; cfustring_t *header_block = cfustring_new_from_string( "User-Agent: curl/7.10.6 (i386-redhat-linux-gnu) libcurl/7.10.6 OpenSSL/0.9.7a ipv6 zlib/1.2.0.7\r\n" "Host: localhost:9095\r\n" "Pragma: no-cache\r\n" "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*\r\n"); cfustring_t **header_lines = NULL; argc = argc; argv = argv; /* avoid compiler warnings */ cfustring_append(buf, "test^*string%2^*3"); strings = cfustring_split_to_c_str(buf, &num_strings, 0, "%", "^*", NULL); printf("got back %lu strings\n", num_strings); printf("\n"); for (i = 0; i < num_strings; i++) { printf("'%s'\n", strings[i]); } for (i = 0; i < num_strings; i++) { free(strings[i]); } free(strings); header_lines = cfustring_split(header_block, &num_headers, 0, "\r\n", "\n", NULL); printf("got back %lu headers\n", num_strings); for (i = 0; i < num_headers; i++) { strings = cfustring_split_to_c_str(header_lines[i], &num_strings, 2, ":", NULL); if (num_strings != 2) { /* bad header */ size_t j = 0; for (j = 0; j < num_strings; j++) free(strings[j]); free(strings); fprintf(stderr, "bad header: %lu strings from split -- '%s'\n", num_strings, cfustring_get_buffer(header_lines[i])); continue; } printf("Got header '%s' => '%s'\n", strings[0], strings[1]); free(strings[0]); free(strings[1]); free(strings); } for (i = 0; i < num_headers; i++) { assert(cfu_is_string(header_lines[i])); cfustring_destroy(header_lines[i]); } free(header_lines); cfustring_sprintf(buf, "this %% is a string - '%.2f'", 509.0); printf("cfustring_sprintf(): '%s'\n", cfustring_get_buffer(buf)); cfustring_destroy(buf); s = cfustring_sprintf_c_str("this is a test with a num: '%u'\n", 5); printf("got: %s\n", s); free(s); ref_addr = cfustring_sprintf_c_str("%p", (void *)header_block); cfustring_destroy(header_block); printf("\n\nheader_block as ref_addr='%s'\n\n", ref_addr); free(ref_addr); return 0; }