| 23 | #include <m_string.h> |
| 24 | |
| 25 | my_bool init_dynamic_string(DYNAMIC_STRING *str, const char *init_str, |
| 26 | size_t init_alloc, size_t alloc_increment) |
| 27 | { |
| 28 | size_t length; |
| 29 | DBUG_ENTER("init_dynamic_string"); |
| 30 | |
| 31 | if (!alloc_increment) |
| 32 | alloc_increment=128; |
| 33 | length=1; |
| 34 | if (init_str && (length= strlen(init_str)+1) < init_alloc) |
| 35 | init_alloc=((length+alloc_increment-1)/alloc_increment)*alloc_increment; |
| 36 | if (!init_alloc) |
| 37 | init_alloc=alloc_increment; |
| 38 | |
| 39 | if (!(str->str=(char*) my_malloc(key_memory_DYNAMIC_STRING, |
| 40 | init_alloc, MYF(MY_WME)))) |
| 41 | DBUG_RETURN(TRUE); |
| 42 | str->length=length-1; |
| 43 | if (init_str) |
| 44 | memcpy(str->str,init_str,length); |
| 45 | str->max_length=init_alloc; |
| 46 | str->alloc_increment=alloc_increment; |
| 47 | DBUG_RETURN(FALSE); |
| 48 | } |
| 49 | |
| 50 | |
| 51 | my_bool dynstr_set(DYNAMIC_STRING *str, const char *init_str) |