summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--display.h4
-rw-r--r--dive.h7
2 files changed, 9 insertions, 2 deletions
diff --git a/display.h b/display.h
index b9de932cb..8f972e358 100644
--- a/display.h
+++ b/display.h
@@ -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
diff --git a/dive.h b/dive.h
index a8e3c319a..23e2f544c 100644
--- a/dive.h
+++ b/dive.h
@@ -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);