rendered paste bodychar** q3c_handle_input(char* inp, int* argc) {
if (inp != NULL) {
char* cd = strchr(inp, ':');
if (cd != NULL) {
int di = cd - inp, ac = 1, dc, ign = 0;
char** arga = malloc(1);
char* args = inp + di + 2;
dc = count_char(args, ':');
char* cmd = (char*) calloc(di + 1, sizeof (char));
strncpy(cmd, inp, di);
log_fmt("> cmd: %s", cmd);
log_fmt("> args: %s\n", args);
char* arg = strtok(args, " ");
while (arg != NULL) {
di = strlen(arg) - 1;
if (!strncmp(arg + di, ":", 1)) {
ign = dc > 1;
if (dc == 1) {
arg[di] = '\0';
}
}
if (!ign) {
arga = realloc(arga, ++ac * sizeof (char*));
arga[ac - 1] = strdup(arg);
}
arg = strtok(NULL, " ");
ign = 0;
}
*argc = ac;
arga[0] = cmd;
return arga;
}
}
return NULL;
}
// cut leading whitespaces
char** q3c_handle_input_logfile(char* inp, int* argc) {
if (inp != NULL) {
int i, wsc = 0;
for (i = 0; i < strlen(inp); i++) {
if (inp[i] == ' ' && ++wsc == 3) {
break;
}
}
int nsl = strlen(inp) - i;
char* ci = calloc(nsl, sizeof (char));
strncpy(ci, inp + i + 1, nsl);
free(inp);
return q3c_handle_input(ci, argc);
}
return NULL;
}