Merge branch 'dev' of ssh://box/var/lib/git/libucore into dev

This commit is contained in:
Nils O. Selåsdal
2016-03-07 22:14:07 +01:00
4 changed files with 97 additions and 13 deletions
+58
View File
@@ -0,0 +1,58 @@
#include <string.h>
#include "ucore/string.h"
//tokenize string, and exclude the quotes
static char *qtoken(char *s, const char *sep)
{
int inquote = 0;
char *t = s;
while (*t != 0 && (inquote || strchr(sep, *t) == NULL)) {
if (*t != '"') {
*s++ = *t++;
continue;
}
if (!inquote) {
inquote = 1;
t++;
continue;
}
if (t[1] != '"') {
t++;
inquote = 0;
continue;
}
//double quotes, merged to 1 quote
t++;
*s++ = *t++;
}
if (*s != 0) {
*s = 0;
if (t == s) {
t++;
}
}
return t;
}
int gettokens(char *str, char **args, int maxargs, const char *sep)
{
int nargs;
for (nargs = 0; nargs < maxargs; nargs++) {
while (*str != 0 && strchr(sep, *str) != NULL) {
*str++ = 0;
}
if (*str == 0) {
break;
}
args[nargs] = str;
str = qtoken(str, sep);
}
return nargs;
}