X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=phpstr%2Fphpstr.h;h=976a795b4368e393e1e94732b5b5ff1d446469fa;hb=13dc652c45a4a0b4dc219e46065bb3310229cedc;hp=9e18e5464df99d55ede2ecc471a7d359c5b0ef0c;hpb=4ee364803f03b507ff6047dc2b6be235a5c0a16b;p=m6w6%2Fext-http diff --git a/phpstr/phpstr.h b/phpstr/phpstr.h index 9e18e54..976a795 100644 --- a/phpstr/phpstr.h +++ b/phpstr/phpstr.h @@ -54,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)); \ @@ -105,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))