From: Linus Torvalds Date: Sat, 24 Dec 2011 04:23:04 +0000 (-0800) Subject: Merge branch 'docs' of git://git.hohndel.org/subsurface X-Git-Url: http://git.tdb.fi/?a=commitdiff_plain;h=f2ccd1c3d55a90ba979749b08a177c1a024a4f2a;hp=4fe64e95d3a2d1c83ac795ced9ee112ac124a099;p=ext%2Fsubsurface.git Merge branch 'docs' of git://git.hohndel.org/subsurface * 'docs' of git://git.hohndel.org/subsurface: Version 0.0.6 of user manual --- diff --git a/divelist.c b/divelist.c index f664cde..86e7daf 100644 --- a/divelist.c +++ b/divelist.c @@ -292,6 +292,8 @@ static gint nitrox_sort_func(GtkTreeModel *model, return a_he - b_he; } +#define UTF8_ELLIPSIS "\xE2\x80\xA6" + static void nitrox_data_func(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, @@ -315,7 +317,7 @@ static void nitrox_data_func(GtkTreeViewColumn *col, if (o2 == o2low) snprintf(buffer, sizeof(buffer), "%d", o2); else - snprintf(buffer, sizeof(buffer), "%d-%d", o2low, o2); + snprintf(buffer, sizeof(buffer), "%d" UTF8_ELLIPSIS "%d", o2low, o2); else strcpy(buffer, "air"); diff --git a/parse-xml.c b/parse-xml.c index 82b10a4..4d85689 100644 --- a/parse-xml.c +++ b/parse-xml.c @@ -4,6 +4,8 @@ #include #include #include +#include +#include #define __USE_XOPEN #include #include @@ -1417,11 +1419,70 @@ static void reset_all(void) import_source = UNKNOWN; } +struct memblock { + void *buffer; + size_t size; +}; + +static int readfile(const char *filename, struct memblock *mem) +{ + int ret, fd = open(filename, O_RDONLY); + struct stat st; + + mem->buffer = NULL; + mem->size = 0; + + fd = open(filename, O_RDONLY); + if (fd < 0) + return fd; + ret = fstat(fd, &st); + if (ret < 0) + goto out; + ret = -EINVAL; + if (!S_ISREG(st.st_mode)) + goto out; + ret = 0; + if (!st.st_size) + goto out; + mem->buffer = malloc(st.st_size); + ret = -1; + errno = ENOMEM; + if (!mem->buffer) + goto out; + mem->size = st.st_size; + ret = read(fd, mem->buffer, mem->size); + if (ret < 0) + goto free; + if (ret == mem->size) + goto out; + errno = EIO; + ret = -1; +free: + free(mem->buffer); + mem->buffer = NULL; + mem->size = 0; +out: + close(fd); + return ret; +} + void parse_xml_file(const char *filename, GError **error) { xmlDoc *doc; + struct memblock mem; + + if (readfile(filename, &mem) < 0) { + fprintf(stderr, "Failed to read '%s'.\n", filename); + if (error) { + *error = g_error_new(g_quark_from_string("subsurface"), + DIVE_ERROR_PARSE, + "Failed to read '%s'", + filename); + } + return; + } - doc = xmlReadFile(filename, NULL, 0); + doc = xmlReadMemory(mem.buffer, mem.size, filename, NULL, 0); if (!doc) { fprintf(stderr, "Failed to parse '%s'.\n", filename); if (error != NULL) diff --git a/xslt/jdivelog2subsurface.xslt b/xslt/jdivelog2subsurface.xslt index 73b4590..e2f40c5 100644 --- a/xslt/jdivelog2subsurface.xslt +++ b/xslt/jdivelog2subsurface.xslt @@ -66,13 +66,10 @@ - +Diveactivity: - - - - - + +Divetype: Visibility: @@ -86,41 +83,51 @@ Gloves: Weight: + +Comment: + - - - - - - 21.0% - - - - - - - - 0 l - - - - - - - - - - - - - - - - - - + + + + + + + + 21.0% + + + + + + + + + + + + + 0 l + + + + + + + + + + + + + + + + + + @@ -156,6 +163,22 @@ Weight: + + + + + + + + + + + + + + + +