diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-08-27 15:36:27 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-08-27 15:36:27 -0700 |
commit | c89f88378a0a19d6b7e0771b6fd8dc31acfaf2f7 (patch) | |
tree | 643795a8127b7fea2813f999148c1467cc5b4537 /save-xml.c | |
parent | a44d0049f6370d022067b8aee5e847f9fe550cf1 (diff) | |
parent | 9cf961249e197d6d8a3656968ce15dfd19e3ef3b (diff) | |
download | subsurface-c89f88378a0a19d6b7e0771b6fd8dc31acfaf2f7.tar.gz |
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
Diffstat (limited to 'save-xml.c')
-rw-r--r-- | save-xml.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/save-xml.c b/save-xml.c index 3464cd6d3..b797475e5 100644 --- a/save-xml.c +++ b/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"); |