-static int set_restrict(const struct config_state *cs,
- const struct conf *whoami,
- int nvec, char **vec) {
- unsigned r = 0;
- int n, i;
-
- static const struct restriction {
- const char *name;
- unsigned bit;
- } restrictions[] = {
- { "remove", RESTRICT_REMOVE },
- { "scratch", RESTRICT_SCRATCH },
- { "move", RESTRICT_MOVE },
- };
-
- for(n = 0; n < nvec; ++n) {
- if((i = TABLE_FIND(restrictions, name, vec[n])) < 0) {
- disorder_error(0, "%s:%d: invalid restriction '%s'",
- cs->path, cs->line, vec[n]);
- return -1;
- }
- r |= restrictions[i].bit;
- }
- VALUE(cs->config, unsigned) = r;
- return 0;
-}
-