OSDN Git Service

I was library can be compiled 20140223
[zither/ds-zither.git] / libms / delim_f.c
1 // delim_f.c
2 // masashi shimakura 20140223
3
4
5 #include<stdio.h>
6 #include<string.h>
7 #include <errno.h>
8 #include <stdlib.h>
9
10 #include "libms.h"
11
12
13
14 char * delim_f(char * base, char * backdata, char deli, int count)
15 {
16 int co, len, ret;
17 char * tmp_data1 = (char *)calloc(BUF_LEN, sizeof(char));
18 char * tmp_data2 = (char *)calloc(BUF_LEN, sizeof(char));
19 char * tmp_data3 = (char *)calloc(BUF_LEN, sizeof(char));
20
21 len = 0;
22 ret = 0;
23
24 len = char_count(base, deli);
25
26
27 if(count > 0 && count <= len){
28    tmp_data3 = safe_sprintf(tmp_data3, BUF_LEN,"%c", deli);
29    for(co = 0; co < count; co++){
30       tmp_data1 = delim_get(base, tmp_data1, deli, &ret, co);
31       tmp_data2 = safe_strncat(tmp_data2, tmp_data1, BUF_LEN); 
32       tmp_data2 = safe_strncat(tmp_data2, tmp_data3, BUF_LEN); 
33       tmp_data1 = null_free(tmp_data1);
34       }
35    backdata = safe_memcpy(backdata, tmp_data2, BUF_LEN);
36    }
37 else{
38    backdata = safe_memcpy(backdata, base, BUF_LEN);
39    }
40
41 free(tmp_data1);
42 free(tmp_data2);
43 free(tmp_data3);
44
45 return backdata;
46 }
47
48