From 800f555b707c696798877c80352ded46289e87c4 Mon Sep 17 00:00:00 2001 From: MySQL Team Date: Tue, 23 Jan 2001 16:48:50 +0000 Subject: 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. --- ext/mysql/libmysql/string.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'ext/mysql/libmysql/string.c') 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"); @@ -75,12 +77,18 @@ 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) -- cgit v1.2.1