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