Fixed crash when calling with "--", Code cleanup

This commit is contained in:
Pierre Pronchery 2007-05-01 15:40:10 +00:00
parent 056ce15a6f
commit 0f1dae24c0

View File

@ -24,6 +24,7 @@
/* Delete */ /* Delete */
/* types */
typedef struct _Delete typedef struct _Delete
{ {
GtkWidget * window; GtkWidget * window;
@ -34,17 +35,21 @@ typedef struct _Delete
int cur; int cur;
int err_cnt; int err_cnt;
} Delete; } Delete;
/* functions */
static void _delete_refresh(Delete * delete);
/* callbacks */ /* callbacks */
static void _delete_on_closex(GtkWidget * widget, GdkEvent * event, static void _delete_on_closex(GtkWidget * widget, GdkEvent * event,
gpointer data); gpointer data);
static gboolean _delete_idle(gpointer data); static gboolean _delete_idle(gpointer data);
static int _delete(int filec, char * filev[]) static int _delete(int filec, char * filev[])
{ {
static Delete delete; static Delete delete;
GtkWidget * vbox; GtkWidget * vbox;
GtkWidget * hbox; GtkWidget * hbox;
GtkWidget * widget; GtkWidget * widget;
char buf[256];
delete.filec = filec; delete.filec = filec;
delete.filev = filev; 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( g_signal_connect(G_OBJECT(delete.window), "delete_event", G_CALLBACK(
_delete_on_closex), NULL); _delete_on_closex), NULL);
vbox = gtk_vbox_new(FALSE, 4); vbox = gtk_vbox_new(FALSE, 4);
snprintf(buf, sizeof(buf), "Deleting file: %s", filev[0]); delete.label = gtk_label_new("");
delete.label = gtk_label_new(buf);
gtk_box_pack_start(GTK_BOX(vbox), delete.label, TRUE, TRUE, 4); gtk_box_pack_start(GTK_BOX(vbox), delete.label, TRUE, TRUE, 4);
delete.progress = gtk_progress_bar_new(); 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); gtk_box_pack_start(GTK_BOX(vbox), delete.progress, TRUE, TRUE, 4);
hbox = gtk_hbox_new(FALSE, 4); hbox = gtk_hbox_new(FALSE, 4);
widget = gtk_button_new_from_stock(GTK_STOCK_CANCEL); 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_set_border_width(GTK_CONTAINER(delete.window), 4);
gtk_container_add(GTK_CONTAINER(delete.window), vbox); gtk_container_add(GTK_CONTAINER(delete.window), vbox);
g_idle_add(_delete_idle, &delete); g_idle_add(_delete_idle, &delete);
_delete_refresh(&delete);
gtk_widget_show_all(delete.window); gtk_widget_show_all(delete.window);
return 0; 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, static void _delete_on_closex(GtkWidget * widget, GdkEvent * event,
gpointer data) gpointer data)
{ {
@ -84,7 +99,6 @@ static gboolean _delete_idle(gpointer data)
{ {
Delete * delete = (Delete*)data; Delete * delete = (Delete*)data;
GtkWidget * dialog; GtkWidget * dialog;
char buf[256];
if(unlink(delete->filev[delete->cur++]) != 0) if(unlink(delete->filev[delete->cur++]) != 0)
{ {
@ -103,12 +117,7 @@ static gboolean _delete_idle(gpointer data)
gtk_main_quit(); gtk_main_quit();
return FALSE; return FALSE;
} }
snprintf(buf, sizeof(buf), "Deleting file: %s", _delete_refresh(delete);
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);
return TRUE; return TRUE;
} }
@ -138,6 +147,7 @@ int main(int argc, char * argv[])
{ {
int o; int o;
gtk_init(&argc, &argv);
while((o = getopt(argc, argv, "")) != -1) while((o = getopt(argc, argv, "")) != -1)
switch(o) switch(o)
{ {
@ -146,7 +156,6 @@ int main(int argc, char * argv[])
} }
if(optind == argc) if(optind == argc)
return _usage(); return _usage();
gtk_init(&argc, &argv);
_delete(argc - optind, &argv[optind]); _delete(argc - optind, &argv[optind]);
gtk_main(); gtk_main();
return 0; return 0;