From 0f1dae24c046589dd4e60c2959715e3de64e17f5 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Tue, 1 May 2007 15:40:10 +0000 Subject: [PATCH] Fixed crash when calling with "--", Code cleanup --- src/delete.c | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/src/delete.c b/src/delete.c index 9069d72..2e10c0f 100644 --- a/src/delete.c +++ b/src/delete.c @@ -24,6 +24,7 @@ /* Delete */ +/* types */ typedef struct _Delete { GtkWidget * window; @@ -34,17 +35,21 @@ typedef struct _Delete int cur; int err_cnt; } Delete; + +/* functions */ +static void _delete_refresh(Delete * delete); + /* callbacks */ static void _delete_on_closex(GtkWidget * widget, GdkEvent * event, gpointer data); static gboolean _delete_idle(gpointer data); + static int _delete(int filec, char * filev[]) { static Delete delete; GtkWidget * vbox; GtkWidget * hbox; GtkWidget * widget; - char buf[256]; delete.filec = filec; delete.filev = filev; @@ -55,12 +60,9 @@ static int _delete(int filec, char * filev[]) g_signal_connect(G_OBJECT(delete.window), "delete_event", G_CALLBACK( _delete_on_closex), NULL); vbox = gtk_vbox_new(FALSE, 4); - snprintf(buf, sizeof(buf), "Deleting file: %s", filev[0]); - delete.label = gtk_label_new(buf); + delete.label = gtk_label_new(""); gtk_box_pack_start(GTK_BOX(vbox), delete.label, TRUE, TRUE, 4); delete.progress = gtk_progress_bar_new(); - snprintf(buf, sizeof(buf), "File 1 of %u", filec); - gtk_progress_bar_set_text(GTK_PROGRESS_BAR(delete.progress), buf); gtk_box_pack_start(GTK_BOX(vbox), delete.progress, TRUE, TRUE, 4); hbox = gtk_hbox_new(FALSE, 4); widget = gtk_button_new_from_stock(GTK_STOCK_CANCEL); @@ -69,10 +71,23 @@ static int _delete(int filec, char * filev[]) gtk_container_set_border_width(GTK_CONTAINER(delete.window), 4); gtk_container_add(GTK_CONTAINER(delete.window), vbox); g_idle_add(_delete_idle, &delete); + _delete_refresh(&delete); gtk_widget_show_all(delete.window); return 0; } +static void _delete_refresh(Delete * delete) +{ + char buf[256]; + + snprintf(buf, sizeof(buf), "Deleting file: %s", + delete->filev[delete->cur]); + gtk_label_set_text(GTK_LABEL(delete->label), buf); + snprintf(buf, sizeof(buf), "File %u of %u", delete->cur+1, + delete->filec); + gtk_progress_bar_set_text(GTK_PROGRESS_BAR(delete->progress), buf); +} + static void _delete_on_closex(GtkWidget * widget, GdkEvent * event, gpointer data) { @@ -84,7 +99,6 @@ static gboolean _delete_idle(gpointer data) { Delete * delete = (Delete*)data; GtkWidget * dialog; - char buf[256]; if(unlink(delete->filev[delete->cur++]) != 0) { @@ -103,12 +117,7 @@ static gboolean _delete_idle(gpointer data) gtk_main_quit(); return FALSE; } - snprintf(buf, sizeof(buf), "Deleting file: %s", - delete->filev[delete->cur]); - gtk_label_set_text(GTK_LABEL(delete->label), buf); - snprintf(buf, sizeof(buf), "File %u of %u", delete->cur+1, - delete->filec); - gtk_progress_bar_set_text(GTK_PROGRESS_BAR(delete->progress), buf); + _delete_refresh(delete); return TRUE; } @@ -138,6 +147,7 @@ int main(int argc, char * argv[]) { int o; + gtk_init(&argc, &argv); while((o = getopt(argc, argv, "")) != -1) switch(o) { @@ -146,7 +156,6 @@ int main(int argc, char * argv[]) } if(optind == argc) return _usage(); - gtk_init(&argc, &argv); _delete(argc - optind, &argv[optind]); gtk_main(); return 0;