Save and restore a "dive number"

Some people want to know how many dives they have under their belt, so
let's save and restore the dive number if it exists.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Linus Torvalds 2011-09-11 11:36:33 -07:00
parent d1b30212ff
commit 6538e5bba0
3 changed files with 13 additions and 4 deletions

1
dive.h
View file

@ -128,6 +128,7 @@ struct sample {
#define MAX_CYLINDERS (8)
struct dive {
int nr;
time_t when;
char *location;
char *notes;

View file

@ -609,7 +609,8 @@ static void divinglog_place(char *place, void *_location)
static int divinglog_dive_match(struct dive *dive, const char *name, int len, char *buf)
{
return MATCH(".divedate", divedate, &dive->when) ||
return MATCH(".id", get_index, &dive->nr) ||
MATCH(".divedate", divedate, &dive->when) ||
MATCH(".entrytime", divetime, &dive->when) ||
MATCH(".depth", depth, &dive->maxdepth) ||
MATCH(".tanksize", cylindersize, &dive->cylinder[0].type.size) ||
@ -876,6 +877,8 @@ static void try_to_fill_dive(struct dive *dive, const char *name, char *buf)
break;
}
if (MATCH(".nr", get_index, &dive->nr))
return;
if (MATCH(".date", divedate, &dive->when))
return;
if (MATCH(".time", divetime, &dive->when))

View file

@ -205,9 +205,14 @@ static void save_dive(FILE *f, struct dive *dive)
int i;
struct tm *tm = gmtime(&dive->when);
fprintf(f, "<dive date='%04u-%02u-%02u' time='%02u:%02u:%02u' duration='%u:%02u min'>\n",
tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday,
tm->tm_hour, tm->tm_min, tm->tm_sec,
fputs("<dive", f);
if (dive->nr)
fprintf(f, " nr='%d'", dive->nr);
fprintf(f, " date='%04u-%02u-%02u'",
tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday);
fprintf(f, " time='%02u:%02u:%02u'",
tm->tm_hour, tm->tm_min, tm->tm_sec);
fprintf(f, " duration='%u:%02u min'>\n",
FRACTION(dive->duration.seconds, 60));
save_overview(f, dive);
save_cylinder_info(f, dive);