osm_obj_add_tag_raw(o, osm_key_encode(key), osm_val_encode(val));
}
+void osm_obj_set_tag_raw(struct osm_object *o, osm_key_t key, osm_val_t val)
+{
+ CLIST_FOR_EACH(struct osm_tag *, t, o->tags)
+ if (t->key == key)
+ {
+ t->val = val;
+ return;
+ }
+
+ osm_obj_add_tag_raw(o, key, val);
+}
+
+void osm_obj_set_tag(struct osm_object *o, const char *key, const char *val)
+{
+ osm_obj_set_tag_raw(o, osm_key_encode(key), osm_val_encode(val));
+}
+
osm_val_t osm_obj_find_tag(struct osm_object *o, osm_key_t key)
{
CLIST_FOR_EACH(struct osm_tag *, t, o->tags)
struct osm_object *osm_obj_find_by_id(enum osm_object_type type, osm_id_t id);
void osm_obj_add_tag(struct osm_object *o, const char *key, const char *val);
void osm_obj_add_tag_raw(struct osm_object *o, osm_key_t key, osm_val_t val);
+void osm_obj_set_tag(struct osm_object *o, const char *key, const char *val);
+void osm_obj_set_tag_raw(struct osm_object *o, osm_key_t key, osm_val_t val);
osm_val_t osm_obj_find_tag(struct osm_object *o, osm_val_t key);
void osm_obj_dump(struct osm_object *o);
void osm_obj_warn(struct osm_object *o, const char *msg, ...);