diff options
author | Lukas Fleischer <lfleischer@calcurse.org> | 2017-09-08 20:51:56 +0200 |
---|---|---|
committer | Lukas Fleischer <lfleischer@calcurse.org> | 2017-09-08 21:21:11 +0200 |
commit | 380124c7a21fc216e760e8b925d8738292b725f8 (patch) | |
tree | e2552e80a4f06afe2c428390896ee2f5b24c997e /src | |
parent | 7a0134204ebf3fe03ce670348c326521ae48f2ed (diff) | |
download | calcurse-380124c7a21fc216e760e8b925d8738292b725f8.tar.gz calcurse-380124c7a21fc216e760e8b925d8738292b725f8.zip |
Factor out hash computation
Move code to compute the hash of a data file to a separate function.
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/io.c | 21 |
1 files changed, 14 insertions, 7 deletions
@@ -426,6 +426,18 @@ unsigned io_save_keys(void) return 1; } +static int io_compute_hash(const char *path, char *buf) +{ + FILE *fp = fopen(path, "r"); + + if (!fp) + return 0; + sha1_stream(fp, buf); + fclose(fp); + + return 1; +} + static void io_merge_data(void) { char *path_apts_new, *path_todo_new; @@ -502,22 +514,17 @@ static int resolve_save_conflict(void) static int io_check_data_files_modified() { - FILE *fp; char sha1_new[SHA1_DIGESTLEN * 2 + 1]; int ret = 1; io_mutex_lock(); - if ((fp = fopen(path_apts, "r"))) { - sha1_stream(fp, sha1_new); - fclose(fp); + if (io_compute_hash(path_apts, sha1_new)) { if (strncmp(sha1_new, apts_sha1, SHA1_DIGESTLEN * 2) != 0) goto cleanup; } - if ((fp = fopen(path_todo, "r"))) { - sha1_stream(fp, sha1_new); - fclose(fp); + if (io_compute_hash(path_todo, sha1_new)) { if (strncmp(sha1_new, todo_sha1, SHA1_DIGESTLEN * 2) != 0) goto cleanup; } |