?? string.c
字號:
/* Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB This file is public domain and comes with NO WARRANTY of any kind *//* Code for handling strings with can grow dynamicly. Copyright Monty Program KB. By monty.*/#include "mysys_priv.h"#include <m_string.h>my_bool init_dynamic_string(DYNAMIC_STRING *str, my_string init_str, uint init_alloc, uint alloc_increment){ uint length; DBUG_ENTER("init_dynamic_string"); if (!alloc_increment) alloc_increment=128; length=1; if (init_str && (length=strlen(init_str)+1) < init_alloc) init_alloc=((length+alloc_increment-1)/alloc_increment)*alloc_increment; if (!init_alloc) init_alloc=alloc_increment; if (!(str->str=(char*) my_malloc(init_alloc,MYF(MY_WME)))) DBUG_RETURN(TRUE); str->length=length-1; if (init_str) memcpy(str->str,init_str,length); str->max_length=init_alloc; str->alloc_increment=alloc_increment; DBUG_RETURN(FALSE);}my_bool dynstr_append(DYNAMIC_STRING *str, my_string append){ char *new_ptr; uint length=(uint) strlen(append)+1; if (str->length+length > str->max_length) { uint new_length=(str->length+length+str->alloc_increment-1)/ str->alloc_increment; new_length*=str->alloc_increment; if (!(new_ptr=(char*) my_realloc(str->str,new_length,MYF(MY_WME)))) return TRUE; str->str=new_ptr; str->max_length=new_length; } memcpy(str->str + str->length,append,length); str->length+=length-1; return FALSE;}void dynstr_free(DYNAMIC_STRING *str){ if (str->str) { my_free(str->str,MYF(MY_WME)); str->str=0; }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -