}
if (!array_is_created(&event->categories))
p_array_init(&event->categories, event->pool, 4);
- array_push_back(&event->categories, &category);
+ if (!event_find_category(event, category))
+ array_push_back(&event->categories, &category);
break;
}
case EVENT_CODE_TV_LAST_SENT:
}
break;
case EVENT_CODE_FIELD_STR:
+ if (field->value_type == EVENT_FIELD_VALUE_TYPE_STR &&
+ null_strcmp(field->value.str, *args) == 0) {
+ /* already identical value */
+ break;
+ }
field->value_type = EVENT_FIELD_VALUE_TYPE_STR;
field->value.str = p_strdup(event->pool, *args);
break;