summaryrefslogtreecommitdiffstats
path: root/divesite.c
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2015-07-13 15:13:48 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-07-13 15:42:35 -0700
commitca5606d3e9783edbd3012684eff1a829088870b5 (patch)
tree49c088687bb73d4639894b281af2cd88fd341269 /divesite.c
parent3b2a02dffaeaa788e08c7ba07af14df7ef055489 (diff)
downloadsubsurface-ca5606d3e9783edbd3012684eff1a829088870b5.tar.gz
Create/retrieve dive_site by name.
When we are working on the location management, we want to get a new dive_site if the dive_site name changed unless there's no dive_site by that name, then we create it. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'divesite.c')
-rw-r--r--divesite.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/divesite.c b/divesite.c
index 998fe23bf..800ccc9bd 100644
--- a/divesite.c
+++ b/divesite.c
@@ -200,3 +200,19 @@ void clear_dive_site(struct dive_site *ds)
ds->taxonomy.nr = 0;
free_taxonomy(&ds->taxonomy);
}
+
+uint32_t find_or_create_dive_site_with_name(const char *name)
+{
+ int i;
+ struct dive_site *ds;
+ bool found = false;
+ for_each_dive_site(i,ds) {
+ if (same_string(name, ds->name)) {
+ found = true;
+ break;
+ }
+ }
+ if (ds)
+ return ds->uuid;
+ return create_dive_site(name);
+}