mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Move device_info handling into a new 'device.c' file
The legacy nickname wrappers (that use the device_info structure) are left in gtk-gui.c. We can slowly start moving away from them, we don't want to start exporting that thing as some kind of generic interface. This isn't a pure code movement - because we leave the legacy interfaces alone, there are a few new interfaces in device.c (like "create a new device_info entry") that were embedded into the legacy "create nickname" code, and needed to be abstracted out. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
		
							parent
							
								
									33c67cc619
								
							
						
					
					
						commit
						ec38d3708d
					
				
					 6 changed files with 135 additions and 115 deletions
				
			
		
							
								
								
									
										11
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										11
									
								
								Makefile
									
										
									
									
									
								
							|  | @ -132,7 +132,7 @@ MSGOBJS=$(addprefix share/locale/,$(MSGLANGS:.po=.UTF-8/LC_MESSAGES/subsurface.m | ||||||
| 
 | 
 | ||||||
| OBJS =	main.o dive.o time.o profile.o info.o equipment.o divelist.o deco.o planner.o \
 | OBJS =	main.o dive.o time.o profile.o info.o equipment.o divelist.o deco.o planner.o \
 | ||||||
| 	parse-xml.o save-xml.o libdivecomputer.o print.o uemis.o uemis-downloader.o \
 | 	parse-xml.o save-xml.o libdivecomputer.o print.o uemis.o uemis-downloader.o \
 | ||||||
| 	gtk-gui.o statistics.o file.o cochran.o $(OSSUPPORT).o $(RESFILE) | 	gtk-gui.o statistics.o file.o cochran.o device.o $(OSSUPPORT).o $(RESFILE) | ||||||
| 
 | 
 | ||||||
| $(NAME): $(OBJS) $(MSGOBJS) | $(NAME): $(OBJS) $(MSGOBJS) | ||||||
| 	$(CC) $(LDFLAGS) -o $(NAME) $(OBJS) $(LIBS) | 	$(CC) $(LDFLAGS) -o $(NAME) $(OBJS) $(LIBS) | ||||||
|  | @ -214,7 +214,7 @@ cochran.o: cochran.c dive.h file.h | ||||||
| parse-xml.o: parse-xml.c dive.h | parse-xml.o: parse-xml.c dive.h | ||||||
| 	$(CC) $(CFLAGS) $(GLIB2CFLAGS) $(XML2CFLAGS) $(XSLT) -c parse-xml.c | 	$(CC) $(CFLAGS) $(GLIB2CFLAGS) $(XML2CFLAGS) $(XSLT) -c parse-xml.c | ||||||
| 
 | 
 | ||||||
| save-xml.o: save-xml.c dive.h | save-xml.o: save-xml.c dive.h device.h | ||||||
| 	$(CC) $(CFLAGS) $(GLIB2CFLAGS) $(XML2CFLAGS) -c save-xml.c | 	$(CC) $(CFLAGS) $(GLIB2CFLAGS) $(XML2CFLAGS) -c save-xml.c | ||||||
| 
 | 
 | ||||||
| dive.o: dive.c dive.h | dive.o: dive.c dive.h | ||||||
|  | @ -250,12 +250,12 @@ deco.o: deco.c dive.h | ||||||
| planner.o: planner.c dive.h divelist.h display-gtk.h | planner.o: planner.c dive.h divelist.h display-gtk.h | ||||||
| 	$(CC) $(CFLAGS) $(GTK2CFLAGS) $(GLIB2CFLAGS) -c planner.c | 	$(CC) $(CFLAGS) $(GTK2CFLAGS) $(GLIB2CFLAGS) -c planner.c | ||||||
| 
 | 
 | ||||||
| libdivecomputer.o: libdivecomputer.c dive.h display.h display-gtk.h libdivecomputer.h | libdivecomputer.o: libdivecomputer.c dive.h display.h display-gtk.h libdivecomputer.h device.h | ||||||
| 	$(CC) $(CFLAGS) $(GTK2CFLAGS) $(GLIB2CFLAGS) $(XML2CFLAGS) \
 | 	$(CC) $(CFLAGS) $(GTK2CFLAGS) $(GLIB2CFLAGS) $(XML2CFLAGS) \
 | ||||||
| 			$(LIBDIVECOMPUTERCFLAGS) \
 | 			$(LIBDIVECOMPUTERCFLAGS) \
 | ||||||
| 			-c libdivecomputer.c | 			-c libdivecomputer.c | ||||||
| 
 | 
 | ||||||
| gtk-gui.o: gtk-gui.c dive.h display.h divelist.h display-gtk.h libdivecomputer.h Makefile | gtk-gui.o: gtk-gui.c dive.h display.h divelist.h display-gtk.h libdivecomputer.h device.h Makefile | ||||||
| 	$(CC) $(CFLAGS) $(GTK2CFLAGS) $(GLIB2CFLAGS) $(GCONF2CFLAGS) $(XML2CFLAGS) \
 | 	$(CC) $(CFLAGS) $(GTK2CFLAGS) $(GLIB2CFLAGS) $(GCONF2CFLAGS) $(XML2CFLAGS) \
 | ||||||
| 			$(LIBDIVECOMPUTERCFLAGS) \
 | 			$(LIBDIVECOMPUTERCFLAGS) \
 | ||||||
| 			-DVERSION_STRING='"v$(VERSION)"' \
 | 			-DVERSION_STRING='"v$(VERSION)"' \
 | ||||||
|  | @ -267,6 +267,9 @@ uemis.o: uemis.c dive.h uemis.h | ||||||
| uemis-downloader.o: uemis-downloader.c dive.h uemis.h | uemis-downloader.o: uemis-downloader.c dive.h uemis.h | ||||||
| 	$(CC) $(CFLAGS) $(GTK2CFLAGS) $(GLIB2CFLAGS) $(XML2CFLAGS) -c uemis-downloader.c | 	$(CC) $(CFLAGS) $(GTK2CFLAGS) $(GLIB2CFLAGS) $(XML2CFLAGS) -c uemis-downloader.c | ||||||
| 
 | 
 | ||||||
|  | device.o: device.c device.h dive.h | ||||||
|  | 	$(CC) $(CFLAGS) $(GLIB2CFLAGS) -c device.c | ||||||
|  | 
 | ||||||
| $(OSSUPPORT).o: $(OSSUPPORT).c display-gtk.h | $(OSSUPPORT).o: $(OSSUPPORT).c display-gtk.h | ||||||
| 	$(CC) $(CFLAGS) $(OSSUPPORT_CFLAGS) -c $(OSSUPPORT).c | 	$(CC) $(CFLAGS) $(OSSUPPORT_CFLAGS) -c $(OSSUPPORT).c | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										94
									
								
								device.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								device.c
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,94 @@ | ||||||
|  | #include <string.h> | ||||||
|  | #include "dive.h" | ||||||
|  | #include "device.h" | ||||||
|  | 
 | ||||||
|  | static struct device_info *device_info_list; | ||||||
|  | 
 | ||||||
|  | static int match_device_info(struct device_info *entry, const char *model, uint32_t deviceid) | ||||||
|  | { | ||||||
|  | 	return !strcmp(entry->model, model) && entry->deviceid == deviceid; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* just find the entry for this divecomputer */ | ||||||
|  | struct device_info *get_device_info(const char *model, uint32_t deviceid) | ||||||
|  | { | ||||||
|  | 	struct device_info *known = device_info_list; | ||||||
|  | 
 | ||||||
|  | 	/* a 0 deviceid doesn't get a nickname - those come from development
 | ||||||
|  | 	 * versions of Subsurface that didn't store the deviceid in the divecomputer entries */ | ||||||
|  | 	if (!deviceid || !model) | ||||||
|  | 		return NULL; | ||||||
|  | 	while (known) { | ||||||
|  | 		if (match_device_info(known, model, deviceid)) | ||||||
|  | 			return known; | ||||||
|  | 		known = known->next; | ||||||
|  | 	} | ||||||
|  | 	return NULL; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* Get an existing device info model or create a new one if valid */ | ||||||
|  | struct device_info *create_device_info(const char *model, uint32_t deviceid) | ||||||
|  | { | ||||||
|  | 	struct device_info *entry; | ||||||
|  | 
 | ||||||
|  | 	if (!deviceid || !model || !*model) | ||||||
|  | 		return NULL; | ||||||
|  | 	entry = get_device_info(model, deviceid); | ||||||
|  | 	if (entry) | ||||||
|  | 		return entry; | ||||||
|  | 	entry = calloc(1, sizeof(*entry)); | ||||||
|  | 	if (entry) { | ||||||
|  | 		entry->model = strdup(model); | ||||||
|  | 		entry->deviceid = deviceid; | ||||||
|  | 		entry->next = device_info_list; | ||||||
|  | 		device_info_list = entry; | ||||||
|  | 	} | ||||||
|  | 	return entry; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void clear_device_saved_status(void) | ||||||
|  | { | ||||||
|  | 	struct device_info *nn_entry = device_info_list; | ||||||
|  | 
 | ||||||
|  | 	while (nn_entry) { | ||||||
|  | 		nn_entry->saved = FALSE; | ||||||
|  | 		nn_entry = nn_entry->next; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* do we have a DIFFERENT divecomputer of the same model? */ | ||||||
|  | struct device_info *get_different_device_info(const char *model, uint32_t deviceid) | ||||||
|  | { | ||||||
|  | 	struct device_info *known = device_info_list; | ||||||
|  | 
 | ||||||
|  | 	/* a 0 deviceid matches any DC of the same model - those come from development
 | ||||||
|  | 	 * versions of Subsurface that didn't store the deviceid in the divecomputer entries */ | ||||||
|  | 	if (!deviceid) | ||||||
|  | 		return NULL; | ||||||
|  | 	if (!model) | ||||||
|  | 		model = ""; | ||||||
|  | 	while (known) { | ||||||
|  | 		if (known->model && !strcmp(known->model, model) && | ||||||
|  | 		    known->deviceid != deviceid) | ||||||
|  | 			return known; | ||||||
|  | 		known = known->next; | ||||||
|  | 	} | ||||||
|  | 	return NULL; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | struct device_info *remove_device_info(const char *model, uint32_t deviceid) | ||||||
|  | { | ||||||
|  | 	struct device_info *entry, **p; | ||||||
|  | 
 | ||||||
|  | 	if (!deviceid || !model || !*model) | ||||||
|  | 		return NULL; | ||||||
|  | 	p = &device_info_list; | ||||||
|  | 	while ((entry = *p) != NULL) { | ||||||
|  | 		if (match_device_info(entry, model, deviceid)) { | ||||||
|  | 			*p = entry->next; | ||||||
|  | 			break; | ||||||
|  | 		} | ||||||
|  | 		p = &entry->next; | ||||||
|  | 	} | ||||||
|  | 	return entry; | ||||||
|  | } | ||||||
							
								
								
									
										19
									
								
								device.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								device.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | ||||||
|  | #ifndef DEVICE_INFO_H | ||||||
|  | #define DEVICE_INFO_H | ||||||
|  | 
 | ||||||
|  | struct device_info { | ||||||
|  | 	const char *model; | ||||||
|  | 	uint32_t deviceid; | ||||||
|  | 
 | ||||||
|  | 	const char *nickname; | ||||||
|  | 	struct device_info *next; | ||||||
|  | 	gboolean saved; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | extern struct device_info *get_device_info(const char *model, uint32_t deviceid); | ||||||
|  | extern struct device_info *get_different_device_info(const char *model, uint32_t deviceid); | ||||||
|  | extern struct device_info *create_device_info(const char *model, uint32_t deviceid); | ||||||
|  | extern struct device_info *remove_device_info(const char *model, uint32_t deviceid); | ||||||
|  | extern void clear_device_saved_status(void); | ||||||
|  | 
 | ||||||
|  | #endif | ||||||
							
								
								
									
										1
									
								
								dive.h
									
										
									
									
									
								
							
							
						
						
									
										1
									
								
								dive.h
									
										
									
									
									
								
							|  | @ -544,7 +544,6 @@ extern const char *get_dc_nickname(const char *model, uint32_t deviceid); | ||||||
| extern void remember_dc(const char *model, uint32_t deviceid, const char *nickname, gboolean change_conf); | extern void remember_dc(const char *model, uint32_t deviceid, const char *nickname, gboolean change_conf); | ||||||
| extern gboolean dc_was_saved(struct divecomputer *dc); | extern gboolean dc_was_saved(struct divecomputer *dc); | ||||||
| extern void mark_dc_saved(struct divecomputer *dc); | extern void mark_dc_saved(struct divecomputer *dc); | ||||||
| extern void clear_dc_saved_status(void); |  | ||||||
| extern void set_autogroup(gboolean value); | extern void set_autogroup(gboolean value); | ||||||
| extern int total_weight(struct dive *); | extern int total_weight(struct dive *); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										122
									
								
								gtk-gui.c
									
										
									
									
									
								
							
							
						
						
									
										122
									
								
								gtk-gui.c
									
										
									
									
									
								
							|  | @ -19,6 +19,7 @@ | ||||||
| #include "display.h" | #include "display.h" | ||||||
| #include "display-gtk.h" | #include "display-gtk.h" | ||||||
| #include "uemis.h" | #include "uemis.h" | ||||||
|  | #include "device.h" | ||||||
| 
 | 
 | ||||||
| #include "libdivecomputer.h" | #include "libdivecomputer.h" | ||||||
| 
 | 
 | ||||||
|  | @ -41,15 +42,6 @@ struct preferences prefs = { | ||||||
| 	FALSE, FALSE, FALSE, 0.30, 0.75 | 	FALSE, FALSE, FALSE, 0.30, 0.75 | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| struct device_info { |  | ||||||
| 	const char *model; |  | ||||||
| 	uint32_t deviceid; |  | ||||||
| 
 |  | ||||||
| 	const char *nickname; |  | ||||||
| 	struct device_info *next; |  | ||||||
| 	gboolean saved; |  | ||||||
| }; |  | ||||||
| static struct device_info *device_info_list; |  | ||||||
| char *nicknamestring; | char *nicknamestring; | ||||||
| 
 | 
 | ||||||
| static GtkWidget *dive_profile; | static GtkWidget *dive_profile; | ||||||
|  | @ -2194,25 +2186,6 @@ void set_filename(const char *filename, gboolean force) | ||||||
| 		existing_filename = NULL; | 		existing_filename = NULL; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /* just find the entry for this divecomputer */ |  | ||||||
| static struct device_info *get_device_info(const char *model, int deviceid) |  | ||||||
| { |  | ||||||
| 	struct device_info *known = device_info_list; |  | ||||||
| 
 |  | ||||||
| 	/* a 0 deviceid doesn't get a nickname - those come from development
 |  | ||||||
| 	 * versions of Subsurface that didn't store the deviceid in the divecomputer entries */ |  | ||||||
| 	if (!deviceid) |  | ||||||
| 		return NULL; |  | ||||||
| 	if (!model) |  | ||||||
| 		model = ""; |  | ||||||
| 	while (known) { |  | ||||||
| 		if (!strcmp(known->model, model) && known->deviceid == deviceid) |  | ||||||
| 			return known; |  | ||||||
| 		known = known->next; |  | ||||||
| 	} |  | ||||||
| 	return NULL; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| const char *get_dc_nickname(const char *model, uint32_t deviceid) | const char *get_dc_nickname(const char *model, uint32_t deviceid) | ||||||
| { | { | ||||||
| 	struct device_info *known = get_device_info(model, deviceid); | 	struct device_info *known = get_device_info(model, deviceid); | ||||||
|  | @ -2238,36 +2211,6 @@ void mark_dc_saved(struct divecomputer *dc) | ||||||
| 		nn_entry->saved = TRUE; | 		nn_entry->saved = TRUE; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void clear_dc_saved_status() |  | ||||||
| { |  | ||||||
| 	struct device_info *nn_entry = device_info_list; |  | ||||||
| 
 |  | ||||||
| 	while (nn_entry) { |  | ||||||
| 		nn_entry->saved = FALSE; |  | ||||||
| 		nn_entry = nn_entry->next; |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* do we have a DIFFERENT divecomputer of the same model? */ |  | ||||||
| static struct device_info *get_different_dc_nicknameentry(const char *model, int deviceid) |  | ||||||
| { |  | ||||||
| 	struct device_info *known = device_info_list; |  | ||||||
| 
 |  | ||||||
| 	/* a 0 deviceid matches any DC of the same model - those come from development
 |  | ||||||
| 	 * versions of Subsurface that didn't store the deviceid in the divecomputer entries */ |  | ||||||
| 	if (!deviceid) |  | ||||||
| 		return NULL; |  | ||||||
| 	if (!model) |  | ||||||
| 		model = ""; |  | ||||||
| 	while (known) { |  | ||||||
| 		if (known->model && !strcmp(known->model, model) && |  | ||||||
| 		    known->deviceid != deviceid) |  | ||||||
| 			return known; |  | ||||||
| 		known = known->next; |  | ||||||
| 	} |  | ||||||
| 	return NULL; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* no curly braces or commas, please */ | /* no curly braces or commas, please */ | ||||||
| static char *cleanedup_nickname(const char *nickname, int len) | static char *cleanedup_nickname(const char *nickname, int len) | ||||||
| { | { | ||||||
|  | @ -2332,21 +2275,13 @@ bail: | ||||||
| 
 | 
 | ||||||
| void remove_dc(const char *model, uint32_t deviceid, gboolean change_conf) | void remove_dc(const char *model, uint32_t deviceid, gboolean change_conf) | ||||||
| { | { | ||||||
| 	struct device_info *nn_entry, **prevp = &device_info_list; |  | ||||||
| 	char pattern[160]; | 	char pattern[160]; | ||||||
| 	char *nnstring, *brace; | 	char *nnstring, *brace; | ||||||
|  | 	struct device_info *entry; | ||||||
| 
 | 
 | ||||||
| 	if (!deviceid || !model || !*model) | 	entry = remove_device_info(model, deviceid); | ||||||
|  | 	if (!entry) | ||||||
| 		return; | 		return; | ||||||
| 	nn_entry = get_device_info(model, deviceid); |  | ||||||
| 	if (!nn_entry) |  | ||||||
| 		return; |  | ||||||
| 	while (prevp && *prevp != nn_entry) |  | ||||||
| 		prevp = &(*prevp)->next; |  | ||||||
| 	if (!prevp) |  | ||||||
| 		/* that should be impossible */ |  | ||||||
| 		goto bail; |  | ||||||
| 	(*prevp) = nn_entry->next; |  | ||||||
| 
 | 
 | ||||||
| 	/* now remove it from the config string */ | 	/* now remove it from the config string */ | ||||||
| 	snprintf(pattern, sizeof(pattern), "{%08x,%s", deviceid, model); | 	snprintf(pattern, sizeof(pattern), "{%08x,%s", deviceid, model); | ||||||
|  | @ -2362,40 +2297,24 @@ void remove_dc(const char *model, uint32_t deviceid, gboolean change_conf) | ||||||
| 	if (change_conf) | 	if (change_conf) | ||||||
| 		subsurface_set_conf("dc_nicknames", PREF_STRING, nicknamestring); | 		subsurface_set_conf("dc_nicknames", PREF_STRING, nicknamestring); | ||||||
| 
 | 
 | ||||||
| #if defined(NICKNAME_DEBUG) |  | ||||||
| 	struct device_info *nn_entry = device_info_list; |  | ||||||
| 	fprintf(debugfile, "nicknames:\n"); |  | ||||||
| 	while (nn_entry) { |  | ||||||
| 		fprintf(debugfile, "id %8x model %s nickname %s\n", nn_entry->deviceid, nn_entry->model, |  | ||||||
| 			nn_entry->nickname && *nn_entry->nickname ? nn_entry->nickname : "(none)"); |  | ||||||
| 		nn_entry = nn_entry->next; |  | ||||||
| 	} |  | ||||||
| 	fprintf(debugfile, "----------\n"); |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| bail: | bail: | ||||||
| 	free(nn_entry); | 	free(entry); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void remember_dc(const char *model, uint32_t deviceid, const char *nickname, gboolean change_conf) | void remember_dc(const char *model, uint32_t deviceid, const char *nickname, gboolean change_conf) | ||||||
| { | { | ||||||
| 	/* we don't want to record entries with a deviceid of 0; those are from earlier
 | 	struct device_info *nn_entry; | ||||||
| 	 * development versions of Subsurface before we stored the hash in the divecomputer | 
 | ||||||
| 	 * entries... we don't know which actual divecomputer those entries are from */ | 	nn_entry = create_device_info(model, deviceid); | ||||||
| 	if (!deviceid) | 	if (!nn_entry) | ||||||
| 		return; | 		return; | ||||||
| 	if (!nickname) | 
 | ||||||
| 		nickname = ""; | 	/* No existing nickname? */ | ||||||
| 	if (!get_dc_nickname(model, deviceid)) { | 	if (!nn_entry->nickname) { | ||||||
| 		char buffer[160]; | 		char buffer[160]; | ||||||
| 		struct device_info *nn_entry = malloc(sizeof(struct device_info)); |  | ||||||
| 		nn_entry->deviceid = deviceid; |  | ||||||
| 		nn_entry->model = strdup(model); |  | ||||||
| 		/* make sure there are no curly braces or commas in the string and that
 | 		/* make sure there are no curly braces or commas in the string and that
 | ||||||
| 		 * it will fit in the buffer */ | 		 * it will fit in the buffer */ | ||||||
| 		nn_entry->nickname = cleanedup_nickname(nickname, sizeof(buffer) - 13 - strlen(model)); | 		nn_entry->nickname = cleanedup_nickname(nickname, sizeof(buffer) - 13 - strlen(model)); | ||||||
| 		nn_entry->next = device_info_list; |  | ||||||
| 		device_info_list = nn_entry; |  | ||||||
| 		if (*nickname != '\0') | 		if (*nickname != '\0') | ||||||
| 			snprintf(buffer, sizeof(buffer), "{%08x,%s,%s}", deviceid, model, nn_entry->nickname); | 			snprintf(buffer, sizeof(buffer), "{%08x,%s,%s}", deviceid, model, nn_entry->nickname); | ||||||
| 		else | 		else | ||||||
|  | @ -2403,26 +2322,11 @@ void remember_dc(const char *model, uint32_t deviceid, const char *nickname, gbo | ||||||
| 		nicknamestring = realloc(nicknamestring, strlen(nicknamestring) + strlen(buffer) + 1); | 		nicknamestring = realloc(nicknamestring, strlen(nicknamestring) + strlen(buffer) + 1); | ||||||
| 		strcat(nicknamestring, buffer); | 		strcat(nicknamestring, buffer); | ||||||
| 	} else { | 	} else { | ||||||
| 		/* modify existing entry */ |  | ||||||
| 		struct device_info *nn_entry = get_device_info(model, deviceid); |  | ||||||
| 		if (!nn_entry->model || !*nn_entry->model) |  | ||||||
| 			nn_entry->model = model; |  | ||||||
| 		nn_entry->nickname = cleanedup_nickname(nickname, 80); | 		nn_entry->nickname = cleanedup_nickname(nickname, 80); | ||||||
| 		replace_nickname_nicknamestring(model, deviceid, nickname); | 		replace_nickname_nicknamestring(model, deviceid, nickname); | ||||||
| 	} | 	} | ||||||
| 	if (change_conf) | 	if (change_conf) | ||||||
| 		subsurface_set_conf("dc_nicknames", PREF_STRING, nicknamestring); | 		subsurface_set_conf("dc_nicknames", PREF_STRING, nicknamestring); | ||||||
| 
 |  | ||||||
| #if defined(NICKNAME_DEBUG) |  | ||||||
| 	struct device_info *nn_entry = device_info_list; |  | ||||||
| 	fprintf(debugfile, "nicknames:\n"); |  | ||||||
| 	while (nn_entry) { |  | ||||||
| 		fprintf(debugfile, "id %8x model %s nickname %s\n", nn_entry->deviceid, nn_entry->model, |  | ||||||
| 			nn_entry->nickname && *nn_entry->nickname ? nn_entry->nickname : "(none)"); |  | ||||||
| 		nn_entry = nn_entry->next; |  | ||||||
| 	} |  | ||||||
| 	fprintf(debugfile, "----------\n"); |  | ||||||
| #endif |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void set_dc_nickname(struct dive *dive) | void set_dc_nickname(struct dive *dive) | ||||||
|  | @ -2440,7 +2344,7 @@ void set_dc_nickname(struct dive *dive) | ||||||
| 		fprintf(debugfile, "set_dc_nickname for model %s deviceid %8x\n", dc->model ? : "", dc->deviceid); | 		fprintf(debugfile, "set_dc_nickname for model %s deviceid %8x\n", dc->model ? : "", dc->deviceid); | ||||||
| #endif | #endif | ||||||
| 		if (get_dc_nickname(dc->model, dc->deviceid) == NULL) { | 		if (get_dc_nickname(dc->model, dc->deviceid) == NULL) { | ||||||
| 			struct device_info *nn_entry = get_different_dc_nicknameentry(dc->model, dc->deviceid); | 			struct device_info *nn_entry = get_different_device_info(dc->model, dc->deviceid); | ||||||
| 			if (!nn_entry) { | 			if (!nn_entry) { | ||||||
| 				/* just remember the dive computer without setting a nickname */ | 				/* just remember the dive computer without setting a nickname */ | ||||||
| 				if (dc->model) | 				if (dc->model) | ||||||
|  |  | ||||||
|  | @ -6,6 +6,7 @@ | ||||||
| #include <time.h> | #include <time.h> | ||||||
| 
 | 
 | ||||||
| #include "dive.h" | #include "dive.h" | ||||||
|  | #include "device.h" | ||||||
| 
 | 
 | ||||||
| static void show_milli(FILE *f, const char *pre, int value, const char *unit, const char *post) | static void show_milli(FILE *f, const char *pre, int value, const char *unit, const char *post) | ||||||
| { | { | ||||||
|  | @ -524,7 +525,7 @@ void save_dives(const char *filename) | ||||||
| 	fprintf(f, "<divelog program='subsurface' version='%d'>\n<settings>\n", VERSION); | 	fprintf(f, "<divelog program='subsurface' version='%d'>\n<settings>\n", VERSION); | ||||||
| 
 | 
 | ||||||
| 	/* save the dive computer nicknames, if any */ | 	/* save the dive computer nicknames, if any */ | ||||||
| 	clear_dc_saved_status(); | 	clear_device_saved_status(); | ||||||
| 	for_each_dive(i, dive) { | 	for_each_dive(i, dive) { | ||||||
| 		struct divecomputer *dc = &dive->dc; | 		struct divecomputer *dc = &dive->dc; | ||||||
| 		while (dc) { | 		while (dc) { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue