Fix nickname saving in XML file to deal with utf8 characters

This makes the whole code much cleaner and simpler.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2012-12-30 20:27:01 -08:00
parent 96db56f89c
commit df0ea07292
3 changed files with 39 additions and 23 deletions

View file

@ -44,6 +44,7 @@ struct dcnicknamelist {
const char *model;
uint32_t deviceid;
struct dcnicknamelist *next;
gboolean saved;
};
static struct dcnicknamelist *nicknamelist;
char *nicknamestring;
@ -2078,6 +2079,29 @@ const char *get_dc_nickname(const char *model, uint32_t deviceid)
return NULL;
}
gboolean dc_was_saved(struct divecomputer *dc)
{
struct dcnicknamelist *nn_entry = get_dc_nicknameentry(dc->model, dc->deviceid);
return nn_entry && nn_entry->saved;
}
void mark_dc_saved(struct divecomputer *dc)
{
struct dcnicknamelist *nn_entry = get_dc_nicknameentry(dc->model, dc->deviceid);
if (nn_entry)
nn_entry->saved = TRUE;
}
void clear_dc_saved_status()
{
struct dcnicknamelist *nn_entry = nicknamelist;
while (nn_entry) {
nn_entry->saved = FALSE;
nn_entry = nn_entry->next;
}
}
/* do we have a DIFFERENT divecomputer of the same model? */
static struct dcnicknamelist *get_different_dc_nicknameentry(const char *model, int deviceid)
{