void save_one_dive_to_mb(struct membuffer *b, struct dive *dive) { struct divecomputer *dc; put_string(b, "<dive"); if (dive->number) put_format(b, " number='%d'", dive->number); if (dive->tripflag == NO_TRIP) put_format(b, " tripflag='NOTRIP'"); if (dive->rating) put_format(b, " rating='%d'", dive->rating); if (dive->visibility) put_format(b, " visibility='%d'", dive->visibility); save_tags(b, dive->tag_list); if (dive->dive_site_uuid) put_format(b, " divesiteid='%8x'", dive->dive_site_uuid); show_date(b, dive->when); put_format(b, " duration='%u:%02u min'>\n", FRACTION(dive->dc.duration.seconds, 60)); save_overview(b, dive); save_cylinder_info(b, dive); save_weightsystem_info(b, dive); save_dive_temperature(b, dive); /* Save the dive computer data */ for_each_dc(dive, dc) save_dc(b, dive, dc); FOR_EACH_PICTURE(dive) save_picture(b, picture); put_format(b, "</dive>\n"); }
static int save_one_divecomputer(git_repository *repo, struct dir *tree, struct dive *dive, struct divecomputer *dc, int idx) { int ret; struct membuffer buf = { 0 }; save_dc(&buf, dive, dc); ret = blob_insert(repo, tree, &buf, "Divecomputer%c%03u", idx ? '-' : 0, idx); if (ret) report_error("divecomputer tree insert failed"); return ret; }