Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
convert svn logs into ChangeLog (up to r7858 for now)
[simgrid.git] / tools / tesh2 / src / explode.c
1 #include <explode.h>\r
2 \r char **\r explode(char separator, const char *string) \r
3 {
4   \rint pos = 0;
5   \rint i, len = 1;
6   \rint number = 2;
7   \rchar **table;
8   \rconst char *p = string;
9   \r\rfor (i = 0; p[i] != '\0'; i++)
10     \rif (p[i] == separator)
11       \rnumber++;
12   \r\r\rtable = (char **) calloc(number, sizeof(char *));
13   \r\ri = 0;
14   \r\rwhile (*p++ != '\0')
15     \r {
16     \rif (*p == separator)
17       \r {
18       \rtable[i] = (char *) calloc(len + 1, sizeof(char));
19       \rstrncpy(table[i], string + pos, len);
20       \rpos += len + 1;
21       \rlen = 0;
22       \ri++;
23       \r}
24     \r
25     else
26       \rlen++;
27     \r}
28   \r\rif (len > 1)
29     \r {
30     \rtable[i] = (char *) calloc(len + 1, sizeof(char));
31     \rstrncpy(table[i], string + pos, len);
32     \r}
33   \r\r\rtable[++i] = NULL;
34   \r\rreturn table;
35 \r}
36
37 \r