diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/calcurse.c | 11 | ||||
-rw-r--r-- | src/calcurse.h | 2 | ||||
-rw-r--r-- | src/io.c | 9 |
3 files changed, 15 insertions, 7 deletions
diff --git a/src/calcurse.c b/src/calcurse.c index 5c77bca..bdd1761 100644 --- a/src/calcurse.c +++ b/src/calcurse.c @@ -277,11 +277,12 @@ static inline void key_generic_save(void) static inline void key_generic_reload(void) { - io_reload_data(); - do_storage(0); - notify_check_next_app(1); - ui_calendar_monthly_view_cache_set_invalid(); - wins_update(FLAG_ALL); + if (io_reload_data()) { + do_storage(0); + notify_check_next_app(1); + ui_calendar_monthly_view_cache_set_invalid(); + wins_update(FLAG_ALL); + } } static inline void key_generic_import(void) diff --git a/src/calcurse.h b/src/calcurse.h index 2707305..5fa4639 100644 --- a/src/calcurse.h +++ b/src/calcurse.h @@ -847,7 +847,7 @@ void io_save_cal(enum save_display); void io_load_app(struct item_filter *); void io_load_todo(struct item_filter *); void io_load_data(struct item_filter *); -void io_reload_data(void); +int io_reload_data(void); void io_load_keys(const char *); int io_check_dir(const char *); unsigned io_dir_exists(const char *); @@ -870,12 +870,13 @@ void io_load_data(struct item_filter *filter) run_hook("post-load"); } -void io_reload_data(void) +int io_reload_data(void) { char *msg_um_asktype = NULL; const char *reload_success = _("The data files were reloaded successfully"); const char *enter = _("Press [ENTER] to continue"); + int ret = 0; if (io_get_modified()) { const char *msg_um_prefix = @@ -902,6 +903,9 @@ void io_reload_data(void) } } + if (!io_check_data_files_modified()) + goto cleanup; + if (notify_bar()) notify_stop_main_thread(); @@ -939,8 +943,11 @@ void io_reload_data(void) if (notify_bar()) notify_start_main_thread(); + ret = 1; + cleanup: mem_free(msg_um_asktype); + return ret; } static void |