X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Ffstab-util.c;h=e231a0ff80bdb2b6096f34e3711139b76ebe323e;hb=86e97d599f8b1ca379dce64fadac9b8f6b002ac5;hp=cf317e17bda65759c5ff7ac8fe59181dec85625d;hpb=a75f4e2a02e287294b21ae9e5b1f28b2f8faea39;p=elogind.git diff --git a/src/shared/fstab-util.c b/src/shared/fstab-util.c index cf317e17b..e231a0ff8 100644 --- a/src/shared/fstab-util.c +++ b/src/shared/fstab-util.c @@ -125,6 +125,36 @@ answer: return !!n; } +int fstab_extract_values(const char *opts, const char *name, char ***values) { + _cleanup_strv_free_ char **optsv = NULL, **res = NULL; + char **s; + + assert(opts); + assert(name); + assert(values); + + optsv = strv_split(opts, ","); + if (!optsv) + return -ENOMEM; + + STRV_FOREACH(s, optsv) { + char *arg; + int r; + + arg = startswith(*s, name); + if (!arg || *arg != '=') + continue; + r = strv_extend(&res, arg + 1); + if (r < 0) + return r; + } + + *values = res; + res = NULL; + + return !!*values; +} + int fstab_find_pri(const char *options, int *ret) { _cleanup_free_ char *opt = NULL; int r;