00001
00002
00003
00004
00005 #if !defined(_INCLUDED_SUL_STRLIB_H_HEADER__)
00006 #define _INCLUDED_SUL_STRLIB_H_HEADER__
00007
00008 typedef struct sul_string_t
00009 {
00010 char *data;
00011 apr_size_t len;
00012 } sul_string_t;
00013
00014
00015 typedef struct sul_stringbuf_t
00016 {
00017 char *data;
00018 apr_size_t len;
00019 apr_size_t blocksize;
00020 apr_pool_t *pool;
00021 } sul_stringbuf_t;
00022
00023 extern SUL_DECLARE(sul_string_t *) sul_string_create(const char *cstring, apr_pool_t *pool);
00024 extern SUL_DECLARE(sul_string_t *) sul_string_ncreate(const char *bytes, const apr_size_t size, apr_pool_t *pool);
00025 extern SUL_DECLARE(sul_string_t *) sul_string_create_from_buf(const sul_stringbuf_t *strbuf, apr_pool_t *pool);
00026 extern SUL_DECLARE(sul_string_t *) sul_string_createf(apr_pool_t *pool, const char *fmt, ...) __attribute__ ((format (printf, 2, 3)));
00027 extern SUL_DECLARE(sul_string_t *) sul_string_createv(apr_pool_t *pool, const char *fmt, va_list ap) __attribute__ ((format (printf, 2, 0)));
00028 extern SUL_DECLARE(sul_boolean_t) sul_string_isempty(const sul_string_t *str);
00029 extern SUL_DECLARE(sul_string_t *) sul_string_dup(const sul_string_t *original_string, apr_pool_t *pool);
00030 extern SUL_DECLARE(sul_boolean_t) sul_string_compare(const sul_string_t *str1, const sul_string_t *str2);
00031
00032 extern SUL_DECLARE(apr_size_t) sul_string_first_non_whitespace(const sul_string_t *str);
00033 extern SUL_DECLARE(void) sul_string_strip_whitespace(sul_string_t *str);
00034 extern SUL_DECLARE(apr_size_t) sul_string_find_char_backward(const sul_string_t *str, char ch);
00035
00036
00037 extern SUL_DECLARE(sul_stringbuf_t *) sul_stringbuf_create(const char *cstring, apr_pool_t *pool);
00038 extern SUL_DECLARE(sul_stringbuf_t *) sul_stringbuf_ncreate(const char *bytes, const apr_size_t size, apr_pool_t *pool);
00039 extern SUL_DECLARE(sul_stringbuf_t *) sul_stringbuf_create_from_string(const sul_string_t *str, apr_pool_t *pool);
00040 extern SUL_DECLARE(sul_stringbuf_t *) sul_stringbuf_createf(apr_pool_t *pool, const char *fmt, ...) __attribute__ ((format (printf, 2, 3)));
00041 extern SUL_DECLARE(sul_stringbuf_t *) sul_stringbuf_createv(apr_pool_t *pool, const char *fmt, va_list ap) __attribute__ ((format (printf, 2, 0)));
00042 extern SUL_DECLARE(void) sul_stringbuf_ensure(sul_stringbuf_t *str, apr_size_t minimum_size);
00043 extern SUL_DECLARE(void) sul_stringbuf_set(sul_stringbuf_t *str, const char *value);
00044 extern SUL_DECLARE(void) sul_stringbuf_setempty(sul_stringbuf_t *str);
00045 extern SUL_DECLARE(sul_boolean_t) sul_stringbuf_isempty(const sul_stringbuf_t *str);
00046 extern SUL_DECLARE(void) sul_stringbuf_chop(sul_stringbuf_t *str, apr_size_t bytes);
00047 extern SUL_DECLARE(void) sul_stringbuf_fillchar(sul_stringbuf_t *str, const unsigned char c);
00048 extern SUL_DECLARE(void) sul_stringbuf_appendbytes (sul_stringbuf_t *targetstr, const char *bytes, const apr_size_t count);
00049 extern SUL_DECLARE(void) sul_stringbuf_appendstr(sul_stringbuf_t *targetstr, const sul_stringbuf_t *appendstr);
00050 extern SUL_DECLARE(void) sul_stringbuf_appendcstr(sul_stringbuf_t *targetstr, const char *cstr);
00051 extern SUL_DECLARE(void) sul_stringbuf_appendchar(sul_stringbuf_t *targetstr, const char chr);
00052 extern SUL_DECLARE(void) sul_stringbuf_appendcharn(sul_stringbuf_t *targetstr, const char chr, apr_size_t n);
00053
00054 extern SUL_DECLARE(sul_stringbuf_t *) sul_stringbuf_dup(const sul_stringbuf_t *original_string, apr_pool_t *pool);
00055 extern SUL_DECLARE(sul_boolean_t) sul_stringbuf_compare(const sul_stringbuf_t *str1, const sul_stringbuf_t *str2);
00056
00057 extern SUL_DECLARE(apr_size_t) sul_stringbuf_first_non_whitespace(const sul_stringbuf_t *str);
00058 extern SUL_DECLARE(void) sul_stringbuf_strip_whitespace(sul_stringbuf_t *str);
00059 extern SUL_DECLARE(apr_size_t) sul_stringbuf_find_char_backward(const sul_stringbuf_t *str, char ch);
00060 extern SUL_DECLARE(sul_boolean_t) sul_string_compare_stringbuf(const sul_string_t *str1, const sul_stringbuf_t *str2);
00061
00071 SUL_DECLARE(void)
00072 sul_join_strings_strbuffer(sul_stringbuf_t *sb, apr_array_header_t *strings,
00073 const char *sep, apr_size_t bgn, apr_pool_t *pool);
00074
00075 #endif