1 #ifndef ACL_VSTRING_INCLUDE_H 2 #define ACL_VSTRING_INCLUDE_H 71 ssize_t max_len, ssize_t init_len);
81 #define ACL_VSTRING_CTL_MAXLEN 1 82 #define ACL_VSTRING_CTL_END 0 114 const char *src,
size_t len);
132 const char *src,
size_t len);
142 const char *src,
size_t len);
153 const char *src,
size_t len);
163 const char *src,
size_t len);
219 const char *buf,
size_t len);
229 const char *buf,
size_t len);
296 const
char *
format, va_list ap);
306 const
char *
format, va_list ap);
330 const
char **src,
size_t dlen);
344 const
char **src,
size_t dlen);
349 #define ACL_VSTRING_SPACE(vp, len) ((vp)->vbuf.space(&(vp)->vbuf, len)) 356 #define acl_vstring_str(vp) ((char *) (vp)->vbuf.data) 363 #define ACL_VSTRING_LEN(vp) (size_t) ((vp)->vbuf.ptr - (vp)->vbuf.data) 370 #define ACL_VSTRING_SIZE(vp) ((vp)->vbuf.len) 377 #define acl_vstring_end(vp) ((char *) (vp)->vbuf.ptr) 383 #define ACL_VSTRING_TERMINATE(vp) { \ 384 if ((vp)->vbuf.cnt <= 0) \ 385 ACL_VSTRING_SPACE((vp), 1); \ 386 if ((vp)->vbuf.cnt > 0) \ 387 *(vp)->vbuf.ptr = 0; \ 388 else if ((vp)->vbuf.ptr > (vp)->vbuf.data) { \ 390 *(vp)->vbuf.ptr = 0; \ 400 #define ACL_VSTRING_RESET(vp) { \ 401 (vp)->vbuf.ptr = (vp)->vbuf.data; \ 402 (vp)->vbuf.cnt = (vp)->vbuf.len; \ 403 acl_vbuf_clearerr(&(vp)->vbuf); \ 411 #define ACL_VSTRING_ADDCH(vp, ch) ACL_VBUF_PUT(&(vp)->vbuf, ch) 417 #define ACL_VSTRING_SKIP(vp) { \ 418 while ((vp)->vbuf.cnt > 0 && *(vp)->vbuf.ptr) \ 419 (vp)->vbuf.ptr++, (vp)->vbuf.cnt--; \ 426 #define acl_vstring_avail(vp) ((vp)->vbuf.cnt) 432 #define ACL_VSTRING_AT_OFFSET(vp, offset) { \ 433 (vp)->vbuf.ptr = (vp)->vbuf.data + (offset); \ 434 (vp)->vbuf.cnt = (vp)->vbuf.len - (offset); \ ACL_API ACL_VSTRING * acl_vstring_slice_alloc(ACL_SLICE_POOL *slice, size_t len)
ACL_API char * acl_vstring_memchr(ACL_VSTRING *vp, int ch)
ACL_API ACL_VSTRING * acl_vstring_prepend(ACL_VSTRING *vp, const char *buf, size_t len)
ACL_API char * acl_vstring_strcasestr(ACL_VSTRING *vp, const char *needle)
ACL_API ACL_VSTRING const char * format
ACL_API ACL_VSTRING * acl_vstring_dbuf_alloc(ACL_DBUF_POOL *dbuf, size_t len)
ACL_API ACL_VSTRING const char ACL_API ACL_VSTRING const char ACL_API char * acl_vstring_export(ACL_VSTRING *vp)
ACL_API ACL_VSTRING * acl_vstring_strcat(ACL_VSTRING *vp, const char *src)
ACL_API ACL_VSTRING * acl_vstring_memmove(ACL_VSTRING *vp, const char *src, size_t len)
ACL_API void acl_vstring_ctl(ACL_VSTRING *vp,...)
ACL_API void acl_vstring_free_buf(ACL_VSTRING *vp)
ACL_API ACL_VSTRING * acl_vstring_vsprintf_append(ACL_VSTRING *vp, const char *format, va_list ap)
ACL_API char * acl_vstring_rstrcasestr(ACL_VSTRING *vp, const char *needle)
ACL_API ACL_VSTRING * acl_vstring_strncpy(ACL_VSTRING *vp, const char *src, size_t len)
struct ACL_VSTRING ACL_VSTRING
ACL_API void acl_vstring_glue(ACL_VSTRING *vp, void *buf, size_t len)
ACL_API const ACL_VSTRING * acl_buffer_gets(ACL_VSTRING *vp, const char **src, size_t dlen)
ACL_API ACL_VSTRING * acl_vstring_memcat(ACL_VSTRING *vp, const char *src, size_t len)
ACL_API ACL_VSTRING * acl_vstring_vsprintf(ACL_VSTRING *vp, const char *format, va_list ap)
ACL_API ACL_VSTRING * acl_vstring_insert(ACL_VSTRING *vp, size_t start, const char *buf, size_t len)
struct ACL_DBUF_POOL ACL_DBUF_POOL
ACL_API ACL_VSTRING const char ACL_API const ACL_VSTRING * acl_buffer_gets_nonl(ACL_VSTRING *vp, const char **src, size_t dlen)
ACL_API char * acl_vstring_rstrstr(ACL_VSTRING *vp, const char *needle)
ACL_API ACL_VSTRING * acl_vstring_strcpy(ACL_VSTRING *vp, const char *src)
ACL_API ACL_VSTRING * acl_vstring_truncate(ACL_VSTRING *vp, size_t len)
ACL_API ACL_VSTRING * acl_vstring_alloc(size_t len)
ACL_API char * acl_vstring_strstr(ACL_VSTRING *vp, const char *needle)
ACL_API ACL_VSTRING * acl_vstring_memcpy(ACL_VSTRING *vp, const char *src, size_t len)
ACL_API ACL_VSTRING * acl_vstring_strncat(ACL_VSTRING *vp, const char *src, size_t len)
ACL_API void acl_vstring_init(ACL_VSTRING *vp, size_t len)
ACL_API char acl_vstring_charat(ACL_VSTRING *vp, size_t len)
ACL_API void acl_vstring_free(ACL_VSTRING *vp)
ACL_API ACL_VSTRING * acl_vstring_mmap_alloc(ACL_FILE_HANDLE fd, ssize_t max_len, ssize_t init_len)
ACL_API ACL_VSTRING * acl_vstring_import(char *str)
ACL_API ACL_VSTRING * ACL_PRINTF(2, 3) acl_vstring_sprintf(ACL_VSTRING *vp