+static int parse_flags(const char *flag_str, int flags) {
+ char *w, *state;
+ size_t l;
+
+ FOREACH_WORD(w, l, flag_str, state) {
+ if (strneq("masked", w, l))
+ flags |= SHOW_MASKED;
+ else if (strneq ("equivalent", w, l))
+ flags |= SHOW_EQUIVALENT;
+ else if (strneq("redirected", w, l))
+ flags |= SHOW_REDIRECTED;
+ else if (strneq("overridden", w, l))
+ flags |= SHOW_OVERRIDDEN;
+ else if (strneq("unchanged", w, l))
+ flags |= SHOW_UNCHANGED;
+ else if (strneq("default", w, l))
+ flags |= SHOW_DEFAULTS;
+ else
+ return -EINVAL;
+ }
+ return flags;
+}
+