diff options
author | Tomaz Canabrava <tomaz.canabrava@intel.com> | 2015-07-13 15:13:48 -0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-07-13 15:42:35 -0700 |
commit | ca5606d3e9783edbd3012684eff1a829088870b5 (patch) | |
tree | 49c088687bb73d4639894b281af2cd88fd341269 /divesite.c | |
parent | 3b2a02dffaeaa788e08c7ba07af14df7ef055489 (diff) | |
download | subsurface-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.c | 16 |
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); +} |