mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Merge branch 'trips' of git://git.hohndel.org/subsurface
Merge the initial 'track trips explicitly' code from Dirk Hohndel. Fix up trivial conflicts in save-xml.c due to the new 'is_attribute' flag. * 'trips' of git://git.hohndel.org/subsurface: Fix an issue with trips that have dives from multiple input files Some simple test dives for the trips code First cut of explicit trip tracking
This commit is contained in:
commit
c89f88378a
8 changed files with 289 additions and 75 deletions
22
save-xml.c
22
save-xml.c
|
@ -284,6 +284,18 @@ static void save_events(FILE *f, struct event *ev)
|
|||
}
|
||||
}
|
||||
|
||||
static void save_trip(FILE *f, struct dive *trip)
|
||||
{
|
||||
struct tm *tm = gmtime(&trip->when);
|
||||
|
||||
fprintf(f, "<trip");
|
||||
fprintf(f, " date='%04u-%02u-%02u'",
|
||||
tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday);
|
||||
if (trip->location)
|
||||
show_utf8(f, trip->location, " location=\'","\'", 1);
|
||||
fprintf(f, " />\n");
|
||||
}
|
||||
|
||||
static void save_dive(FILE *f, struct dive *dive)
|
||||
{
|
||||
int i;
|
||||
|
@ -292,6 +304,8 @@ static void save_dive(FILE *f, struct dive *dive)
|
|||
fputs("<dive", f);
|
||||
if (dive->number)
|
||||
fprintf(f, " number='%d'", dive->number);
|
||||
if (dive->tripflag != TF_NONE)
|
||||
fprintf(f, " tripflag='%s'", tripflag_names[dive->tripflag]);
|
||||
if (dive->rating)
|
||||
fprintf(f, " rating='%d'", dive->rating);
|
||||
fprintf(f, " date='%04u-%02u-%02u'",
|
||||
|
@ -314,6 +328,8 @@ static void save_dive(FILE *f, struct dive *dive)
|
|||
void save_dives(const char *filename)
|
||||
{
|
||||
int i;
|
||||
GList *trip = NULL;
|
||||
|
||||
FILE *f = fopen(filename, "w");
|
||||
|
||||
if (!f)
|
||||
|
@ -323,6 +339,12 @@ void save_dives(const char *filename)
|
|||
update_dive(current_dive);
|
||||
|
||||
fprintf(f, "<dives>\n<program name='subsurface' version='%d'></program>\n", VERSION);
|
||||
|
||||
/* save the trips */
|
||||
while ((trip = NEXT_TRIP(trip, dive_trip_list)) != 0)
|
||||
save_trip(f, trip->data);
|
||||
|
||||
/* save the dives */
|
||||
for (i = 0; i < dive_table.nr; i++)
|
||||
save_dive(f, get_dive(i));
|
||||
fprintf(f, "</dives>\n");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue