break;
if (linepos[0] == '=')
break;
- if (linepos[0] == '+')
- break;
- if (linepos[0] == '!')
- break;
- if (linepos[0] == ':')
- break;
+ if ((linepos[0] == '+') || (linepos[0] == '!') || (linepos[0] == ':'))
+ if (linepos[1] == '=')
+ break;
}
/* remember end of key */
err("invalid DRIVER operation");
goto invalid;
}
- err("DRIVER== will change in a future relase, "
- "please use DRIVERS== in %s:%u", filename, lineno);
- /* FIXME: this should be rule->driver to match only the event device */
- add_rule_key(rule, &rule->drivers, operation, value);
+ add_rule_key(rule, &rule->driver, operation, value);
valid = 1;
continue;
}
if (strncasecmp(key, "ATTRS{", sizeof("ATTRS{")-1) == 0 ||
strncasecmp(key, "SYSFS{", sizeof("SYSFS{")-1) == 0) {
+ if (operation != KEY_OP_MATCH &&
+ operation != KEY_OP_NOMATCH) {
+ err("invalid ATTRS operation");
+ goto invalid;
+ }
attr = get_key_attribute(key + sizeof("ATTRS")-1);
if (attr == NULL) {
err("error parsing ATTRS attribute");