diff options
Diffstat (limited to 'save-html.c')
-rw-r--r-- | save-html.c | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/save-html.c b/save-html.c index ab1302e3f..6ce0f3ab7 100644 --- a/save-html.c +++ b/save-html.c @@ -132,7 +132,8 @@ void put_HTML_tags(struct membuffer *b, struct dive *dive, const char *pre, cons put_string(b, post); } -void write_one_dive(struct membuffer *b, struct dive *dive, int *dive_no) +/* if exporting list_only mode, we neglect exporting the samples, bookmarks and cylinders */ +void write_one_dive(struct membuffer *b, struct dive *dive, int *dive_no, const bool list_only) { put_string(b, "{"); put_format(b, "\"number\":%d,", *dive_no); @@ -151,13 +152,15 @@ void write_one_dive(struct membuffer *b, struct dive *dive, int *dive_no) write_attribute(b, "suit", dive->suit); put_HTML_tags(b, dive, "\"tags\":", ","); put_HTML_notes(b, dive, "\"notes\":\"", "\","); - put_cylinder_HTML(b, dive); - put_HTML_samples(b, dive); + if (!list_only) { + put_cylinder_HTML(b, dive); + put_HTML_samples(b, dive); + } put_string(b, "},\n"); (*dive_no)++; } -void write_no_trip(struct membuffer *b, int *dive_no) +void write_no_trip(struct membuffer *b, int *dive_no, const bool list_only) { int i; struct dive *dive; @@ -168,12 +171,12 @@ void write_no_trip(struct membuffer *b, int *dive_no) for_each_dive (i, dive) { if (!dive->divetrip) - write_one_dive(b, dive, dive_no); + write_one_dive(b, dive, dive_no, list_only); } put_format(b, "]},\n\n"); } -void write_trip(struct membuffer *b, dive_trip_t *trip, int *dive_no) +void write_trip(struct membuffer *b, dive_trip_t *trip, int *dive_no, const bool list_only) { struct dive *dive; @@ -182,13 +185,13 @@ void write_trip(struct membuffer *b, dive_trip_t *trip, int *dive_no) put_format(b, "\"dives\":["); for (dive = trip->dives; dive != NULL; dive = dive->next) { - write_one_dive(b, dive, dive_no); + write_one_dive(b, dive, dive_no, list_only); } put_format(b, "]},\n\n"); } -void write_trips(struct membuffer *b, bool selected_only) +void write_trips(struct membuffer *b, bool selected_only, const bool list_only) { int i, dive_no = 0; struct dive *dive; @@ -205,7 +208,7 @@ void write_trips(struct membuffer *b, bool selected_only) for_each_dive (i, dive) { if (!dive->selected) continue; - write_one_dive(b, dive, &dive_no); + write_one_dive(b, dive, &dive_no, list_only); } put_format(b, "]},\n\n"); } else { @@ -219,27 +222,27 @@ void write_trips(struct membuffer *b, bool selected_only) /* We haven't seen this trip before - save it and all dives */ trip->index = 1; - write_trip(b, trip, &dive_no); + write_trip(b, trip, &dive_no, list_only); } /*Save all remaining trips into Others*/ - write_no_trip(b, &dive_no); + write_no_trip(b, &dive_no, list_only); } } -void export_list(struct membuffer *b, bool selected_only) +void export_list(struct membuffer *b, bool selected_only, const bool list_only) { put_string(b, "trips=["); - write_trips(b, selected_only); + write_trips(b, selected_only, list_only); put_string(b, "]"); } -void export_HTML(const char *file_name, const bool selected_only) +void export_HTML(const char *file_name, const bool selected_only, const bool list_only) { FILE *f; struct membuffer buf = { 0 }; - export_list(&buf, selected_only); + export_list(&buf, selected_only, list_only); f = subsurface_fopen(file_name, "w+"); if (!f) |