summaryrefslogtreecommitdiffstats
path: root/load-git.c
diff options
context:
space:
mode:
authorGravatar Robert C. Helling <helling@atdotde.de>2015-02-26 14:39:42 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-02-27 06:29:44 +0100
commitb02bf002a677e45dbaa4d28edadbaafc89a7badc (patch)
tree86f26c0dc8edbf66999e602277a15bb6a09dc38e /load-git.c
parentea00fdb36ab727b2f403a9feed5e8d96fb6659fc (diff)
downloadsubsurface-b02bf002a677e45dbaa4d28edadbaafc89a7badc.tar.gz
Add hashes to images
Upon successfull reading an image file, this computes a SHA1 hash of the image and saves it with the picture tag in the log file. When a file is not successfully loaded (for example because the log was created on a different computer) we look up the hash in a dictionary that maps hashes to local file names. That dictionary (actually two for both directions), is loaded on startup and saved upon destruction of the main window. Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'load-git.c')
-rw-r--r--load-git.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/load-git.c b/load-git.c
index 053a7140e..be25e8e94 100644
--- a/load-git.c
+++ b/load-git.c
@@ -828,6 +828,12 @@ static void parse_picture_gps(char *line, struct membuffer *str, void *_pic)
pic->longitude = parse_degrees(line, &line);
}
+static void parse_picture_hash(char *line, struct membuffer *str, void *_pic)
+{
+ struct picture *pic = _pic;
+ pic->hash = get_utf8(str);
+}
+
/* These need to be sorted! */
struct keyword_action dc_action[] = {
#undef D
@@ -900,7 +906,7 @@ static void settings_parser(char *line, struct membuffer *str, void *_unused)
static struct keyword_action picture_action[] = {
#undef D
#define D(x) { #x, parse_picture_ ## x }
- D(filename), D(gps)
+ D(filename), D(gps), D(hash)
};
static void picture_parser(char *line, struct membuffer *str, void *_pic)