| 19 | #define SPACE_LEFT(a) ((a)->len - (a)->argc - 1) |
| 20 | |
| 21 | static ACL_ARGV *split2(const char *str, const char *sep) { |
| 22 | #if 0 |
| 23 | size_t len = strlen(str), i, start = 0; |
| 24 | ACL_ARGV *argv = acl_argv_alloc(5); |
| 25 | |
| 26 | for (i = 0; i < len; i++) { |
| 27 | if (strchr(sep, str[i]) != NULL) { |
| 28 | if (start < i) { |
| 29 | size_t n = i - start; |
| 30 | char *buf = (char*) acl_mymalloc(n + 1); |
| 31 | |
| 32 | if (SPACE_LEFT(argv) <= 0) { |
| 33 | argv_extend(argv); |
| 34 | } |
| 35 | memcpy(buf, str + start, n); |
| 36 | buf[n] = 0; |
| 37 | argv->argv[argv->argc++] = buf; |
| 38 | } |
| 39 | start = i + 1; |
| 40 | } |
| 41 | } |
| 42 | |
| 43 | if (start < len) { |
| 44 | size_t n = len - start; |
| 45 | char *buf = (char*) acl_mymalloc(n + 1); |
| 46 | |
| 47 | if (SPACE_LEFT(argv) <= 0) { |
| 48 | argv_extend(argv); |
| 49 | } |
| 50 | memcpy(buf, str + start, n); |
| 51 | buf[n] = 0; |
| 52 | argv->argv[argv->argc++] = buf; |
| 53 | } |
| 54 | #else |
| 55 | const char *ptr = str, *start = str; |
| 56 | ACL_ARGV *argv = acl_argv_alloc(5); |
| 57 | |
| 58 | while (*ptr != 0) { |
| 59 | if (strchr(sep, (int) (*ptr)) != NULL) { |
| 60 | if (start < ptr) { |
| 61 | size_t n = ptr - start; |
| 62 | char *buf = (char*) acl_mymalloc(n + 1); |
| 63 | |
| 64 | if (SPACE_LEFT(argv) <= 0) { |
| 65 | argv_extend(argv); |
| 66 | } |
| 67 | memcpy(buf, start, n); |
| 68 | buf[n] = 0; |
| 69 | argv->argv[argv->argc++] = buf; |
| 70 | } |
| 71 | start = ptr + 1; |
| 72 | } |
| 73 | ptr++; |
| 74 | } |
| 75 | |
| 76 | if (*start) { |
| 77 | char *buf = (char*) acl_mystrdup(start); |
| 78 |
no test coverage detected
searching dependent graphs…