123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #ifndef LIBAOS_STRING_H
- #define LIBAOS_STRING_H
- #include "aos_define.h"
- AOS_CPP_START
- typedef struct {
- int len;
- char *data;
- } aos_string_t;
- #define aos_string(str) { sizeof(str) - 1, (char *) str }
- #define aos_null_string { 0, NULL }
- #define aos_str_set(str, text) \
- (str)->len = strlen(text); (str)->data = (char *) text
- #define aos_str_null(str) (str)->len = 0; (str)->data = NULL
- #define aos_tolower(c) (char) ((c >= 'A' && c <= 'Z') ? (c | 0x20) : c)
- #define aos_toupper(c) (char) ((c >= 'a' && c <= 'z') ? (c & ~0x20) : c)
- static APR_INLINE void aos_string_tolower(aos_string_t *str)
- {
- int i = 0;
- while (i < str->len) {
- str->data[i] = aos_tolower(str->data[i]);
- ++i;
- }
- }
- static APR_INLINE char *aos_strlchr(char *p, char *last, char c)
- {
- while (p < last) {
- if (*p == c) {
- return p;
- }
- p++;
- }
- return NULL;
- }
- static APR_INLINE int aos_is_quote(char c)
- {
- return c == '\"';
- }
- static APR_INLINE int aos_is_space(char c)
- {
- return ((c == ' ') || (c == '\t'));
- }
- static APR_INLINE int aos_is_space_or_cntrl(char c)
- {
- return c <= ' ';
- }
- static APR_INLINE int aos_is_null_string(aos_string_t *str)
- {
- if (str == NULL || str->data == NULL || str->len == 0) {
- return AOS_TRUE;
- }
- return AOS_FALSE;
- }
- void aos_strip_space(aos_string_t *str);
- void aos_trip_space_and_cntrl(aos_string_t *str);
- void aos_unquote_str(aos_string_t *str);
- char *aos_pstrdup(aos_pool_t *p, const aos_string_t *s);
- int aos_ends_with(const aos_string_t *str, const aos_string_t *suffix);
- AOS_CPP_END
- #endif
|