diff options
author | MySQL Team <mysql@php.net> | 2001-01-23 16:48:50 +0000 |
---|---|---|
committer | MySQL Team <mysql@php.net> | 2001-01-23 16:48:50 +0000 |
commit | 800f555b707c696798877c80352ded46289e87c4 (patch) | |
tree | c540242b6e6da4e9b99b46797a26b215abef0a64 /ext/mysql/libmysql/string.c | |
parent | d36858681a0d48414702524ebd16f31289b06fa8 (diff) | |
download | php-git-800f555b707c696798877c80352ded46289e87c4.tar.gz |
Upgrade ext/mysql/libmysql to version 3.23.32. One notable bug fix is
that the client can now connect to a server which is using a default
charset other than latin1.
Diffstat (limited to 'ext/mysql/libmysql/string.c')
-rw-r--r-- | ext/mysql/libmysql/string.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/ext/mysql/libmysql/string.c b/ext/mysql/libmysql/string.c index ef975eb038..cbf9f2ddc3 100644 --- a/ext/mysql/libmysql/string.c +++ b/ext/mysql/libmysql/string.c @@ -34,6 +34,7 @@ my_bool init_dynamic_string(DYNAMIC_STRING *str, const char *init_str, DBUG_RETURN(FALSE); } + my_bool dynstr_set(DYNAMIC_STRING *str, const char *init_str) { uint length; @@ -58,6 +59,7 @@ my_bool dynstr_set(DYNAMIC_STRING *str, const char *init_str) DBUG_RETURN(FALSE); } + my_bool dynstr_realloc(DYNAMIC_STRING *str, ulong additional_size) { DBUG_ENTER("dynstr_realloc"); @@ -76,11 +78,17 @@ my_bool dynstr_realloc(DYNAMIC_STRING *str, ulong additional_size) my_bool dynstr_append(DYNAMIC_STRING *str, const char *append) { + return dynstr_append_mem(str,append,strlen(append)); +} + + +my_bool dynstr_append_mem(DYNAMIC_STRING *str, const char *append, + uint length) +{ char *new_ptr; - uint length=(uint) strlen(append)+1; - if (str->length+length > str->max_length) + if (str->length+length >= str->max_length) { - uint new_length=(str->length+length+str->alloc_increment-1)/ + uint new_length=(str->length+length+str->alloc_increment)/ str->alloc_increment; new_length*=str->alloc_increment; if (!(new_ptr=(char*) my_realloc(str->str,new_length,MYF(MY_WME)))) @@ -89,10 +97,12 @@ my_bool dynstr_append(DYNAMIC_STRING *str, const char *append) str->max_length=new_length; } memcpy(str->str + str->length,append,length); - str->length+=length-1; + str->length+=length; + str->str[str->length]=0; /* Safety for C programs */ return FALSE; } + void dynstr_free(DYNAMIC_STRING *str) { if (str->str) |