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:
Linus Torvalds 2012-08-27 15:36:27 -07:00
commit c89f88378a
8 changed files with 289 additions and 75 deletions

View file

@ -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");