]> mj.ucw.cz Git - leo.git/blobdiff - osm.c
Added an interface for overriding tags
[leo.git] / osm.c
diff --git a/osm.c b/osm.c
index 6c11e67a6d035289c396f1c143c9622daa67983e..17f2001ec10e6ea69a4cfa2ad2a84ceb167047e2 100644 (file)
--- a/osm.c
+++ b/osm.c
@@ -146,6 +146,23 @@ void osm_obj_add_tag(struct osm_object *o, const char *key, const char *val)
   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)