X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fshared%2Futil.c;h=c8ed53c8b60bb754cd28fed2909b73b1a99749b1;hp=5b602ea46d4f1da3c843e977eab1a8317cad199c;hb=68fee104e630eb19f04b8196a83c14c2c9c469e7;hpb=dd94c17e7da89fa612952119ac825116dc5a8deb diff --git a/src/shared/util.c b/src/shared/util.c index 5b602ea46..c8ed53c8b 100644 --- a/src/shared/util.c +++ b/src/shared/util.c @@ -5946,3 +5946,34 @@ void parse_user_at_host(char *arg, char **user, char **host) { *user = arg; } } + +int split_pair(const char *s, const char *sep, char **l, char **r) { + char *x, *a, *b; + + assert(s); + assert(sep); + assert(l); + assert(r); + + if (isempty(sep)) + return -EINVAL; + + x = strstr(s, sep); + if (!x) + return -EINVAL; + + a = strndup(s, x - s); + if (!a) + return -ENOMEM; + + b = strdup(x + strlen(sep)); + if (!b) { + free(a); + return -ENOMEM; + } + + *l = a; + *r = b; + + return 0; +}