From: Linus Torvalds Date: Tue, 28 Aug 2012 20:16:57 +0000 (-0700) Subject: Merge git://git.tdb.fi/ext/subsurface X-Git-Url: http://git.tdb.fi/?a=commitdiff_plain;h=e4955f9be116cd413e8ee3986d737e9e1b95e348;p=ext%2Fsubsurface.git Merge git://git.tdb.fi/ext/subsurface Pull a few buglet fixes from Mikko Rasa. Some trivial conflicts due to changes in the dive selection logic, and using the new "for_each_dive()" helper. * git://git.tdb.fi/ext/subsurface: Check if multi-dive editing is actually needed Fix an off-by-one error in buffer allocation --- e4955f9be116cd413e8ee3986d737e9e1b95e348 diff --cc info.c index cccc649,66e4f0a..d9379ac --- a/info.c +++ b/info.c @@@ -505,10 -506,26 +506,25 @@@ int edit_multi_dive_info(struct dive *s NULL); vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); - master = get_dive(index); + master = single_dive; if (!master) master = current_dive; - dive_info_widget(vbox, master, &info, !single_dive); + + /* See if we should use multi dive mode */ + multi = FALSE; - if (index < 0) - { ++ if (!single_dive) { + int i; + struct dive *dive; + - for (i = 0; (dive = get_dive(i)) != NULL; i++) { ++ for_each_dive(i, dive) { + if (dive != master && dive->selected) { + multi = TRUE; + break; + } + } + } + + dive_info_widget(vbox, master, &info, multi); show_dive_equipment(master, W_IDX_SECONDARY); save_equipment_data(master); gtk_widget_show_all(dialog);