Start cleaning up dive accessors

I'm going to add a menu to import (and eventually export) dives, and so
we'd like to be able to start out with no dives at all.  Right now we
croak if that happens - it's not like the code has been written with
actual end users in mind.

So start cleaning things up.  First make the 'current_dive' macro work
right even for invalid dives.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Linus Torvalds 2011-08-31 16:33:20 -07:00
parent c17300cfaa
commit 00d798854a
2 changed files with 9 additions and 2 deletions

View file

@ -6,12 +6,12 @@
#include <cairo.h>
extern int selected_dive;
#define current_dive (get_dive(selected_dive))
extern GtkWidget *dive_profile_frame(void);
extern GtkWidget *dive_info_frame(void);
extern GtkWidget *create_dive_list(void);
extern void update_dive_info(struct dive *dive);
extern void repaint_dive(void);
#define current_dive (dive_table.dives[selected_dive])
#endif

7
dive.h
View file

@ -121,6 +121,13 @@ struct dive_table {
extern struct dive_table dive_table;
static inline struct dive *get_dive(unsigned int nr)
{
if (nr >= dive_table.nr)
return NULL;
return dive_table.dives[nr];
}
extern void parse_xml_init(void);
extern void parse_xml_file(const char *filename);