16 if (!stralloc_copys(&cmd,
""))
return -1;
19 i = buffer_get(ss,&ch,1);
21 if (ch ==
'\n')
break;
23 if (!stralloc_append(&cmd,&ch))
return -1;
26 if (cmd.len > 0)
if (cmd.s[cmd.len - 1] ==
'\r') --cmd.len;
28 if (!stralloc_0(&cmd))
return -1;
30 i = str_chr(cmd.s,
' ');
32 while (*arg ==
' ') ++arg;
35 for (i = 0; c[i].verb; ++i)
36 if (case_equals(c[i].verb,cmd.s))
break;
38 if (c[i].flush) c[i].flush();