(1)Make fatten the bezier curve (2)Adjust box's Kakato (3)Update sample
[chise/kage.git] / kagecgi / kagestr.c
1 //kagestr.c
2 //
3
4 #include "sysdep.h"
5 #include "kagestr.h"
6
7 KGString* kg_string_new(char *initString){
8   KGString *tmp;
9   tmp = (KGString *)malloc(sizeof(KGString));
10   if(initString == NULL){
11     tmp->len = 0;
12     tmp->str = (char *)malloc(0);
13   }
14   else{
15     tmp->len = strlen(initString);
16     tmp->str = (char *)malloc(tmp->len + 1);
17     strcpy(tmp->str, initString);
18   }
19   return tmp;
20 }
21
22 KGString* kg_string_set_size(KGString *target, int newSize){
23   target->len = newSize;
24   target->str = (char *)realloc((char *)target->str, target->len + 1);
25   target->str[target->len] = '\0';
26   return target;
27 }
28
29 KGString* kg_string_append_len(KGString *target, char *appendString, int length){
30   target->len = target->len + length;
31   target->str = (char *)realloc((char *)target->str, target->len + 1);
32   strncat(target->str, appendString, length);
33   return target;
34 }
35
36 KGString* kg_string_append(KGString *target, char *appendString){
37   target->len = target->len + strlen(appendString);
38   target->str = (char *)realloc((char *)target->str, target->len + 1);
39   strcat(target->str, appendString);
40   return target;
41 }
42
43 KGString* kg_string_erase(KGString *target, int startPoint, int length){
44   char *tmp;
45   int oldLength;
46   oldLength = target->len;
47   target->len = target->len - length;
48   tmp = (char *)malloc(target->len + 1);
49   strncpy(tmp, target->str, startPoint);
50   tmp[startPoint] = '\0';
51   if(oldLength > startPoint + length) strcat(tmp, target->str + startPoint + length);
52   target->str = (char *)realloc((char *)target->str, target->len + 1);
53   strcpy(target->str, tmp);
54   free(tmp);
55   return target;
56 }
57
58 KGString* kg_string_assign(KGString *target, char *assignString){
59   target->len = strlen(assignString);
60   target->str = (char *)realloc((char *)target->str, target->len + 1);
61   strcpy(target->str, assignString);
62   return target;
63 }
64
65   
66
67
68