Don't clear modifications when saving fails
authorRicardo Mones <ricardo@mones.org>
Wed, 11 Jul 2018 22:10:53 +0000 (00:10 +0200)
committerRicardo Mones <ricardo@mones.org>
Wed, 11 Jul 2018 22:10:53 +0000 (00:10 +0200)
clawsker

index 67adb4244685b2e95953b8b194ee386fcb6dab02..b25168c34555fdd193b016ea45f16e6b03e97bae 100755 (executable)
--- a/clawsker
+++ b/clawsker
@@ -2632,7 +2632,7 @@ sub load_preferences {
 }
 
 # save current preferences to disc
 }
 
 # save current preferences to disc
-sub save_preferences {
+sub save_rc_preferences {
     my $rc = get_rc_filename ();
     log_message ("Saving preferences to $rc\n");
     return FALSE unless check_rc_file ($rc);
     my $rc = get_rc_filename ();
     log_message ("Saving preferences to $rc\n");
     return FALSE unless check_rc_file ($rc);
@@ -2684,6 +2684,14 @@ sub save_hk_preferences {
     return TRUE;
 }
 
     return TRUE;
 }
 
+sub save_preferences {
+    my $result = save_rc_preferences ()
+        and save_ac_preferences ()
+        and save_hk_preferences ();
+    $MODIFIED = 0 if $result;
+    return $result;
+}
+
 # create notebook
 sub new_notebook {
     my $nb = Gtk2::Notebook->new;
 # create notebook
 sub new_notebook {
     my $nb = Gtk2::Notebook->new;
@@ -2775,13 +2783,7 @@ sub new_button_box {
     # signal handlers
     $b_exit->signal_connect (clicked => sub { exit_handler($parent) });
     $b_apply->set_sensitive (not $READONLY);
     # signal handlers
     $b_exit->signal_connect (clicked => sub { exit_handler($parent) });
     $b_apply->set_sensitive (not $READONLY);
-    $b_apply->signal_connect (clicked => sub {
-        save_preferences ($parent);
-        save_ac_preferences ($parent);
-        save_hk_preferences ($parent);
-        $MODIFIED = 0;
-        return TRUE;
-    });
+    $b_apply->signal_connect (clicked => sub { save_preferences($parent) });
     # $b_undo->signal_connect (clicked => sub { undo_current_changes });
     $b_about->signal_connect (clicked => sub { $adlg->run; $adlg->hide });
     # package them
     # $b_undo->signal_connect (clicked => sub { undo_current_changes });
     $b_about->signal_connect (clicked => sub { $adlg->run; $adlg->hide });
     # package them