if (op < OP_MATCH_MAX) {
rule_add_key(&rule_tmp, TK_M_NAME, op, value, NULL);
} else {
- if (value[0] == '\0')
- info(rules->udev, "name empty, node creation suppressed\n");
- else if (strcmp(value, "%k") == 0)
- err(rules->udev, "NAME=\"%%k\" is superfluous and breaks "
- "kernel supplied names, please remove it from %s:%u\n", filename, lineno);
+ if (strcmp(value, "%k") == 0) {
+ err(rules->udev, "NAME=\"%%k\" is ignored, because it breaks kernel supplied names, "
+ "please remove it from %s:%u\n", filename, lineno);
+ continue;
+ }
+ if (value[0] == '\0') {
+ info(rules->udev, "NAME=\"\" is ignored, because udev will not delete any device nodes, "
+ "please remove it from %s:%u\n", filename, lineno);
+ continue;
+ }
rule_add_key(&rule_tmp, TK_A_NAME, op, value, NULL);
}
rule_tmp.rule.rule.flags = 1;
break;
}
case TK_A_TAG:
+ if (cur->key.op == OP_ASSIGN || cur->key.op == OP_ASSIGN_FINAL)
+ udev_device_cleanup_tags_list(event->dev);
udev_device_add_tag(event->dev, &rules->buf[cur->key.value_off]);
break;
case TK_A_NAME: