talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit df64897d90df65aa6ae53d6c1a9442261e962c15
parent b61bed3eb264ab5974412e2053921e55944ed0bf
Author: Oliver Lowe <o@olowe.co>
Date:   Sat, 16 Aug 2025 16:42:34 +1000

just fsync... always close files safely...?

Diffstat:
Msrc/common/file-utils.c | 4+---
Msrc/common/prefs.c | 2--
Msrc/headerview.c | 17-----------------
Msrc/headerview.h | 4+---
Msrc/prefs_common.c | 8--------
Msrc/prefs_common.h | 1-
Msrc/prefs_other.c | 34----------------------------------
7 files changed, 2 insertions(+), 68 deletions(-)

diff --git a/src/common/file-utils.c b/src/common/file-utils.c @@ -35,14 +35,12 @@ #include "utils.h" #include "file-utils.h" -gboolean prefs_common_get_flush_metadata(void); - int safe_fclose(FILE *fp) { if (fflush(fp) != 0) { return EOF; } - if (prefs_common_get_flush_metadata() && fsync(fileno(fp)) != 0) { + if (fsync(fileno(fp)) != 0) { return EOF; } return fclose(fp); diff --git a/src/common/prefs.c b/src/common/prefs.c @@ -105,8 +105,6 @@ PrefFile *prefs_write_open(const gchar *path) return pfile; } -gboolean prefs_common_get_flush_metadata (void); - /*! *\brief Close and free preferences file * Creates final file from temp, creates backup diff --git a/src/headerview.c b/src/headerview.c @@ -65,8 +65,6 @@ HeaderView *headerview_create(void) GtkWidget *ng_body_label; GtkWidget *subject_header_label; GtkWidget *subject_body_label; - GtkWidget *tags_header_label; - GtkWidget *tags_body_label; debug_print("Creating header view...\n"); headerview = g_new0(HeaderView, 1); @@ -92,20 +90,16 @@ HeaderView *headerview_create(void) ng_body_label = gtk_label_new(""); subject_header_label = gtk_label_new(prefs_common_translated_header_name("Subject:")); subject_body_label = gtk_label_new(""); - tags_header_label = gtk_label_new(_("Tags:")); - tags_body_label = gtk_label_new(""); gtk_label_set_selectable(GTK_LABEL(from_body_label), TRUE); gtk_label_set_selectable(GTK_LABEL(to_body_label), TRUE); gtk_label_set_selectable(GTK_LABEL(ng_body_label), TRUE); gtk_label_set_selectable(GTK_LABEL(subject_body_label), TRUE); - gtk_label_set_selectable(GTK_LABEL(tags_body_label), TRUE); gtk_widget_set_can_focus(from_body_label, FALSE); gtk_widget_set_can_focus(to_body_label, FALSE); gtk_widget_set_can_focus(ng_body_label, FALSE); gtk_widget_set_can_focus(subject_body_label, FALSE); - gtk_widget_set_can_focus(tags_body_label, FALSE); gtk_box_pack_start(GTK_BOX(hbox1), from_header_label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox1), from_body_label, FALSE, FALSE, 0); @@ -115,17 +109,13 @@ HeaderView *headerview_create(void) gtk_box_pack_start(GTK_BOX(hbox1), ng_body_label, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox2), subject_header_label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox2), subject_body_label, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(hbox3), tags_header_label, FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(hbox3), tags_body_label, TRUE, TRUE, 0); gtk_label_set_xalign(GTK_LABEL(to_body_label), 0.0); gtk_label_set_xalign(GTK_LABEL(ng_body_label), 0.0); gtk_label_set_xalign(GTK_LABEL(subject_body_label), 0.0); - gtk_label_set_xalign(GTK_LABEL(tags_body_label), 0.0); gtk_label_set_ellipsize(GTK_LABEL(to_body_label), PANGO_ELLIPSIZE_END); gtk_label_set_ellipsize(GTK_LABEL(ng_body_label), PANGO_ELLIPSIZE_END); gtk_label_set_ellipsize(GTK_LABEL(subject_body_label), PANGO_ELLIPSIZE_END); - gtk_label_set_ellipsize(GTK_LABEL(tags_body_label), PANGO_ELLIPSIZE_END); headerview->hbox = hbox; headerview->from_header_label = from_header_label; @@ -136,8 +126,6 @@ HeaderView *headerview_create(void) headerview->ng_body_label = ng_body_label; headerview->subject_header_label = subject_header_label; headerview->subject_body_label = subject_body_label; - headerview->tags_header_label = tags_header_label; - headerview->tags_body_label = tags_body_label; headerview->image = NULL; gtk_widget_show_all(hbox); @@ -156,7 +144,6 @@ void headerview_set_font(HeaderView *headerview) gtk_widget_override_font(headerview->to_body_label, normalfont); gtk_widget_override_font(headerview->ng_body_label, normalfont); gtk_widget_override_font(headerview->subject_body_label, normalfont); - gtk_widget_override_font(headerview->tags_body_label, normalfont); pango_font_description_free(normalfont); } @@ -171,7 +158,6 @@ void headerview_set_font(HeaderView *headerview) gtk_widget_override_font(headerview->to_header_label, boldfont); gtk_widget_override_font(headerview->ng_header_label, boldfont); gtk_widget_override_font(headerview->subject_header_label, boldfont); - gtk_widget_override_font(headerview->tags_header_label, boldfont); pango_font_description_free(boldfont); } } @@ -335,13 +321,10 @@ void headerview_clear(HeaderView *headerview) gtk_label_set_text(GTK_LABEL(headerview->to_body_label), ""); gtk_label_set_text(GTK_LABEL(headerview->ng_body_label), ""); gtk_label_set_text(GTK_LABEL(headerview->subject_body_label), ""); - gtk_label_set_text(GTK_LABEL(headerview->tags_body_label), ""); gtk_widget_hide(headerview->to_header_label); gtk_widget_hide(headerview->to_body_label); gtk_widget_hide(headerview->ng_header_label); gtk_widget_hide(headerview->ng_body_label); - gtk_widget_hide(headerview->tags_header_label); - gtk_widget_hide(headerview->tags_body_label); if (headerview->image && gtk_widget_get_visible(headerview->image)) { gtk_widget_hide(headerview->image); diff --git a/src/headerview.h b/src/headerview.h @@ -14,7 +14,7 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * */ #ifndef __HEADERVIEW_H__ @@ -38,8 +38,6 @@ struct _HeaderView GtkWidget *ng_body_label; GtkWidget *subject_header_label; GtkWidget *subject_body_label; - GtkWidget *tags_header_label; - GtkWidget *tags_body_label; GtkWidget *image; }; diff --git a/src/prefs_common.c b/src/prefs_common.c @@ -1023,9 +1023,6 @@ static PrefParam param[] = { {"inherit_folder_properties", "FALSE", &prefs_common.inherit_folder_props, P_BOOL, NULL, NULL, NULL}, - {"flush_metadata", "TRUE", &prefs_common.flush_metadata, P_BOOL, - NULL, NULL, NULL}, - {"nav_history_length", "50", &prefs_common.nav_history_length, P_INT, NULL, NULL, NULL}, @@ -1481,11 +1478,6 @@ const gchar *prefs_common_get_ext_editor_cmd(void) #endif /* 0 */ } -gboolean prefs_common_get_flush_metadata (void) -{ - return prefs_common.flush_metadata; -} - PrefsCommon *prefs_common_get_prefs(void) { return &prefs_common; diff --git a/src/prefs_common.h b/src/prefs_common.h @@ -559,7 +559,6 @@ struct _PrefsCommon gboolean two_line_vert; gboolean inherit_folder_props; - gboolean flush_metadata; gint nav_history_length; diff --git a/src/prefs_other.c b/src/prefs_other.c @@ -65,8 +65,6 @@ typedef struct _OtherPage GtkWidget *checkbtn_askonfilter; GtkWidget *checkbtn_real_time_sync; GtkWidget *entry_attach_save_chmod; - GtkWidget *flush_metadata_faster_radiobtn; - GtkWidget *flush_metadata_safer_radiobtn; GtkWidget *checkbtn_transhdr; GtkWidget *checkbtn_use_passphrase; } OtherPage; @@ -367,12 +365,6 @@ static void prefs_other_create_widget(PrefsPage *_page, GtkWindow *window, GtkWidget *label_attach_save_chmod; GtkWidget *entry_attach_save_chmod; - GtkWidget *frame_metadata; - GtkWidget *vbox_metadata; - GtkWidget *metadata_label; - GtkWidget *flush_metadata_faster_radiobtn; - GtkWidget *flush_metadata_safer_radiobtn; - GtkWidget *vbox_passphrase; GtkWidget *frame_passphrase; GtkWidget *checkbtn_use_passphrase; @@ -428,28 +420,6 @@ static void prefs_other_create_widget(PrefsPage *_page, GtkWindow *window, gtk_widget_show_all(frame_keys); SET_TOGGLE_SENSITIVITY (checkbtn_gtk_enable_accels, keys_preset_hbox); - vbox_metadata = gtkut_get_options_frame(vbox1, &frame_metadata, _("Metadata handling")); - metadata_label = gtk_label_new(_("Safer mode asks the OS to write metadata to disk directly;\n" - "it avoids data loss after crashes but can take some time")); - gtk_label_set_xalign(GTK_LABEL(metadata_label), 0.0); - gtk_label_set_yalign(GTK_LABEL(metadata_label), 0.0); - gtk_box_pack_start (GTK_BOX (vbox_metadata), metadata_label, FALSE, FALSE, 0); - flush_metadata_safer_radiobtn = gtk_radio_button_new_with_label(NULL, _("Safer")); - flush_metadata_faster_radiobtn = gtk_radio_button_new_with_label_from_widget( - GTK_RADIO_BUTTON(flush_metadata_safer_radiobtn), _("Faster")); - hbox1 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8); - gtk_widget_show (hbox1); - gtk_box_pack_start (GTK_BOX (vbox_metadata), hbox1, FALSE, FALSE, 0); - gtk_box_pack_start (GTK_BOX (hbox1), flush_metadata_safer_radiobtn, FALSE, FALSE, 0); - gtk_box_pack_start (GTK_BOX (hbox1), flush_metadata_faster_radiobtn, FALSE, FALSE, 0); - - if (prefs_common.flush_metadata) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(flush_metadata_safer_radiobtn), TRUE); - else - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(flush_metadata_faster_radiobtn), TRUE); - - gtk_widget_show_all(frame_metadata); - hbox1 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0); @@ -576,8 +546,6 @@ static void prefs_other_create_widget(PrefsPage *_page, GtkWindow *window, prefs_other->checkbtn_askonfilter = checkbtn_askonfilter; prefs_other->checkbtn_real_time_sync = checkbtn_real_time_sync; prefs_other->entry_attach_save_chmod = entry_attach_save_chmod; - prefs_other->flush_metadata_safer_radiobtn = flush_metadata_safer_radiobtn; - prefs_other->flush_metadata_faster_radiobtn = flush_metadata_faster_radiobtn; prefs_other->checkbtn_use_passphrase = checkbtn_use_passphrase; prefs_other->page.widget = vbox1; } @@ -601,8 +569,6 @@ static void prefs_other_save(PrefsPage *_page) GTK_TOGGLE_BUTTON(page->checkbtn_warnqueued)); prefs_common.io_timeout_secs = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON(page->spinbtn_iotimeout)); - prefs_common.flush_metadata = gtk_toggle_button_get_active( - GTK_TOGGLE_BUTTON(page->flush_metadata_safer_radiobtn)); sock_set_io_timeout(prefs_common.io_timeout_secs); #ifdef HAVE_LIBETPAN imap_main_set_timeout(prefs_common.io_timeout_secs);