From ae7d2d4c6b53160bfe0beae13dfb36b879451bba Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Thu, 17 Jul 2014 11:47:00 +0200 Subject: Only run the merge tool on files with differences If the backup file and the data file are equal, there is no need to run the merge tool. Signed-off-by: Lukas Fleischer --- src/calcurse.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'src/calcurse.c') diff --git a/src/calcurse.c b/src/calcurse.c index e31770c..8ba25ed 100644 --- a/src/calcurse.c +++ b/src/calcurse.c @@ -290,13 +290,21 @@ static inline void key_generic_reload(void) io_save_todo(path_todo_backup); io_save_mutex_unlock(); - const char *arg_apts[] = { conf.mergetool, path_apts, - path_apts_backup, NULL }; - wins_launch_external(arg_apts); - - const char *arg_todo[] = { conf.mergetool, path_todo, - path_todo_backup, NULL }; - wins_launch_external(arg_todo); + if (!io_files_equal(path_apts, path_apts_backup)) { + const char *arg_apts[] = { conf.mergetool, + path_apts, + path_apts_backup, + NULL }; + wins_launch_external(arg_apts); + } + + if (!io_files_equal(path_todo, path_todo_backup)) { + const char *arg_todo[] = { conf.mergetool, + path_todo, + path_todo_backup, + NULL }; + wins_launch_external(arg_todo); + } xfree(path_apts_backup); xfree(path_todo_backup); -- cgit v1.2.3