-static void get_dive_gas(struct dive *dive, int *o2, int *he)
+static void get_dive_gas(struct dive *dive, int *o2, int *he, int *o2low)
gtk_tree_model_get(model, iter_a, DIVE_INDEX, &index_a, -1);
gtk_tree_model_get(model, iter_b, DIVE_INDEX, &index_b, -1);
a = get_dive(index_a);
b = get_dive(index_b);
gtk_tree_model_get(model, iter_a, DIVE_INDEX, &index_a, -1);
gtk_tree_model_get(model, iter_b, DIVE_INDEX, &index_b, -1);
a = get_dive(index_a);
b = get_dive(index_b);
- get_dive_gas(a, &a_o2, &a_he);
- get_dive_gas(b, &b_o2, &b_he);
+ get_dive_gas(a, &a_o2, &a_he, &a_o2low);
+ get_dive_gas(b, &b_o2, &b_he, &b_o2low);
static void nitrox_data_func(GtkTreeViewColumn *col,
GtkCellRenderer *renderer,
GtkTreeModel *model,
GtkTreeIter *iter,
gpointer data)
{
static void nitrox_data_func(GtkTreeViewColumn *col,
GtkCellRenderer *renderer,
GtkTreeModel *model,
GtkTreeIter *iter,
gpointer data)
{
char buffer[80];
struct dive *dive;
gtk_tree_model_get(model, iter, DIVE_INDEX, &index, -1);
dive = get_dive(index);
char buffer[80];
struct dive *dive;
gtk_tree_model_get(model, iter, DIVE_INDEX, &index, -1);
dive = get_dive(index);
if (he)
snprintf(buffer, sizeof(buffer), "%d/%d", o2, he);
else if (o2)
if (he)
snprintf(buffer, sizeof(buffer), "%d/%d", o2, he);
else if (o2)
- snprintf(buffer, sizeof(buffer), "%d", o2);
+ if (o2 == o2low)
+ snprintf(buffer, sizeof(buffer), "%d", o2);
+ else
+ snprintf(buffer, sizeof(buffer), "%d" UTF8_ELLIPSIS "%d", o2low, o2);
struct sample *sample = dive->sample + i;
struct sample *psample = sample - 1;
t = sample->time.seconds - psample->time.seconds;
struct sample *sample = dive->sample + i;
struct sample *psample = sample - 1;
t = sample->time.seconds - psample->time.seconds;
- po2 = dive->cylinder[sample->cylinderindex].gasmix.o2.permille / 1000.0 *
- (sample->depth.mm + 10000) / 10000.0;
+ int o2 = dive->cylinder[sample->cylinderindex].gasmix.o2.permille;
+ if (!o2)
+ o2 = AIR_PERMILLE;
+ po2 = o2 / 1000.0 * (sample->depth.mm + 10000) / 10000.0;