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>
This commit is contained in:
Robert C. Helling 2015-02-26 14:39:42 +01:00 committed by Dirk Hohndel
parent ea00fdb36a
commit b02bf002a6
11 changed files with 139 additions and 15 deletions

View file

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