X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=phpstr%2Fphpstr.h;h=976a795b4368e393e1e94732b5b5ff1d446469fa;hb=45abbc6fd229be01e963e9642a03118d3c99131c;hp=a3a15962660da8a7ad552d94c4c12c491ec426ae;hpb=116432533c1d2c39891f0126cb7fc99577f31c63;p=m6w6%2Fext-http diff --git a/phpstr/phpstr.h b/phpstr/phpstr.h index a3a1596..976a795 100644 --- a/phpstr/phpstr.h +++ b/phpstr/phpstr.h @@ -31,7 +31,6 @@ #endif #define PHPSTR(p) ((phpstr *) (p)) -#define PHPSTR_P(p) ((phpstr **) (&p)) #define PHPSTR_VAL(p) (PHPSTR(p))->data #define PHPSTR_LEN(p) (PHPSTR(p))->used @@ -55,8 +54,10 @@ #define RETURN_PHPSTR_PTR(STR) RETURN_PHPSTR((STR), PHPSTR_FREE_PTR, 0) #define RETURN_PHPSTR_VAL(STR) RETURN_PHPSTR((STR), PHPSTR_FREE_NOT, 0) +#define RETURN_PHPSTR_DUP(STR) RETURN_PHPSTR((STR), PHPSTR_FREE_NOT, 1) #define RETVAL_PHPSTR_PTR(STR) RETVAL_PHPSTR((STR), PHPSTR_FREE_PTR, 0) #define RETVAL_PHPSTR_VAL(STR) RETVAL_PHPSTR((STR), PHPSTR_FREE_NOT, 0) +#define RETVAL_PHPSTR_DUP(STR) RETVAL_PHPSTR((STR), PHPSTR_FREE_NOT, 1) /* RETURN_PHPSTR(buf, PHPSTR_FREE_PTR, 0) */ #define RETURN_PHPSTR(STR, free, dup) \ RETVAL_PHPSTR((STR), (free), (dup)); \ @@ -106,6 +107,9 @@ PHPSTR_API phpstr *phpstr_from_string_ex(phpstr *buf, const char *string, size_t #define phpstr_resize(b, s) phpstr_resize_ex((b), (s), 0) PHPSTR_API size_t phpstr_resize_ex(phpstr *buf, size_t len, size_t override_size); +/* shrink memory chunk to actually used size (+1) */ +PHPSTR_API size_t phpstr_shrink(phpstr *buf); + /* append data to the phpstr */ #define phpstr_appends(b, a) phpstr_append((b), (a), sizeof(a)-1) #define phpstr_appendl(b, a) phpstr_append((b), (a), strlen(a))