[zenity] Fix style



commit 4eddb202cafdcabc254aa941ad1348ff09372627
Author: Arx Cruz <arxcruz redhat com>
Date:   Fri Apr 7 14:00:42 2017 +0200

    Fix style
    
    Fixing style in all zenity code, removing useless spaces,
    empty lines, all code in 80 columns, etc.

 src/about.c         |  161 ++-
 src/calendar.c      |  268 ++--
 src/color.c         |  166 ++-
 src/entry.c         |  324 ++--
 src/fileselection.c |  344 +++--
 src/forms.c         |  708 +++++-----
 src/main.c          |  145 +-
 src/msg.c           |  435 +++---
 src/notification.c  |  606 ++++----
 src/option.c        | 4180 ++++++++++++++++++++++++---------------------------
 src/option.h        |   80 +-
 src/password.c      |  298 ++--
 src/progress.c      |  673 +++++----
 src/scale.c         |  257 ++--
 src/text.c          |  695 +++++----
 src/tree.c          | 1392 +++++++++--------
 src/util.c          |  630 ++++----
 src/util.h          |   53 +-
 src/zenity.h        |  271 ++--
 19 files changed, 5798 insertions(+), 5888 deletions(-)
---
diff --git a/src/about.c b/src/about.c
index 486b641..627aa1e 100644
--- a/src/about.c
+++ b/src/about.c
@@ -25,10 +25,10 @@
  */
 
 #include "config.h"
-#include "zenity.h"
 #include "util.h"
-#include <string.h>
+#include "zenity.h"
 #include <gdk/gdkkeysyms.h>
+#include <string.h>
 
 #define GTK_RESPONSE_CREDITS 0
 #define ZENITY_HELP_PATH ZENITY_DATADIR "/help/"
@@ -39,39 +39,38 @@
 
 static GtkWidget *dialog;
 
-static void zenity_about_dialog_response (GtkWidget *widget, int response, gpointer data);
+static void zenity_about_dialog_response (
+       GtkWidget *widget, int response, gpointer data);
 
 /* Sync with the people in the THANKS file */
-static const gchar *const authors[] = {
-  "Glynn Foster <glynn foster sun com>",
-  "Lucas Rocha <lucasr gnome org>",
-  "Mike Newman <mikegtn gnome org>",
-  NULL
-};
+static const gchar *const authors[] = {"Glynn Foster <glynn foster sun com>",
+       "Lucas Rocha <lucasr gnome org>",
+       "Mike Newman <mikegtn gnome org>",
+       NULL};
 
-static const char *documenters[] = {
-  "Glynn Foster <glynn foster sun com>",
-  "Lucas Rocha <lucasr gnome org>",
-  "Java Desktop System Documentation Team",
-  "GNOME Documentation Project",
-  NULL
-};
+static const char *documenters[] = {"Glynn Foster <glynn foster sun com>",
+       "Lucas Rocha <lucasr gnome org>",
+       "Java Desktop System Documentation Team",
+       "GNOME Documentation Project",
+       NULL};
 
 static gchar *translators;
 
 static const char *license[] = {
-       N_("This program is free software; you can redistribute it and/or modify "
-          "it under the terms of the GNU Lesser General Public License as published by "
-          "the Free Software Foundation; either version 2 of the License, or "
-          "(at your option) any later version.\n"),
-       N_("This program is distributed in the hope that it will be useful, "
-          "but WITHOUT ANY WARRANTY; without even the implied warranty of "
-          "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the "
-          "GNU Lesser General Public License for more details.\n"),
-       N_("You should have received a copy of the GNU Lesser General Public License "
-          "along with this program; if not, write to the Free Software "
-          "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.")
-};
+       N_ ("This program is free software; you can redistribute it and/or modify "
+               "it under the terms of the GNU Lesser General Public License as "
+               "published by "
+               "the Free Software Foundation; either version 2 of the License, or "
+               "(at your option) any later version.\n"),
+       N_ ("This program is distributed in the hope that it will be useful, "
+               "but WITHOUT ANY WARRANTY; without even the implied warranty of "
+               "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the "
+               "GNU Lesser General Public License for more details.\n"),
+       N_ ("You should have received a copy of the GNU Lesser General Public "
+               "License "
+               "along with this program; if not, write to the Free Software "
+               "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
+               "02110-1301, USA.")};
 
 #if 0
 static gint
@@ -253,66 +252,78 @@ zenity_zen_wisdom (GtkDialog *dialog, GdkEventKey *event, gpointer user_data)
 }
 #endif
 
-void 
-zenity_about (ZenityData *data)
-{
-  GdkPixbuf *logo;
-  char *license_trans;
-
-
-  translators = _("translator-credits");
-  logo = gdk_pixbuf_new_from_file (ZENITY_IMAGE_FULLPATH ("zenity.png"), NULL);
-
-  license_trans = g_strconcat (_(license[0]), "\n", _(license[1]), "\n",
-                               _(license[2]), "\n", NULL);
-
-  dialog = gtk_about_dialog_new ();
-
-  g_object_set (G_OBJECT (dialog),
-                "name", "Zenity",
-                "version", VERSION,
-                "copyright", "Copyright \xc2\xa9 2003 Sun Microsystems",
-                "comments", _("Display dialog boxes from shell scripts"),
-               "authors", authors,
-                "documenters", documenters,
-                "translator-credits", translators,
-                "website", "http://live.gnome.org/Zenity";,
-                "logo", logo,
-                "wrap-license", TRUE,
-                "license", license_trans,
+void
+zenity_about (ZenityData *data) {
+       GdkPixbuf *logo;
+       char *license_trans;
+
+       translators = _ ("translator-credits");
+       logo =
+               gdk_pixbuf_new_from_file (ZENITY_IMAGE_FULLPATH ("zenity.png"), NULL);
+
+       license_trans = g_strconcat (
+               _ (license[0]), "\n", _ (license[1]), "\n", _ (license[2]), "\n", NULL);
+
+       dialog = gtk_about_dialog_new ();
+
+       g_object_set (G_OBJECT (dialog),
+               "name",
+               "Zenity",
+               "version",
+               VERSION,
+               "copyright",
+               "Copyright \xc2\xa9 2003 Sun Microsystems",
+               "comments",
+               _ ("Display dialog boxes from shell scripts"),
+               "authors",
+               authors,
+               "documenters",
+               documenters,
+               "translator-credits",
+               translators,
+               "website",
+               "http://live.gnome.org/Zenity";,
+               "logo",
+               logo,
+               "wrap-license",
+               TRUE,
+               "license",
+               license_trans,
                NULL);
- 
-  g_free (license_trans);
 
-  zenity_util_set_window_icon (dialog, NULL, ZENITY_IMAGE_FULLPATH ("zenity.png"));
+       g_free (license_trans);
+
+       zenity_util_set_window_icon (
+               dialog, NULL, ZENITY_IMAGE_FULLPATH ("zenity.png"));
 
-  g_signal_connect (G_OBJECT (dialog), "response",
-                    G_CALLBACK (zenity_about_dialog_response), data);
+       g_signal_connect (G_OBJECT (dialog),
+               "response",
+               G_CALLBACK (zenity_about_dialog_response),
+               data);
 
 #if 0
   g_signal_connect (G_OBJECT (dialog), "key_press_event",
                     G_CALLBACK (zenity_zen_wisdom), NULL);
 #endif
 
-  zenity_util_show_dialog (dialog, data->attach);
-  gtk_main ();
+       zenity_util_show_dialog (dialog, data->attach);
+       gtk_main ();
 }
 
 static void
-zenity_about_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
-  ZenityData *zen_data = data;
+zenity_about_dialog_response (GtkWidget *widget, int response, gpointer data) {
+       ZenityData *zen_data = data;
 
-  switch (response) {
-    case GTK_RESPONSE_CLOSE:
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
-      break;
+       switch (response) {
+               case GTK_RESPONSE_CLOSE:
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
+                       break;
 
-    default:
-      /* Esc dialog */
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
-      break;
-  }
+               default:
+                       /* Esc dialog */
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
+                       break;
+       }
 
-  gtk_main_quit ();
+       gtk_main_quit ();
 }
diff --git a/src/calendar.c b/src/calendar.c
index 9f82cc6..9aaf927 100644
--- a/src/calendar.c
+++ b/src/calendar.c
@@ -23,146 +23,158 @@
 
 #include "config.h"
 
-#include <time.h>
-#include "zenity.h"
 #include "util.h"
-
+#include "zenity.h"
+#include <time.h>
 
 static GtkWidget *calendar;
 static ZenityCalendarData *zen_cal_data;
 
-static void zenity_calendar_dialog_response (GtkWidget *widget, int response, gpointer data);
+static void zenity_calendar_dialog_response (
+       GtkWidget *widget, int response, gpointer data);
 static void zenity_calendar_double_click (GtkCalendar *calendar, gpointer data);
 
-void 
-zenity_calendar (ZenityData *data, ZenityCalendarData *cal_data)
-{
-  GtkBuilder *builder;
-  GtkWidget *dialog;
-  GtkWidget *button;
-  GObject *text;
-
-  zen_cal_data = cal_data;
-
-  builder = zenity_util_load_ui_file ("zenity_calendar_dialog", NULL);
-
-  if (builder == NULL) {
-    data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
-    return;
-  }
-       
-  gtk_builder_connect_signals (builder, NULL);
-
-  dialog = GTK_WIDGET (gtk_builder_get_object (builder,
-                                              "zenity_calendar_dialog"));
-
-  g_signal_connect (G_OBJECT (dialog), "response",
-                    G_CALLBACK (zenity_calendar_dialog_response), data);
-
-  if (data->dialog_title)      
-    gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
-
-  zenity_util_set_window_icon (dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-calendar.png"));
-
-  if (data->width > -1 || data->height > -1)
-    gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
-
-  if (data->modal)
-    gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
-
-  text = gtk_builder_get_object (builder, "zenity_calendar_text");
-
-  if (cal_data->dialog_text)
-    gtk_label_set_markup (GTK_LABEL (text), g_strcompress (cal_data->dialog_text));
-
-  calendar = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_calendar"));
-       
-  if (cal_data->month > 0 || cal_data->year > 0)
-    gtk_calendar_select_month (GTK_CALENDAR (calendar), cal_data->month - 1, cal_data->year);
-  if (cal_data->day > 0)
-    gtk_calendar_select_day (GTK_CALENDAR (calendar), cal_data->day);
-
-  g_signal_connect (calendar, "day-selected-double-click",
-                   G_CALLBACK (zenity_calendar_double_click), data);
-
-  gtk_label_set_mnemonic_widget (GTK_LABEL (text), calendar);
-  zenity_util_show_dialog (dialog, data->attach);
-
-  if (data->timeout_delay > 0) {
-    g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, dialog);
-  }
-  
-  if (data->extra_label) {
-    gint i=0;
-    while(data->extra_label[i]!=NULL){
-      gtk_dialog_add_button (GTK_DIALOG (dialog), data->extra_label[i], i);
-      i++;
-    }
-  }
-  
-  if (data->ok_label) {
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_calendar_ok_button"));
-    gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
-  }
-
-  if (data->cancel_label) {
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_calendar_cancel_button"));
-    gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
-  }
-
-  g_object_unref (builder);
-
-  gtk_main ();
+void
+zenity_calendar (ZenityData *data, ZenityCalendarData *cal_data) {
+       GtkBuilder *builder;
+       GtkWidget *dialog;
+       GtkWidget *button;
+       GObject *text;
+
+       zen_cal_data = cal_data;
+
+       builder = zenity_util_load_ui_file ("zenity_calendar_dialog", NULL);
+
+       if (builder == NULL) {
+               data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+               return;
+       }
+
+       gtk_builder_connect_signals (builder, NULL);
+
+       dialog =
+               GTK_WIDGET (gtk_builder_get_object (builder, "zenity_calendar_dialog"));
+
+       g_signal_connect (G_OBJECT (dialog),
+               "response",
+               G_CALLBACK (zenity_calendar_dialog_response),
+               data);
+
+       if (data->dialog_title)
+               gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
+
+       zenity_util_set_window_icon (dialog,
+               data->window_icon,
+               ZENITY_IMAGE_FULLPATH ("zenity-calendar.png"));
+
+       if (data->width > -1 || data->height > -1)
+               gtk_window_set_default_size (
+                       GTK_WINDOW (dialog), data->width, data->height);
+
+       if (data->modal)
+               gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+
+       text = gtk_builder_get_object (builder, "zenity_calendar_text");
+
+       if (cal_data->dialog_text)
+               gtk_label_set_markup (
+                       GTK_LABEL (text), g_strcompress (cal_data->dialog_text));
+
+       calendar = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_calendar"));
+
+       if (cal_data->month > 0 || cal_data->year > 0)
+               gtk_calendar_select_month (
+                       GTK_CALENDAR (calendar), cal_data->month - 1, cal_data->year);
+       if (cal_data->day > 0)
+               gtk_calendar_select_day (GTK_CALENDAR (calendar), cal_data->day);
+
+       g_signal_connect (calendar,
+               "day-selected-double-click",
+               G_CALLBACK (zenity_calendar_double_click),
+               data);
+
+       gtk_label_set_mnemonic_widget (GTK_LABEL (text), calendar);
+       zenity_util_show_dialog (dialog, data->attach);
+
+       if (data->timeout_delay > 0) {
+               g_timeout_add_seconds (data->timeout_delay,
+                       (GSourceFunc) zenity_util_timeout_handle,
+                       dialog);
+       }
+
+       if (data->extra_label) {
+               gint i = 0;
+               while (data->extra_label[i] != NULL) {
+                       gtk_dialog_add_button (
+                               GTK_DIALOG (dialog), data->extra_label[i], i);
+                       i++;
+               }
+       }
+
+       if (data->ok_label) {
+               button = GTK_WIDGET (
+                       gtk_builder_get_object (builder, "zenity_calendar_ok_button"));
+               gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
+       }
+
+       if (data->cancel_label) {
+               button = GTK_WIDGET (
+                       gtk_builder_get_object (builder, "zenity_calendar_cancel_button"));
+               gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
+       }
+
+       g_object_unref (builder);
+
+       gtk_main ();
 }
-static void 
-zenity_calendar_dialog_output (void)
-{
-  guint day, month, year;
-  gchar time_string[128];
-  GDate *date = NULL;
-  
-  gtk_calendar_get_date (GTK_CALENDAR (calendar), &day, &month, &year);
-  date = g_date_new_dmy (year, month + 1, day);
-  g_date_strftime (time_string, 127, zen_cal_data->date_format, date);
-  g_print ("%s\n", time_string);
-
-  if (date != NULL)
-    g_date_free (date);
+static void
+zenity_calendar_dialog_output (void) {
+       guint day, month, year;
+       gchar time_string[128];
+       GDate *date = NULL;
+
+       gtk_calendar_get_date (GTK_CALENDAR (calendar), &day, &month, &year);
+       date = g_date_new_dmy (year, month + 1, day);
+       g_date_strftime (time_string, 127, zen_cal_data->date_format, date);
+       g_print ("%s\n", time_string);
+
+       if (date != NULL)
+               g_date_free (date);
 }
 
 static void
-zenity_calendar_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
-  ZenityData *zen_data;
-
-  zen_data = data;
-
-  switch (response) {
-    case GTK_RESPONSE_OK:
-      zenity_calendar_dialog_output ();
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);   
-      break;
-
-    case GTK_RESPONSE_CANCEL:
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
-      break;
-
-    case ZENITY_TIMEOUT:
-      zenity_calendar_dialog_output ();
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
-      break;
-
-    default:
-      if (zen_data->extra_label && response < g_strv_length(zen_data->extra_label))
-        printf("%s\n",zen_data->extra_label[response]);
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
-      break;
-  }
-  gtk_main_quit ();
+zenity_calendar_dialog_response (
+       GtkWidget *widget, int response, gpointer data) {
+       ZenityData *zen_data;
+
+       zen_data = data;
+
+       switch (response) {
+               case GTK_RESPONSE_OK:
+                       zenity_calendar_dialog_output ();
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
+                       break;
+
+               case GTK_RESPONSE_CANCEL:
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+                       break;
+
+               case ZENITY_TIMEOUT:
+                       zenity_calendar_dialog_output ();
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
+                       break;
+
+               default:
+                       if (zen_data->extra_label &&
+                               response < g_strv_length (zen_data->extra_label))
+                               printf ("%s\n", zen_data->extra_label[response]);
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
+                       break;
+       }
+       gtk_main_quit ();
 }
 
 static void
-zenity_calendar_double_click (GtkCalendar *cal, gpointer data)
-{
-  zenity_calendar_dialog_response (NULL, GTK_RESPONSE_OK, data);
+zenity_calendar_double_click (GtkCalendar *cal, gpointer data) {
+       zenity_calendar_dialog_response (NULL, GTK_RESPONSE_OK, data);
 }
diff --git a/src/color.c b/src/color.c
index ae47b19..9ef233e 100644
--- a/src/color.c
+++ b/src/color.c
@@ -23,92 +23,96 @@
 
 #include "config.h"
 
-#include <string.h>
-#include "zenity.h"
 #include "util.h"
+#include "zenity.h"
+#include <string.h>
 
 static ZenityData *zen_data;
 
-static void zenity_colorselection_dialog_response (GtkWidget *widget, int response, gpointer data);
-
-void zenity_colorselection (ZenityData *data, ZenityColorData *color_data)
-{
-  GtkWidget *dialog;
-  GtkWidget *button;
-  GdkRGBA color;
-
-  zen_data = data;
-
-  dialog = gtk_color_chooser_dialog_new (data->dialog_title, NULL);
-
-  g_signal_connect (G_OBJECT (dialog), "response",
-                    G_CALLBACK (zenity_colorselection_dialog_response),
-                    color_data);
-
-  if (color_data->color) {
-    if (gdk_rgba_parse (&color, color_data->color)) {
-      gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (dialog), &color);
-    }
-  }
-
-  if (data->extra_label) {
-    gint i=0;
-    while(data->extra_label[i]!=NULL){
-      gtk_dialog_add_button (GTK_DIALOG (dialog), data->extra_label[i], i);
-      i++;
-    }
-  }
-
-  if (data->ok_label) {
-    g_object_get (G_OBJECT (dialog), "ok-button", &button, NULL);
-    gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
-    g_object_unref (G_OBJECT (button));
-  }
-
-  if (data->cancel_label) {
-    g_object_get (G_OBJECT (dialog), "cancel-button", &button, NULL);
-    gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
-    g_object_unref (G_OBJECT (button));
-  }
-
-  if (data->modal)
-    gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
-
-  g_object_set (dialog, "show-editor", !color_data->show_palette, NULL);
-
-  zenity_util_show_dialog (dialog, data->attach);
-
-  if (data->timeout_delay > 0) {
-    g_timeout_add_seconds (data->timeout_delay,
-                           (GSourceFunc) zenity_util_timeout_handle,
-                           dialog);
-  }
-
-  gtk_main();
+static void zenity_colorselection_dialog_response (
+       GtkWidget *widget, int response, gpointer data);
+
+void
+zenity_colorselection (ZenityData *data, ZenityColorData *color_data) {
+       GtkWidget *dialog;
+       GtkWidget *button;
+       GdkRGBA color;
+
+       zen_data = data;
+
+       dialog = gtk_color_chooser_dialog_new (data->dialog_title, NULL);
+
+       g_signal_connect (G_OBJECT (dialog),
+               "response",
+               G_CALLBACK (zenity_colorselection_dialog_response),
+               color_data);
+
+       if (color_data->color) {
+               if (gdk_rgba_parse (&color, color_data->color)) {
+                       gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (dialog), &color);
+               }
+       }
+
+       if (data->extra_label) {
+               gint i = 0;
+               while (data->extra_label[i] != NULL) {
+                       gtk_dialog_add_button (
+                               GTK_DIALOG (dialog), data->extra_label[i], i);
+                       i++;
+               }
+       }
+
+       if (data->ok_label) {
+               g_object_get (G_OBJECT (dialog), "ok-button", &button, NULL);
+               gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
+               g_object_unref (G_OBJECT (button));
+       }
+
+       if (data->cancel_label) {
+               g_object_get (G_OBJECT (dialog), "cancel-button", &button, NULL);
+               gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
+               g_object_unref (G_OBJECT (button));
+       }
+
+       if (data->modal)
+               gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+
+       g_object_set (dialog, "show-editor", !color_data->show_palette, NULL);
+
+       zenity_util_show_dialog (dialog, data->attach);
+
+       if (data->timeout_delay > 0) {
+               g_timeout_add_seconds (data->timeout_delay,
+                       (GSourceFunc) zenity_util_timeout_handle,
+                       dialog);
+       }
+
+       gtk_main ();
 }
 
 static void
-zenity_colorselection_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
-  GdkRGBA color;
-
-  switch (response) {
-    case GTK_RESPONSE_OK:
-      zenity_util_exit_code_with_data(ZENITY_OK, zen_data);
-      gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (widget), &color);
-      g_print ("%s\n", gdk_rgba_to_string (&color));
-      break;
-
-    case GTK_RESPONSE_CANCEL:
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
-      break;
-
-    default:
-      if (zen_data->extra_label && response < g_strv_length(zen_data->extra_label))
-        printf("%s\n",zen_data->extra_label[response]);
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
-      break;
-  }
-
-  gtk_main_quit ();
+zenity_colorselection_dialog_response (
+       GtkWidget *widget, int response, gpointer data) {
+       GdkRGBA color;
+
+       switch (response) {
+               case GTK_RESPONSE_OK:
+                       zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
+                       gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (widget), &color);
+                       g_print ("%s\n", gdk_rgba_to_string (&color));
+                       break;
+
+               case GTK_RESPONSE_CANCEL:
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+                       break;
+
+               default:
+                       if (zen_data->extra_label &&
+                               response < g_strv_length (zen_data->extra_label))
+                               printf ("%s\n", zen_data->extra_label[response]);
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
+                       break;
+       }
+
+       gtk_main_quit ();
 }
diff --git a/src/entry.c b/src/entry.c
index 8e47ebd..bf3db71 100644
--- a/src/entry.c
+++ b/src/entry.c
@@ -23,179 +23,189 @@
 
 #include "config.h"
 
-#include "zenity.h"
 #include "util.h"
+#include "zenity.h"
 
-static void zenity_entry_dialog_response (GtkWidget *widget, int response, gpointer data);
+static void zenity_entry_dialog_response (
+       GtkWidget *widget, int response, gpointer data);
 
 static GtkWidget *entry;
 static gint n_entries = 0;
 
 static void
-zenity_entry_fill_entries (GSList **entries, const gchar **args)
-{
-  gint i = 0;
-
-  while (args[i] != NULL) {
-    *entries = g_slist_append (*entries, (gchar *) args[i]);
-    i++;
-  }
+zenity_entry_fill_entries (GSList **entries, const gchar **args) {
+       gint i = 0;
+
+       while (args[i] != NULL) {
+               *entries = g_slist_append (*entries, (gchar *) args[i]);
+               i++;
+       }
 }
 
 static void
-zenity_entry_combo_activate_default (GtkEntry *entry, gpointer window)
-{
-  gtk_window_activate_default (GTK_WINDOW (window));
+zenity_entry_combo_activate_default (GtkEntry *entry, gpointer window) {
+       gtk_window_activate_default (GTK_WINDOW (window));
 }
 
-void 
-zenity_entry (ZenityData *data, ZenityEntryData *entry_data)
-{
-  GtkBuilder *builder = NULL;
-  GtkWidget *dialog;
-  GtkWidget *button;
-  GObject *text;
-  GSList *entries = NULL; 
-  GSList *tmp;
-  GObject *vbox;
-  
-  builder = zenity_util_load_ui_file ("zenity_entry_dialog", NULL);
-
-  if (builder == NULL) {
-    data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
-    return;
-  }
-       
-  gtk_builder_connect_signals (builder, NULL);
-       
-  dialog = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_entry_dialog"));
-       
-  g_signal_connect (G_OBJECT (dialog), "response",
-                    G_CALLBACK (zenity_entry_dialog_response), data);
-
-  if (data->dialog_title)
-    gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
-       
-  zenity_util_set_window_icon (dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-entry.png"));
-
-  if (data->width > -1 || data->height > -1)
-    gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
-
-  if (data->modal)
-    gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
-
-  if (data->extra_label) {
-    gint i=0;
-    while(data->extra_label[i]!=NULL){
-      gtk_dialog_add_button (GTK_DIALOG (dialog), data->extra_label[i], i);
-      i++;
-    }
-  }
-
-  if (data->ok_label) {
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_entry_ok_button"));
-    gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
-  }
-
-  if (data->cancel_label) {
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_entry_cancel_button"));
-    gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
-  }
-
-  text = gtk_builder_get_object (builder, "zenity_entry_text");
-
-  if (entry_data->dialog_text)
-    gtk_label_set_text_with_mnemonic (GTK_LABEL (text), g_strcompress (entry_data->dialog_text));
-  
-  vbox = gtk_builder_get_object (builder, "vbox4");
-  
-  zenity_entry_fill_entries(&entries, entry_data->data);
-  
-  n_entries = g_slist_length (entries);
-
-  if (n_entries > 1) {
-    entry = gtk_combo_box_text_new_with_entry ();
-
-    for (tmp = entries; tmp; tmp = tmp->next) {
-      gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (entry), tmp->data);
-    }
-
-    if (entry_data->entry_text) {
-      gtk_combo_box_text_prepend_text (GTK_COMBO_BOX_TEXT (entry), entry_data->entry_text);
-      gtk_combo_box_set_active (GTK_COMBO_BOX (entry), 0);
-    }
-
-    g_signal_connect (gtk_bin_get_child (GTK_BIN (entry)), "activate",
-                      G_CALLBACK (zenity_entry_combo_activate_default),
-                      GTK_WINDOW (dialog));
-  } else {
-    entry = gtk_entry_new();
-
-    gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE);
-    
-    if (entry_data->entry_text)
-      gtk_entry_set_text (GTK_ENTRY (entry), entry_data->entry_text);
-
-    if (entry_data->hide_text)
-      g_object_set (G_OBJECT (entry), "visibility", FALSE, NULL);
-  }
-
-  gtk_widget_show (entry);
-
-  gtk_box_pack_end (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
-
-  gtk_label_set_mnemonic_widget (GTK_LABEL (text), entry);
-
-  g_object_unref (builder);
-
-  zenity_util_show_dialog (dialog, data->attach);
-
-  if(data->timeout_delay > 0) {
-    g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, dialog);
-  }
-
-  gtk_main ();
-}
+void
+zenity_entry (ZenityData *data, ZenityEntryData *entry_data) {
+       GtkBuilder *builder = NULL;
+       GtkWidget *dialog;
+       GtkWidget *button;
+       GObject *text;
+       GSList *entries = NULL;
+       GSList *tmp;
+       GObject *vbox;
 
-static void
-zenity_entry_dialog_output (void)
-{
-  const gchar *text;
-  if (n_entries > 1)
-    text = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (entry));
-  else 
-    text = gtk_entry_get_text (GTK_ENTRY (entry));
+       builder = zenity_util_load_ui_file ("zenity_entry_dialog", NULL);
+
+       if (builder == NULL) {
+               data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+               return;
+       }
+
+       gtk_builder_connect_signals (builder, NULL);
+
+       dialog =
+               GTK_WIDGET (gtk_builder_get_object (builder, "zenity_entry_dialog"));
+
+       g_signal_connect (G_OBJECT (dialog),
+               "response",
+               G_CALLBACK (zenity_entry_dialog_response),
+               data);
+
+       if (data->dialog_title)
+               gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
+
+       zenity_util_set_window_icon (
+               dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-entry.png"));
+
+       if (data->width > -1 || data->height > -1)
+               gtk_window_set_default_size (
+                       GTK_WINDOW (dialog), data->width, data->height);
+
+       if (data->modal)
+               gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+
+       if (data->extra_label) {
+               gint i = 0;
+               while (data->extra_label[i] != NULL) {
+                       gtk_dialog_add_button (
+                               GTK_DIALOG (dialog), data->extra_label[i], i);
+                       i++;
+               }
+       }
+
+       if (data->ok_label) {
+               button = GTK_WIDGET (
+                       gtk_builder_get_object (builder, "zenity_entry_ok_button"));
+               gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
+       }
+
+       if (data->cancel_label) {
+               button = GTK_WIDGET (
+                       gtk_builder_get_object (builder, "zenity_entry_cancel_button"));
+               gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
+       }
+
+       text = gtk_builder_get_object (builder, "zenity_entry_text");
+
+       if (entry_data->dialog_text)
+               gtk_label_set_text_with_mnemonic (
+                       GTK_LABEL (text), g_strcompress (entry_data->dialog_text));
 
-  if (text != NULL)
-    g_print ("%s\n", text);
+       vbox = gtk_builder_get_object (builder, "vbox4");
 
+       zenity_entry_fill_entries (&entries, entry_data->data);
+
+       n_entries = g_slist_length (entries);
+
+       if (n_entries > 1) {
+               entry = gtk_combo_box_text_new_with_entry ();
+
+               for (tmp = entries; tmp; tmp = tmp->next) {
+                       gtk_combo_box_text_append_text (
+                               GTK_COMBO_BOX_TEXT (entry), tmp->data);
+               }
+
+               if (entry_data->entry_text) {
+                       gtk_combo_box_text_prepend_text (
+                               GTK_COMBO_BOX_TEXT (entry), entry_data->entry_text);
+                       gtk_combo_box_set_active (GTK_COMBO_BOX (entry), 0);
+               }
+
+               g_signal_connect (gtk_bin_get_child (GTK_BIN (entry)),
+                       "activate",
+                       G_CALLBACK (zenity_entry_combo_activate_default),
+                       GTK_WINDOW (dialog));
+       } else {
+               entry = gtk_entry_new ();
+
+               gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE);
+
+               if (entry_data->entry_text)
+                       gtk_entry_set_text (GTK_ENTRY (entry), entry_data->entry_text);
+
+               if (entry_data->hide_text)
+                       g_object_set (G_OBJECT (entry), "visibility", FALSE, NULL);
+       }
+
+       gtk_widget_show (entry);
+
+       gtk_box_pack_end (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
+
+       gtk_label_set_mnemonic_widget (GTK_LABEL (text), entry);
+
+       g_object_unref (builder);
+
+       zenity_util_show_dialog (dialog, data->attach);
+
+       if (data->timeout_delay > 0) {
+               g_timeout_add_seconds (data->timeout_delay,
+                       (GSourceFunc) zenity_util_timeout_handle,
+                       dialog);
+       }
+
+       gtk_main ();
+}
+
+static void
+zenity_entry_dialog_output (void) {
+       const gchar *text;
+       if (n_entries > 1)
+               text = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (entry));
+       else
+               text = gtk_entry_get_text (GTK_ENTRY (entry));
+
+       if (text != NULL)
+               g_print ("%s\n", text);
 }
 
 static void
-zenity_entry_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
-  ZenityData *zen_data = data;
-
-  switch (response) {
-    case GTK_RESPONSE_OK:
-      zenity_entry_dialog_output ();
-      zenity_util_exit_code_with_data(ZENITY_OK, zen_data);
-      break;
-
-    case GTK_RESPONSE_CANCEL:
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
-      break;
-
-    case ZENITY_TIMEOUT:
-      zenity_entry_dialog_output ();
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
-      break;
-
-    default:
-      if (zen_data->extra_label && response < g_strv_length(zen_data->extra_label))
-        printf("%s\n",zen_data->extra_label[response]);
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
-      break;
-  }
-  gtk_main_quit ();
+zenity_entry_dialog_response (GtkWidget *widget, int response, gpointer data) {
+       ZenityData *zen_data = data;
+
+       switch (response) {
+               case GTK_RESPONSE_OK:
+                       zenity_entry_dialog_output ();
+                       zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
+                       break;
+
+               case GTK_RESPONSE_CANCEL:
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+                       break;
+
+               case ZENITY_TIMEOUT:
+                       zenity_entry_dialog_output ();
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
+                       break;
+
+               default:
+                       if (zen_data->extra_label &&
+                               response < g_strv_length (zen_data->extra_label))
+                               printf ("%s\n", zen_data->extra_label[response]);
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
+                       break;
+       }
+       gtk_main_quit ();
 }
diff --git a/src/fileselection.c b/src/fileselection.c
index 27db0f4..521464b 100644
--- a/src/fileselection.c
+++ b/src/fileselection.c
@@ -23,176 +23,192 @@
 
 #include "config.h"
 
-#include <string.h>
-#include "zenity.h"
 #include "util.h"
+#include "zenity.h"
+#include <string.h>
 
-static ZenityData      *zen_data;
-
-static void zenity_fileselection_dialog_response (GtkWidget *widget, int response, gpointer data);
-
-void zenity_fileselection (ZenityData *data, ZenityFileData *file_data)
-{
-  GtkWidget *dialog;
-  gchar *dir;
-  gchar *basename;
-  GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
-
-  zen_data = data;
-
-  if (file_data->directory) {
-    if (file_data->save)
-      action = GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER;
-    else
-      action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER;
-  } else {
-    if (file_data->save)
-      action = GTK_FILE_CHOOSER_ACTION_SAVE;
-  }
-
-  dialog = gtk_file_chooser_dialog_new (NULL, NULL,
-                                       action,
-                                       _("_Cancel"), GTK_RESPONSE_CANCEL,
-                                       _("_OK"), GTK_RESPONSE_OK,
-                                       NULL);
-
-  gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), 
-                                                  file_data->confirm_overwrite);
-
-  g_signal_connect (G_OBJECT (dialog), "response", 
-                    G_CALLBACK (zenity_fileselection_dialog_response), file_data);
-
-  if (data->extra_label) {
-    gint i=0;
-    while(data->extra_label[i]!=NULL){
-      gtk_dialog_add_button (GTK_DIALOG (dialog), data->extra_label[i], i);
-      i++;
-    }
-  }
-
-  if (data->dialog_title)
-    gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
-       
-  zenity_util_set_window_icon (dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-file.png"));
-
-  if (data->modal)
-    gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
-
-  if (file_data->uri) {
-    dir = g_path_get_dirname (file_data->uri);
-
-    if (g_path_is_absolute (file_data->uri) == TRUE)
-      gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), dir);
-
-    if (file_data->uri[strlen (file_data->uri) - 1] != '/') {
-      basename = g_path_get_basename (file_data->uri);
-      if (file_data->save)
-        gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), basename);
-      else
-        (void) gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog), file_data->uri);
-      g_free (basename);
-    }
-    g_free (dir);
-  }
-
-  if (file_data->multi)
-    gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (dialog), TRUE);
-
-  if (file_data->filter) {
-    /* Filter format: Executables | *.exe *.bat *.com */
-    gint filter_i;
-
-    for (filter_i = 0; file_data->filter [filter_i]; filter_i++) {
-      GtkFileFilter *filter = gtk_file_filter_new();
-      gchar *filter_str = file_data->filter [filter_i];
-      gchar **pattern, **patterns;
-      gchar *name = NULL;
-      gint i;
-
-      /* Set name */
-      for (i = 0; filter_str[i] != '\0'; i++)
-        if (filter_str[i] == '|')
-          break;
-
-      if (filter_str[i] == '|') {
-        name = g_strndup (filter_str, i);
-        g_strstrip (name);
-      }
-
-      if (name) {
-        gtk_file_filter_set_name (filter, name);
-
-        /* Point i to the right position for split */
-        for (++i; filter_str[i] == ' '; i++);
-      } else {
-        gtk_file_filter_set_name (filter, filter_str);
-        i = 0;
-      }
-
-      /* Get patterns */
-      patterns = g_strsplit_set (filter_str + i, " ", -1);
-
-      for (pattern = patterns; *pattern; pattern++)
-        gtk_file_filter_add_pattern (filter, *pattern);
-
-      if (name)
-        g_free (name);
-
-      g_strfreev (patterns);
-
-      gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
-    }
-  }
-
-  zenity_util_show_dialog (dialog, data->attach);
-
-  if(data->timeout_delay > 0) {
-    g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, dialog);
-  }
-
-  gtk_main ();
+static ZenityData *zen_data;
+
+static void zenity_fileselection_dialog_response (
+       GtkWidget *widget, int response, gpointer data);
+
+void
+zenity_fileselection (ZenityData *data, ZenityFileData *file_data) {
+       GtkWidget *dialog;
+       gchar *dir;
+       gchar *basename;
+       GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
+
+       zen_data = data;
+
+       if (file_data->directory) {
+               if (file_data->save)
+                       action = GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER;
+               else
+                       action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER;
+       } else {
+               if (file_data->save)
+                       action = GTK_FILE_CHOOSER_ACTION_SAVE;
+       }
+
+       dialog = gtk_file_chooser_dialog_new (NULL,
+               NULL,
+               action,
+               _ ("_Cancel"),
+               GTK_RESPONSE_CANCEL,
+               _ ("_OK"),
+               GTK_RESPONSE_OK,
+               NULL);
+
+       gtk_file_chooser_set_do_overwrite_confirmation (
+               GTK_FILE_CHOOSER (dialog), file_data->confirm_overwrite);
+
+       g_signal_connect (G_OBJECT (dialog),
+               "response",
+               G_CALLBACK (zenity_fileselection_dialog_response),
+               file_data);
+
+       if (data->extra_label) {
+               gint i = 0;
+               while (data->extra_label[i] != NULL) {
+                       gtk_dialog_add_button (
+                               GTK_DIALOG (dialog), data->extra_label[i], i);
+                       i++;
+               }
+       }
+
+       if (data->dialog_title)
+               gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
+
+       zenity_util_set_window_icon (
+               dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-file.png"));
+
+       if (data->modal)
+               gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+
+       if (file_data->uri) {
+               dir = g_path_get_dirname (file_data->uri);
+
+               if (g_path_is_absolute (file_data->uri) == TRUE)
+                       gtk_file_chooser_set_current_folder (
+                               GTK_FILE_CHOOSER (dialog), dir);
+
+               if (file_data->uri[strlen (file_data->uri) - 1] != '/') {
+                       basename = g_path_get_basename (file_data->uri);
+                       if (file_data->save)
+                               gtk_file_chooser_set_current_name (
+                                       GTK_FILE_CHOOSER (dialog), basename);
+                       else
+                               (void) gtk_file_chooser_set_filename (
+                                       GTK_FILE_CHOOSER (dialog), file_data->uri);
+                       g_free (basename);
+               }
+               g_free (dir);
+       }
+
+       if (file_data->multi)
+               gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (dialog), TRUE);
+
+       if (file_data->filter) {
+               /* Filter format: Executables | *.exe *.bat *.com */
+               gint filter_i;
+
+               for (filter_i = 0; file_data->filter[filter_i]; filter_i++) {
+                       GtkFileFilter *filter = gtk_file_filter_new ();
+                       gchar *filter_str = file_data->filter[filter_i];
+                       gchar **pattern, **patterns;
+                       gchar *name = NULL;
+                       gint i;
+
+                       /* Set name */
+                       for (i = 0; filter_str[i] != '\0'; i++)
+                               if (filter_str[i] == '|')
+                                       break;
+
+                       if (filter_str[i] == '|') {
+                               name = g_strndup (filter_str, i);
+                               g_strstrip (name);
+                       }
+
+                       if (name) {
+                               gtk_file_filter_set_name (filter, name);
+
+                               /* Point i to the right position for split */
+                               for (++i; filter_str[i] == ' '; i++)
+                                       ;
+                       } else {
+                               gtk_file_filter_set_name (filter, filter_str);
+                               i = 0;
+                       }
+
+                       /* Get patterns */
+                       patterns = g_strsplit_set (filter_str + i, " ", -1);
+
+                       for (pattern = patterns; *pattern; pattern++)
+                               gtk_file_filter_add_pattern (filter, *pattern);
+
+                       if (name)
+                               g_free (name);
+
+                       g_strfreev (patterns);
+
+                       gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
+               }
+       }
+
+       zenity_util_show_dialog (dialog, data->attach);
+
+       if (data->timeout_delay > 0) {
+               g_timeout_add_seconds (data->timeout_delay,
+                       (GSourceFunc) zenity_util_timeout_handle,
+                       dialog);
+       }
+
+       gtk_main ();
 }
 
 static void
-zenity_fileselection_dialog_output (GtkWidget *widget, ZenityFileData *file_data)
-{
-  GSList *selections, *iter;
-  selections = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (widget));
-  for (iter = selections;iter != NULL; iter = iter->next) {
-    g_print ("%s", g_filename_to_utf8 ((gchar*)iter->data, -1, NULL, NULL, NULL));
-    g_free (iter->data);
-    if (iter->next != NULL)
-      g_print ("%s",file_data->separator);
-  }
-  g_print("\n");
-  g_slist_free(selections);
+zenity_fileselection_dialog_output (
+       GtkWidget *widget, ZenityFileData *file_data) {
+       GSList *selections, *iter;
+       selections = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (widget));
+       for (iter = selections; iter != NULL; iter = iter->next) {
+               g_print ("%s",
+                       g_filename_to_utf8 ((gchar *) iter->data, -1, NULL, NULL, NULL));
+               g_free (iter->data);
+               if (iter->next != NULL)
+                       g_print ("%s", file_data->separator);
+       }
+       g_print ("\n");
+       g_slist_free (selections);
 }
 
 static void
-zenity_fileselection_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
-  ZenityFileData *file_data = data;
-  
-  switch (response) {
-    case GTK_RESPONSE_OK:
-      zenity_fileselection_dialog_output (widget, file_data);
-      zenity_util_exit_code_with_data(ZENITY_OK, zen_data);
-      break;
-
-    case GTK_RESPONSE_CANCEL:
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
-      break;
-
-    case ZENITY_TIMEOUT:
-      zenity_fileselection_dialog_output (widget, file_data);
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
-      break;
-
-    default:
-      if (zen_data->extra_label && response < g_strv_length(zen_data->extra_label))
-        printf("%s\n",zen_data->extra_label[response]);
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
-      break;
-  }
-  gtk_main_quit ();
+zenity_fileselection_dialog_response (
+       GtkWidget *widget, int response, gpointer data) {
+       ZenityFileData *file_data = data;
+
+       switch (response) {
+               case GTK_RESPONSE_OK:
+                       zenity_fileselection_dialog_output (widget, file_data);
+                       zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
+                       break;
+
+               case GTK_RESPONSE_CANCEL:
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+                       break;
+
+               case ZENITY_TIMEOUT:
+                       zenity_fileselection_dialog_output (widget, file_data);
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
+                       break;
+
+               default:
+                       if (zen_data->extra_label &&
+                               response < g_strv_length (zen_data->extra_label))
+                               printf ("%s\n", zen_data->extra_label[response]);
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
+                       break;
+       }
+       gtk_main_quit ();
 }
diff --git a/src/forms.c b/src/forms.c
index 5241780..4e6fca5 100644
--- a/src/forms.c
+++ b/src/forms.c
@@ -22,360 +22,390 @@
  */
 
 #include "config.h"
-#include <string.h>
-#include "zenity.h"
 #include "util.h"
+#include "zenity.h"
+#include <string.h>
 
 static ZenityData *zen_data;
 static GSList *selected;
-static void zenity_forms_dialog_response (GtkWidget *widget, int response, gpointer data);
-
-static void zenity_forms_dialog_get_selected (GtkTreeModel *model, GtkTreePath *path_buf, GtkTreeIter *iter, 
GtkTreeView *tree_view) 
-{
-  gint n_columns = 0;
-  gint i = 0;
-  GValue value = {0, };
-
-  n_columns = gtk_tree_model_get_n_columns (model);
-  for (i = 0; i < n_columns; i++) {
-    gtk_tree_model_get_value (model, iter, i, &value);
-    selected = g_slist_append (selected, g_value_dup_string (&value));
-    g_value_unset (&value);
-  }
+static void zenity_forms_dialog_response (
+       GtkWidget *widget, int response, gpointer data);
+
+static void
+zenity_forms_dialog_get_selected (GtkTreeModel *model, GtkTreePath *path_buf,
+       GtkTreeIter *iter, GtkTreeView *tree_view) {
+       gint n_columns = 0;
+       gint i = 0;
+       GValue value = {
+               0,
+       };
+
+       n_columns = gtk_tree_model_get_n_columns (model);
+       for (i = 0; i < n_columns; i++) {
+               gtk_tree_model_get_value (model, iter, i, &value);
+               selected = g_slist_append (selected, g_value_dup_string (&value));
+               g_value_unset (&value);
+       }
 }
 
 static GtkWidget *
-zenity_forms_create_and_fill_combo (ZenityFormsData *forms_data, int combo_number)
-{
-  GtkListStore *list_store;
-  GtkWidget *combo_box;
-  GtkCellRenderer *renderer;
-  gchar *combo_values;
-
-  list_store = gtk_list_store_new (1, G_TYPE_STRING);
-
-  if (forms_data->combo_values) {
-    combo_values = g_slist_nth_data (forms_data->combo_values, combo_number);
-    if (combo_values) {
-      gchar **row_values = g_strsplit_set (combo_values, "|", -1);
-      if (row_values) {
-        gint i = 0;
-        GtkTreeIter iter;
-        gchar *row = row_values[i];
-
-        while (row != NULL) {
-          gtk_list_store_append (list_store, &iter);
-          gtk_list_store_set (list_store, &iter, 0, row, -1);
-          row = row_values[++i];
-        }
-        g_strfreev (row_values);
-      }
-      g_free (combo_values);
-    }
-  }
-
-  combo_box = gtk_combo_box_new_with_model (GTK_TREE_MODEL (list_store));
-  g_object_unref (G_OBJECT (list_store));
-
-  renderer = gtk_cell_renderer_text_new ();
-  gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_box), renderer, TRUE);
-  gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_box), renderer, "text", 0, NULL);
-
-  return combo_box;
+zenity_forms_create_and_fill_combo (
+       ZenityFormsData *forms_data, int combo_number) {
+       GtkListStore *list_store;
+       GtkWidget *combo_box;
+       GtkCellRenderer *renderer;
+       gchar *combo_values;
+
+       list_store = gtk_list_store_new (1, G_TYPE_STRING);
+
+       if (forms_data->combo_values) {
+               combo_values =
+                       g_slist_nth_data (forms_data->combo_values, combo_number);
+               if (combo_values) {
+                       gchar **row_values = g_strsplit_set (combo_values, "|", -1);
+                       if (row_values) {
+                               gint i = 0;
+                               GtkTreeIter iter;
+                               gchar *row = row_values[i];
+
+                               while (row != NULL) {
+                                       gtk_list_store_append (list_store, &iter);
+                                       gtk_list_store_set (list_store, &iter, 0, row, -1);
+                                       row = row_values[++i];
+                               }
+                               g_strfreev (row_values);
+                       }
+                       g_free (combo_values);
+               }
+       }
+
+       combo_box = gtk_combo_box_new_with_model (GTK_TREE_MODEL (list_store));
+       g_object_unref (G_OBJECT (list_store));
+
+       renderer = gtk_cell_renderer_text_new ();
+       gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_box), renderer, TRUE);
+       gtk_cell_layout_set_attributes (
+               GTK_CELL_LAYOUT (combo_box), renderer, "text", 0, NULL);
+
+       return combo_box;
 }
 
-static GtkWidget * 
-zenity_forms_create_and_fill_list (ZenityFormsData        *forms_data, 
-                                           int list_number, gchar *header)
-{
-  GtkListStore *list_store;
-  GtkWidget *tree_view;
-  GtkWidget *scrolled_window;
-  GtkCellRenderer *renderer;
-  GtkTreeViewColumn *column;
-  GType *column_types = NULL;
-  gchar *list_values;
-  gchar *column_values;
-
-  gint i = 0;
-  /* If no column names available, default is one */
-  gint n_columns = 1;
-  gint column_index = 0;
-
-  tree_view = gtk_tree_view_new ();
-
-  if (forms_data->column_values) {
-    column_values = g_slist_nth_data (forms_data->column_values, list_number);
-    if (column_values) {
-      gchar **values = g_strsplit_set (column_values, "|", -1);
-      if (values) {
-        n_columns = g_strv_length (values);
-        column_types = g_new (GType, n_columns);
-        for (i = 0; i < n_columns; i++)
-          column_types[i] = G_TYPE_STRING;
-
-        for (i = 0; i < n_columns; i++) {  
-          gchar *column_name = values[i];
-          renderer = gtk_cell_renderer_text_new ();
-          column = gtk_tree_view_column_new_with_attributes (column_name,
-                                                             renderer,
-                                                             "text", column_index,
-                                                             NULL);
-          gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
-          column_index++;
-        }
-      }
-    }
-  }
-
-  list_store = g_object_new (GTK_TYPE_LIST_STORE, NULL);
-
-  gtk_list_store_set_column_types (list_store, n_columns, column_types);
-
-  if (forms_data->list_values) {
-    list_values = g_slist_nth_data (forms_data->list_values, list_number);
-    if (list_values) {
-      gchar **row_values = g_strsplit_set (list_values, "|", -1);
-      if (row_values) {
-        GtkTreeIter iter;
-        gchar *row = row_values[0];
-        gint position = -1;
-        i = 0;
-        
-        while (row != NULL) {
-          if (position >= n_columns || position == -1) {
-            position = 0;
-            gtk_list_store_append (list_store, &iter);
-          }
-          gtk_list_store_set (list_store, &iter, position, row, -1);
-          position++;
-          row = row_values[++i];
-        }
-        g_strfreev (row_values);
-      }
-      g_free (list_values);
-    }
-  }
-
-  gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (list_store));
-  g_object_unref (list_store);
-  scrolled_window = gtk_scrolled_window_new (NULL, NULL);
-  //gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window), 
-  //                                       GTK_WIDGET (tree_view));
-  gtk_container_add (GTK_CONTAINER (scrolled_window), GTK_WIDGET (tree_view));
-  gtk_widget_set_size_request (GTK_WIDGET (scrolled_window), -1, 100);
-  gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_view), forms_data->show_header);
-
-  return scrolled_window;  
+static GtkWidget *
+zenity_forms_create_and_fill_list (
+       ZenityFormsData *forms_data, int list_number, gchar *header) {
+       GtkListStore *list_store;
+       GtkWidget *tree_view;
+       GtkWidget *scrolled_window;
+       GtkCellRenderer *renderer;
+       GtkTreeViewColumn *column;
+       GType *column_types = NULL;
+       gchar *list_values;
+       gchar *column_values;
+
+       gint i = 0;
+       /* If no column names available, default is one */
+       gint n_columns = 1;
+       gint column_index = 0;
+
+       tree_view = gtk_tree_view_new ();
+
+       if (forms_data->column_values) {
+               column_values =
+                       g_slist_nth_data (forms_data->column_values, list_number);
+               if (column_values) {
+                       gchar **values = g_strsplit_set (column_values, "|", -1);
+                       if (values) {
+                               n_columns = g_strv_length (values);
+                               column_types = g_new (GType, n_columns);
+                               for (i = 0; i < n_columns; i++)
+                                       column_types[i] = G_TYPE_STRING;
+
+                               for (i = 0; i < n_columns; i++) {
+                                       gchar *column_name = values[i];
+                                       renderer = gtk_cell_renderer_text_new ();
+                                       column = gtk_tree_view_column_new_with_attributes (
+                                               column_name, renderer, "text", column_index, NULL);
+                                       gtk_tree_view_append_column (
+                                               GTK_TREE_VIEW (tree_view), column);
+                                       column_index++;
+                               }
+                       }
+               }
+       }
+
+       list_store = g_object_new (GTK_TYPE_LIST_STORE, NULL);
+
+       gtk_list_store_set_column_types (list_store, n_columns, column_types);
+
+       if (forms_data->list_values) {
+               list_values = g_slist_nth_data (forms_data->list_values, list_number);
+               if (list_values) {
+                       gchar **row_values = g_strsplit_set (list_values, "|", -1);
+                       if (row_values) {
+                               GtkTreeIter iter;
+                               gchar *row = row_values[0];
+                               gint position = -1;
+                               i = 0;
+
+                               while (row != NULL) {
+                                       if (position >= n_columns || position == -1) {
+                                               position = 0;
+                                               gtk_list_store_append (list_store, &iter);
+                                       }
+                                       gtk_list_store_set (list_store, &iter, position, row, -1);
+                                       position++;
+                                       row = row_values[++i];
+                               }
+                               g_strfreev (row_values);
+                       }
+                       g_free (list_values);
+               }
+       }
+
+       gtk_tree_view_set_model (
+               GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (list_store));
+       g_object_unref (list_store);
+       scrolled_window = gtk_scrolled_window_new (NULL, NULL);
+       // gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW
+       // (scrolled_window),
+       //                                       GTK_WIDGET (tree_view));
+       gtk_container_add (GTK_CONTAINER (scrolled_window), GTK_WIDGET (tree_view));
+       gtk_widget_set_size_request (GTK_WIDGET (scrolled_window), -1, 100);
+       gtk_tree_view_set_headers_visible (
+               GTK_TREE_VIEW (tree_view), forms_data->show_header);
+
+       return scrolled_window;
 }
 
-void zenity_forms_dialog (ZenityData *data, ZenityFormsData *forms_data)
-{
-  GtkBuilder *builder = NULL;
-  GtkWidget *dialog;
-  GtkWidget *grid;
-  GtkWidget *text;
-  GtkWidget *button;
-
-  GSList *tmp;
-
-  int list_count = 0;
-  int combo_count = 0;
-  int i = 0;
-
-  zen_data = data;
-
-  builder = zenity_util_load_ui_file("zenity_forms_dialog", NULL);
-
-  if (builder == NULL) {
-    data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
-    return;
-  }
-
-  gtk_builder_connect_signals(builder, NULL);
-  
-  dialog = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_forms_dialog"));
-
-  g_signal_connect (G_OBJECT(dialog), "response",
-                    G_CALLBACK (zenity_forms_dialog_response), forms_data);
-  
-  if (data->dialog_title)
-    gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
-
-  if (data->width > -1 || data->height > -1)
-    gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
-
-  if (data->extra_label) {
-    gint i=0;
-    while(data->extra_label[i]!=NULL){
-      gtk_dialog_add_button (GTK_DIALOG (dialog), data->extra_label[i], i);
-      i++;
-    }
-  }
-
-  if (data->ok_label) {
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_forms_ok_button"));
-    gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
-  }  
-
-  if (data->cancel_label) {
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_forms_cancel_button"));
-    gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
-  }
-
-  text = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_forms_text"));
-
-  if (forms_data->dialog_text)
-    gtk_label_set_markup (GTK_LABEL (text), g_strcompress (forms_data->dialog_text));
-  
-  grid = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_forms_grid"));
-
-  for (tmp = forms_data->list; tmp; tmp = tmp->next) {
-    ZenityFormsValue *zenity_value = (ZenityFormsValue *) tmp->data;
-    GtkWidget *label;
-    
-    label = gtk_label_new(zenity_value->option_value);
-    gtk_widget_set_halign (label, GTK_ALIGN_START);
-    gtk_grid_attach (GTK_GRID (grid),
-                     label,
-                     0, i,
-                     1, 1);
-                      
-    switch(zenity_value->type)
-    {
-      case ZENITY_FORMS_ENTRY:
-        zenity_value->forms_widget = gtk_entry_new();
-        break;
-      case ZENITY_FORMS_PASSWORD:
-        zenity_value->forms_widget = gtk_entry_new();
-        gtk_entry_set_visibility(GTK_ENTRY(zenity_value->forms_widget), 
-                                 FALSE);
-        break;
-      case ZENITY_FORMS_CALENDAR:
-        zenity_value->forms_widget = gtk_calendar_new();
-        break;
-      case ZENITY_FORMS_LIST:
-          zenity_value->forms_widget = zenity_forms_create_and_fill_list (forms_data, list_count,
-                                                                          zenity_value->option_value);
-          list_count++;                                                                           
-        break;
-      case ZENITY_FORMS_COMBO:
-          zenity_value->forms_widget = zenity_forms_create_and_fill_combo (forms_data, combo_count);
-          combo_count++;
-        break;             
-      default:
-        zenity_value->forms_widget = gtk_entry_new();
-        break;
-    }
-
-    gtk_grid_attach_next_to (GTK_GRID (grid),
-                             GTK_WIDGET (zenity_value->forms_widget),
-                             label,
-                             GTK_POS_RIGHT,
-                             1, 1);
-    
-    i++;
-  }
-
-  gtk_widget_show_all (GTK_WIDGET (dialog));
-  
-  g_object_unref (builder);
-
-  if (data->timeout_delay > 0) {
-    g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, dialog);
-  }
-
-  gtk_main();
+void
+zenity_forms_dialog (ZenityData *data, ZenityFormsData *forms_data) {
+       GtkBuilder *builder = NULL;
+       GtkWidget *dialog;
+       GtkWidget *grid;
+       GtkWidget *text;
+       GtkWidget *button;
+
+       GSList *tmp;
+
+       int list_count = 0;
+       int combo_count = 0;
+       int i = 0;
+
+       zen_data = data;
+
+       builder = zenity_util_load_ui_file ("zenity_forms_dialog", NULL);
+
+       if (builder == NULL) {
+               data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+               return;
+       }
+
+       gtk_builder_connect_signals (builder, NULL);
+
+       dialog =
+               GTK_WIDGET (gtk_builder_get_object (builder, "zenity_forms_dialog"));
+
+       g_signal_connect (G_OBJECT (dialog),
+               "response",
+               G_CALLBACK (zenity_forms_dialog_response),
+               forms_data);
+
+       if (data->dialog_title)
+               gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
+
+       if (data->width > -1 || data->height > -1)
+               gtk_window_set_default_size (
+                       GTK_WINDOW (dialog), data->width, data->height);
+
+       if (data->extra_label) {
+               gint i = 0;
+               while (data->extra_label[i] != NULL) {
+                       gtk_dialog_add_button (
+                               GTK_DIALOG (dialog), data->extra_label[i], i);
+                       i++;
+               }
+       }
+
+       if (data->ok_label) {
+               button = GTK_WIDGET (
+                       gtk_builder_get_object (builder, "zenity_forms_ok_button"));
+               gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
+       }
+
+       if (data->cancel_label) {
+               button = GTK_WIDGET (
+                       gtk_builder_get_object (builder, "zenity_forms_cancel_button"));
+               gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
+       }
+
+       text = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_forms_text"));
+
+       if (forms_data->dialog_text)
+               gtk_label_set_markup (
+                       GTK_LABEL (text), g_strcompress (forms_data->dialog_text));
+
+       grid = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_forms_grid"));
+
+       for (tmp = forms_data->list; tmp; tmp = tmp->next) {
+               ZenityFormsValue *zenity_value = (ZenityFormsValue *) tmp->data;
+               GtkWidget *label;
+
+               label = gtk_label_new (zenity_value->option_value);
+               gtk_widget_set_halign (label, GTK_ALIGN_START);
+               gtk_grid_attach (GTK_GRID (grid), label, 0, i, 1, 1);
+
+               switch (zenity_value->type) {
+                       case ZENITY_FORMS_ENTRY:
+                               zenity_value->forms_widget = gtk_entry_new ();
+                               break;
+                       case ZENITY_FORMS_PASSWORD:
+                               zenity_value->forms_widget = gtk_entry_new ();
+                               gtk_entry_set_visibility (
+                                       GTK_ENTRY (zenity_value->forms_widget), FALSE);
+                               break;
+                       case ZENITY_FORMS_CALENDAR:
+                               zenity_value->forms_widget = gtk_calendar_new ();
+                               break;
+                       case ZENITY_FORMS_LIST:
+                               zenity_value->forms_widget = zenity_forms_create_and_fill_list (
+                                       forms_data, list_count, zenity_value->option_value);
+                               list_count++;
+                               break;
+                       case ZENITY_FORMS_COMBO:
+                               zenity_value->forms_widget =
+                                       zenity_forms_create_and_fill_combo (
+                                               forms_data, combo_count);
+                               combo_count++;
+                               break;
+                       default:
+                               zenity_value->forms_widget = gtk_entry_new ();
+                               break;
+               }
+
+               gtk_grid_attach_next_to (GTK_GRID (grid),
+                       GTK_WIDGET (zenity_value->forms_widget),
+                       label,
+                       GTK_POS_RIGHT,
+                       1,
+                       1);
+
+               i++;
+       }
+
+       gtk_widget_show_all (GTK_WIDGET (dialog));
+
+       g_object_unref (builder);
+
+       if (data->timeout_delay > 0) {
+               g_timeout_add_seconds (data->timeout_delay,
+                       (GSourceFunc) zenity_util_timeout_handle,
+                       dialog);
+       }
+
+       gtk_main ();
 }
 
 static void
-zenity_forms_dialog_output (ZenityFormsData *forms_data)
-{
-  GSList *tmp, *tmp2;
-  guint day, year, month;
-  GDate *date = NULL;
-  gchar time_string[128];
-  gchar *combo_value = NULL;
-  GtkTreeSelection *selection;
-  GtkListStore *list_store;
-  GtkTreeIter iter;
-
-  for (tmp = forms_data->list; tmp; tmp = tmp->next) {
-    ZenityFormsValue *zenity_value = (ZenityFormsValue *) tmp->data;
-    switch (zenity_value->type) {
-      case ZENITY_FORMS_PASSWORD:
-      case ZENITY_FORMS_ENTRY:
-        g_print("%s", gtk_entry_get_text (GTK_ENTRY (zenity_value->forms_widget)));
-        break;
-      case ZENITY_FORMS_LIST:
-        selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (gtk_bin_get_child (GTK_BIN 
(zenity_value->forms_widget))));
-        gtk_tree_selection_selected_foreach (selection,
-                                            (GtkTreeSelectionForeachFunc) zenity_forms_dialog_get_selected,
-                                            GTK_TREE_VIEW (gtk_bin_get_child (GTK_BIN 
(zenity_value->forms_widget))));
-
-        for (tmp2 = selected; tmp2; tmp2 = tmp2->next) {
-          if (tmp->next != NULL) {
-            g_print ("%s,", (gchar *) tmp2->data);
-          }
-          else
-            g_print ("%s", (gchar *) tmp2->data);
-        }
-
-        g_slist_foreach (selected, (GFunc) g_free, NULL);
-        selected = NULL;
-
-        break;
-      case ZENITY_FORMS_CALENDAR:
-        gtk_calendar_get_date (GTK_CALENDAR (zenity_value->forms_widget), &day, &month, &year);
-        date = g_date_new_dmy (year, month + 1, day);
-        g_date_strftime (time_string, 127, forms_data->date_format, date);
-        g_print ("%s", time_string);
-        break;
-      case ZENITY_FORMS_COMBO:
-        if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (zenity_value->forms_widget), &iter)) {
-          list_store = GTK_LIST_STORE (gtk_combo_box_get_model (GTK_COMBO_BOX (zenity_value->forms_widget)));
-          gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter, 0, &combo_value, -1);
-          g_object_unref (G_OBJECT (list_store));
- 
-          g_print ("%s", combo_value);
-          g_free (combo_value);
-        } else
-          g_print (" ");
-         break;
-        
-    }
-    if (tmp->next != NULL)
-      g_print("%s", forms_data->separator);
-  }
-  g_print("\n");
+zenity_forms_dialog_output (ZenityFormsData *forms_data) {
+       GSList *tmp, *tmp2;
+       guint day, year, month;
+       GDate *date = NULL;
+       gchar time_string[128];
+       gchar *combo_value = NULL;
+       GtkTreeSelection *selection;
+       GtkListStore *list_store;
+       GtkTreeIter iter;
+
+       for (tmp = forms_data->list; tmp; tmp = tmp->next) {
+               ZenityFormsValue *zenity_value = (ZenityFormsValue *) tmp->data;
+               switch (zenity_value->type) {
+                       case ZENITY_FORMS_PASSWORD:
+                       case ZENITY_FORMS_ENTRY:
+                               g_print ("%s",
+                                       gtk_entry_get_text (
+                                               GTK_ENTRY (zenity_value->forms_widget)));
+                               break;
+                       case ZENITY_FORMS_LIST:
+                               selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (
+                                       gtk_bin_get_child (GTK_BIN (zenity_value->forms_widget))));
+                               gtk_tree_selection_selected_foreach (selection,
+                                       (GtkTreeSelectionForeachFunc)
+                                               zenity_forms_dialog_get_selected,
+                                       GTK_TREE_VIEW (gtk_bin_get_child (
+                                               GTK_BIN (zenity_value->forms_widget))));
+
+                               for (tmp2 = selected; tmp2; tmp2 = tmp2->next) {
+                                       if (tmp->next != NULL) {
+                                               g_print ("%s,", (gchar *) tmp2->data);
+                                       } else
+                                               g_print ("%s", (gchar *) tmp2->data);
+                               }
+
+                               g_slist_foreach (selected, (GFunc) g_free, NULL);
+                               selected = NULL;
+
+                               break;
+                       case ZENITY_FORMS_CALENDAR:
+                               gtk_calendar_get_date (
+                                       GTK_CALENDAR (zenity_value->forms_widget),
+                                       &day,
+                                       &month,
+                                       &year);
+                               date = g_date_new_dmy (year, month + 1, day);
+                               g_date_strftime (
+                                       time_string, 127, forms_data->date_format, date);
+                               g_print ("%s", time_string);
+                               break;
+                       case ZENITY_FORMS_COMBO:
+                               if (gtk_combo_box_get_active_iter (
+                                               GTK_COMBO_BOX (zenity_value->forms_widget), &iter)) {
+                                       list_store = GTK_LIST_STORE (gtk_combo_box_get_model (
+                                               GTK_COMBO_BOX (zenity_value->forms_widget)));
+                                       gtk_tree_model_get (GTK_TREE_MODEL (list_store),
+                                               &iter,
+                                               0,
+                                               &combo_value,
+                                               -1);
+                                       g_object_unref (G_OBJECT (list_store));
+
+                                       g_print ("%s", combo_value);
+                                       g_free (combo_value);
+                               } else
+                                       g_print (" ");
+                               break;
+               }
+               if (tmp->next != NULL)
+                       g_print ("%s", forms_data->separator);
+       }
+       g_print ("\n");
 }
 
 static void
-zenity_forms_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
-  ZenityFormsData *forms_data = (ZenityFormsData *) data;
-
-  switch (response) {
-    case GTK_RESPONSE_OK:
-      zenity_forms_dialog_output (forms_data);
-      zenity_util_exit_code_with_data(ZENITY_OK, zen_data);      
-      break;
-
-    case GTK_RESPONSE_CANCEL:
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
-      break;
-
-    case ZENITY_TIMEOUT:
-      zenity_forms_dialog_output (forms_data);
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
-      break;
-
-    default:
-      if (zen_data->extra_label && response < g_strv_length(zen_data->extra_label))
-        printf("%s\n",zen_data->extra_label[response]);
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
-      break;
-  }
-
-  gtk_main_quit ();
+zenity_forms_dialog_response (GtkWidget *widget, int response, gpointer data) {
+       ZenityFormsData *forms_data = (ZenityFormsData *) data;
+
+       switch (response) {
+               case GTK_RESPONSE_OK:
+                       zenity_forms_dialog_output (forms_data);
+                       zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
+                       break;
+
+               case GTK_RESPONSE_CANCEL:
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+                       break;
+
+               case ZENITY_TIMEOUT:
+                       zenity_forms_dialog_output (forms_data);
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
+                       break;
+
+               default:
+                       if (zen_data->extra_label &&
+                               response < g_strv_length (zen_data->extra_label))
+                               printf ("%s\n", zen_data->extra_label[response]);
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
+                       break;
+       }
+
+       gtk_main_quit ();
 }
diff --git a/src/main.c b/src/main.c
index e667ee1..7f0c2db 100644
--- a/src/main.c
+++ b/src/main.c
@@ -23,97 +23,98 @@
 
 #include <config.h>
 
-#include "zenity.h"
 #include "option.h"
+#include "zenity.h"
 
-#include <stdlib.h>
 #include <glib.h>
 #include <gtk/gtk.h>
 #include <langinfo.h>
+#include <stdlib.h>
 #ifdef HAVE_LOCALE_H
 #include <locale.h>
 #endif
 
-gint 
+gint
 main (gint argc, gchar **argv) {
-  ZenityParsingOptions *results;
-  gint retval;
+       ZenityParsingOptions *results;
+       gint retval;
 
 #ifdef HAVE_LOCALE_H
-  setlocale(LC_ALL,"");
+       setlocale (LC_ALL, "");
 #endif
 
-  bindtextdomain(GETTEXT_PACKAGE, GNOMELOCALEDIR);
-  bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
-  textdomain(GETTEXT_PACKAGE);
+       bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
+       bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+       textdomain (GETTEXT_PACKAGE);
 
-  gtk_init (&argc, &argv);
+       gtk_init (&argc, &argv);
 
-  results = zenity_option_parse (argc, argv);
+       results = zenity_option_parse (argc, argv);
 
-  switch (results->mode) {
-    case MODE_CALENDAR:
-      zenity_calendar (results->data, results->calendar_data);
-      break;
-    case MODE_ENTRY:
-      results->entry_data->data = (const gchar **) argv + 1;
-      zenity_entry (results->data, results->entry_data);
-      break;
-    case MODE_ERROR:
-    case MODE_QUESTION:
-    case MODE_WARNING:
-    case MODE_INFO:
-      zenity_msg (results->data, results->msg_data);
-      break;
-    case MODE_SCALE:
-      zenity_scale (results->data, results->scale_data);
-      break;
-    case MODE_FILE:
-      zenity_fileselection (results->data, results->file_data);
-      break;
-    case MODE_LIST:
-      results->tree_data->data = (const gchar **) argv + 1;
-      zenity_tree (results->data, results->tree_data);
-      break;
+       switch (results->mode) {
+               case MODE_CALENDAR:
+                       zenity_calendar (results->data, results->calendar_data);
+                       break;
+               case MODE_ENTRY:
+                       results->entry_data->data = (const gchar **) argv + 1;
+                       zenity_entry (results->data, results->entry_data);
+                       break;
+               case MODE_ERROR:
+               case MODE_QUESTION:
+               case MODE_WARNING:
+               case MODE_INFO:
+                       zenity_msg (results->data, results->msg_data);
+                       break;
+               case MODE_SCALE:
+                       zenity_scale (results->data, results->scale_data);
+                       break;
+               case MODE_FILE:
+                       zenity_fileselection (results->data, results->file_data);
+                       break;
+               case MODE_LIST:
+                       results->tree_data->data = (const gchar **) argv + 1;
+                       zenity_tree (results->data, results->tree_data);
+                       break;
 #ifdef HAVE_LIBNOTIFY
-    case MODE_NOTIFICATION:
-      zenity_notification (results->data, results->notification_data);
-      break;
+               case MODE_NOTIFICATION:
+                       zenity_notification (results->data, results->notification_data);
+                       break;
 #endif
-    case MODE_PROGRESS:
-      zenity_progress (results->data, results->progress_data);
-      break;
-    case MODE_TEXTINFO:
-      zenity_text (results->data, results->text_data);
-      break;
-    case MODE_COLOR:
-      zenity_colorselection (results->data, results->color_data);
-      break;
-    case MODE_PASSWORD:
-      zenity_password_dialog (results->data, results->password_data);
-      break;
-    case MODE_ABOUT:
-      zenity_about (results->data);
-      break;
-    case MODE_FORMS:
-      zenity_forms_dialog (results->data, results->forms_data);
-      break;
-    case MODE_VERSION:
-      g_print ("%s\n", VERSION); 
-      break;
-    case MODE_LAST:
-      g_printerr (_("You must specify a dialog type. See 'zenity --help' for details\n"));
-      zenity_option_free ();
-      exit (-1);
-    default:
-      g_assert_not_reached ();
-      zenity_option_free ();
-      exit (-1);
-  }
+               case MODE_PROGRESS:
+                       zenity_progress (results->data, results->progress_data);
+                       break;
+               case MODE_TEXTINFO:
+                       zenity_text (results->data, results->text_data);
+                       break;
+               case MODE_COLOR:
+                       zenity_colorselection (results->data, results->color_data);
+                       break;
+               case MODE_PASSWORD:
+                       zenity_password_dialog (results->data, results->password_data);
+                       break;
+               case MODE_ABOUT:
+                       zenity_about (results->data);
+                       break;
+               case MODE_FORMS:
+                       zenity_forms_dialog (results->data, results->forms_data);
+                       break;
+               case MODE_VERSION:
+                       g_print ("%s\n", VERSION);
+                       break;
+               case MODE_LAST:
+                       g_printerr (_ ("You must specify a dialog type. See 'zenity "
+                                                  "--help' for details\n"));
+                       zenity_option_free ();
+                       exit (-1);
+               default:
+                       g_assert_not_reached ();
+                       zenity_option_free ();
+                       exit (-1);
+       }
+
+       retval = results->data->exit_code;
 
-  retval = results->data->exit_code;
-  
-  zenity_option_free ();
+       zenity_option_free ();
 
-  exit (retval);
+       exit (retval);
 }
diff --git a/src/msg.c b/src/msg.c
index d1ea6fa..ca14d86 100644
--- a/src/msg.c
+++ b/src/msg.c
@@ -23,228 +23,247 @@
 
 #include "config.h"
 
-#include "zenity.h"
 #include "util.h"
+#include "zenity.h"
 
-static void zenity_msg_dialog_response (GtkWidget *widget, int response, gpointer data);
+static void zenity_msg_dialog_response (
+       GtkWidget *widget, int response, gpointer data);
 static void
-zenity_msg_construct_question_dialog (GtkWidget *dialog, ZenityMsgData *msg_data, ZenityData *data)
-{
-
+zenity_msg_construct_question_dialog (
+       GtkWidget *dialog, ZenityMsgData *msg_data, ZenityData *data) {
 
-  GtkWidget *cancel_button, *ok_button;
-  
-  cancel_button = gtk_dialog_add_button (GTK_DIALOG (dialog), _("_No"), GTK_RESPONSE_CANCEL);
-  ok_button = gtk_dialog_add_button (GTK_DIALOG (dialog), _("_Yes"), GTK_RESPONSE_OK);
+       GtkWidget *cancel_button, *ok_button;
 
-  gtk_widget_grab_focus (msg_data->default_cancel ? cancel_button : ok_button);
+       cancel_button = gtk_dialog_add_button (
+               GTK_DIALOG (dialog), _ ("_No"), GTK_RESPONSE_CANCEL);
+       ok_button = gtk_dialog_add_button (
+               GTK_DIALOG (dialog), _ ("_Yes"), GTK_RESPONSE_OK);
 
-  if (data->cancel_label) {
-    gtk_button_set_label (GTK_BUTTON (cancel_button), data->cancel_label);
-  }
+       gtk_widget_grab_focus (
+               msg_data->default_cancel ? cancel_button : ok_button);
 
-  if (data->ok_label) {
-    gtk_button_set_label (GTK_BUTTON (ok_button), data->ok_label);
-  }
-  
+       if (data->cancel_label) {
+               gtk_button_set_label (GTK_BUTTON (cancel_button), data->cancel_label);
+       }
 
+       if (data->ok_label) {
+               gtk_button_set_label (GTK_BUTTON (ok_button), data->ok_label);
+       }
 }
 
 static void
-zenity_label_widget_clipboard_selection(GtkWidget *widget)
-{
-  /* Workaround hotfix for suspected toolkit issue:
-     since focus change of the dialog's focussed widget (text)
-     somehow currently chooses to destroy
-     a pre-existing (read: foreign, user-initiated) X11 primary selection
-     (via gtk_label_select_region() -> ...
-     -> gtk_clipboard_set_contents()/gtk_clipboard_clear()),
-     we need to ensure
-     that the widget does have its gtk-label-select-on-focus property off,
-     in order to avoid having the label become selected automatically
-     and thereby having pre-existing clipboard content nullified.
-     Side note: this selection issue only applies to widgets
-     which have both
-                  <property name="can_focus">True</property>
-                  <property name="selectable">True</property>
-     .
-   */
-  g_object_set(gtk_widget_get_settings (widget),
-               "gtk-label-select-on-focus",
-               FALSE,
-               NULL);
+zenity_label_widget_clipboard_selection (GtkWidget *widget) {
+       /* Workaround hotfix for suspected toolkit issue:
+          since focus change of the dialog's focussed widget (text)
+          somehow currently chooses to destroy
+          a pre-existing (read: foreign, user-initiated) X11 primary selection
+          (via gtk_label_select_region() -> ...
+          -> gtk_clipboard_set_contents()/gtk_clipboard_clear()),
+          we need to ensure
+          that the widget does have its gtk-label-select-on-focus property off,
+          in order to avoid having the label become selected automatically
+          and thereby having pre-existing clipboard content nullified.
+          Side note: this selection issue only applies to widgets
+          which have both
+                                       <property name="can_focus">True</property>
+                                       <property name="selectable">True</property>
+          .
+        */
+       g_object_set (gtk_widget_get_settings (widget),
+               "gtk-label-select-on-focus",
+               FALSE,
+               NULL);
 }
 
-void 
-zenity_msg (ZenityData *data, ZenityMsgData *msg_data)
-{
-  GtkBuilder *builder;
-  GtkWidget *dialog;
-  GtkWidget *ok_button;
-  GObject *text;
-  GObject *image;
-
-  switch (msg_data->mode) {
-    case ZENITY_MSG_WARNING:
-      builder = zenity_util_load_ui_file ("zenity_warning_dialog", NULL);
-      dialog = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_warning_dialog"));
-      text = gtk_builder_get_object (builder, "zenity_warning_text");
-      image = gtk_builder_get_object (builder, "zenity_warning_image");
-      ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_warning_ok_button"));
-      break;
-
-    case ZENITY_MSG_QUESTION:
-    case ZENITY_MSG_SWITCH:
-      builder = zenity_util_load_ui_file ("zenity_question_dialog", NULL);
-      dialog = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_question_dialog"));
-      text = gtk_builder_get_object (builder, "zenity_question_text");
-      image = gtk_builder_get_object (builder, "zenity_question_image");
-      ok_button = NULL;
-      break;
-
-    case ZENITY_MSG_ERROR:
-      builder = zenity_util_load_ui_file ("zenity_error_dialog", NULL);
-      dialog = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_error_dialog"));
-      text = gtk_builder_get_object (builder, "zenity_error_text");
-      image = gtk_builder_get_object (builder, "zenity_error_image");
-      ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_error_ok_button"));
-      break;
-
-    case ZENITY_MSG_INFO:
-      builder = zenity_util_load_ui_file ("zenity_info_dialog", NULL);
-      dialog = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_info_dialog"));
-      text = gtk_builder_get_object (builder, "zenity_info_text");
-      image = gtk_builder_get_object (builder, "zenity_info_image");
-      ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_info_ok_button"));
-      break;
-               
-    default:
-      builder = NULL;
-      dialog = NULL;
-      text = NULL;
-      image = NULL;
-      ok_button = NULL;
-      g_assert_not_reached ();
-      break;   
-  }
-
-  if (data->extra_label) {
-    gint i=0;
-    while(data->extra_label[i]!=NULL){
-      gtk_dialog_add_button (GTK_DIALOG (dialog), data->extra_label[i], i);
-      i++;
-    }
-  }
-
-  if (builder == NULL) {
-    data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
-    return;
-  }
-
-  g_signal_connect (G_OBJECT (dialog), "response",
-                    G_CALLBACK (zenity_msg_dialog_response), data);
-
-  gtk_builder_connect_signals (builder, NULL);
-        
-  if (data->dialog_title)
-    gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
-
-  if (ok_button) {
-    if (data->ok_label) {
-      gtk_button_set_label (GTK_BUTTON (ok_button), data->ok_label);
-    }
-  }
-
-  switch (msg_data->mode) {
-    case ZENITY_MSG_WARNING:
-      zenity_util_set_window_icon_from_icon_name (dialog, data->window_icon, "dialog-warning");
-      break;
-
-    case ZENITY_MSG_QUESTION:
-      zenity_util_set_window_icon_from_icon_name (dialog, data->window_icon, "dialog-question");
-      zenity_msg_construct_question_dialog (dialog, msg_data, data);
-      break;
-      
-    case ZENITY_MSG_SWITCH:
-      zenity_util_set_window_icon_from_icon_name (dialog, data->window_icon, "dialog-question");
-      break;
-      
-    case ZENITY_MSG_ERROR:
-      zenity_util_set_window_icon_from_icon_name (dialog, data->window_icon, "dialog-error");
-      break;
-      
-    case ZENITY_MSG_INFO:
-      zenity_util_set_window_icon_from_icon_name (dialog, data->window_icon, "dialog-information");
-      break;
-  
-    default:
-      break;
-  }
-  
-  if (data->width > -1 || data->height > -1) 
-    gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
-
-  if (data->width > -1)
-    gtk_widget_set_size_request (GTK_WIDGET (text), data->width, -1);
-  else
-    if (!msg_data->ellipsize && !msg_data->no_wrap) {
-      // the magic number 60 is picked from gtk+/gtk/ui/gtkmessagedialog.ui
-      // however, 60 would increase the distance between the icon and the text,
-      // decreasing to 10 fix it.
-      gtk_label_set_width_chars (text, 10);
-      gtk_label_set_max_width_chars (text, 10);
-    }
-
-  if (data->modal)
-    gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
-        
-  if (msg_data->dialog_text) {
-    if (msg_data->no_markup)
-      gtk_label_set_text (GTK_LABEL (text), msg_data->dialog_text);
-    else 
-      gtk_label_set_markup (GTK_LABEL (text), g_strcompress (msg_data->dialog_text));
-    zenity_label_widget_clipboard_selection(GTK_WIDGET (text));
-  }
-
-  if (msg_data->ellipsize)
-       gtk_label_set_ellipsize (GTK_LABEL(text), PANGO_ALIGN_RIGHT);
-
-  if (msg_data->dialog_icon)
-    gtk_image_set_from_icon_name (GTK_IMAGE (image), msg_data->dialog_icon, GTK_ICON_SIZE_DIALOG);
-
-  if (msg_data->no_wrap)
-    gtk_label_set_line_wrap (GTK_LABEL (text), FALSE);
-
-  zenity_util_show_dialog (dialog, data->attach);
-
-  if(data->timeout_delay > 0) {
-    g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, NULL);
-  }
-
-  g_object_unref (builder);
-
-  gtk_main ();
+void
+zenity_msg (ZenityData *data, ZenityMsgData *msg_data) {
+       GtkBuilder *builder;
+       GtkWidget *dialog;
+       GtkWidget *ok_button;
+       GObject *text;
+       GObject *image;
+
+       switch (msg_data->mode) {
+               case ZENITY_MSG_WARNING:
+                       builder = zenity_util_load_ui_file ("zenity_warning_dialog", NULL);
+                       dialog = GTK_WIDGET (
+                               gtk_builder_get_object (builder, "zenity_warning_dialog"));
+                       text = gtk_builder_get_object (builder, "zenity_warning_text");
+                       image = gtk_builder_get_object (builder, "zenity_warning_image");
+                       ok_button = GTK_WIDGET (
+                               gtk_builder_get_object (builder, "zenity_warning_ok_button"));
+                       break;
+
+               case ZENITY_MSG_QUESTION:
+               case ZENITY_MSG_SWITCH:
+                       builder = zenity_util_load_ui_file ("zenity_question_dialog", NULL);
+                       dialog = GTK_WIDGET (
+                               gtk_builder_get_object (builder, "zenity_question_dialog"));
+                       text = gtk_builder_get_object (builder, "zenity_question_text");
+                       image = gtk_builder_get_object (builder, "zenity_question_image");
+                       ok_button = NULL;
+                       break;
+
+               case ZENITY_MSG_ERROR:
+                       builder = zenity_util_load_ui_file ("zenity_error_dialog", NULL);
+                       dialog = GTK_WIDGET (
+                               gtk_builder_get_object (builder, "zenity_error_dialog"));
+                       text = gtk_builder_get_object (builder, "zenity_error_text");
+                       image = gtk_builder_get_object (builder, "zenity_error_image");
+                       ok_button = GTK_WIDGET (
+                               gtk_builder_get_object (builder, "zenity_error_ok_button"));
+                       break;
+
+               case ZENITY_MSG_INFO:
+                       builder = zenity_util_load_ui_file ("zenity_info_dialog", NULL);
+                       dialog = GTK_WIDGET (
+                               gtk_builder_get_object (builder, "zenity_info_dialog"));
+                       text = gtk_builder_get_object (builder, "zenity_info_text");
+                       image = gtk_builder_get_object (builder, "zenity_info_image");
+                       ok_button = GTK_WIDGET (
+                               gtk_builder_get_object (builder, "zenity_info_ok_button"));
+                       break;
+
+               default:
+                       builder = NULL;
+                       dialog = NULL;
+                       text = NULL;
+                       image = NULL;
+                       ok_button = NULL;
+                       g_assert_not_reached ();
+                       break;
+       }
+
+       if (data->extra_label) {
+               gint i = 0;
+               while (data->extra_label[i] != NULL) {
+                       gtk_dialog_add_button (
+                               GTK_DIALOG (dialog), data->extra_label[i], i);
+                       i++;
+               }
+       }
+
+       if (builder == NULL) {
+               data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+               return;
+       }
+
+       g_signal_connect (G_OBJECT (dialog),
+               "response",
+               G_CALLBACK (zenity_msg_dialog_response),
+               data);
+
+       gtk_builder_connect_signals (builder, NULL);
+
+       if (data->dialog_title)
+               gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
+
+       if (ok_button) {
+               if (data->ok_label) {
+                       gtk_button_set_label (GTK_BUTTON (ok_button), data->ok_label);
+               }
+       }
+
+       switch (msg_data->mode) {
+               case ZENITY_MSG_WARNING:
+                       zenity_util_set_window_icon_from_icon_name (
+                               dialog, data->window_icon, "dialog-warning");
+                       break;
+
+               case ZENITY_MSG_QUESTION:
+                       zenity_util_set_window_icon_from_icon_name (
+                               dialog, data->window_icon, "dialog-question");
+                       zenity_msg_construct_question_dialog (dialog, msg_data, data);
+                       break;
+
+               case ZENITY_MSG_SWITCH:
+                       zenity_util_set_window_icon_from_icon_name (
+                               dialog, data->window_icon, "dialog-question");
+                       break;
+
+               case ZENITY_MSG_ERROR:
+                       zenity_util_set_window_icon_from_icon_name (
+                               dialog, data->window_icon, "dialog-error");
+                       break;
+
+               case ZENITY_MSG_INFO:
+                       zenity_util_set_window_icon_from_icon_name (
+                               dialog, data->window_icon, "dialog-information");
+                       break;
+
+               default:
+                       break;
+       }
+
+       if (data->width > -1 || data->height > -1)
+               gtk_window_set_default_size (
+                       GTK_WINDOW (dialog), data->width, data->height);
+
+       if (data->width > -1)
+               gtk_widget_set_size_request (GTK_WIDGET (text), data->width, -1);
+       else if (!msg_data->ellipsize && !msg_data->no_wrap) {
+               // the magic number 60 is picked from gtk+/gtk/ui/gtkmessagedialog.ui
+               // however, 60 would increase the distance between the icon and the
+               // text,
+               // decreasing to 10 fix it.
+               gtk_label_set_width_chars (text, 10);
+               gtk_label_set_max_width_chars (text, 10);
+       }
+
+       if (data->modal)
+               gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+
+       if (msg_data->dialog_text) {
+               if (msg_data->no_markup)
+                       gtk_label_set_text (GTK_LABEL (text), msg_data->dialog_text);
+               else
+                       gtk_label_set_markup (
+                               GTK_LABEL (text), g_strcompress (msg_data->dialog_text));
+               zenity_label_widget_clipboard_selection (GTK_WIDGET (text));
+       }
+
+       if (msg_data->ellipsize)
+               gtk_label_set_ellipsize (GTK_LABEL (text), PANGO_ALIGN_RIGHT);
+
+       if (msg_data->dialog_icon)
+               gtk_image_set_from_icon_name (
+                       GTK_IMAGE (image), msg_data->dialog_icon, GTK_ICON_SIZE_DIALOG);
+
+       if (msg_data->no_wrap)
+               gtk_label_set_line_wrap (GTK_LABEL (text), FALSE);
+
+       zenity_util_show_dialog (dialog, data->attach);
+
+       if (data->timeout_delay > 0) {
+               g_timeout_add_seconds (data->timeout_delay,
+                       (GSourceFunc) zenity_util_timeout_handle,
+                       NULL);
+       }
+
+       g_object_unref (builder);
+
+       gtk_main ();
 }
 
 static void
-zenity_msg_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
-  ZenityData *zen_data = data;
-
-  switch (response) {
-    case GTK_RESPONSE_OK:
-      zenity_util_exit_code_with_data(ZENITY_OK, zen_data);      
-      break;
-
-    case GTK_RESPONSE_CANCEL:
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
-      break;
-
-    default:
-      if (zen_data->extra_label && response < g_strv_length(zen_data->extra_label))
-        printf("%s\n",zen_data->extra_label[response]);
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
-      break;
-  }
-  gtk_main_quit ();
+zenity_msg_dialog_response (GtkWidget *widget, int response, gpointer data) {
+       ZenityData *zen_data = data;
+
+       switch (response) {
+               case GTK_RESPONSE_OK:
+                       zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
+                       break;
+
+               case GTK_RESPONSE_CANCEL:
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+                       break;
+
+               default:
+                       if (zen_data->extra_label &&
+                               response < g_strv_length (zen_data->extra_label))
+                               printf ("%s\n", zen_data->extra_label[response]);
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
+                       break;
+       }
+       gtk_main_quit ();
 }
diff --git a/src/notification.c b/src/notification.c
index 9bbd6ce..eb0e79e 100644
--- a/src/notification.c
+++ b/src/notification.c
@@ -24,16 +24,16 @@
 
 #include <config.h>
 
-#include <unistd.h>
-#include <stdlib.h>
 #include <gtk/gtk.h>
-#include <time.h>
+#include <stdlib.h>
 #include <string.h>
+#include <time.h>
+#include <unistd.h>
 #ifdef HAVE_LIBNOTIFY
 #include <libnotify/notify.h>
 
-#include "zenity.h"
 #include "util.h"
+#include "zenity.h"
 
 #define MAX_HINTS 16
 
@@ -41,337 +41,331 @@ static char *icon_file;
 static GHashTable *notification_hints;
 
 static NotifyNotification *
-zenity_notification_new(gchar *message, gchar *icon_file)
-{
-  NotifyNotification *notif;
-  gchar **text;
-
-  text = g_strsplit (g_strcompress (message), "\n", 2);
-  if (*text == NULL) {
-    g_printerr (_("Could not parse message\n"));
-       return NULL;
-  }
-       
-  notif = notify_notification_new (text[0], /* title */
-                                   text[1], /* summary */
-                                   icon_file);
-  g_strfreev (text);
-  return notif;
+zenity_notification_new (gchar *message, gchar *icon_file) {
+       NotifyNotification *notif;
+       gchar **text;
+
+       text = g_strsplit (g_strcompress (message), "\n", 2);
+       if (*text == NULL) {
+               g_printerr (_ ("Could not parse message\n"));
+               return NULL;
+       }
+
+       notif = notify_notification_new (text[0], /* title */
+               text[1], /* summary */
+               icon_file);
+       g_strfreev (text);
+       return notif;
 }
 
 static void
-on_notification_default_action (NotifyNotification *n,
-                                const char         *action,
-                                void               *user_data)
-{
-  ZenityData *zen_data;
+on_notification_default_action (
+       NotifyNotification *n, const char *action, void *user_data) {
+       ZenityData *zen_data;
 
-  zen_data = (ZenityData *)user_data;
-  notify_notification_close (n, NULL);
+       zen_data = (ZenityData *) user_data;
+       notify_notification_close (n, NULL);
 
-  zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
+       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
 
-  gtk_main_quit ();
+       gtk_main_quit ();
 }
 
 static GHashTable *
-zenity_notification_parse_hints_array (gchar **hints)
-{
-  GHashTable *result;
-  gchar** pair;
-  int i;
-
-  result = g_hash_table_new_full (g_str_hash,
-                                  g_str_equal,
-                                  g_free,
-                                  g_free);
-
-  for(i = 0; i < g_strv_length (hints); i++) {
-    pair = g_strsplit (hints[i], ":", 2);
-    g_hash_table_replace (result, g_strdup (pair[0]), g_strdup (pair[1]));
-    g_strfreev (pair);
-  }
-  if (g_hash_table_size (result) == 0) {
-    g_hash_table_unref (result);
-    return NULL;
-  } else {
-    return result;
-  }
+zenity_notification_parse_hints_array (gchar **hints) {
+       GHashTable *result;
+       gchar **pair;
+       int i;
+
+       result = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+
+       for (i = 0; i < g_strv_length (hints); i++) {
+               pair = g_strsplit (hints[i], ":", 2);
+               g_hash_table_replace (result, g_strdup (pair[0]), g_strdup (pair[1]));
+               g_strfreev (pair);
+       }
+       if (g_hash_table_size (result) == 0) {
+               g_hash_table_unref (result);
+               return NULL;
+       } else {
+               return result;
+       }
 }
 
 static GHashTable *
-zenity_notification_parse_hints (gchar *hints)
-{
-  GHashTable *result;
-  gchar** hint_array;
-
-  hint_array = g_strsplit (g_strcompress (hints), "\n", MAX_HINTS);
-  result = zenity_notification_parse_hints_array (hint_array);
-  g_strfreev (hint_array);
-  return result;
+zenity_notification_parse_hints (gchar *hints) {
+       GHashTable *result;
+       gchar **hint_array;
+
+       hint_array = g_strsplit (g_strcompress (hints), "\n", MAX_HINTS);
+       result = zenity_notification_parse_hints_array (hint_array);
+       g_strfreev (hint_array);
+       return result;
 }
 
 static void
-zenity_notification_set_hint(gpointer key, gpointer value, gpointer user_data)
-{
-  NotifyNotification *notification;
-  gchar *hint_name;
-  GVariant *hint_value;
-
-  gchar *string_value;
-  gboolean boolean_value;
-  gint32 int_value;
-  guchar byte_value;
-
-  hint_name = (gchar *) key;
-  string_value = (gchar *) value;
-  notification = (NotifyNotification *) user_data;
-
-  if ((g_ascii_strcasecmp ("action-icons", hint_name) == 0)
-      || (g_ascii_strcasecmp ("resident", hint_name) == 0)
-      || (g_ascii_strcasecmp ("suppress-sound", hint_name) == 0)
-      || (g_ascii_strcasecmp ("transient", hint_name) == 0)) {
-    /* boolean hints */
-    if (g_ascii_strcasecmp ("true", string_value) == 0) {
-      boolean_value = TRUE;
-    } else if (g_ascii_strcasecmp ("false", string_value) == 0) {
-      boolean_value = FALSE;
-    } else {
-      g_printerr (_("Invalid value for a boolean typed hint.\nSupported values are 'true' or 'false'.\n"));
-      return;
-    }
-    hint_value = g_variant_new_boolean (boolean_value);
-  } else if ((g_ascii_strcasecmp ("category", hint_name) == 0)
-             || (g_ascii_strcasecmp ("desktop-entry", hint_name) == 0)
-             || (g_ascii_strcasecmp ("image-path", hint_name) == 0)
-             || (g_ascii_strcasecmp ("image_path", hint_name) == 0)
-             || (g_ascii_strcasecmp ("sound-file", hint_name) == 0)
-             || (g_ascii_strcasecmp ("sound-name", hint_name) == 0)) {
-    /* string hints */
-    hint_value = g_variant_new_string (string_value);
-  } else if ((g_ascii_strcasecmp ("image-data", hint_name) == 0)
-             || (g_ascii_strcasecmp ("image_data", hint_name) == 0)
-             || (g_ascii_strcasecmp ("icon-data", hint_name) == 0)) {
-    /* (iibiiay) */
-    g_printerr (_("Unsupported hint. Skipping.\n"));
-    return;
-  } else if ((g_ascii_strcasecmp ("x", hint_name) == 0)
-             || (g_ascii_strcasecmp ("y", hint_name) == 0)) {
-    /* int hints */
-       if (string_value == NULL)
-         string_value = "";
-    int_value = (gint32) g_ascii_strtoll (string_value, NULL, 0);
-    hint_value = g_variant_new_int32 (int_value);
-  } else if ((g_ascii_strcasecmp ("urgency", hint_name) == 0)) {
-    /* byte hints */
-       if (string_value == NULL)
-         string_value = "";
-    byte_value = (guchar) g_ascii_strtoll (string_value, NULL, 0);
-    hint_value = g_variant_new_byte (byte_value);
-  } else {
-    /* unknown hints */
-    g_printerr (_("Unknown hint name. Skipping.\n"));
-    return;
-  }
-
-  notify_notification_set_hint (notification,
-                                hint_name,
-                                hint_value);
+zenity_notification_set_hint (
+       gpointer key, gpointer value, gpointer user_data) {
+       NotifyNotification *notification;
+       gchar *hint_name;
+       GVariant *hint_value;
+
+       gchar *string_value;
+       gboolean boolean_value;
+       gint32 int_value;
+       guchar byte_value;
+
+       hint_name = (gchar *) key;
+       string_value = (gchar *) value;
+       notification = (NotifyNotification *) user_data;
+
+       if ((g_ascii_strcasecmp ("action-icons", hint_name) == 0) ||
+               (g_ascii_strcasecmp ("resident", hint_name) == 0) ||
+               (g_ascii_strcasecmp ("suppress-sound", hint_name) == 0) ||
+               (g_ascii_strcasecmp ("transient", hint_name) == 0)) {
+               /* boolean hints */
+               if (g_ascii_strcasecmp ("true", string_value) == 0) {
+                       boolean_value = TRUE;
+               } else if (g_ascii_strcasecmp ("false", string_value) == 0) {
+                       boolean_value = FALSE;
+               } else {
+                       g_printerr (_ ("Invalid value for a boolean typed hint.\nSupported "
+                                                  "values are 'true' or 'false'.\n"));
+                       return;
+               }
+               hint_value = g_variant_new_boolean (boolean_value);
+       } else if ((g_ascii_strcasecmp ("category", hint_name) == 0) ||
+               (g_ascii_strcasecmp ("desktop-entry", hint_name) == 0) ||
+               (g_ascii_strcasecmp ("image-path", hint_name) == 0) ||
+               (g_ascii_strcasecmp ("image_path", hint_name) == 0) ||
+               (g_ascii_strcasecmp ("sound-file", hint_name) == 0) ||
+               (g_ascii_strcasecmp ("sound-name", hint_name) == 0)) {
+               /* string hints */
+               hint_value = g_variant_new_string (string_value);
+       } else if ((g_ascii_strcasecmp ("image-data", hint_name) == 0) ||
+               (g_ascii_strcasecmp ("image_data", hint_name) == 0) ||
+               (g_ascii_strcasecmp ("icon-data", hint_name) == 0)) {
+               /* (iibiiay) */
+               g_printerr (_ ("Unsupported hint. Skipping.\n"));
+               return;
+       } else if ((g_ascii_strcasecmp ("x", hint_name) == 0) ||
+               (g_ascii_strcasecmp ("y", hint_name) == 0)) {
+               /* int hints */
+               if (string_value == NULL)
+                       string_value = "";
+               int_value = (gint32) g_ascii_strtoll (string_value, NULL, 0);
+               hint_value = g_variant_new_int32 (int_value);
+       } else if ((g_ascii_strcasecmp ("urgency", hint_name) == 0)) {
+               /* byte hints */
+               if (string_value == NULL)
+                       string_value = "";
+               byte_value = (guchar) g_ascii_strtoll (string_value, NULL, 0);
+               hint_value = g_variant_new_byte (byte_value);
+       } else {
+               /* unknown hints */
+               g_printerr (_ ("Unknown hint name. Skipping.\n"));
+               return;
+       }
+
+       notify_notification_set_hint (notification, hint_name, hint_value);
 }
 
 static void
-zenity_notification_set_hints (NotifyNotification *notification, GHashTable *hints)
-{
-  if (hints == NULL) {
-    return;
-  }
+zenity_notification_set_hints (
+       NotifyNotification *notification, GHashTable *hints) {
+       if (hints == NULL) {
+               return;
+       }
 
-  g_hash_table_foreach (hints, zenity_notification_set_hint, notification);
+       g_hash_table_foreach (hints, zenity_notification_set_hint, notification);
 }
 
 static gboolean
-zenity_notification_handle_stdin (GIOChannel *channel,
-                                 GIOCondition condition,
-                                 gpointer user_data)
-{
-  if ((condition & G_IO_IN) != 0) {
-    GString *string;
-    GError *error = NULL;
-
-    string = g_string_new (NULL);
-    while (channel->is_readable == FALSE)
-      ;
-    do {
-      gint status;
-      gchar *command, *value, *colon;
-
-      do {
-       status = g_io_channel_read_line_string (channel, string, NULL, &error);
-       while (gdk_events_pending ())
-         gtk_main_iteration ();
-
-      } while (status == G_IO_STATUS_AGAIN);
-
-      if (status  != G_IO_STATUS_NORMAL) {
-       if (error) {
-         g_warning ("zenity_notification_handle_stdin () : %s",
-                    error->message);
-         g_error_free (error);
-         error = NULL;
+zenity_notification_handle_stdin (
+       GIOChannel *channel, GIOCondition condition, gpointer user_data) {
+       if ((condition & G_IO_IN) != 0) {
+               GString *string;
+               GError *error = NULL;
+
+               string = g_string_new (NULL);
+               while (channel->is_readable == FALSE)
+                       ;
+               do {
+                       gint status;
+                       gchar *command, *value, *colon;
+
+                       do {
+                               status = g_io_channel_read_line_string (
+                                       channel, string, NULL, &error);
+                               while (gdk_events_pending ())
+                                       gtk_main_iteration ();
+
+                       } while (status == G_IO_STATUS_AGAIN);
+
+                       if (status != G_IO_STATUS_NORMAL) {
+                               if (error) {
+                                       g_warning ("zenity_notification_handle_stdin () : %s",
+                                               error->message);
+                                       g_error_free (error);
+                                       error = NULL;
+                               }
+                               continue;
+                       }
+
+                       zenity_util_strip_newline (string->str);
+                       colon = strchr (string->str, ':');
+                       if (colon == NULL) {
+                               g_printerr (_ ("Could not parse command from stdin\n"));
+                               continue;
+                       }
+                       /* split off the command and value */
+                       command = g_strstrip (g_strndup (string->str, colon - string->str));
+
+                       value = colon + 1;
+                       while (*value && g_ascii_isspace (*value))
+                               value++;
+
+                       if (!g_ascii_strcasecmp (command, "icon")) {
+                               g_free (icon_file);
+                               icon_file = g_strdup (value);
+                       } else if (!g_ascii_strcasecmp (command, "hints")) {
+                               if (notification_hints != NULL) {
+                                       g_hash_table_unref (notification_hints);
+                               }
+                               notification_hints = zenity_notification_parse_hints (value);
+                       } else if (!g_ascii_strcasecmp (command, "message")) {
+                               /* display a notification bubble */
+                               if (!g_utf8_validate (value, -1, NULL)) {
+                                       g_warning ("Invalid UTF-8 in input!");
+                               } else {
+                                       NotifyNotification *notif;
+                                       error = NULL;
+
+                                       notif = zenity_notification_new (value, icon_file);
+                                       if (notif == NULL)
+                                               continue;
+
+                                       zenity_notification_set_hints (notif, notification_hints);
+
+                                       notify_notification_show (notif, &error);
+                                       if (error) {
+                                               g_warning (
+                                                       "Error showing notification: %s", error->message);
+                                               g_error_free (error);
+                                               error = NULL;
+                                       }
+
+                                       g_object_unref (notif);
+                               }
+                       } else if (!g_ascii_strcasecmp (command, "tooltip")) {
+                               if (!g_utf8_validate (value, -1, NULL)) {
+                                       g_warning ("Invalid UTF-8 in input!");
+                               } else {
+                                       NotifyNotification *notif;
+                                       notif = zenity_notification_new (value, icon_file);
+                                       if (notif == NULL)
+                                               continue;
+
+                                       zenity_notification_set_hints (notif, notification_hints);
+
+                                       notify_notification_show (notif, &error);
+                                       if (error) {
+                                               g_warning (
+                                                       "Error showing notification: %s", error->message);
+                                               g_error_free (error);
+                                               error = NULL;
+                                       }
+                               }
+                       } else if (!g_ascii_strcasecmp (command, "visible")) {
+
+                       } else {
+                               g_warning ("Unknown command '%s'", command);
+                       }
+                       g_free (command);
+
+               } while (g_io_channel_get_buffer_condition (channel) == G_IO_IN);
+               g_string_free (string, TRUE);
+       }
+
+       if ((condition & G_IO_HUP) != 0) {
+               g_io_channel_shutdown (channel, TRUE, NULL);
+               return FALSE;
        }
-       continue;
-      }
-
-      zenity_util_strip_newline (string->str);
-      colon = strchr(string->str, ':');
-      if (colon == NULL) {
-       g_printerr (_("Could not parse command from stdin\n"));
-       continue;
-      }
-      /* split off the command and value */
-      command = g_strstrip (g_strndup (string->str, colon - string->str));
-
-      value = colon + 1;
-      while (*value && g_ascii_isspace (*value)) value++;
-
-      if (!g_ascii_strcasecmp (command, "icon")) {
-        g_free (icon_file);
-        icon_file = g_strdup (value);
-      } else if (!g_ascii_strcasecmp (command, "hints")) {
-        if (notification_hints != NULL) {
-          g_hash_table_unref (notification_hints);
-        }
-        notification_hints = zenity_notification_parse_hints (value);
-      } else if (!g_ascii_strcasecmp (command, "message")) {
-        /* display a notification bubble */
-        if (!g_utf8_validate (value, -1, NULL)) {
-          g_warning ("Invalid UTF-8 in input!");
-        } else {
-          NotifyNotification *notif;
-          error = NULL;
-
-          notif = zenity_notification_new (value, icon_file);
-          if (notif == NULL)
-                       continue;
-
-          zenity_notification_set_hints (notif, notification_hints);
-
-          notify_notification_show (notif, &error);
-          if (error) {
-            g_warning ("Error showing notification: %s", error->message);
-            g_error_free (error);
-            error = NULL;
-          }
-
-         g_object_unref (notif);
-        }
-      } else if (!g_ascii_strcasecmp (command, "tooltip")) {
-        if (!g_utf8_validate (value, -1, NULL)) {
-          g_warning ("Invalid UTF-8 in input!");
-        } else {
-          NotifyNotification *notif;
-          notif = zenity_notification_new (value, icon_file);
-                 if (notif == NULL)
-            continue;
-
-          zenity_notification_set_hints (notif, notification_hints);
-
-          notify_notification_show (notif, &error);
-          if (error) {
-            g_warning ("Error showing notification: %s", error->message);
-            g_error_free (error);
-            error = NULL;
-          }
-        }
-      } else if (!g_ascii_strcasecmp (command, "visible")) {
-
-      } else {
-       g_warning ("Unknown command '%s'", command);
-      }
-      g_free (command);
-
-    } while (g_io_channel_get_buffer_condition (channel) == G_IO_IN);
-    g_string_free (string, TRUE);
-  }
-
-  if ((condition & G_IO_HUP) != 0) {
-    g_io_channel_shutdown (channel, TRUE, NULL);
-    return FALSE;
-  }
-
-  return TRUE;
+
+       return TRUE;
 }
 
 static void
-zenity_notification_listen_on_stdin (ZenityData *data)
-{
-  GIOChannel *channel;
-
-  channel = g_io_channel_unix_new (0);
-  g_io_channel_set_encoding (channel, NULL, NULL);
-  g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
-  g_io_add_watch (channel, G_IO_IN | G_IO_HUP,
-                 zenity_notification_handle_stdin, data);
+zenity_notification_listen_on_stdin (ZenityData *data) {
+       GIOChannel *channel;
+
+       channel = g_io_channel_unix_new (0);
+       g_io_channel_set_encoding (channel, NULL, NULL);
+       g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
+       g_io_add_watch (
+               channel, G_IO_IN | G_IO_HUP, zenity_notification_handle_stdin, data);
 }
 
 void
-zenity_notification (ZenityData *data, ZenityNotificationData *notification_data)
-{
-  GError *error;
-  NotifyNotification *notification;
-  GHashTable *notification_hints;
-
-  /* create the notification widget */
-  if (!notify_is_initted ()) {
-    notify_init (_("Zenity notification"));
-  }
-
-  if (notification_data->listen) {
-    zenity_notification_listen_on_stdin (data);
-    gtk_main();
-  } else {
-    if (notification_data->notification_text == NULL) {
-      exit (1);
-    }
-
-    notification = zenity_notification_new (notification_data->notification_text,
-                                            data->window_icon);
-
-    if (notification == NULL) {
-      exit (1);
-    }
-
-    /* if we aren't listening for changes, then close on default action */
-    notify_notification_add_action (notification,
-                                    "default",
-                                    "Do Default Action",
-                                    (NotifyActionCallback) on_notification_default_action,
-                                    data,
-                                    NULL);
-
-    /* set the notification hints for the displayed notification */
-    if (notification_data->notification_hints != NULL) {
-      notification_hints = zenity_notification_parse_hints_array (notification_data->notification_hints);
-      zenity_notification_set_hints(notification, notification_hints);
-      g_hash_table_unref (notification_hints);
-    }
-
-    /* Show icon and wait */
-    error = NULL;
-    if (!notify_notification_show (notification, &error)) {
-      if (error != NULL) {
-        g_warning ("Error showing notification: %s", error->message);
-        g_error_free (error);
-      }
-      exit (1);
-    }
-
-  }
-
-  if (data->timeout_delay > 0) {
-    g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, NULL);
-    gtk_main();
-  }
+zenity_notification (
+       ZenityData *data, ZenityNotificationData *notification_data) {
+       GError *error;
+       NotifyNotification *notification;
+       GHashTable *notification_hints;
+
+       /* create the notification widget */
+       if (!notify_is_initted ()) {
+               notify_init (_ ("Zenity notification"));
+       }
+
+       if (notification_data->listen) {
+               zenity_notification_listen_on_stdin (data);
+               gtk_main ();
+       } else {
+               if (notification_data->notification_text == NULL) {
+                       exit (1);
+               }
+
+               notification = zenity_notification_new (
+                       notification_data->notification_text, data->window_icon);
+
+               if (notification == NULL) {
+                       exit (1);
+               }
+
+               /* if we aren't listening for changes, then close on default action */
+               notify_notification_add_action (notification,
+                       "default",
+                       "Do Default Action",
+                       (NotifyActionCallback) on_notification_default_action,
+                       data,
+                       NULL);
+
+               /* set the notification hints for the displayed notification */
+               if (notification_data->notification_hints != NULL) {
+                       notification_hints = zenity_notification_parse_hints_array (
+                               notification_data->notification_hints);
+                       zenity_notification_set_hints (notification, notification_hints);
+                       g_hash_table_unref (notification_hints);
+               }
+
+               /* Show icon and wait */
+               error = NULL;
+               if (!notify_notification_show (notification, &error)) {
+                       if (error != NULL) {
+                               g_warning ("Error showing notification: %s", error->message);
+                               g_error_free (error);
+                       }
+                       exit (1);
+               }
+       }
+
+       if (data->timeout_delay > 0) {
+               g_timeout_add_seconds (data->timeout_delay,
+                       (GSourceFunc) zenity_util_timeout_handle,
+                       NULL);
+               gtk_main ();
+       }
 }
 
 #endif
diff --git a/src/option.c b/src/option.c
index 246cf22..61df34d 100644
--- a/src/option.c
+++ b/src/option.c
@@ -25,41 +25,41 @@
 #include "config.h"
 
 #include "option.h"
-#include <time.h>
 #include <stdlib.h>
 #include <string.h>
+#include <time.h>
 
 /* General Options */
-static gchar   *zenity_general_dialog_title;
-static gchar   *zenity_general_window_icon;
-static int      zenity_general_width;
-static int      zenity_general_height;
-static gchar   *zenity_general_dialog_text;
-static gchar   *zenity_general_dialog_icon;
-static gchar   *zenity_general_separator;
+static gchar *zenity_general_dialog_title;
+static gchar *zenity_general_window_icon;
+static int zenity_general_width;
+static int zenity_general_height;
+static gchar *zenity_general_dialog_text;
+static gchar *zenity_general_dialog_icon;
+static gchar *zenity_general_separator;
 static gboolean zenity_general_multiple;
 static gboolean zenity_general_editable;
-static gchar   *zenity_general_uri;
+static gchar *zenity_general_uri;
 static gboolean zenity_general_dialog_no_wrap;
 static gboolean zenity_general_dialog_no_markup;
-static gint     zenity_general_timeout_delay;
-static gchar   *zenity_general_ok_button;
-static gchar   *zenity_general_cancel_button;
-static gchar  **zenity_general_extra_buttons;
+static gint zenity_general_timeout_delay;
+static gchar *zenity_general_ok_button;
+static gchar *zenity_general_cancel_button;
+static gchar **zenity_general_extra_buttons;
 static gboolean zenity_general_modal;
 static guintptr zenity_general_attach;
 static gboolean zenity_general_dialog_ellipsize;
 
 /* Calendar Dialog Options */
 static gboolean zenity_calendar_active;
-static int      zenity_calendar_day;
-static int      zenity_calendar_month;
-static int      zenity_calendar_year;
-static gchar   *zenity_calendar_date_format;
+static int zenity_calendar_day;
+static int zenity_calendar_month;
+static int zenity_calendar_year;
+static gchar *zenity_calendar_date_format;
 
 /* Entry Dialog Options */
 static gboolean zenity_entry_active;
-static gchar   *zenity_entry_entry_text;
+static gchar *zenity_entry_entry_text;
 static gboolean zenity_entry_hide_text;
 
 /* Error Dialog Options */
@@ -69,19 +69,19 @@ static gboolean zenity_error_active;
 static gboolean zenity_info_active;
 
 /* File Selection Dialog Options */
-static gboolean       zenity_file_active;
-static gboolean       zenity_file_directory;
-static gboolean       zenity_file_save;
-static gboolean       zenity_file_confirm_overwrite;
-static gchar        **zenity_file_filter;
+static gboolean zenity_file_active;
+static gboolean zenity_file_directory;
+static gboolean zenity_file_save;
+static gboolean zenity_file_confirm_overwrite;
+static gchar **zenity_file_filter;
 
 /* List Dialog Options */
 static gboolean zenity_list_active;
-static gchar  **zenity_list_columns;
+static gchar **zenity_list_columns;
 static gboolean zenity_list_checklist;
 static gboolean zenity_list_radiolist;
-static gchar   *zenity_list_print_column;
-static gchar   *zenity_list_hide_column;
+static gchar *zenity_list_print_column;
+static gchar *zenity_list_hide_column;
 static gboolean zenity_list_hide_header;
 static gboolean zenity_list_imagelist;
 static gboolean zenity_list_mid_search;
@@ -90,12 +90,12 @@ static gboolean zenity_list_mid_search;
 /* Notification Dialog Options */
 static gboolean zenity_notification_active;
 static gboolean zenity_notification_listen;
-static gchar  **zenity_notification_hints;
+static gchar **zenity_notification_hints;
 #endif
 
 /* Progress Dialog Options */
 static gboolean zenity_progress_active;
-static int      zenity_progress_percentage;
+static int zenity_progress_percentage;
 static gboolean zenity_progress_pulsate;
 static gboolean zenity_progress_auto_close;
 static gboolean zenity_progress_auto_kill;
@@ -109,14 +109,14 @@ static gboolean zenity_question_switch;
 
 /* Text Dialog Options */
 static gboolean zenity_text_active;
-static gchar   *zenity_text_font;
-static gchar   *zenity_text_checkbox;
+static gchar *zenity_text_font;
+static gchar *zenity_text_checkbox;
 static gboolean zenity_text_auto_scroll;
 
 #ifdef HAVE_WEBKITGTK
 static gboolean zenity_text_enable_html;
 static gboolean zenity_text_no_interaction;
-static gchar   *zenity_text_url;
+static gchar *zenity_text_url;
 #endif
 
 /* Warning Dialog Options */
@@ -133,7 +133,7 @@ static gboolean zenity_scale_hide_value;
 
 /* Color Selection Dialog Options */
 static gboolean zenity_colorsel_active;
-static gchar   *zenity_colorsel_color;
+static gchar *zenity_colorsel_color;
 static gboolean zenity_colorsel_show_palette;
 
 /* Password Dialog Options */
@@ -143,1180 +143,893 @@ static gboolean zenity_password_show_username;
 /* Forms Dialog Options */
 static gboolean zenity_forms_active;
 static gboolean zenity_forms_show_header;
-static gchar   *zenity_forms_date_format;
-//static gchar   *zenity_forms_hide_column;
-static gchar  **zenity_forms_list_values;
-static gchar  **zenity_forms_column_values;
-static gchar  **zenity_forms_combo_values;
+static gchar *zenity_forms_date_format;
+// static gchar   *zenity_forms_hide_column;
+static gchar **zenity_forms_list_values;
+static gchar **zenity_forms_column_values;
+static gchar **zenity_forms_combo_values;
 
 /* Miscelaneus Options */
 static gboolean zenity_misc_about;
 static gboolean zenity_misc_version;
 
-static gboolean
-zenity_forms_callback (const gchar *option_name,
-                       const gchar *value,
-                       gpointer data,
-                       GError **error);
-
-static GOptionEntry general_options[] = {
-  {
-    "title",
-    '\0',
-    0,
-    G_OPTION_ARG_STRING,
-    &zenity_general_dialog_title,
-    N_("Set the dialog title"),
-    N_("TITLE")
-  },
-  {
-    "window-icon",
-    '\0',
-    0,
-    G_OPTION_ARG_FILENAME,
-    &zenity_general_window_icon,
-    N_("Set the window icon"),
-    N_("ICONPATH")
-  },
-  {
-    "width",
-    '\0',
-    0,
-    G_OPTION_ARG_INT,
-    &zenity_general_width,
-    N_("Set the width"),
-    N_("WIDTH")
-  },
-  {
-    "height",
-    '\0',
-    0,
-    G_OPTION_ARG_INT,
-    &zenity_general_height,
-    N_("Set the height"),
-    N_("HEIGHT")
-  },
-  {
-    "timeout",
-    '\0',
-    0,
-    G_OPTION_ARG_INT,
-    &zenity_general_timeout_delay,
-    N_("Set dialog timeout in seconds"),
-    /* Timeout for closing the dialog */
-    N_("TIMEOUT")
-  },
-  {
-    "ok-label",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_ok_button,
-    N_("Set the label of the OK button"),
-    N_("TEXT")
-  },
-  {
-    "cancel-label",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_cancel_button,
-    N_("Set the label of the Cancel button"),
-    N_("TEXT")
-  },
-  {
-    "extra-button",
-    '\0',
-    0,
-    G_OPTION_ARG_STRING_ARRAY,
-    &zenity_general_extra_buttons,
-    N_("Add an extra button"),
-    N_("TEXT")
-  },
-  {
-    "modal",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_general_modal,
-    N_("Set the modal hint"),
-    NULL
-  },
-  {
-    "attach",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_INT,
-    &zenity_general_attach,
-    N_("Set the parent window to attach to"),
-    N_("WINDOW")
-  },
-  {
-    NULL
-  }
-};
-
-static GOptionEntry calendar_options[] = {
-  {
-    "calendar",
-    '\0',
-    G_OPTION_FLAG_IN_MAIN,
-    G_OPTION_ARG_NONE,
-    &zenity_calendar_active,
-    N_("Display calendar dialog"),
-    NULL
-  },
-  {
-    "text",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_dialog_text,
-    N_("Set the dialog text"),
-    N_("TEXT")
-  },
-  {
-    "day",
-    '\0',
-    0,
-    G_OPTION_ARG_INT,
-    &zenity_calendar_day,
-    N_("Set the calendar day"),
-    N_("DAY")
-  },
-  {
-    "month",
-    '\0',
-    0,
-    G_OPTION_ARG_INT,
-    &zenity_calendar_month,
-    N_("Set the calendar month"),
-    N_("MONTH")
-  },
-  {
-    "year",
-    '\0',
-    0,
-    G_OPTION_ARG_INT,
-    &zenity_calendar_year,
-    N_("Set the calendar year"),
-    N_("YEAR")
-  },
-  {
-    "date-format",
-    '\0',
-    0,
-    G_OPTION_ARG_STRING,
-    &zenity_calendar_date_format,
-    N_("Set the format for the returned date"),
-    N_("PATTERN")
-  },
-  {
-    NULL
-  } 
-};
-
-static GOptionEntry entry_options[] = {
-  {
-    "entry",
-    '\0',
-    G_OPTION_FLAG_IN_MAIN,
-    G_OPTION_ARG_NONE,
-    &zenity_entry_active,
-    N_("Display text entry dialog"),
-    NULL
-  },
-  {
-    "text",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_dialog_text,
-    N_("Set the dialog text"),
-    N_("TEXT")
-  },
-  {
-    "entry-text",
-    '\0',
-    0,
-    G_OPTION_ARG_STRING,
-    &zenity_entry_entry_text,
-    N_("Set the entry text"),
-    N_("TEXT")
-  },
-  {
-    "hide-text",
-    '\0',
-    0,
-    G_OPTION_ARG_NONE,
-    &zenity_entry_hide_text,
-    N_("Hide the entry text"),
-    NULL
-  },
-  { 
-    NULL 
-  } 
-};
-
-
-static GOptionEntry error_options[] = {
-  {
-    "error",
-    '\0',
-    G_OPTION_FLAG_IN_MAIN,
-    G_OPTION_ARG_NONE,
-    &zenity_error_active,
-    N_("Display error dialog"),
-    NULL
-  },
-  {
-    "text",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_dialog_text,
-    N_("Set the dialog text"),
-    N_("TEXT")
-  },
-  {
-    "icon-name",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_dialog_icon,
-    N_("Set the dialog icon"),
-    N_("ICON-NAME")
-  },
-  {
-    "no-wrap",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_general_dialog_no_wrap,
-    N_("Do not enable text wrapping"),
-    NULL
-  },
-  {
-    "no-markup",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_general_dialog_no_markup,
-    N_("Do not enable Pango markup")
-  },
-  {
-       "ellipsize",
-       '\0',
-       G_OPTION_FLAG_NOALIAS,
-       G_OPTION_ARG_NONE,
-       &zenity_general_dialog_ellipsize,
-       N_("Enable ellipsizing in the dialog text. This fixes the high window size with long texts")
-  },
-  { 
-    NULL 
-  } 
-};
-
-static GOptionEntry info_options[] = {
-  {
-    "info",
-    '\0',
-    G_OPTION_FLAG_IN_MAIN,
-    G_OPTION_ARG_NONE,
-    &zenity_info_active,
-    N_("Display info dialog"),
-    NULL
-  },
-  {
-    "text",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_dialog_text,
-    N_("Set the dialog text"),
-    N_("TEXT")
-  },
-  {
-    "icon-name",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_dialog_icon,
-    N_("Set the dialog icon"),
-    N_("ICON-NAME")
-  },
-  {
-    "no-wrap",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_general_dialog_no_wrap,
-    N_("Do not enable text wrapping"),
-    NULL
-  },
-  {
-    "no-markup",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_general_dialog_no_markup,
-    N_("Do not enable Pango markup")
-  },
-  {
-       "ellipsize",
-       '\0',
-       G_OPTION_FLAG_NOALIAS,
-       G_OPTION_ARG_NONE,
-       &zenity_general_dialog_ellipsize,
-       N_("Enable ellipsizing in the dialog text. This fixes the high window size with long texts")
-  },
-  { 
-    NULL 
-  }
-};
-
-static GOptionEntry file_selection_options[] = {
-  {
-    "file-selection",
-    '\0',
-    G_OPTION_FLAG_IN_MAIN,
-    G_OPTION_ARG_NONE,
-    &zenity_file_active,
-    N_("Display file selection dialog"),
-    NULL
-  },
-  {
-    "filename",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_FILENAME,
-    &zenity_general_uri,
-    N_("Set the filename"),
-    N_("FILENAME")
-  },
-  {
-    "multiple",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_general_multiple,
-    N_("Allow multiple files to be selected"),
-    NULL
-  },
-  {
-    "directory",
-    '\0',
-    0,
-    G_OPTION_ARG_NONE,
-    &zenity_file_directory,
-    N_("Activate directory-only selection"),
-    NULL
-  },
-  {
-    "save",
-    '\0',
-    0,
-    G_OPTION_ARG_NONE,
-    &zenity_file_save,
-    N_("Activate save mode"),
-    NULL
-  },
-  {
-    "separator",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_separator,
-    N_("Set output separator character"),
-    N_("SEPARATOR")
-  },
-  {
-    "confirm-overwrite",
-    '\0',
-    0,
-    G_OPTION_ARG_NONE,
-    &zenity_file_confirm_overwrite,
-    N_("Confirm file selection if filename already exists"),
-    NULL
-  },
-  {
-    "file-filter",
-    '\0',
-    0,
-    G_OPTION_ARG_STRING_ARRAY,
-    &zenity_file_filter,
-    N_("Set a filename filter"),
-    /* Help for file-filter argument (name and patterns for file selection) */
-    N_("NAME | PATTERN1 PATTERN2 ..."),
-  },
-  { 
-    NULL 
-  } 
-};
-
-static GOptionEntry list_options[] = {
-  {
-    "list",
-    '\0',
-    G_OPTION_FLAG_IN_MAIN,
-    G_OPTION_ARG_NONE,
-    &zenity_list_active,
-    N_("Display list dialog"),
-    NULL
-  },
-  {
-    "text",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_dialog_text,
-    N_("Set the dialog text"),
-    N_("TEXT")
-  },
-  {
-    "column",
-    '\0',
-    0,
-    G_OPTION_ARG_STRING_ARRAY,
-    &zenity_list_columns,
-    N_("Set the column header"),
-    N_("COLUMN")
-  },
-  {
-    "checklist",
-    '\0',
-    0,
-    G_OPTION_ARG_NONE,
-    &zenity_list_checklist,
-    N_("Use check boxes for the first column"),
-    NULL
-  },
-  {
-    "radiolist",
-    '\0',
-    0,
-    G_OPTION_ARG_NONE,
-    &zenity_list_radiolist,
-    N_("Use radio buttons for the first column"),
-    NULL
-  },
-  {
-    "imagelist",
-    '\0',
-    0,
-    G_OPTION_ARG_NONE,
-    &zenity_list_imagelist,
-    N_("Use an image for the first column"),
-    NULL
-  },
-  {
-    "separator",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_separator,
-    N_("Set output separator character"),
-    N_("SEPARATOR")
-  },
-  {
-    "multiple",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_general_multiple,
-    N_("Allow multiple rows to be selected"),
-    NULL
-  },
-  {
-    "editable",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_general_editable,
-    N_("Allow changes to text"),
-    NULL
-  },
-  {
-    "print-column",
-    '\0',
-    0,
-    G_OPTION_ARG_STRING,
-    &zenity_list_print_column,
-    N_("Print a specific column (Default is 1. 'ALL' can be used to print all columns)"),
-    /* Column index number to print out on a list dialog */
-    N_("NUMBER")
-  },
-  {
-    "hide-column",
-    '\0',
-    0,
-    G_OPTION_ARG_STRING,
-    &zenity_list_hide_column,
-    N_("Hide a specific column"),
-    N_("NUMBER")
-  },
-  {
-    "hide-header",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_list_hide_header,
-    N_("Hide the column headers"),
-    NULL
-  },
-  {
-    "mid-search",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_list_mid_search,
-    N_("Change list default search function searching for text in the middle, not on the beginning"),
-    NULL
-  },
-  { 
-    NULL 
-  } 
-};
+static gboolean zenity_forms_callback (const gchar *option_name,
+       const gchar *value, gpointer data, GError **error);
+
+static GOptionEntry general_options[] = {{"title",
+                                                                                        '\0',
+                                                                                        0,
+                                                                                        G_OPTION_ARG_STRING,
+                                                                                        
&zenity_general_dialog_title,
+                                                                                        N_ ("Set the dialog 
title"),
+                                                                                        N_ ("TITLE")},
+       {"window-icon",
+               '\0',
+               0,
+               G_OPTION_ARG_FILENAME,
+               &zenity_general_window_icon,
+               N_ ("Set the window icon"),
+               N_ ("ICONPATH")},
+       {"width",
+               '\0',
+               0,
+               G_OPTION_ARG_INT,
+               &zenity_general_width,
+               N_ ("Set the width"),
+               N_ ("WIDTH")},
+       {"height",
+               '\0',
+               0,
+               G_OPTION_ARG_INT,
+               &zenity_general_height,
+               N_ ("Set the height"),
+               N_ ("HEIGHT")},
+       {"timeout",
+               '\0',
+               0,
+               G_OPTION_ARG_INT,
+               &zenity_general_timeout_delay,
+               N_ ("Set dialog timeout in seconds"),
+               /* Timeout for closing the dialog */
+               N_ ("TIMEOUT")},
+       {"ok-label",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_general_ok_button,
+               N_ ("Set the label of the OK button"),
+               N_ ("TEXT")},
+       {"cancel-label",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_general_cancel_button,
+               N_ ("Set the label of the Cancel button"),
+               N_ ("TEXT")},
+       {"extra-button",
+               '\0',
+               0,
+               G_OPTION_ARG_STRING_ARRAY,
+               &zenity_general_extra_buttons,
+               N_ ("Add an extra button"),
+               N_ ("TEXT")},
+       {"modal",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_general_modal,
+               N_ ("Set the modal hint"),
+               NULL},
+       {"attach",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_INT,
+               &zenity_general_attach,
+               N_ ("Set the parent window to attach to"),
+               N_ ("WINDOW")},
+       {NULL}};
+
+static GOptionEntry calendar_options[] = {{"calendar",
+                                                                                         '\0',
+                                                                                         
G_OPTION_FLAG_IN_MAIN,
+                                                                                         G_OPTION_ARG_NONE,
+                                                                                         
&zenity_calendar_active,
+                                                                                         N_ ("Display 
calendar dialog"),
+                                                                                         NULL},
+       {"text",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_general_dialog_text,
+               N_ ("Set the dialog text"),
+               N_ ("TEXT")},
+       {"day",
+               '\0',
+               0,
+               G_OPTION_ARG_INT,
+               &zenity_calendar_day,
+               N_ ("Set the calendar day"),
+               N_ ("DAY")},
+       {"month",
+               '\0',
+               0,
+               G_OPTION_ARG_INT,
+               &zenity_calendar_month,
+               N_ ("Set the calendar month"),
+               N_ ("MONTH")},
+       {"year",
+               '\0',
+               0,
+               G_OPTION_ARG_INT,
+               &zenity_calendar_year,
+               N_ ("Set the calendar year"),
+               N_ ("YEAR")},
+       {"date-format",
+               '\0',
+               0,
+               G_OPTION_ARG_STRING,
+               &zenity_calendar_date_format,
+               N_ ("Set the format for the returned date"),
+               N_ ("PATTERN")},
+       {NULL}};
+
+static GOptionEntry entry_options[] = {{"entry",
+                                                                                  '\0',
+                                                                                  G_OPTION_FLAG_IN_MAIN,
+                                                                                  G_OPTION_ARG_NONE,
+                                                                                  &zenity_entry_active,
+                                                                                  N_ ("Display text entry 
dialog"),
+                                                                                  NULL},
+       {"text",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_general_dialog_text,
+               N_ ("Set the dialog text"),
+               N_ ("TEXT")},
+       {"entry-text",
+               '\0',
+               0,
+               G_OPTION_ARG_STRING,
+               &zenity_entry_entry_text,
+               N_ ("Set the entry text"),
+               N_ ("TEXT")},
+       {"hide-text",
+               '\0',
+               0,
+               G_OPTION_ARG_NONE,
+               &zenity_entry_hide_text,
+               N_ ("Hide the entry text"),
+               NULL},
+       {NULL}};
+
+static GOptionEntry error_options[] = {{"error",
+                                                                                  '\0',
+                                                                                  G_OPTION_FLAG_IN_MAIN,
+                                                                                  G_OPTION_ARG_NONE,
+                                                                                  &zenity_error_active,
+                                                                                  N_ ("Display error 
dialog"),
+                                                                                  NULL},
+       {"text",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_general_dialog_text,
+               N_ ("Set the dialog text"),
+               N_ ("TEXT")},
+       {"icon-name",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_general_dialog_icon,
+               N_ ("Set the dialog icon"),
+               N_ ("ICON-NAME")},
+       {"no-wrap",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_general_dialog_no_wrap,
+               N_ ("Do not enable text wrapping"),
+               NULL},
+       {"no-markup",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_general_dialog_no_markup,
+               N_ ("Do not enable Pango markup")},
+       {"ellipsize",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_general_dialog_ellipsize,
+               N_ ("Enable ellipsizing in the dialog text. This fixes the high window "
+                       "size with long texts")},
+       {NULL}};
+
+static GOptionEntry info_options[] = {{"info",
+                                                                                 '\0',
+                                                                                 G_OPTION_FLAG_IN_MAIN,
+                                                                                 G_OPTION_ARG_NONE,
+                                                                                 &zenity_info_active,
+                                                                                 N_ ("Display info dialog"),
+                                                                                 NULL},
+       {"text",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_general_dialog_text,
+               N_ ("Set the dialog text"),
+               N_ ("TEXT")},
+       {"icon-name",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_general_dialog_icon,
+               N_ ("Set the dialog icon"),
+               N_ ("ICON-NAME")},
+       {"no-wrap",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_general_dialog_no_wrap,
+               N_ ("Do not enable text wrapping"),
+               NULL},
+       {"no-markup",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_general_dialog_no_markup,
+               N_ ("Do not enable Pango markup")},
+       {"ellipsize",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_general_dialog_ellipsize,
+               N_ ("Enable ellipsizing in the dialog text. This fixes the high window "
+                       "size with long texts")},
+       {NULL}};
+
+static GOptionEntry file_selection_options[] =
+       {{"file-selection",
+                '\0',
+                G_OPTION_FLAG_IN_MAIN,
+                G_OPTION_ARG_NONE,
+                &zenity_file_active,
+                N_ ("Display file selection dialog"),
+                NULL},
+               {"filename",
+                       '\0',
+                       G_OPTION_FLAG_NOALIAS,
+                       G_OPTION_ARG_FILENAME,
+                       &zenity_general_uri,
+                       N_ ("Set the filename"),
+                       N_ ("FILENAME")},
+               {"multiple",
+                       '\0',
+                       G_OPTION_FLAG_NOALIAS,
+                       G_OPTION_ARG_NONE,
+                       &zenity_general_multiple,
+                       N_ ("Allow multiple files to be selected"),
+                       NULL},
+               {"directory",
+                       '\0',
+                       0,
+                       G_OPTION_ARG_NONE,
+                       &zenity_file_directory,
+                       N_ ("Activate directory-only selection"),
+                       NULL},
+               {"save",
+                       '\0',
+                       0,
+                       G_OPTION_ARG_NONE,
+                       &zenity_file_save,
+                       N_ ("Activate save mode"),
+                       NULL},
+               {"separator",
+                       '\0',
+                       G_OPTION_FLAG_NOALIAS,
+                       G_OPTION_ARG_STRING,
+                       &zenity_general_separator,
+                       N_ ("Set output separator character"),
+                       N_ ("SEPARATOR")},
+               {"confirm-overwrite",
+                       '\0',
+                       0,
+                       G_OPTION_ARG_NONE,
+                       &zenity_file_confirm_overwrite,
+                       N_ ("Confirm file selection if filename already exists"),
+                       NULL},
+               {
+                       "file-filter",
+                       '\0',
+                       0,
+                       G_OPTION_ARG_STRING_ARRAY,
+                       &zenity_file_filter,
+                       N_ ("Set a filename filter"),
+                       /* Help for file-filter argument (name and patterns for file
+                          selection) */
+                       N_ ("NAME | PATTERN1 PATTERN2 ..."),
+               },
+               {NULL}};
+
+static GOptionEntry list_options[] = {{"list",
+                                                                                 '\0',
+                                                                                 G_OPTION_FLAG_IN_MAIN,
+                                                                                 G_OPTION_ARG_NONE,
+                                                                                 &zenity_list_active,
+                                                                                 N_ ("Display list dialog"),
+                                                                                 NULL},
+       {"text",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_general_dialog_text,
+               N_ ("Set the dialog text"),
+               N_ ("TEXT")},
+       {"column",
+               '\0',
+               0,
+               G_OPTION_ARG_STRING_ARRAY,
+               &zenity_list_columns,
+               N_ ("Set the column header"),
+               N_ ("COLUMN")},
+       {"checklist",
+               '\0',
+               0,
+               G_OPTION_ARG_NONE,
+               &zenity_list_checklist,
+               N_ ("Use check boxes for the first column"),
+               NULL},
+       {"radiolist",
+               '\0',
+               0,
+               G_OPTION_ARG_NONE,
+               &zenity_list_radiolist,
+               N_ ("Use radio buttons for the first column"),
+               NULL},
+       {"imagelist",
+               '\0',
+               0,
+               G_OPTION_ARG_NONE,
+               &zenity_list_imagelist,
+               N_ ("Use an image for the first column"),
+               NULL},
+       {"separator",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_general_separator,
+               N_ ("Set output separator character"),
+               N_ ("SEPARATOR")},
+       {"multiple",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_general_multiple,
+               N_ ("Allow multiple rows to be selected"),
+               NULL},
+       {"editable",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_general_editable,
+               N_ ("Allow changes to text"),
+               NULL},
+       {"print-column",
+               '\0',
+               0,
+               G_OPTION_ARG_STRING,
+               &zenity_list_print_column,
+               N_ ("Print a specific column (Default is 1. 'ALL' can be used to print "
+                       "all columns)"),
+               /* Column index number to print out on a list dialog */
+               N_ ("NUMBER")},
+       {"hide-column",
+               '\0',
+               0,
+               G_OPTION_ARG_STRING,
+               &zenity_list_hide_column,
+               N_ ("Hide a specific column"),
+               N_ ("NUMBER")},
+       {"hide-header",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_list_hide_header,
+               N_ ("Hide the column headers"),
+               NULL},
+       {"mid-search",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_list_mid_search,
+               N_ ("Change list default search function searching for text in the "
+                       "middle, not on the beginning"),
+               NULL},
+       {NULL}};
 
 #ifdef HAVE_LIBNOTIFY
-static GOptionEntry notification_options[] = {
-  {
-    "notification",
-    '\0',
-    G_OPTION_FLAG_IN_MAIN,
-    G_OPTION_ARG_NONE,
-    &zenity_notification_active,
-    N_("Display notification"),
-    NULL
-  },
-  {
-    "text",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_dialog_text,
-    N_("Set the notification text"),
-    N_("TEXT")
-  },
-  {
-    "listen",
-    '\0',
-    0,
-    G_OPTION_ARG_NONE,
-    &zenity_notification_listen,
-    N_("Listen for commands on stdin"),
-    NULL
-  },
-  {
-    "hint",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING_ARRAY,
-    &zenity_notification_hints,
-    N_("Set the notification hints"),
-    N_("TEXT")
-  },
-  { 
-    NULL 
-  }
-};
+static GOptionEntry notification_options[] = {{"notification",
+                                                                                                 '\0',
+                                                                                                 
G_OPTION_FLAG_IN_MAIN,
+                                                                                                 
G_OPTION_ARG_NONE,
+                                                                                                 
&zenity_notification_active,
+                                                                                                 N_ 
("Display notification"),
+                                                                                                 NULL},
+       {"text",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_general_dialog_text,
+               N_ ("Set the notification text"),
+               N_ ("TEXT")},
+       {"listen",
+               '\0',
+               0,
+               G_OPTION_ARG_NONE,
+               &zenity_notification_listen,
+               N_ ("Listen for commands on stdin"),
+               NULL},
+       {"hint",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING_ARRAY,
+               &zenity_notification_hints,
+               N_ ("Set the notification hints"),
+               N_ ("TEXT")},
+       {NULL}};
 
 #endif
 
 static GOptionEntry progress_options[] = {
-  {
-    "progress",
-    '\0',
-    G_OPTION_FLAG_IN_MAIN,
-    G_OPTION_ARG_NONE,
-    &zenity_progress_active,
-    N_("Display progress indication dialog"),
-    NULL
-  },
-  {
-    "text",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_dialog_text,
-    N_("Set the dialog text"),
-    N_("TEXT")
-  },
-  {
-    "percentage",
-    '\0',
-    0,
-    G_OPTION_ARG_INT,
-    &zenity_progress_percentage,
-    N_("Set initial percentage"),
-    N_("PERCENTAGE")
-  },
-  {
-    "pulsate",
-    '\0',
-    0,
-    G_OPTION_ARG_NONE,
-    &zenity_progress_pulsate,
-    N_("Pulsate progress bar"),
-    NULL
-  },
-  {
-    "auto-close",
-    '\0',
-    0,
-    G_OPTION_ARG_NONE,
-    &zenity_progress_auto_close,
-    /* xgettext: no-c-format */
-    N_("Dismiss the dialog when 100% has been reached"),
-    NULL
-  },
-  {
-    "auto-kill",
-    '\0',
-    0,
-    G_OPTION_ARG_NONE,
-    &zenity_progress_auto_kill,
-    N_("Kill parent process if Cancel button is pressed"),
-    NULL
-  },
-  {
-   "no-cancel",
-   '\0',
-   0,
-   G_OPTION_ARG_NONE,
-   &zenity_progress_no_cancel,
-   N_("Hide Cancel button"),
-   NULL
-  },
-  {
-    "time-remaining",
-    '\0',
-    0,
-    G_OPTION_ARG_NONE,
-    &zenity_progress_time_remaining,
-    /* xgettext: no-c-format */
-    N_("Estimate when progress will reach 100%"),
-    NULL
-  },
-  { 
-    NULL 
-  }
-};
-
-static GOptionEntry question_options[] = {
-  {
-    "question",
-    '\0',
-    G_OPTION_FLAG_IN_MAIN,
-    G_OPTION_ARG_NONE,
-    &zenity_question_active,
-    N_("Display question dialog"),
-    NULL
-  },
-  {
-    "text",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_dialog_text,
-    N_("Set the dialog text"),
-    N_("TEXT")
-  },
-  {
-    "icon-name",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_dialog_icon,
-    N_("Set the dialog icon"),
-    N_("ICON-NAME")
-  },
-  {
-    "no-wrap",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_general_dialog_no_wrap,
-    N_("Do not enable text wrapping"),
-    NULL
-  },
-  {
-    "no-markup",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_general_dialog_no_markup,
-    N_("Do not enable Pango markup")
-  },
-  {
-    "default-cancel",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_question_default_cancel,
-    N_("Give Cancel button focus by default"),
-    NULL
-  },
-  {
-       "ellipsize",
-       '\0',
-       G_OPTION_FLAG_NOALIAS,
-       G_OPTION_ARG_NONE,
-       &zenity_general_dialog_ellipsize,
-       N_("Enable ellipsizing in the dialog text. This fixes the high window size with long texts")
-  },
-  {
-    "switch",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_question_switch,
-    N_("Suppress OK and Cancel buttons"),
-    NULL
-  },
-  { 
-    NULL 
-  }
-};
+       {"progress",
+               '\0',
+               G_OPTION_FLAG_IN_MAIN,
+               G_OPTION_ARG_NONE,
+               &zenity_progress_active,
+               N_ ("Display progress indication dialog"),
+               NULL},
+       {"text",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_general_dialog_text,
+               N_ ("Set the dialog text"),
+               N_ ("TEXT")},
+       {"percentage",
+               '\0',
+               0,
+               G_OPTION_ARG_INT,
+               &zenity_progress_percentage,
+               N_ ("Set initial percentage"),
+               N_ ("PERCENTAGE")},
+       {"pulsate",
+               '\0',
+               0,
+               G_OPTION_ARG_NONE,
+               &zenity_progress_pulsate,
+               N_ ("Pulsate progress bar"),
+               NULL},
+       {"auto-close",
+               '\0',
+               0,
+               G_OPTION_ARG_NONE,
+               &zenity_progress_auto_close,
+               /* xgettext: no-c-format */
+               N_ ("Dismiss the dialog when 100% has been reached"),
+               NULL},
+       {"auto-kill",
+               '\0',
+               0,
+               G_OPTION_ARG_NONE,
+               &zenity_progress_auto_kill,
+               N_ ("Kill parent process if Cancel button is pressed"),
+               NULL},
+       {"no-cancel",
+               '\0',
+               0,
+               G_OPTION_ARG_NONE,
+               &zenity_progress_no_cancel,
+               N_ ("Hide Cancel button"),
+               NULL},
+       {"time-remaining",
+               '\0',
+               0,
+               G_OPTION_ARG_NONE,
+               &zenity_progress_time_remaining,
+               /* xgettext: no-c-format */
+               N_ ("Estimate when progress will reach 100%"),
+               NULL},
+       {NULL}};
+
+static GOptionEntry question_options[] = {{"question",
+                                                                                         '\0',
+                                                                                         
G_OPTION_FLAG_IN_MAIN,
+                                                                                         G_OPTION_ARG_NONE,
+                                                                                         
&zenity_question_active,
+                                                                                         N_ ("Display 
question dialog"),
+                                                                                         NULL},
+       {"text",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_general_dialog_text,
+               N_ ("Set the dialog text"),
+               N_ ("TEXT")},
+       {"icon-name",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_general_dialog_icon,
+               N_ ("Set the dialog icon"),
+               N_ ("ICON-NAME")},
+       {"no-wrap",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_general_dialog_no_wrap,
+               N_ ("Do not enable text wrapping"),
+               NULL},
+       {"no-markup",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_general_dialog_no_markup,
+               N_ ("Do not enable Pango markup")},
+       {"default-cancel",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_question_default_cancel,
+               N_ ("Give Cancel button focus by default"),
+               NULL},
+       {"ellipsize",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_general_dialog_ellipsize,
+               N_ ("Enable ellipsizing in the dialog text. This fixes the high window "
+                       "size with long texts")},
+       {"switch",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_question_switch,
+               N_ ("Suppress OK and Cancel buttons"),
+               NULL},
+       {NULL}};
 
 static GOptionEntry text_options[] = {
-  {
-    "text-info",
-    '\0',
-    G_OPTION_FLAG_IN_MAIN,
-    G_OPTION_ARG_NONE,
-    &zenity_text_active,
-    N_("Display text information dialog"),
-    NULL
-  },
-  {
-    "filename",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_FILENAME,
-    &zenity_general_uri,
-    N_("Open file"),
-    N_("FILENAME")
-  },
-  {
-    "editable",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_general_editable,
-    N_("Allow changes to text"),
-    NULL
-  },
-  {
-    "font",
-    '\0',
-    0,
-    G_OPTION_ARG_STRING,
-    &zenity_text_font,
-    N_("Set the text font"),
-    N_("TEXT")
-  },
-  {
-    "checkbox",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_text_checkbox,
-    N_("Enable an I read and agree checkbox"),
-    N_("TEXT")
-  },
+       {"text-info",
+               '\0',
+               G_OPTION_FLAG_IN_MAIN,
+               G_OPTION_ARG_NONE,
+               &zenity_text_active,
+               N_ ("Display text information dialog"),
+               NULL},
+       {"filename",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_FILENAME,
+               &zenity_general_uri,
+               N_ ("Open file"),
+               N_ ("FILENAME")},
+       {"editable",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_general_editable,
+               N_ ("Allow changes to text"),
+               NULL},
+       {"font",
+               '\0',
+               0,
+               G_OPTION_ARG_STRING,
+               &zenity_text_font,
+               N_ ("Set the text font"),
+               N_ ("TEXT")},
+       {"checkbox",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_text_checkbox,
+               N_ ("Enable an I read and agree checkbox"),
+               N_ ("TEXT")},
 #ifdef HAVE_WEBKITGTK
-  {
-    "html",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_text_enable_html,
-    N_("Enable HTML support"),
-    NULL
-  },
-  {
-    "no-interaction",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_text_no_interaction,
-    N_("Do not enable user interaction with the WebView. Only works if you use --html option"),
-    NULL
-  },
-  {
-    "url",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_text_url,
-    N_("Set an URL instead of a file. Only works if you use --html option"),
-    N_("URL")
-  },
+       {"html",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_text_enable_html,
+               N_ ("Enable HTML support"),
+               NULL},
+       {"no-interaction",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_text_no_interaction,
+               N_ ("Do not enable user interaction with the WebView. Only works if "
+                       "you use --html option"),
+               NULL},
+       {"url",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_text_url,
+               N_ ("Set an URL instead of a file. Only works if you use --html "
+                       "option"),
+               N_ ("URL")},
 #endif
-  {
-    "auto-scroll",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_text_auto_scroll,
-    N_("Auto scroll the text to the end. Only when text is captured from stdin"),
-    NULL
-  },
-  { 
-    NULL 
-  }
-};
-
-static GOptionEntry warning_options[] = {
-  {
-    "warning",
-    '\0',
-    G_OPTION_FLAG_IN_MAIN,
-    G_OPTION_ARG_NONE,
-    &zenity_warning_active,
-    N_("Display warning dialog"),
-    NULL
-  },
-  {
-    "text",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_dialog_text,
-    N_("Set the dialog text"),
-    N_("TEXT")
-  },
-  {
-    "icon-name",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_dialog_icon,
-    N_("Set the dialog icon"),
-    N_("ICON-NAME")
-  },
-  {
-    "no-wrap",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_general_dialog_no_wrap,
-    N_("Do not enable text wrapping"),
-    NULL
-  },
-  {
-    "no-markup",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_NONE,
-    &zenity_general_dialog_no_markup,
-    N_("Do not enable Pango markup")
-  },
-  {
-       "ellipsize",
-       '\0',
-       G_OPTION_FLAG_NOALIAS,
-       G_OPTION_ARG_NONE,
-       &zenity_general_dialog_ellipsize,
-       N_("Enable ellipsizing in the dialog text. This fixes the high window size with long texts")
-  },
-  { 
-    NULL 
-  }
-};
-
-static GOptionEntry scale_options[] = {
-  {
-    "scale",
-    '\0',
-    G_OPTION_FLAG_IN_MAIN,
-    G_OPTION_ARG_NONE,
-    &zenity_scale_active,
-    N_("Display scale dialog"),
-    NULL
-  },
-  {
-    "text",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_dialog_text,
-    N_("Set the dialog text"),
-    N_("TEXT")
-  },
-  {
-    "value",
-    '\0',
-    0,
-    G_OPTION_ARG_INT,
-    &zenity_scale_value,
-    N_("Set initial value"),
-    N_("VALUE")
-  },
-  {
-    "min-value",
-    '\0',
-    0,
-    G_OPTION_ARG_INT,
-    &zenity_scale_min_value,
-    N_("Set minimum value"),
-    N_("VALUE")
-  },
-  {
-    "max-value",
-    '\0',
-    0,
-    G_OPTION_ARG_INT,
-    &zenity_scale_max_value,
-    N_("Set maximum value"),
-    N_("VALUE")
-  },
-  {
-    "step",
-    '\0',
-    0,
-    G_OPTION_ARG_INT,
-    &zenity_scale_step,
-    N_("Set step size"),
-    N_("VALUE")
-  },
-  {
-    "print-partial",
-    '\0',
-    0,
-    G_OPTION_ARG_NONE,
-    &zenity_scale_print_partial,
-    N_("Print partial values"),
-    NULL
-  },
-  {
-    "hide-value",
-    '\0',
-    0,
-    G_OPTION_ARG_NONE,
-    &zenity_scale_hide_value,
-    N_("Hide value"),
-    NULL
-  },
-  { 
-    NULL 
-  }
-};
-
-static GOptionEntry forms_dialog_options[] = {
-  {
-    "forms",
-    '\0',
-    G_OPTION_FLAG_IN_MAIN,
-    G_OPTION_ARG_NONE,
-    &zenity_forms_active,
-    N_("Display forms dialog"),
-    NULL
-  },
-  {
-    "add-entry",
-    '\0',
-    0,
-    G_OPTION_ARG_CALLBACK,
-    zenity_forms_callback,
-    N_("Add a new Entry in forms dialog"),
-    N_("Field name")
-  },
-  {
-    "add-password",
-    '\0',
-    0,
-    G_OPTION_ARG_CALLBACK,
-    zenity_forms_callback,
-    N_("Add a new Password Entry in forms dialog"),
-    N_("Field name")
-  },
-  {
-    "add-calendar",
-    '\0',
-    0,
-    G_OPTION_ARG_CALLBACK,
-    zenity_forms_callback,
-    N_("Add a new Calendar in forms dialog"),
-    N_("Calendar field name")
-  },
-  {
-    "add-list",
-    '\0',
-    0,
-    G_OPTION_ARG_CALLBACK,
-    zenity_forms_callback,
-    N_("Add a new List in forms dialog"),
-    N_("List field and header name")
-  },
-  {
-    "list-values",
-    '\0',
-    0,
-    G_OPTION_ARG_STRING_ARRAY,
-    &zenity_forms_list_values,
-    N_("List of values for List"),
-    N_("List of values separated by |")
-  },
-  {
-    "column-values",
-    '\0',
-    0,
-    G_OPTION_ARG_STRING_ARRAY,
-    &zenity_forms_column_values,
-    N_("List of values for columns"),
-    N_("List of values separated by |")
-  },
-  {
-    "add-combo",
-    '\0',
-    0,
-    G_OPTION_ARG_CALLBACK,
-    zenity_forms_callback,
-    N_("Add a new combo box in forms dialog"),
-    N_("Combo box field name")
-  },
-  {
-    "combo-values",
-    '\0',
-    0,
-    G_OPTION_ARG_STRING_ARRAY,
-    &zenity_forms_combo_values,
-    N_("List of values for combo box"),
-    N_("List of values separated by |")
-  },
- /* TODO: Implement how to hide specifc column 
-  {
-    "hide-column",
-    '\0',
-    0,
-    G_OPTION_ARG_STRING,
-    &zenity_forms_hide_column,
-    N_("Hide a specific column"),
-    N_("NUMBER")
-  },*/
-  {
-    "show-header",
-    '\0',
-    0,
-    G_OPTION_ARG_NONE,
-    &zenity_forms_show_header,
-    N_("Show the columns header"),
-    NULL
-  },
-  {
-    "text",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_dialog_text,
-    N_("Set the dialog text"),
-    N_("TEXT")
-  },
-  {
-    "separator",
-    '\0',
-    G_OPTION_FLAG_NOALIAS,
-    G_OPTION_ARG_STRING,
-    &zenity_general_separator,
-    N_("Set output separator character"),
-    N_("SEPARATOR")
-  },
-  {
-    "date-format",
-    '\0',
-    0,
-    G_OPTION_ARG_STRING,
-    &zenity_forms_date_format,
-    N_("Set the format for the returned date"),
-    N_("PATTERN")
-  },
-  {
-    NULL
-  }
-};
+       {"auto-scroll",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_text_auto_scroll,
+               N_ ("Auto scroll the text to the end. Only when text is captured from "
+                       "stdin"),
+               NULL},
+       {NULL}};
+
+static GOptionEntry warning_options[] = {{"warning",
+                                                                                        '\0',
+                                                                                        
G_OPTION_FLAG_IN_MAIN,
+                                                                                        G_OPTION_ARG_NONE,
+                                                                                        
&zenity_warning_active,
+                                                                                        N_ ("Display warning 
dialog"),
+                                                                                        NULL},
+       {"text",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_general_dialog_text,
+               N_ ("Set the dialog text"),
+               N_ ("TEXT")},
+       {"icon-name",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_general_dialog_icon,
+               N_ ("Set the dialog icon"),
+               N_ ("ICON-NAME")},
+       {"no-wrap",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_general_dialog_no_wrap,
+               N_ ("Do not enable text wrapping"),
+               NULL},
+       {"no-markup",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_general_dialog_no_markup,
+               N_ ("Do not enable Pango markup")},
+       {"ellipsize",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_NONE,
+               &zenity_general_dialog_ellipsize,
+               N_ ("Enable ellipsizing in the dialog text. This fixes the high window "
+                       "size with long texts")},
+       {NULL}};
+
+static GOptionEntry scale_options[] = {{"scale",
+                                                                                  '\0',
+                                                                                  G_OPTION_FLAG_IN_MAIN,
+                                                                                  G_OPTION_ARG_NONE,
+                                                                                  &zenity_scale_active,
+                                                                                  N_ ("Display scale 
dialog"),
+                                                                                  NULL},
+       {"text",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_general_dialog_text,
+               N_ ("Set the dialog text"),
+               N_ ("TEXT")},
+       {"value",
+               '\0',
+               0,
+               G_OPTION_ARG_INT,
+               &zenity_scale_value,
+               N_ ("Set initial value"),
+               N_ ("VALUE")},
+       {"min-value",
+               '\0',
+               0,
+               G_OPTION_ARG_INT,
+               &zenity_scale_min_value,
+               N_ ("Set minimum value"),
+               N_ ("VALUE")},
+       {"max-value",
+               '\0',
+               0,
+               G_OPTION_ARG_INT,
+               &zenity_scale_max_value,
+               N_ ("Set maximum value"),
+               N_ ("VALUE")},
+       {"step",
+               '\0',
+               0,
+               G_OPTION_ARG_INT,
+               &zenity_scale_step,
+               N_ ("Set step size"),
+               N_ ("VALUE")},
+       {"print-partial",
+               '\0',
+               0,
+               G_OPTION_ARG_NONE,
+               &zenity_scale_print_partial,
+               N_ ("Print partial values"),
+               NULL},
+       {"hide-value",
+               '\0',
+               0,
+               G_OPTION_ARG_NONE,
+               &zenity_scale_hide_value,
+               N_ ("Hide value"),
+               NULL},
+       {NULL}};
+
+static GOptionEntry forms_dialog_options[] = {{"forms",
+                                                                                                 '\0',
+                                                                                                 
G_OPTION_FLAG_IN_MAIN,
+                                                                                                 
G_OPTION_ARG_NONE,
+                                                                                                 
&zenity_forms_active,
+                                                                                                 N_ 
("Display forms dialog"),
+                                                                                                 NULL},
+       {"add-entry",
+               '\0',
+               0,
+               G_OPTION_ARG_CALLBACK,
+               zenity_forms_callback,
+               N_ ("Add a new Entry in forms dialog"),
+               N_ ("Field name")},
+       {"add-password",
+               '\0',
+               0,
+               G_OPTION_ARG_CALLBACK,
+               zenity_forms_callback,
+               N_ ("Add a new Password Entry in forms dialog"),
+               N_ ("Field name")},
+       {"add-calendar",
+               '\0',
+               0,
+               G_OPTION_ARG_CALLBACK,
+               zenity_forms_callback,
+               N_ ("Add a new Calendar in forms dialog"),
+               N_ ("Calendar field name")},
+       {"add-list",
+               '\0',
+               0,
+               G_OPTION_ARG_CALLBACK,
+               zenity_forms_callback,
+               N_ ("Add a new List in forms dialog"),
+               N_ ("List field and header name")},
+       {"list-values",
+               '\0',
+               0,
+               G_OPTION_ARG_STRING_ARRAY,
+               &zenity_forms_list_values,
+               N_ ("List of values for List"),
+               N_ ("List of values separated by |")},
+       {"column-values",
+               '\0',
+               0,
+               G_OPTION_ARG_STRING_ARRAY,
+               &zenity_forms_column_values,
+               N_ ("List of values for columns"),
+               N_ ("List of values separated by |")},
+       {"add-combo",
+               '\0',
+               0,
+               G_OPTION_ARG_CALLBACK,
+               zenity_forms_callback,
+               N_ ("Add a new combo box in forms dialog"),
+               N_ ("Combo box field name")},
+       {"combo-values",
+               '\0',
+               0,
+               G_OPTION_ARG_STRING_ARRAY,
+               &zenity_forms_combo_values,
+               N_ ("List of values for combo box"),
+               N_ ("List of values separated by |")},
+       /* TODO: Implement how to hide specifc column
+        {
+          "hide-column",
+          '\0',
+          0,
+          G_OPTION_ARG_STRING,
+          &zenity_forms_hide_column,
+          N_("Hide a specific column"),
+          N_("NUMBER")
+        },*/
+       {"show-header",
+               '\0',
+               0,
+               G_OPTION_ARG_NONE,
+               &zenity_forms_show_header,
+               N_ ("Show the columns header"),
+               NULL},
+       {"text",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_general_dialog_text,
+               N_ ("Set the dialog text"),
+               N_ ("TEXT")},
+       {"separator",
+               '\0',
+               G_OPTION_FLAG_NOALIAS,
+               G_OPTION_ARG_STRING,
+               &zenity_general_separator,
+               N_ ("Set output separator character"),
+               N_ ("SEPARATOR")},
+       {"date-format",
+               '\0',
+               0,
+               G_OPTION_ARG_STRING,
+               &zenity_forms_date_format,
+               N_ ("Set the format for the returned date"),
+               N_ ("PATTERN")},
+       {NULL}};
 
 static GOptionEntry password_dialog_options[] = {
-  {
-    "password",
-    '\0',
-    G_OPTION_FLAG_IN_MAIN,
-    G_OPTION_ARG_NONE,
-    &zenity_password_active,
-    N_("Display password dialog"),
-    NULL
-  },
-  {
-    "username",
-    '\0',
-    0,
-    G_OPTION_ARG_NONE,
-    &zenity_password_show_username,
-    N_("Display the username option"),
-    NULL
-  },
-  {
-    NULL
-  } 
-};
+       {"password",
+               '\0',
+               G_OPTION_FLAG_IN_MAIN,
+               G_OPTION_ARG_NONE,
+               &zenity_password_active,
+               N_ ("Display password dialog"),
+               NULL},
+       {"username",
+               '\0',
+               0,
+               G_OPTION_ARG_NONE,
+               &zenity_password_show_username,
+               N_ ("Display the username option"),
+               NULL},
+       {NULL}};
 
 static GOptionEntry color_selection_options[] = {
-  {
-    "color-selection",
-    '\0',
-    G_OPTION_FLAG_IN_MAIN,
-    G_OPTION_ARG_NONE,
-    &zenity_colorsel_active,
-    N_("Display color selection dialog"),
-    NULL
-  },
-  {
-    "color",
-    '\0',
-    0,
-    G_OPTION_ARG_STRING,
-    &zenity_colorsel_color,
-    N_("Set the color"),
-    N_("VALUE")
-  },
-  {
-    "show-palette",
-    '\0',
-    0,
-    G_OPTION_ARG_NONE,
-    &zenity_colorsel_show_palette,
-    N_("Show the palette"),
-    NULL
-  },
-  {
-    NULL
-  }
-};
-
-static GOptionEntry miscellaneous_options[] = {
-  {
-    "about",
-    '\0',
-    0,
-    G_OPTION_ARG_NONE,
-    &zenity_misc_about,
-    N_("About zenity"),
-    NULL
-  },
-  {
-    "version",
-    '\0',
-    0,
-    G_OPTION_ARG_NONE,
-    &zenity_misc_version,
-    N_("Print version"),
-    NULL
-  },
-  { 
-    NULL 
-  }
-};
+       {"color-selection",
+               '\0',
+               G_OPTION_FLAG_IN_MAIN,
+               G_OPTION_ARG_NONE,
+               &zenity_colorsel_active,
+               N_ ("Display color selection dialog"),
+               NULL},
+       {"color",
+               '\0',
+               0,
+               G_OPTION_ARG_STRING,
+               &zenity_colorsel_color,
+               N_ ("Set the color"),
+               N_ ("VALUE")},
+       {"show-palette",
+               '\0',
+               0,
+               G_OPTION_ARG_NONE,
+               &zenity_colorsel_show_palette,
+               N_ ("Show the palette"),
+               NULL},
+       {NULL}};
+
+static GOptionEntry miscellaneous_options[] = {{"about",
+                                                                                                  '\0',
+                                                                                                  0,
+                                                                                                  
G_OPTION_ARG_NONE,
+                                                                                                  
&zenity_misc_about,
+                                                                                                  N_ ("About 
zenity"),
+                                                                                                  NULL},
+       {"version",
+               '\0',
+               0,
+               G_OPTION_ARG_NONE,
+               &zenity_misc_version,
+               N_ ("Print version"),
+               NULL},
+       {NULL}};
 
 static ZenityParsingOptions *results;
 static GOptionContext *ctx;
@@ -1324,1210 +1037,1193 @@ static GOptionContext *ctx;
 static void
 zenity_option_init (void) {
 
-  results = g_new0 (ZenityParsingOptions, 1);
-
-  /* Initialize the various dialog structures */
-  results->mode = MODE_LAST;
-  results->data = g_new0 (ZenityData, 1);
-  results->calendar_data = g_new0 (ZenityCalendarData, 1);
-  results->msg_data = g_new0 (ZenityMsgData, 1);
-  results->scale_data = g_new0 (ZenityScaleData, 1);
-  results->file_data = g_new0 (ZenityFileData, 1);
-  results->entry_data = g_new0 (ZenityEntryData, 1); 
-  results->progress_data = g_new0 (ZenityProgressData, 1); 
-  results->text_data = g_new0 (ZenityTextData, 1);
-  results->tree_data = g_new0 (ZenityTreeData, 1);
+       results = g_new0 (ZenityParsingOptions, 1);
+
+       /* Initialize the various dialog structures */
+       results->mode = MODE_LAST;
+       results->data = g_new0 (ZenityData, 1);
+       results->calendar_data = g_new0 (ZenityCalendarData, 1);
+       results->msg_data = g_new0 (ZenityMsgData, 1);
+       results->scale_data = g_new0 (ZenityScaleData, 1);
+       results->file_data = g_new0 (ZenityFileData, 1);
+       results->entry_data = g_new0 (ZenityEntryData, 1);
+       results->progress_data = g_new0 (ZenityProgressData, 1);
+       results->text_data = g_new0 (ZenityTextData, 1);
+       results->tree_data = g_new0 (ZenityTreeData, 1);
 #ifdef HAVE_LIBNOTIFY
-  results->notification_data = g_new0 (ZenityNotificationData, 1);
+       results->notification_data = g_new0 (ZenityNotificationData, 1);
 #endif
-  results->color_data = g_new0 (ZenityColorData, 1);
-  results->password_data = g_new0 (ZenityPasswordData, 1);
-  results->forms_data = g_new0 (ZenityFormsData, 1);
+       results->color_data = g_new0 (ZenityColorData, 1);
+       results->password_data = g_new0 (ZenityPasswordData, 1);
+       results->forms_data = g_new0 (ZenityFormsData, 1);
 }
 
 void
 zenity_option_free (void) {
-  if (zenity_general_dialog_title)
-    g_free (zenity_general_dialog_title);
-  if (zenity_general_window_icon)
-    g_free (zenity_general_window_icon);
-  if (zenity_general_dialog_text)
-    g_free (zenity_general_dialog_text);
-  if (zenity_general_uri)
-    g_free (zenity_general_uri);
-  g_free (zenity_general_separator);
-  if (zenity_general_ok_button)
-    g_free (zenity_general_ok_button);
-  if (zenity_general_cancel_button)
-    g_free (zenity_general_cancel_button);
-  if (zenity_general_extra_buttons)
-    g_strfreev (zenity_general_extra_buttons);
-    
-  if (zenity_calendar_date_format)
-    g_free (zenity_calendar_date_format);
-
-  if (zenity_forms_date_format)
-    g_free (zenity_forms_date_format);
-  if (zenity_forms_list_values)
-    g_strfreev (zenity_forms_list_values);
-  if (zenity_forms_combo_values)
-    g_strfreev (zenity_forms_combo_values);
-  if (zenity_forms_column_values)
-    g_strfreev (zenity_forms_column_values);
-//  if (zenity_forms_hide_column)
-//    g_free (zenity_forms_hide_column);
-  if (zenity_entry_entry_text)
-    g_free (zenity_entry_entry_text);
-
-  if (zenity_file_filter)
-    g_strfreev (zenity_file_filter);
-
-  if (zenity_list_columns)
-    g_strfreev (zenity_list_columns);
-  if (zenity_list_print_column)
-    g_free (zenity_list_print_column);
-  if (zenity_list_hide_column)
-    g_free (zenity_list_hide_column);
+       if (zenity_general_dialog_title)
+               g_free (zenity_general_dialog_title);
+       if (zenity_general_window_icon)
+               g_free (zenity_general_window_icon);
+       if (zenity_general_dialog_text)
+               g_free (zenity_general_dialog_text);
+       if (zenity_general_uri)
+               g_free (zenity_general_uri);
+       g_free (zenity_general_separator);
+       if (zenity_general_ok_button)
+               g_free (zenity_general_ok_button);
+       if (zenity_general_cancel_button)
+               g_free (zenity_general_cancel_button);
+       if (zenity_general_extra_buttons)
+               g_strfreev (zenity_general_extra_buttons);
+
+       if (zenity_calendar_date_format)
+               g_free (zenity_calendar_date_format);
+
+       if (zenity_forms_date_format)
+               g_free (zenity_forms_date_format);
+       if (zenity_forms_list_values)
+               g_strfreev (zenity_forms_list_values);
+       if (zenity_forms_combo_values)
+               g_strfreev (zenity_forms_combo_values);
+       if (zenity_forms_column_values)
+               g_strfreev (zenity_forms_column_values);
+       //  if (zenity_forms_hide_column)
+       //    g_free (zenity_forms_hide_column);
+       if (zenity_entry_entry_text)
+               g_free (zenity_entry_entry_text);
+
+       if (zenity_file_filter)
+               g_strfreev (zenity_file_filter);
+
+       if (zenity_list_columns)
+               g_strfreev (zenity_list_columns);
+       if (zenity_list_print_column)
+               g_free (zenity_list_print_column);
+       if (zenity_list_hide_column)
+               g_free (zenity_list_hide_column);
 
 #ifdef HAVE_LIBNOTIFY
-  if (zenity_notification_hints)
-    g_strfreev (zenity_notification_hints);
+       if (zenity_notification_hints)
+               g_strfreev (zenity_notification_hints);
 #endif
 
-  if (zenity_text_font)
-    g_free (zenity_text_font);
-  if (zenity_text_checkbox)
-    g_free (zenity_text_checkbox);
+       if (zenity_text_font)
+               g_free (zenity_text_font);
+       if (zenity_text_checkbox)
+               g_free (zenity_text_checkbox);
 
-  if (zenity_colorsel_color)
-    g_free (zenity_colorsel_color);
-  
-  g_option_context_free (ctx);
+       if (zenity_colorsel_color)
+               g_free (zenity_colorsel_color);
+
+       g_option_context_free (ctx);
 }
 
 static void
-zenity_option_set_dialog_mode (gboolean is_active, ZenityDialogMode mode)  
-{
-  if (is_active == TRUE) {
-    if (results->mode == MODE_LAST) 
-      results->mode = mode; 
-    else
-      zenity_option_error (NULL, ERROR_DIALOG);
-  }
+zenity_option_set_dialog_mode (gboolean is_active, ZenityDialogMode mode) {
+       if (is_active == TRUE) {
+               if (results->mode == MODE_LAST)
+                       results->mode = mode;
+               else
+                       zenity_option_error (NULL, ERROR_DIALOG);
+       }
 }
 
 static gchar *
-zenity_option_get_name (GOptionEntry *entries, gpointer arg_data)
-{
-  int i;
-
-  for (i = 1; entries[i].long_name != NULL; i++) {
-    if (entries[i].arg_data == arg_data)
-      return (gchar *) entries[i].long_name;
-  }
-  return NULL;   
+zenity_option_get_name (GOptionEntry *entries, gpointer arg_data) {
+       int i;
+
+       for (i = 1; entries[i].long_name != NULL; i++) {
+               if (entries[i].arg_data == arg_data)
+                       return (gchar *) entries[i].long_name;
+       }
+       return NULL;
 }
 
 /* Forms callback */
 static gboolean
-zenity_forms_callback (const gchar *option_name,
-                       const gchar *value,
-                       gpointer data,
-                       GError **error)
-{
-  ZenityFormsValue *forms_value = g_new0 (ZenityFormsValue, 1);
-
-  forms_value->option_value = g_strdup (value);
-
-  if (g_strcmp0 (option_name, "--add-entry") == 0)
-    forms_value->type = ZENITY_FORMS_ENTRY;
-  else if (g_strcmp0 (option_name, "--add-calendar") == 0)
-    forms_value->type = ZENITY_FORMS_CALENDAR;
-  else if (g_strcmp0 (option_name, "--add-password") == 0)
-    forms_value->type = ZENITY_FORMS_PASSWORD;
-  else if (g_strcmp0 (option_name, "--add-list") == 0)
-    forms_value->type = ZENITY_FORMS_LIST;
-  else if (g_strcmp0 (option_name, "--add-combo") == 0)
-    forms_value->type = ZENITY_FORMS_COMBO;
-
-  results->forms_data->list = g_slist_append(results->forms_data->list, forms_value);
-
-  return TRUE;
+zenity_forms_callback (const gchar *option_name, const gchar *value,
+       gpointer data, GError **error) {
+       ZenityFormsValue *forms_value = g_new0 (ZenityFormsValue, 1);
+
+       forms_value->option_value = g_strdup (value);
+
+       if (g_strcmp0 (option_name, "--add-entry") == 0)
+               forms_value->type = ZENITY_FORMS_ENTRY;
+       else if (g_strcmp0 (option_name, "--add-calendar") == 0)
+               forms_value->type = ZENITY_FORMS_CALENDAR;
+       else if (g_strcmp0 (option_name, "--add-password") == 0)
+               forms_value->type = ZENITY_FORMS_PASSWORD;
+       else if (g_strcmp0 (option_name, "--add-list") == 0)
+               forms_value->type = ZENITY_FORMS_LIST;
+       else if (g_strcmp0 (option_name, "--add-combo") == 0)
+               forms_value->type = ZENITY_FORMS_COMBO;
+
+       results->forms_data->list =
+               g_slist_append (results->forms_data->list, forms_value);
+
+       return TRUE;
 }
 
 /* Error callback */
-static void 
-zenity_option_error_callback (GOptionContext *context,
-                              GOptionGroup   *group,
-                             gpointer        data,
-                             GError        **error)
-{
-  zenity_option_error (NULL, ERROR_SYNTAX);
+static void
+zenity_option_error_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_option_error (NULL, ERROR_SYNTAX);
 }
 
 /* Pre parse callbacks set the default option values */
 
 static gboolean
-zenity_general_pre_callback (GOptionContext *context,
-                            GOptionGroup   *group,
-                            gpointer        data,
-                            GError        **error)
-{
-  zenity_general_dialog_title = NULL;
-  zenity_general_window_icon = NULL;
-  zenity_general_width = -1;
-  zenity_general_height = -1;
-  zenity_general_dialog_text = NULL;
-  zenity_general_separator = g_strdup ("|");
-  zenity_general_multiple = FALSE;
-  zenity_general_editable = FALSE;
-  zenity_general_uri = NULL;
-  zenity_general_ok_button = NULL;
-  zenity_general_cancel_button = NULL;
-  zenity_general_extra_buttons = NULL;
-  zenity_general_dialog_no_wrap = FALSE;
-  zenity_general_dialog_no_markup = FALSE;
-  zenity_general_timeout_delay = -1;
-  zenity_general_modal = FALSE;
-  zenity_general_attach = 0;
-
-  return TRUE;
+zenity_general_pre_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_general_dialog_title = NULL;
+       zenity_general_window_icon = NULL;
+       zenity_general_width = -1;
+       zenity_general_height = -1;
+       zenity_general_dialog_text = NULL;
+       zenity_general_separator = g_strdup ("|");
+       zenity_general_multiple = FALSE;
+       zenity_general_editable = FALSE;
+       zenity_general_uri = NULL;
+       zenity_general_ok_button = NULL;
+       zenity_general_cancel_button = NULL;
+       zenity_general_extra_buttons = NULL;
+       zenity_general_dialog_no_wrap = FALSE;
+       zenity_general_dialog_no_markup = FALSE;
+       zenity_general_timeout_delay = -1;
+       zenity_general_modal = FALSE;
+       zenity_general_attach = 0;
+
+       return TRUE;
 }
 
 static gboolean
-zenity_calendar_pre_callback (GOptionContext *context,
-                             GOptionGroup   *group,
-                             gpointer        data,
-                             GError        **error)
-{
-  zenity_calendar_active = FALSE;
-  zenity_calendar_date_format = NULL; 
-  zenity_calendar_day = -1;
-  zenity_calendar_month = -1;
-  zenity_calendar_year = -1;
-
-  return TRUE;
+zenity_calendar_pre_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_calendar_active = FALSE;
+       zenity_calendar_date_format = NULL;
+       zenity_calendar_day = -1;
+       zenity_calendar_month = -1;
+       zenity_calendar_year = -1;
+
+       return TRUE;
 }
 
 static gboolean
-zenity_entry_pre_callback (GOptionContext *context,
-                          GOptionGroup   *group,
-                          gpointer        data,
-                          GError        **error)
-{
-  zenity_entry_active = FALSE;
-  zenity_entry_entry_text = NULL;
-  zenity_entry_hide_text = FALSE;
-
-  return TRUE;
+zenity_entry_pre_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_entry_active = FALSE;
+       zenity_entry_entry_text = NULL;
+       zenity_entry_hide_text = FALSE;
+
+       return TRUE;
 }
 
 static gboolean
-zenity_error_pre_callback (GOptionContext *context,
-                          GOptionGroup   *group,
-                          gpointer        data,
-                          GError        **error)
-{
-  zenity_error_active = FALSE;
-
-  return TRUE;
+zenity_error_pre_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_error_active = FALSE;
+
+       return TRUE;
 }
 
 static gboolean
-zenity_info_pre_callback (GOptionContext *context,
-                         GOptionGroup   *group,
-                         gpointer        data,
-                         GError        **error)
-{
-  zenity_info_active = FALSE;
-
-  return TRUE;
+zenity_info_pre_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_info_active = FALSE;
+
+       return TRUE;
 }
 
 static gboolean
-zenity_file_pre_callback (GOptionContext *context,
-                         GOptionGroup   *group,
-                         gpointer        data,
-                         GError        **error)
-{
-  zenity_file_active = FALSE;
-  zenity_file_directory = FALSE;
-  zenity_file_save = FALSE;
-  zenity_file_confirm_overwrite = FALSE;
-  zenity_file_filter = NULL;
-
-  return TRUE;
+zenity_file_pre_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_file_active = FALSE;
+       zenity_file_directory = FALSE;
+       zenity_file_save = FALSE;
+       zenity_file_confirm_overwrite = FALSE;
+       zenity_file_filter = NULL;
+
+       return TRUE;
 }
 
 static gboolean
-zenity_list_pre_callback (GOptionContext *context,
-                         GOptionGroup   *group,
-                         gpointer        data,
-                         GError        **error)
-{
-  zenity_list_active = FALSE;
-  zenity_list_columns = NULL;
-  zenity_list_checklist = FALSE;
-  zenity_list_radiolist = FALSE;
-  zenity_list_imagelist = FALSE;
-  zenity_list_hide_header = FALSE;
-  zenity_list_print_column = NULL;
-  zenity_list_hide_column = NULL;
-  zenity_list_mid_search = FALSE;
-
-  return TRUE;
+zenity_list_pre_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_list_active = FALSE;
+       zenity_list_columns = NULL;
+       zenity_list_checklist = FALSE;
+       zenity_list_radiolist = FALSE;
+       zenity_list_imagelist = FALSE;
+       zenity_list_hide_header = FALSE;
+       zenity_list_print_column = NULL;
+       zenity_list_hide_column = NULL;
+       zenity_list_mid_search = FALSE;
+
+       return TRUE;
 }
 
 #ifdef HAVE_LIBNOTIFY
 static gboolean
-zenity_notification_pre_callback (GOptionContext *context,
-                                 GOptionGroup   *group,
-                                 gpointer        data,
-                                 GError        **error)
-{
-  zenity_notification_active = FALSE;
-  zenity_notification_listen = FALSE;
-
-  return TRUE;
+zenity_notification_pre_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_notification_active = FALSE;
+       zenity_notification_listen = FALSE;
+
+       return TRUE;
 }
 #endif
 
 static gboolean
-zenity_progress_pre_callback (GOptionContext *context,
-                             GOptionGroup   *group,
-                             gpointer        data,
-                             GError        **error)
-{
-  zenity_progress_active = FALSE;
-  zenity_progress_percentage = 0;
-  zenity_progress_pulsate = FALSE;
-  zenity_progress_auto_close = FALSE;
-  zenity_progress_auto_kill = FALSE;
-  zenity_progress_no_cancel = FALSE;
-  zenity_progress_time_remaining = FALSE;
-  return TRUE;
+zenity_progress_pre_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_progress_active = FALSE;
+       zenity_progress_percentage = 0;
+       zenity_progress_pulsate = FALSE;
+       zenity_progress_auto_close = FALSE;
+       zenity_progress_auto_kill = FALSE;
+       zenity_progress_no_cancel = FALSE;
+       zenity_progress_time_remaining = FALSE;
+       return TRUE;
 }
 
 static gboolean
-zenity_question_pre_callback (GOptionContext *context,
-                             GOptionGroup   *group,
-                             gpointer        data,
-                             GError        **error)
-{
-  zenity_question_active = FALSE;
-  zenity_question_default_cancel = FALSE;
-  zenity_question_switch = FALSE;
-  return TRUE;
+zenity_question_pre_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_question_active = FALSE;
+       zenity_question_default_cancel = FALSE;
+       zenity_question_switch = FALSE;
+       return TRUE;
 }
 
 static gboolean
-zenity_text_pre_callback (GOptionContext *context,
-                         GOptionGroup   *group,
-                         gpointer        data,
-                         GError        **error)
-{
-  zenity_text_active = FALSE;
-  zenity_text_font = NULL;
-  zenity_text_checkbox = NULL;
-  zenity_text_auto_scroll = FALSE;
+zenity_text_pre_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_text_active = FALSE;
+       zenity_text_font = NULL;
+       zenity_text_checkbox = NULL;
+       zenity_text_auto_scroll = FALSE;
 #ifdef HAVE_WEBKITGTK
-  zenity_text_enable_html = FALSE;
-  zenity_text_no_interaction = FALSE;
-  zenity_text_url = NULL;
+       zenity_text_enable_html = FALSE;
+       zenity_text_no_interaction = FALSE;
+       zenity_text_url = NULL;
 #endif
-  return TRUE;
+       return TRUE;
 }
 
 static gboolean
-zenity_warning_pre_callback (GOptionContext *context,
-                            GOptionGroup   *group,
-                            gpointer        data,
-                            GError        **error)
-{
-  zenity_warning_active = FALSE;
-
-  return TRUE;
+zenity_warning_pre_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_warning_active = FALSE;
+
+       return TRUE;
 }
 
 static gboolean
-zenity_scale_pre_callback (GOptionContext *context,
-                          GOptionGroup   *group,
-                          gpointer        data,
-                          GError        **error)
-{
-  zenity_scale_active = FALSE;
-  zenity_scale_value = 0;
-  zenity_scale_min_value = 0;
-  zenity_scale_max_value = 100;
-  zenity_scale_step = 1;
-  zenity_scale_print_partial = FALSE;
-  zenity_scale_hide_value = FALSE;
-
-  return TRUE;
+zenity_scale_pre_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_scale_active = FALSE;
+       zenity_scale_value = 0;
+       zenity_scale_min_value = 0;
+       zenity_scale_max_value = 100;
+       zenity_scale_step = 1;
+       zenity_scale_print_partial = FALSE;
+       zenity_scale_hide_value = FALSE;
+
+       return TRUE;
 }
 
 static gboolean
-zenity_color_pre_callback (GOptionContext *context,
-                          GOptionGroup   *group,
-                          gpointer        data,
-                          GError        **error)
-{
-  zenity_colorsel_active = FALSE;
-  zenity_colorsel_color = NULL;
-  zenity_colorsel_show_palette = FALSE;
-
-  return TRUE;
+zenity_color_pre_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_colorsel_active = FALSE;
+       zenity_colorsel_color = NULL;
+       zenity_colorsel_show_palette = FALSE;
+
+       return TRUE;
 }
 
 static gboolean
-zenity_password_pre_callback (GOptionContext *context,
-                              GOptionGroup   *group,
-                              gpointer        data,
-                              GError        **error)
-{
-  zenity_password_active = FALSE;
-  zenity_password_show_username = FALSE;
-
-  return TRUE; 
+zenity_password_pre_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_password_active = FALSE;
+       zenity_password_show_username = FALSE;
+
+       return TRUE;
 }
 
 static gboolean
-zenity_forms_pre_callback (GOptionContext *context,
-                           GOptionGroup   *group,
-                           gpointer        data,
-                           GError        **error)
-{
-  zenity_forms_active = FALSE;
-  zenity_forms_show_header = FALSE;
-  zenity_forms_date_format = NULL;
-//  zenity_forms_hide_column = NULL;
-  return TRUE;
+zenity_forms_pre_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_forms_active = FALSE;
+       zenity_forms_show_header = FALSE;
+       zenity_forms_date_format = NULL;
+       //  zenity_forms_hide_column = NULL;
+       return TRUE;
 }
 
 static gboolean
-zenity_misc_pre_callback (GOptionContext *context,
-                         GOptionGroup   *group,
-                         gpointer        data,
-                         GError        **error)
-{
-  zenity_misc_about = FALSE;
-  zenity_misc_version = FALSE;
-
-  return TRUE;
+zenity_misc_pre_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_misc_about = FALSE;
+       zenity_misc_version = FALSE;
+
+       return TRUE;
 }
 
 /* Post parse callbacks assign the option values to
    parsing result and makes some post condition tests */
 
 static gboolean
-zenity_general_post_callback (GOptionContext *context,
-                             GOptionGroup   *group,
-                             gpointer        data,
-                             GError        **error)
-{
-  results->data->dialog_title = zenity_general_dialog_title;
-  results->data->window_icon = zenity_general_window_icon;
-  results->data->width = zenity_general_width;
-  results->data->height = zenity_general_height;
-  results->data->timeout_delay = zenity_general_timeout_delay;
-  results->data->ok_label = zenity_general_ok_button;
-  results->data->cancel_label = zenity_general_cancel_button;
-  results->data->extra_label = zenity_general_extra_buttons;
-  results->data->modal = zenity_general_modal;
-  results->data->attach = zenity_general_attach;
-
-  return TRUE;
+zenity_general_post_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       results->data->dialog_title = zenity_general_dialog_title;
+       results->data->window_icon = zenity_general_window_icon;
+       results->data->width = zenity_general_width;
+       results->data->height = zenity_general_height;
+       results->data->timeout_delay = zenity_general_timeout_delay;
+       results->data->ok_label = zenity_general_ok_button;
+       results->data->cancel_label = zenity_general_cancel_button;
+       results->data->extra_label = zenity_general_extra_buttons;
+       results->data->modal = zenity_general_modal;
+       results->data->attach = zenity_general_attach;
+
+       return TRUE;
 }
 
 static gboolean
-zenity_calendar_post_callback (GOptionContext *context,
-                              GOptionGroup   *group,
-                              gpointer        data,
-                              GError        **error)
-{
-  zenity_option_set_dialog_mode (zenity_calendar_active, MODE_CALENDAR);
-
-  if (results->mode == MODE_CALENDAR) {
-    struct tm *t;
-    time_t current_time;
-
-    time (&current_time);
-    t = localtime (&current_time);
-
-    if (zenity_calendar_day < 0)
-       zenity_calendar_day = t->tm_mday;
-    if (zenity_calendar_month < 0)
-       zenity_calendar_month = t->tm_mon + 1;
-    if (zenity_calendar_year < 0)
-       zenity_calendar_year = t->tm_year + 1900;
-
-    results->calendar_data->dialog_text = zenity_general_dialog_text;
-    results->calendar_data->day = zenity_calendar_day;
-    results->calendar_data->month = zenity_calendar_month;
-    results->calendar_data->year = zenity_calendar_year;
-
-    if (zenity_calendar_date_format)
-      results->calendar_data->date_format = zenity_calendar_date_format;
-    else
-      results->calendar_data->date_format = g_locale_to_utf8 (nl_langinfo (D_FMT), -1, NULL, NULL, NULL);
-
-  } else {
-    if (zenity_calendar_day > -1)
-      zenity_option_error (zenity_option_get_name (calendar_options, &zenity_calendar_day),
-                           ERROR_SUPPORT);
-    
-    if (zenity_calendar_month > -1)
-      zenity_option_error (zenity_option_get_name (calendar_options, &zenity_calendar_month),
-                           ERROR_SUPPORT);
-
-    if (zenity_calendar_year > -1)
-      zenity_option_error (zenity_option_get_name (calendar_options, &zenity_calendar_year),
-                           ERROR_SUPPORT);
-
-    if (zenity_calendar_date_format)
-      zenity_option_error (zenity_option_get_name (calendar_options, &zenity_calendar_date_format),
-                           ERROR_SUPPORT);
-  }
-    
-  return TRUE;
+zenity_calendar_post_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_option_set_dialog_mode (zenity_calendar_active, MODE_CALENDAR);
+
+       if (results->mode == MODE_CALENDAR) {
+               struct tm *t;
+               time_t current_time;
+
+               time (&current_time);
+               t = localtime (&current_time);
+
+               if (zenity_calendar_day < 0)
+                       zenity_calendar_day = t->tm_mday;
+               if (zenity_calendar_month < 0)
+                       zenity_calendar_month = t->tm_mon + 1;
+               if (zenity_calendar_year < 0)
+                       zenity_calendar_year = t->tm_year + 1900;
+
+               results->calendar_data->dialog_text = zenity_general_dialog_text;
+               results->calendar_data->day = zenity_calendar_day;
+               results->calendar_data->month = zenity_calendar_month;
+               results->calendar_data->year = zenity_calendar_year;
+
+               if (zenity_calendar_date_format)
+                       results->calendar_data->date_format = zenity_calendar_date_format;
+               else
+                       results->calendar_data->date_format =
+                               g_locale_to_utf8 (nl_langinfo (D_FMT), -1, NULL, NULL, NULL);
+
+       } else {
+               if (zenity_calendar_day > -1)
+                       zenity_option_error (
+                               zenity_option_get_name (calendar_options, &zenity_calendar_day),
+                               ERROR_SUPPORT);
+
+               if (zenity_calendar_month > -1)
+                       zenity_option_error (zenity_option_get_name (
+                                                                        calendar_options, 
&zenity_calendar_month),
+                               ERROR_SUPPORT);
+
+               if (zenity_calendar_year > -1)
+                       zenity_option_error (zenity_option_get_name (
+                                                                        calendar_options, 
&zenity_calendar_year),
+                               ERROR_SUPPORT);
+
+               if (zenity_calendar_date_format)
+                       zenity_option_error (zenity_option_get_name (calendar_options,
+                                                                        &zenity_calendar_date_format),
+                               ERROR_SUPPORT);
+       }
+
+       return TRUE;
 }
 
 static gboolean
-zenity_entry_post_callback (GOptionContext *context,
-                           GOptionGroup   *group,
-                           gpointer        data,
-                           GError        **error)
-{
-  zenity_option_set_dialog_mode (zenity_entry_active, MODE_ENTRY);
-  
-  if (results->mode == MODE_ENTRY) {
-    results->entry_data->dialog_text = zenity_general_dialog_text;
-    results->entry_data->entry_text = zenity_entry_entry_text;
-    results->entry_data->hide_text= zenity_entry_hide_text;
-  } else {
-    if (zenity_entry_entry_text)
-      zenity_option_error (zenity_option_get_name (entry_options, &zenity_entry_entry_text),
-                           ERROR_SUPPORT);
-    
-    if (zenity_entry_hide_text)
-      zenity_option_error (zenity_option_get_name (entry_options, &zenity_entry_hide_text),
-                           ERROR_SUPPORT);
-  }
-    
-  return TRUE;
+zenity_entry_post_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_option_set_dialog_mode (zenity_entry_active, MODE_ENTRY);
+
+       if (results->mode == MODE_ENTRY) {
+               results->entry_data->dialog_text = zenity_general_dialog_text;
+               results->entry_data->entry_text = zenity_entry_entry_text;
+               results->entry_data->hide_text = zenity_entry_hide_text;
+       } else {
+               if (zenity_entry_entry_text)
+                       zenity_option_error (zenity_option_get_name (
+                                                                        entry_options, 
&zenity_entry_entry_text),
+                               ERROR_SUPPORT);
+
+               if (zenity_entry_hide_text)
+                       zenity_option_error (
+                               zenity_option_get_name (entry_options, &zenity_entry_hide_text),
+                               ERROR_SUPPORT);
+       }
+
+       return TRUE;
 }
 
 static gboolean
-zenity_error_post_callback (GOptionContext *context,
-                           GOptionGroup   *group,
-                           gpointer        data,
-                           GError        **error)
-{
-  zenity_option_set_dialog_mode (zenity_error_active, MODE_ERROR);
-
-  if (results->mode == MODE_ERROR) {
-    results->msg_data->dialog_text = zenity_general_dialog_text;
-    results->msg_data->dialog_icon = zenity_general_dialog_icon;
-    results->msg_data->mode = ZENITY_MSG_ERROR; 
-    results->msg_data->no_wrap = zenity_general_dialog_no_wrap; 
-    results->msg_data->no_markup = zenity_general_dialog_no_markup;
-       results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
-  }
-    
-  return TRUE;
+zenity_error_post_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_option_set_dialog_mode (zenity_error_active, MODE_ERROR);
+
+       if (results->mode == MODE_ERROR) {
+               results->msg_data->dialog_text = zenity_general_dialog_text;
+               results->msg_data->dialog_icon = zenity_general_dialog_icon;
+               results->msg_data->mode = ZENITY_MSG_ERROR;
+               results->msg_data->no_wrap = zenity_general_dialog_no_wrap;
+               results->msg_data->no_markup = zenity_general_dialog_no_markup;
+               results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
+       }
+
+       return TRUE;
 }
 
 static gboolean
-zenity_info_post_callback (GOptionContext *context,
-                          GOptionGroup   *group,
-                          gpointer        data,
-                          GError        **error)
-{
-  zenity_option_set_dialog_mode (zenity_info_active, MODE_INFO);
-
-  if (results->mode == MODE_INFO) {
-    results->msg_data->dialog_text = zenity_general_dialog_text;
-    results->msg_data->dialog_icon = zenity_general_dialog_icon;
-    results->msg_data->mode = ZENITY_MSG_INFO; 
-    results->msg_data->no_wrap = zenity_general_dialog_no_wrap;
-    results->msg_data->no_markup = zenity_general_dialog_no_markup;
-       results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
-  }
-  
-  return TRUE;
+zenity_info_post_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_option_set_dialog_mode (zenity_info_active, MODE_INFO);
+
+       if (results->mode == MODE_INFO) {
+               results->msg_data->dialog_text = zenity_general_dialog_text;
+               results->msg_data->dialog_icon = zenity_general_dialog_icon;
+               results->msg_data->mode = ZENITY_MSG_INFO;
+               results->msg_data->no_wrap = zenity_general_dialog_no_wrap;
+               results->msg_data->no_markup = zenity_general_dialog_no_markup;
+               results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
+       }
+
+       return TRUE;
 }
 
 static gboolean
-zenity_file_post_callback (GOptionContext *context,
-                          GOptionGroup   *group,
-                          gpointer        data,
-                          GError        **error)
-{
-  zenity_option_set_dialog_mode (zenity_file_active, MODE_FILE);
-
-  if (results->mode == MODE_FILE) {
-    results->file_data->uri = zenity_general_uri;
-    results->file_data->multi = zenity_general_multiple;
-    results->file_data->directory = zenity_file_directory;
-    results->file_data->save = zenity_file_save;
-    results->file_data->confirm_overwrite = zenity_file_confirm_overwrite;
-    results->file_data->separator = zenity_general_separator;
-    results->file_data->filter = zenity_file_filter;
-  } else {
-    if (zenity_file_directory)
-      zenity_option_error (zenity_option_get_name (file_selection_options, &zenity_file_directory),
-                           ERROR_SUPPORT);
-
-    if (zenity_file_save)
-      zenity_option_error (zenity_option_get_name (file_selection_options, &zenity_file_save),
-                           ERROR_SUPPORT);
-
-    if (zenity_file_filter)
-      zenity_option_error (zenity_option_get_name (file_selection_options, &zenity_file_filter),
-                           ERROR_SUPPORT);
-  }
-    
-  return TRUE;
+zenity_file_post_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_option_set_dialog_mode (zenity_file_active, MODE_FILE);
+
+       if (results->mode == MODE_FILE) {
+               results->file_data->uri = zenity_general_uri;
+               results->file_data->multi = zenity_general_multiple;
+               results->file_data->directory = zenity_file_directory;
+               results->file_data->save = zenity_file_save;
+               results->file_data->confirm_overwrite = zenity_file_confirm_overwrite;
+               results->file_data->separator = zenity_general_separator;
+               results->file_data->filter = zenity_file_filter;
+       } else {
+               if (zenity_file_directory)
+                       zenity_option_error (zenity_option_get_name (file_selection_options,
+                                                                        &zenity_file_directory),
+                               ERROR_SUPPORT);
+
+               if (zenity_file_save)
+                       zenity_option_error (zenity_option_get_name (
+                                                                        file_selection_options, 
&zenity_file_save),
+                               ERROR_SUPPORT);
+
+               if (zenity_file_filter)
+                       zenity_option_error (zenity_option_get_name (file_selection_options,
+                                                                        &zenity_file_filter),
+                               ERROR_SUPPORT);
+       }
+
+       return TRUE;
 }
 
 static gboolean
-zenity_list_post_callback (GOptionContext *context,
-                          GOptionGroup   *group,
-                          gpointer        data,
-                          GError        **error)
-{
-  int i = 0;
-  gchar *column;
-    
-  zenity_option_set_dialog_mode (zenity_list_active, MODE_LIST);
-
-  if (results->mode == MODE_LIST) {
-    results->tree_data->dialog_text = zenity_general_dialog_text;
-    
-    if (zenity_list_columns) {
-      column = zenity_list_columns[0];
-      while (column != NULL) {
-        results->tree_data->columns = g_slist_append (results->tree_data->columns, column);
-        column = zenity_list_columns[++i]; 
-      }
-    }
-    
-    results->tree_data->checkbox = zenity_list_checklist;
-    results->tree_data->radiobox = zenity_list_radiolist;
-    results->tree_data->imagebox = zenity_list_imagelist;
-    results->tree_data->multi = zenity_general_multiple;
-    results->tree_data->editable = zenity_general_editable;
-    results->tree_data->print_column = zenity_list_print_column;
-    results->tree_data->hide_column = zenity_list_hide_column;
-    results->tree_data->hide_header = zenity_list_hide_header;
-    results->tree_data->separator = zenity_general_separator;
-    results->tree_data->mid_search = zenity_list_mid_search;
-  } else {
-    if (zenity_list_columns)
-      zenity_option_error (zenity_option_get_name (list_options, &zenity_list_columns),
-                           ERROR_SUPPORT);
-
-    if (zenity_list_checklist)
-      zenity_option_error (zenity_option_get_name (list_options, &zenity_list_checklist),
-                           ERROR_SUPPORT);
-
-    if (zenity_list_radiolist)
-      zenity_option_error (zenity_option_get_name (list_options, &zenity_list_radiolist),
-                           ERROR_SUPPORT);
-
-    if (zenity_list_imagelist)
-      zenity_option_error (zenity_option_get_name (list_options, &zenity_list_imagelist), 
-                           ERROR_SUPPORT);
-
-    if (zenity_list_print_column)
-      zenity_option_error (zenity_option_get_name (list_options, &zenity_list_print_column),
-                           ERROR_SUPPORT);
-
-    if (zenity_list_hide_column)
-      zenity_option_error (zenity_option_get_name (list_options, &zenity_list_hide_column),
-                           ERROR_SUPPORT);
-
-    if (zenity_list_hide_header)
-      zenity_option_error (zenity_option_get_name (list_options, &zenity_list_hide_header),
-                           ERROR_SUPPORT);
-    if (zenity_list_mid_search)
-      zenity_option_error (zenity_option_get_name (list_options, &zenity_list_mid_search),
-                           ERROR_SUPPORT);
-  }
-    
-  return TRUE;
+zenity_list_post_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       int i = 0;
+       gchar *column;
+
+       zenity_option_set_dialog_mode (zenity_list_active, MODE_LIST);
+
+       if (results->mode == MODE_LIST) {
+               results->tree_data->dialog_text = zenity_general_dialog_text;
+
+               if (zenity_list_columns) {
+                       column = zenity_list_columns[0];
+                       while (column != NULL) {
+                               results->tree_data->columns =
+                                       g_slist_append (results->tree_data->columns, column);
+                               column = zenity_list_columns[++i];
+                       }
+               }
+
+               results->tree_data->checkbox = zenity_list_checklist;
+               results->tree_data->radiobox = zenity_list_radiolist;
+               results->tree_data->imagebox = zenity_list_imagelist;
+               results->tree_data->multi = zenity_general_multiple;
+               results->tree_data->editable = zenity_general_editable;
+               results->tree_data->print_column = zenity_list_print_column;
+               results->tree_data->hide_column = zenity_list_hide_column;
+               results->tree_data->hide_header = zenity_list_hide_header;
+               results->tree_data->separator = zenity_general_separator;
+               results->tree_data->mid_search = zenity_list_mid_search;
+       } else {
+               if (zenity_list_columns)
+                       zenity_option_error (
+                               zenity_option_get_name (list_options, &zenity_list_columns),
+                               ERROR_SUPPORT);
+
+               if (zenity_list_checklist)
+                       zenity_option_error (
+                               zenity_option_get_name (list_options, &zenity_list_checklist),
+                               ERROR_SUPPORT);
+
+               if (zenity_list_radiolist)
+                       zenity_option_error (
+                               zenity_option_get_name (list_options, &zenity_list_radiolist),
+                               ERROR_SUPPORT);
+
+               if (zenity_list_imagelist)
+                       zenity_option_error (
+                               zenity_option_get_name (list_options, &zenity_list_imagelist),
+                               ERROR_SUPPORT);
+
+               if (zenity_list_print_column)
+                       zenity_option_error (zenity_option_get_name (
+                                                                        list_options, 
&zenity_list_print_column),
+                               ERROR_SUPPORT);
+
+               if (zenity_list_hide_column)
+                       zenity_option_error (
+                               zenity_option_get_name (list_options, &zenity_list_hide_column),
+                               ERROR_SUPPORT);
+
+               if (zenity_list_hide_header)
+                       zenity_option_error (
+                               zenity_option_get_name (list_options, &zenity_list_hide_header),
+                               ERROR_SUPPORT);
+               if (zenity_list_mid_search)
+                       zenity_option_error (
+                               zenity_option_get_name (list_options, &zenity_list_mid_search),
+                               ERROR_SUPPORT);
+       }
+
+       return TRUE;
 }
 
 #ifdef HAVE_LIBNOTIFY
 static gboolean
-zenity_notification_post_callback (GOptionContext *context,
-                                  GOptionGroup   *group,
-                                  gpointer        data,
-                                  GError        **error)
-{
-  zenity_option_set_dialog_mode (zenity_notification_active, MODE_NOTIFICATION);
-
-  if (results->mode == MODE_NOTIFICATION) {
-    results->notification_data->notification_text = zenity_general_dialog_text;
-    results->notification_data->listen = zenity_notification_listen;
-    results->notification_data->notification_hints = zenity_notification_hints;
-  } else {
-    if (zenity_notification_listen)
-      zenity_option_error (zenity_option_get_name (notification_options, &zenity_notification_listen),
-                           ERROR_SUPPORT);
-  }
-
-  return TRUE;
+zenity_notification_post_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_option_set_dialog_mode (
+               zenity_notification_active, MODE_NOTIFICATION);
+
+       if (results->mode == MODE_NOTIFICATION) {
+               results->notification_data->notification_text =
+                       zenity_general_dialog_text;
+               results->notification_data->listen = zenity_notification_listen;
+               results->notification_data->notification_hints =
+                       zenity_notification_hints;
+       } else {
+               if (zenity_notification_listen)
+                       zenity_option_error (zenity_option_get_name (notification_options,
+                                                                        &zenity_notification_listen),
+                               ERROR_SUPPORT);
+       }
+
+       return TRUE;
 }
 #endif
 
 static gboolean
-zenity_progress_post_callback (GOptionContext *context,
-                              GOptionGroup   *group,
-                              gpointer        data,
-                              GError        **error)
-{
-  zenity_option_set_dialog_mode (zenity_progress_active, MODE_PROGRESS);
-  if (results->mode == MODE_PROGRESS) {
-    results->progress_data->dialog_text = zenity_general_dialog_text;
-    results->progress_data->pulsate = zenity_progress_pulsate;
-    results->progress_data->autoclose = zenity_progress_auto_close;
-    results->progress_data->autokill = zenity_progress_auto_kill;
-    results->progress_data->percentage = zenity_progress_percentage;
-    results->progress_data->no_cancel = zenity_progress_no_cancel;
-    results->progress_data->time_remaining = zenity_progress_time_remaining;
-  } else {
-    if (zenity_progress_pulsate)
-      zenity_option_error (zenity_option_get_name (progress_options, &zenity_progress_pulsate),
-                           ERROR_SUPPORT);
-
-    if (zenity_progress_percentage)
-      zenity_option_error (zenity_option_get_name (progress_options, &zenity_progress_percentage),
-                           ERROR_SUPPORT);
-
-    if (zenity_progress_auto_close)
-      zenity_option_error (zenity_option_get_name (progress_options, &zenity_progress_auto_close),
-                           ERROR_SUPPORT);
-                           
-    if (zenity_progress_auto_kill)
-      zenity_option_error (zenity_option_get_name (progress_options, &zenity_progress_auto_kill),
-                           ERROR_SUPPORT);
-
-    if (zenity_progress_no_cancel)
-      zenity_option_error (zenity_option_get_name (progress_options, &zenity_progress_no_cancel),
-                          ERROR_SUPPORT);
-
-    if (zenity_progress_time_remaining)
-      zenity_option_error (zenity_option_get_name (progress_options, &zenity_progress_time_remaining),
-                           ERROR_SUPPORT);
-  }
-    
-  return TRUE;
+zenity_progress_post_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_option_set_dialog_mode (zenity_progress_active, MODE_PROGRESS);
+       if (results->mode == MODE_PROGRESS) {
+               results->progress_data->dialog_text = zenity_general_dialog_text;
+               results->progress_data->pulsate = zenity_progress_pulsate;
+               results->progress_data->autoclose = zenity_progress_auto_close;
+               results->progress_data->autokill = zenity_progress_auto_kill;
+               results->progress_data->percentage = zenity_progress_percentage;
+               results->progress_data->no_cancel = zenity_progress_no_cancel;
+               results->progress_data->time_remaining = zenity_progress_time_remaining;
+       } else {
+               if (zenity_progress_pulsate)
+                       zenity_option_error (zenity_option_get_name (progress_options,
+                                                                        &zenity_progress_pulsate),
+                               ERROR_SUPPORT);
+
+               if (zenity_progress_percentage)
+                       zenity_option_error (zenity_option_get_name (progress_options,
+                                                                        &zenity_progress_percentage),
+                               ERROR_SUPPORT);
+
+               if (zenity_progress_auto_close)
+                       zenity_option_error (zenity_option_get_name (progress_options,
+                                                                        &zenity_progress_auto_close),
+                               ERROR_SUPPORT);
+
+               if (zenity_progress_auto_kill)
+                       zenity_option_error (zenity_option_get_name (progress_options,
+                                                                        &zenity_progress_auto_kill),
+                               ERROR_SUPPORT);
+
+               if (zenity_progress_no_cancel)
+                       zenity_option_error (zenity_option_get_name (progress_options,
+                                                                        &zenity_progress_no_cancel),
+                               ERROR_SUPPORT);
+
+               if (zenity_progress_time_remaining)
+                       zenity_option_error (zenity_option_get_name (progress_options,
+                                                                        &zenity_progress_time_remaining),
+                               ERROR_SUPPORT);
+       }
+
+       return TRUE;
 }
 
 static gboolean
-zenity_question_post_callback (GOptionContext *context,
-                              GOptionGroup   *group,
-                              gpointer        data,
-                              GError        **error)
-{
-  zenity_option_set_dialog_mode (zenity_question_active, MODE_QUESTION);
-  if (results->mode == MODE_QUESTION) {
-    results->msg_data->dialog_text = zenity_general_dialog_text;
-    results->msg_data->dialog_icon = zenity_general_dialog_icon;
-    if(zenity_question_switch)
-      results->msg_data->mode = ZENITY_MSG_SWITCH;
-    else
-      results->msg_data->mode = ZENITY_MSG_QUESTION;
-    results->msg_data->no_wrap = zenity_general_dialog_no_wrap;
-    results->msg_data->no_markup = zenity_general_dialog_no_markup;
-    results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
-    results->msg_data->default_cancel = zenity_question_default_cancel;
-  }
-  if(zenity_question_switch && zenity_general_extra_buttons==NULL)
-    zenity_option_error (zenity_option_get_name (question_options, &zenity_question_switch), ERROR_SYNTAX);
-      
-  return TRUE;
+zenity_question_post_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_option_set_dialog_mode (zenity_question_active, MODE_QUESTION);
+       if (results->mode == MODE_QUESTION) {
+               results->msg_data->dialog_text = zenity_general_dialog_text;
+               results->msg_data->dialog_icon = zenity_general_dialog_icon;
+               if (zenity_question_switch)
+                       results->msg_data->mode = ZENITY_MSG_SWITCH;
+               else
+                       results->msg_data->mode = ZENITY_MSG_QUESTION;
+               results->msg_data->no_wrap = zenity_general_dialog_no_wrap;
+               results->msg_data->no_markup = zenity_general_dialog_no_markup;
+               results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
+               results->msg_data->default_cancel = zenity_question_default_cancel;
+       }
+       if (zenity_question_switch && zenity_general_extra_buttons == NULL)
+               zenity_option_error (
+                       zenity_option_get_name (question_options, &zenity_question_switch),
+                       ERROR_SYNTAX);
+
+       return TRUE;
 }
 
 static gboolean
-zenity_text_post_callback (GOptionContext *context,
-                          GOptionGroup   *group,
-                          gpointer        data,
-                          GError        **error)
-{
-  zenity_option_set_dialog_mode (zenity_text_active, MODE_TEXTINFO);
-
-  if (results->mode == MODE_TEXTINFO) {
-    results->text_data->uri = zenity_general_uri;
-    results->text_data->editable = zenity_general_editable;
-    results->text_data->no_wrap = zenity_general_dialog_no_wrap;
-    results->text_data->font = zenity_text_font;
-    results->text_data->checkbox = zenity_text_checkbox;
-    results->text_data->auto_scroll = zenity_text_auto_scroll;
+zenity_text_post_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_option_set_dialog_mode (zenity_text_active, MODE_TEXTINFO);
+
+       if (results->mode == MODE_TEXTINFO) {
+               results->text_data->uri = zenity_general_uri;
+               results->text_data->editable = zenity_general_editable;
+               results->text_data->no_wrap = zenity_general_dialog_no_wrap;
+               results->text_data->font = zenity_text_font;
+               results->text_data->checkbox = zenity_text_checkbox;
+               results->text_data->auto_scroll = zenity_text_auto_scroll;
 #ifdef HAVE_WEBKITGTK
-    results->text_data->html = zenity_text_enable_html;
-    results->text_data->no_interaction = zenity_text_no_interaction;
-    results->text_data->url = zenity_text_url;
+               results->text_data->html = zenity_text_enable_html;
+               results->text_data->no_interaction = zenity_text_no_interaction;
+               results->text_data->url = zenity_text_url;
 #endif
-  } else {
-    if (zenity_text_font) 
-      zenity_option_error (zenity_option_get_name (text_options, &zenity_text_font),
-                           ERROR_SUPPORT);
+       } else {
+               if (zenity_text_font)
+                       zenity_option_error (
+                               zenity_option_get_name (text_options, &zenity_text_font),
+                               ERROR_SUPPORT);
 #ifdef HAVE_WEBKITGTK
-    if (zenity_text_enable_html)
-      zenity_option_error (zenity_option_get_name (text_options, &zenity_text_enable_html),
-                           ERROR_SUPPORT);
+               if (zenity_text_enable_html)
+                       zenity_option_error (
+                               zenity_option_get_name (text_options, &zenity_text_enable_html),
+                               ERROR_SUPPORT);
 #endif
-  }
-  return TRUE;
+       }
+       return TRUE;
 }
 
 static gboolean
-zenity_warning_post_callback (GOptionContext *context,
-                             GOptionGroup   *group,
-                             gpointer        data,
-                             GError        **error)
-{
-  zenity_option_set_dialog_mode (zenity_warning_active, MODE_WARNING);
-
-  if (results->mode == MODE_WARNING) {
-    results->msg_data->dialog_text = zenity_general_dialog_text;
-    results->msg_data->dialog_icon = zenity_general_dialog_icon;
-    results->msg_data->mode = ZENITY_MSG_WARNING;
-    results->msg_data->no_wrap = zenity_general_dialog_no_wrap;
-    results->msg_data->no_markup = zenity_general_dialog_no_markup;
-       results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
-  }
-
-  return TRUE;
+zenity_warning_post_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_option_set_dialog_mode (zenity_warning_active, MODE_WARNING);
+
+       if (results->mode == MODE_WARNING) {
+               results->msg_data->dialog_text = zenity_general_dialog_text;
+               results->msg_data->dialog_icon = zenity_general_dialog_icon;
+               results->msg_data->mode = ZENITY_MSG_WARNING;
+               results->msg_data->no_wrap = zenity_general_dialog_no_wrap;
+               results->msg_data->no_markup = zenity_general_dialog_no_markup;
+               results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
+       }
+
+       return TRUE;
 }
 
 static gboolean
-zenity_scale_post_callback (GOptionContext *context,
-                           GOptionGroup   *group,
-                           gpointer        data,
-                           GError        **error)
-{
-  zenity_option_set_dialog_mode (zenity_scale_active, MODE_SCALE);
-
-  if (results->mode == MODE_SCALE) {
-    results->scale_data->dialog_text = zenity_general_dialog_text;
-    results->scale_data->value = zenity_scale_value;
-    results->scale_data->min_value = zenity_scale_min_value;
-    results->scale_data->max_value = zenity_scale_max_value;
-    results->scale_data->step = zenity_scale_step;
-    results->scale_data->print_partial = zenity_scale_print_partial;
-    results->scale_data->hide_value = zenity_scale_hide_value;
-  }
-
-  return TRUE;
+zenity_scale_post_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_option_set_dialog_mode (zenity_scale_active, MODE_SCALE);
+
+       if (results->mode == MODE_SCALE) {
+               results->scale_data->dialog_text = zenity_general_dialog_text;
+               results->scale_data->value = zenity_scale_value;
+               results->scale_data->min_value = zenity_scale_min_value;
+               results->scale_data->max_value = zenity_scale_max_value;
+               results->scale_data->step = zenity_scale_step;
+               results->scale_data->print_partial = zenity_scale_print_partial;
+               results->scale_data->hide_value = zenity_scale_hide_value;
+       }
+
+       return TRUE;
 }
 
 static gboolean
-zenity_color_post_callback (GOptionContext *context,
-                           GOptionGroup   *group,
-                           gpointer        data,
-                           GError        **error)
-{
-  zenity_option_set_dialog_mode (zenity_colorsel_active, MODE_COLOR);
-
-  if (results->mode == MODE_COLOR) {
-    results->color_data->color = zenity_colorsel_color;
-    results->color_data->show_palette = zenity_colorsel_show_palette;
-  } else {
-    if (zenity_colorsel_color)
-      zenity_option_error (zenity_option_get_name(color_selection_options, &zenity_colorsel_color),
-                           ERROR_SUPPORT);
-
-    if (zenity_colorsel_show_palette)
-      zenity_option_error (zenity_option_get_name(color_selection_options, &zenity_colorsel_show_palette),
-                           ERROR_SUPPORT);
-  }
-
-  return TRUE;
+zenity_color_post_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_option_set_dialog_mode (zenity_colorsel_active, MODE_COLOR);
+
+       if (results->mode == MODE_COLOR) {
+               results->color_data->color = zenity_colorsel_color;
+               results->color_data->show_palette = zenity_colorsel_show_palette;
+       } else {
+               if (zenity_colorsel_color)
+                       zenity_option_error (
+                               zenity_option_get_name (
+                                       color_selection_options, &zenity_colorsel_color),
+                               ERROR_SUPPORT);
+
+               if (zenity_colorsel_show_palette)
+                       zenity_option_error (
+                               zenity_option_get_name (
+                                       color_selection_options, &zenity_colorsel_show_palette),
+                               ERROR_SUPPORT);
+       }
+
+       return TRUE;
 }
 
 static gboolean
-zenity_forms_post_callback (GOptionContext *context,
-                            GOptionGroup   *group,
-                            gpointer        data,
-                            GError        **error)
-{
-  gchar *values;
-  int i = 0;
-
-  zenity_option_set_dialog_mode (zenity_forms_active, MODE_FORMS);
-  if (results->mode == MODE_FORMS) {
-    results->forms_data->dialog_text = zenity_general_dialog_text;
-    results->forms_data->separator = zenity_general_separator;
-//    results->forms_data->hide_column = zenity_forms_hide_column;
-    results->forms_data->show_header = zenity_forms_show_header;
-
-    if (zenity_forms_list_values) {
-      values = zenity_forms_list_values[0];
-      while (values != NULL) {
-        results->forms_data->list_values = g_slist_append (results->forms_data->list_values, values);
-        values = zenity_forms_list_values[++i];
-      }
-    }
-    if (zenity_forms_column_values) {
-      i = 0;
-      values = zenity_forms_column_values[0];
-      while (values != NULL) {
-        results->forms_data->column_values = g_slist_append (results->forms_data->column_values, values);
-        values = zenity_forms_list_values[++i];
-      }
-    } else
-      results->forms_data->column_values = g_slist_append (NULL, "column");
-
-    if (zenity_forms_combo_values) {
-      i = 0;
-      values = zenity_forms_combo_values[0];
-      while (values != NULL) {
-        results->forms_data->combo_values = g_slist_append (results->forms_data->combo_values, values);
-        values = zenity_forms_combo_values[++i];
-      }
-    }
-    if (zenity_forms_date_format)
-      results->forms_data->date_format = zenity_forms_date_format;
-    else
-      results->forms_data->date_format = g_locale_to_utf8 (nl_langinfo (D_FMT), -1, NULL, NULL, NULL);
-  } else {
-    if (zenity_forms_date_format)
-      zenity_option_error (zenity_option_get_name (forms_dialog_options, &zenity_forms_date_format),
-                           ERROR_SUPPORT);
-    if (zenity_forms_list_values)
-      zenity_option_error (zenity_option_get_name (forms_dialog_options, &zenity_forms_list_values),
-                           ERROR_SUPPORT);
-//    if (zenity_forms_hide_column)
-//      zenity_option_error (zenity_option_get_name (forms_dialog_options, &zenity_forms_hide_column),
-//                          ERROR_SUPPORT);
-    if (zenity_forms_column_values)
-      zenity_option_error (zenity_option_get_name (forms_dialog_options, &zenity_forms_column_values),
-                          ERROR_SUPPORT);
-    if (zenity_forms_combo_values)
-      zenity_option_error (zenity_option_get_name (forms_dialog_options, &zenity_forms_combo_values),
-                          ERROR_SUPPORT);
-    if (zenity_forms_show_header)
-      zenity_option_error (zenity_option_get_name (forms_dialog_options, &zenity_forms_show_header),
-                          ERROR_SUPPORT);
-  }
-
-  return TRUE;
+zenity_forms_post_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       gchar *values;
+       int i = 0;
+
+       zenity_option_set_dialog_mode (zenity_forms_active, MODE_FORMS);
+       if (results->mode == MODE_FORMS) {
+               results->forms_data->dialog_text = zenity_general_dialog_text;
+               results->forms_data->separator = zenity_general_separator;
+               //    results->forms_data->hide_column = zenity_forms_hide_column;
+               results->forms_data->show_header = zenity_forms_show_header;
+
+               if (zenity_forms_list_values) {
+                       values = zenity_forms_list_values[0];
+                       while (values != NULL) {
+                               results->forms_data->list_values =
+                                       g_slist_append (results->forms_data->list_values, values);
+                               values = zenity_forms_list_values[++i];
+                       }
+               }
+               if (zenity_forms_column_values) {
+                       i = 0;
+                       values = zenity_forms_column_values[0];
+                       while (values != NULL) {
+                               results->forms_data->column_values =
+                                       g_slist_append (results->forms_data->column_values, values);
+                               values = zenity_forms_list_values[++i];
+                       }
+               } else
+                       results->forms_data->column_values =
+                               g_slist_append (NULL, "column");
+
+               if (zenity_forms_combo_values) {
+                       i = 0;
+                       values = zenity_forms_combo_values[0];
+                       while (values != NULL) {
+                               results->forms_data->combo_values =
+                                       g_slist_append (results->forms_data->combo_values, values);
+                               values = zenity_forms_combo_values[++i];
+                       }
+               }
+               if (zenity_forms_date_format)
+                       results->forms_data->date_format = zenity_forms_date_format;
+               else
+                       results->forms_data->date_format =
+                               g_locale_to_utf8 (nl_langinfo (D_FMT), -1, NULL, NULL, NULL);
+       } else {
+               if (zenity_forms_date_format)
+                       zenity_option_error (zenity_option_get_name (forms_dialog_options,
+                                                                        &zenity_forms_date_format),
+                               ERROR_SUPPORT);
+               if (zenity_forms_list_values)
+                       zenity_option_error (zenity_option_get_name (forms_dialog_options,
+                                                                        &zenity_forms_list_values),
+                               ERROR_SUPPORT);
+               //    if (zenity_forms_hide_column)
+               //      zenity_option_error (zenity_option_get_name
+               //      (forms_dialog_options, &zenity_forms_hide_column),
+               //                          ERROR_SUPPORT);
+               if (zenity_forms_column_values)
+                       zenity_option_error (zenity_option_get_name (forms_dialog_options,
+                                                                        &zenity_forms_column_values),
+                               ERROR_SUPPORT);
+               if (zenity_forms_combo_values)
+                       zenity_option_error (zenity_option_get_name (forms_dialog_options,
+                                                                        &zenity_forms_combo_values),
+                               ERROR_SUPPORT);
+               if (zenity_forms_show_header)
+                       zenity_option_error (zenity_option_get_name (forms_dialog_options,
+                                                                        &zenity_forms_show_header),
+                               ERROR_SUPPORT);
+       }
+
+       return TRUE;
 }
 
-
 static gboolean
-zenity_password_post_callback (GOptionContext *context,
-                               GOptionGroup   *group,
-                               gpointer        data,
-                               GError        **error)
-{
-  zenity_option_set_dialog_mode (zenity_password_active, MODE_PASSWORD);
-  if (results->mode == MODE_PASSWORD) {
-    results->password_data->username = zenity_password_show_username;
-  } else {
-    if (zenity_password_show_username)
-      zenity_option_error (zenity_option_get_name(password_dialog_options, &zenity_password_show_username),
-                           ERROR_SUPPORT);
-  }
-
-  return TRUE;
+zenity_password_post_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_option_set_dialog_mode (zenity_password_active, MODE_PASSWORD);
+       if (results->mode == MODE_PASSWORD) {
+               results->password_data->username = zenity_password_show_username;
+       } else {
+               if (zenity_password_show_username)
+                       zenity_option_error (
+                               zenity_option_get_name (
+                                       password_dialog_options, &zenity_password_show_username),
+                               ERROR_SUPPORT);
+       }
+
+       return TRUE;
 }
 
 static gboolean
-zenity_misc_post_callback (GOptionContext *context,
-                          GOptionGroup   *group,
-                          gpointer        data,
-                          GError        **error)
-{
-  zenity_option_set_dialog_mode (zenity_misc_about, MODE_ABOUT);
-  zenity_option_set_dialog_mode (zenity_misc_version, MODE_VERSION);
-  
-  return TRUE;
+zenity_misc_post_callback (GOptionContext *context, GOptionGroup *group,
+       gpointer data, GError **error) {
+       zenity_option_set_dialog_mode (zenity_misc_about, MODE_ABOUT);
+       zenity_option_set_dialog_mode (zenity_misc_version, MODE_VERSION);
+
+       return TRUE;
 }
 
 static GOptionContext *
-zenity_create_context (void) 
-{
-  GOptionContext *tmp_ctx;
-  GOptionGroup *a_group;
-
-  tmp_ctx = g_option_context_new(NULL); 
-  
-  /* Adds general option entries */
-  a_group = g_option_group_new("general", 
-                               N_("General options"), 
-                               N_("Show general options"), NULL, NULL);
-  g_option_group_add_entries(a_group, general_options);
-  g_option_group_set_parse_hooks (a_group,
-                    zenity_general_pre_callback, zenity_general_post_callback);
-  g_option_group_set_error_hook (a_group, zenity_option_error_callback);
-  g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
-  g_option_context_add_group(tmp_ctx, a_group);
-  
-  /* Adds calendar option entries */
-  a_group = g_option_group_new("calendar", 
-                               N_("Calendar options"), 
-                               N_("Show calendar options"), NULL, NULL);
-  g_option_group_add_entries(a_group, calendar_options);
-  g_option_group_set_parse_hooks (a_group,
-                    zenity_calendar_pre_callback, zenity_calendar_post_callback);
-  g_option_group_set_error_hook (a_group, zenity_option_error_callback);
-  g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
-  g_option_context_add_group(tmp_ctx, a_group);
-  
-  /* Adds entry option entries */
-  a_group = g_option_group_new("entry", 
-                               N_("Text entry options"), 
-                               N_("Show text entry options"), NULL, NULL);
-  g_option_group_add_entries(a_group, entry_options);
-  g_option_group_set_parse_hooks (a_group,
-                    zenity_entry_pre_callback, zenity_entry_post_callback);
-  g_option_group_set_error_hook (a_group, zenity_option_error_callback);
-  g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
-  g_option_context_add_group(tmp_ctx, a_group);
-  
-  /* Adds error option entries */
-  a_group = g_option_group_new("error", 
-                               N_("Error options"), 
-                               N_("Show error options"), NULL, NULL);
-  g_option_group_add_entries(a_group, error_options);
-  g_option_group_set_parse_hooks (a_group,
-                    zenity_error_pre_callback, zenity_error_post_callback);
-  g_option_group_set_error_hook (a_group, zenity_option_error_callback);
-  g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
-  g_option_context_add_group(tmp_ctx, a_group);
-  
-  /* Adds info option entries */
-  a_group = g_option_group_new("info", 
-                               N_("Info options"), 
-                               N_("Show info options"), NULL, NULL);
-  g_option_group_add_entries(a_group, info_options);
-  g_option_group_set_parse_hooks (a_group,
-                    zenity_info_pre_callback, zenity_info_post_callback);
-  g_option_group_set_error_hook (a_group, zenity_option_error_callback);
-  g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
-  g_option_context_add_group(tmp_ctx, a_group);
-  
-  /* Adds file selection option entries */
-  a_group = g_option_group_new("file-selection", 
-                               N_("File selection options"), 
-                               N_("Show file selection options"), NULL, NULL);
-  g_option_group_add_entries(a_group, file_selection_options);
-  g_option_group_set_parse_hooks (a_group,
-                    zenity_file_pre_callback, zenity_file_post_callback);
-  g_option_group_set_error_hook (a_group, zenity_option_error_callback);
-  g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
-  g_option_context_add_group(tmp_ctx, a_group);
-  
-  /* Adds list option entries */
-  a_group = g_option_group_new("list", 
-                               N_("List options"), 
-                               N_("Show list options"), NULL, NULL);
-  g_option_group_add_entries(a_group, list_options);
-  g_option_group_set_parse_hooks (a_group,
-                    zenity_list_pre_callback, zenity_list_post_callback);
-  g_option_group_set_error_hook (a_group, zenity_option_error_callback);
-  g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
-  g_option_context_add_group(tmp_ctx, a_group);
- 
-#ifdef HAVE_LIBNOTIFY 
-  /* Adds notification option entries */
-  a_group = g_option_group_new("notification", 
-                               N_("Notification icon options"), 
-                               N_("Show notification icon options"), NULL, NULL);
-  g_option_group_add_entries(a_group, notification_options);
-  g_option_group_set_parse_hooks (a_group,
-                    zenity_notification_pre_callback, zenity_notification_post_callback);
-  g_option_group_set_error_hook (a_group, zenity_option_error_callback);
-  g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
-  g_option_context_add_group(tmp_ctx, a_group);
+zenity_create_context (void) {
+       GOptionContext *tmp_ctx;
+       GOptionGroup *a_group;
+
+       tmp_ctx = g_option_context_new (NULL);
+
+       /* Adds general option entries */
+       a_group = g_option_group_new ("general",
+               N_ ("General options"),
+               N_ ("Show general options"),
+               NULL,
+               NULL);
+       g_option_group_add_entries (a_group, general_options);
+       g_option_group_set_parse_hooks (
+               a_group, zenity_general_pre_callback, zenity_general_post_callback);
+       g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+       g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+       g_option_context_add_group (tmp_ctx, a_group);
+
+       /* Adds calendar option entries */
+       a_group = g_option_group_new ("calendar",
+               N_ ("Calendar options"),
+               N_ ("Show calendar options"),
+               NULL,
+               NULL);
+       g_option_group_add_entries (a_group, calendar_options);
+       g_option_group_set_parse_hooks (
+               a_group, zenity_calendar_pre_callback, zenity_calendar_post_callback);
+       g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+       g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+       g_option_context_add_group (tmp_ctx, a_group);
+
+       /* Adds entry option entries */
+       a_group = g_option_group_new ("entry",
+               N_ ("Text entry options"),
+               N_ ("Show text entry options"),
+               NULL,
+               NULL);
+       g_option_group_add_entries (a_group, entry_options);
+       g_option_group_set_parse_hooks (
+               a_group, zenity_entry_pre_callback, zenity_entry_post_callback);
+       g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+       g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+       g_option_context_add_group (tmp_ctx, a_group);
+
+       /* Adds error option entries */
+       a_group = g_option_group_new (
+               "error", N_ ("Error options"), N_ ("Show error options"), NULL, NULL);
+       g_option_group_add_entries (a_group, error_options);
+       g_option_group_set_parse_hooks (
+               a_group, zenity_error_pre_callback, zenity_error_post_callback);
+       g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+       g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+       g_option_context_add_group (tmp_ctx, a_group);
+
+       /* Adds info option entries */
+       a_group = g_option_group_new (
+               "info", N_ ("Info options"), N_ ("Show info options"), NULL, NULL);
+       g_option_group_add_entries (a_group, info_options);
+       g_option_group_set_parse_hooks (
+               a_group, zenity_info_pre_callback, zenity_info_post_callback);
+       g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+       g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+       g_option_context_add_group (tmp_ctx, a_group);
+
+       /* Adds file selection option entries */
+       a_group = g_option_group_new ("file-selection",
+               N_ ("File selection options"),
+               N_ ("Show file selection options"),
+               NULL,
+               NULL);
+       g_option_group_add_entries (a_group, file_selection_options);
+       g_option_group_set_parse_hooks (
+               a_group, zenity_file_pre_callback, zenity_file_post_callback);
+       g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+       g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+       g_option_context_add_group (tmp_ctx, a_group);
+
+       /* Adds list option entries */
+       a_group = g_option_group_new (
+               "list", N_ ("List options"), N_ ("Show list options"), NULL, NULL);
+       g_option_group_add_entries (a_group, list_options);
+       g_option_group_set_parse_hooks (
+               a_group, zenity_list_pre_callback, zenity_list_post_callback);
+       g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+       g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+       g_option_context_add_group (tmp_ctx, a_group);
+
+#ifdef HAVE_LIBNOTIFY
+       /* Adds notification option entries */
+       a_group = g_option_group_new ("notification",
+               N_ ("Notification icon options"),
+               N_ ("Show notification icon options"),
+               NULL,
+               NULL);
+       g_option_group_add_entries (a_group, notification_options);
+       g_option_group_set_parse_hooks (a_group,
+               zenity_notification_pre_callback,
+               zenity_notification_post_callback);
+       g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+       g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+       g_option_context_add_group (tmp_ctx, a_group);
 #endif
-  
-  /* Adds progress option entries */
-  a_group = g_option_group_new("progress", 
-                               N_("Progress options"), 
-                               N_("Show progress options"), NULL, NULL);
-  g_option_group_add_entries(a_group, progress_options);
-  g_option_group_set_parse_hooks (a_group,
-                    zenity_progress_pre_callback, zenity_progress_post_callback);
-  g_option_group_set_error_hook (a_group, zenity_option_error_callback);
-  g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
-  g_option_context_add_group(tmp_ctx, a_group);
-  
-  /* Adds question option entries */
-  a_group = g_option_group_new("question", 
-                               N_("Question options"), 
-                               N_("Show question options"), NULL, NULL);
-  g_option_group_add_entries(a_group, question_options);
-  g_option_group_set_parse_hooks (a_group,
-                    zenity_question_pre_callback, zenity_question_post_callback);
-  g_option_group_set_error_hook (a_group, zenity_option_error_callback);
-  g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
-  g_option_context_add_group(tmp_ctx, a_group);
-  
-  /* Adds warning option entries */
-  a_group = g_option_group_new("warning", 
-                               N_("Warning options"), 
-                               N_("Show warning options"), NULL, NULL);
-  g_option_group_add_entries(a_group, warning_options);
-  g_option_group_set_parse_hooks (a_group,
-                    zenity_warning_pre_callback, zenity_warning_post_callback);
-  g_option_group_set_error_hook (a_group, zenity_option_error_callback);
-  g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
-  g_option_context_add_group(tmp_ctx, a_group);
-  
-  /* Adds scale option entries */
-  a_group = g_option_group_new("scale", 
-                               N_("Scale options"), 
-                               N_("Show scale options"), NULL, NULL);
-  g_option_group_add_entries(a_group, scale_options);
-  g_option_group_set_parse_hooks (a_group,
-                    zenity_scale_pre_callback, zenity_scale_post_callback);
-  g_option_group_set_error_hook (a_group, zenity_option_error_callback);
-  g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
-  g_option_context_add_group(tmp_ctx, a_group);
-  
-  /* Adds text option entries */
-  a_group = g_option_group_new("text-info", 
-                               N_("Text information options"), 
-                               N_("Show text information options"), NULL, NULL);
-  g_option_group_add_entries(a_group, text_options);
-  g_option_group_set_parse_hooks (a_group,
-                    zenity_text_pre_callback, zenity_text_post_callback);
-  g_option_group_set_error_hook (a_group, zenity_option_error_callback);
-  g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
-  g_option_context_add_group(tmp_ctx, a_group);
-  
-  /* Adds color selection option entries */
-  a_group = g_option_group_new("color-selection",
-                               N_("Color selection options"),
-                               N_("Show color selection options"), NULL, NULL);
-  g_option_group_add_entries(a_group, color_selection_options);
-  g_option_group_set_parse_hooks (a_group,
-                    zenity_color_pre_callback, zenity_color_post_callback);
-  g_option_group_set_error_hook (a_group, zenity_option_error_callback);
-  g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
-  g_option_context_add_group(tmp_ctx, a_group);
-
-  /* Adds password dialog option entries */
-  a_group = g_option_group_new("password",
-                               N_("Password dialog options"),
-                               N_("Show password dialog options"), NULL, NULL);
-  g_option_group_add_entries (a_group, password_dialog_options);
-  g_option_group_set_parse_hooks (a_group,
-                    zenity_password_pre_callback, zenity_password_post_callback);
-  g_option_group_set_error_hook (a_group, zenity_option_error_callback);
-  g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
-  g_option_context_add_group(tmp_ctx, a_group);
-
-  /* Adds forms dialog option entries */
-  a_group = g_option_group_new("forms",
-                               N_("Forms dialog options"),
-                               N_("Show forms dialog options"), NULL, NULL);
-  g_option_group_add_entries (a_group, forms_dialog_options);
-  g_option_group_set_parse_hooks (a_group,
-                    zenity_forms_pre_callback, zenity_forms_post_callback);
-  g_option_group_set_error_hook (a_group, zenity_option_error_callback);
-  g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
-  g_option_context_add_group(tmp_ctx, a_group);
-
-  /* Adds misc option entries */
-  a_group = g_option_group_new("misc", 
-                               N_("Miscellaneous options"), 
-                               N_("Show miscellaneous options"), NULL, NULL);
-  g_option_group_add_entries(a_group, miscellaneous_options);
-  g_option_group_set_parse_hooks (a_group,
-                    zenity_misc_pre_callback, zenity_misc_post_callback);
-  g_option_group_set_error_hook (a_group, zenity_option_error_callback);
-  g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
-  g_option_context_add_group(tmp_ctx, a_group);
-  
-  /* Adds gtk option entries */
-  a_group = gtk_get_option_group(TRUE);
-  g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
-  g_option_context_add_group(tmp_ctx, a_group);
-  
-  /* Enable help options */
-  g_option_context_set_help_enabled (tmp_ctx, TRUE);
-  g_option_context_set_ignore_unknown_options (tmp_ctx, FALSE);
-
-  return tmp_ctx;
+
+       /* Adds progress option entries */
+       a_group = g_option_group_new ("progress",
+               N_ ("Progress options"),
+               N_ ("Show progress options"),
+               NULL,
+               NULL);
+       g_option_group_add_entries (a_group, progress_options);
+       g_option_group_set_parse_hooks (
+               a_group, zenity_progress_pre_callback, zenity_progress_post_callback);
+       g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+       g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+       g_option_context_add_group (tmp_ctx, a_group);
+
+       /* Adds question option entries */
+       a_group = g_option_group_new ("question",
+               N_ ("Question options"),
+               N_ ("Show question options"),
+               NULL,
+               NULL);
+       g_option_group_add_entries (a_group, question_options);
+       g_option_group_set_parse_hooks (
+               a_group, zenity_question_pre_callback, zenity_question_post_callback);
+       g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+       g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+       g_option_context_add_group (tmp_ctx, a_group);
+
+       /* Adds warning option entries */
+       a_group = g_option_group_new ("warning",
+               N_ ("Warning options"),
+               N_ ("Show warning options"),
+               NULL,
+               NULL);
+       g_option_group_add_entries (a_group, warning_options);
+       g_option_group_set_parse_hooks (
+               a_group, zenity_warning_pre_callback, zenity_warning_post_callback);
+       g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+       g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+       g_option_context_add_group (tmp_ctx, a_group);
+
+       /* Adds scale option entries */
+       a_group = g_option_group_new (
+               "scale", N_ ("Scale options"), N_ ("Show scale options"), NULL, NULL);
+       g_option_group_add_entries (a_group, scale_options);
+       g_option_group_set_parse_hooks (
+               a_group, zenity_scale_pre_callback, zenity_scale_post_callback);
+       g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+       g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+       g_option_context_add_group (tmp_ctx, a_group);
+
+       /* Adds text option entries */
+       a_group = g_option_group_new ("text-info",
+               N_ ("Text information options"),
+               N_ ("Show text information options"),
+               NULL,
+               NULL);
+       g_option_group_add_entries (a_group, text_options);
+       g_option_group_set_parse_hooks (
+               a_group, zenity_text_pre_callback, zenity_text_post_callback);
+       g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+       g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+       g_option_context_add_group (tmp_ctx, a_group);
+
+       /* Adds color selection option entries */
+       a_group = g_option_group_new ("color-selection",
+               N_ ("Color selection options"),
+               N_ ("Show color selection options"),
+               NULL,
+               NULL);
+       g_option_group_add_entries (a_group, color_selection_options);
+       g_option_group_set_parse_hooks (
+               a_group, zenity_color_pre_callback, zenity_color_post_callback);
+       g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+       g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+       g_option_context_add_group (tmp_ctx, a_group);
+
+       /* Adds password dialog option entries */
+       a_group = g_option_group_new ("password",
+               N_ ("Password dialog options"),
+               N_ ("Show password dialog options"),
+               NULL,
+               NULL);
+       g_option_group_add_entries (a_group, password_dialog_options);
+       g_option_group_set_parse_hooks (
+               a_group, zenity_password_pre_callback, zenity_password_post_callback);
+       g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+       g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+       g_option_context_add_group (tmp_ctx, a_group);
+
+       /* Adds forms dialog option entries */
+       a_group = g_option_group_new ("forms",
+               N_ ("Forms dialog options"),
+               N_ ("Show forms dialog options"),
+               NULL,
+               NULL);
+       g_option_group_add_entries (a_group, forms_dialog_options);
+       g_option_group_set_parse_hooks (
+               a_group, zenity_forms_pre_callback, zenity_forms_post_callback);
+       g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+       g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+       g_option_context_add_group (tmp_ctx, a_group);
+
+       /* Adds misc option entries */
+       a_group = g_option_group_new ("misc",
+               N_ ("Miscellaneous options"),
+               N_ ("Show miscellaneous options"),
+               NULL,
+               NULL);
+       g_option_group_add_entries (a_group, miscellaneous_options);
+       g_option_group_set_parse_hooks (
+               a_group, zenity_misc_pre_callback, zenity_misc_post_callback);
+       g_option_group_set_error_hook (a_group, zenity_option_error_callback);
+       g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+       g_option_context_add_group (tmp_ctx, a_group);
+
+       /* Adds gtk option entries */
+       a_group = gtk_get_option_group (TRUE);
+       g_option_group_set_translation_domain (a_group, GETTEXT_PACKAGE);
+       g_option_context_add_group (tmp_ctx, a_group);
+
+       /* Enable help options */
+       g_option_context_set_help_enabled (tmp_ctx, TRUE);
+       g_option_context_set_ignore_unknown_options (tmp_ctx, FALSE);
+
+       return tmp_ctx;
 }
 
 void
-zenity_option_error (gchar *string, ZenityError error)
-{
-  switch (error) {
-    case ERROR_SYNTAX:
-      g_printerr (_("This option is not available. Please see --help for all possible usages.\n"));
-      zenity_option_free ();
-      exit (-1);
-    case ERROR_SUPPORT:
-      g_printerr (_("--%s is not supported for this dialog\n"), string);
-      zenity_option_free ();
-      exit (-1);
-    case ERROR_DIALOG:
-      g_printerr (_("Two or more dialog options specified\n"));
-      zenity_option_free ();
-      exit (-1);
-    default:
-      return;
-  }
+zenity_option_error (gchar *string, ZenityError error) {
+       switch (error) {
+               case ERROR_SYNTAX:
+                       g_printerr (_ ("This option is not available. Please see --help "
+                                                  "for all possible usages.\n"));
+                       zenity_option_free ();
+                       exit (-1);
+               case ERROR_SUPPORT:
+                       g_printerr (_ ("--%s is not supported for this dialog\n"), string);
+                       zenity_option_free ();
+                       exit (-1);
+               case ERROR_DIALOG:
+                       g_printerr (_ ("Two or more dialog options specified\n"));
+                       zenity_option_free ();
+                       exit (-1);
+               default:
+                       return;
+       }
 }
 
 ZenityParsingOptions *
-zenity_option_parse (gint argc, gchar **argv) 
-{
-  GError *error = NULL;
-
-  zenity_option_init ();
-
-  ctx = zenity_create_context ();
-  
-  g_option_context_parse (ctx, &argc, &argv, &error);
-
-  /* Some option pointer a shared among more than one group and don't
-     have their post condition tested. This test is done here. */
-  
-  if (zenity_general_dialog_text)
-    if (results->mode == MODE_ABOUT || results->mode == MODE_VERSION)
-      zenity_option_error (zenity_option_get_name (calendar_options, &zenity_general_dialog_text), 
ERROR_SUPPORT);
-  
-  if (strcmp (zenity_general_separator, "|") != 0)
-    if (results->mode != MODE_LIST && results->mode != MODE_FILE && results->mode != MODE_FORMS)
-      zenity_option_error (zenity_option_get_name (list_options, &zenity_general_separator), ERROR_SUPPORT);
-  
-  if (zenity_general_multiple)
-    if (results->mode != MODE_FILE && results->mode != MODE_LIST)
-      zenity_option_error (zenity_option_get_name (list_options, &zenity_general_multiple), ERROR_SUPPORT);
-
-  if (zenity_general_editable)
-    if (results->mode != MODE_TEXTINFO && results->mode != MODE_LIST)
-      zenity_option_error (zenity_option_get_name (list_options, &zenity_general_editable), ERROR_SUPPORT);
-
-  if (zenity_general_uri)
-    if (results->mode != MODE_FILE && results->mode != MODE_TEXTINFO)
-      zenity_option_error (zenity_option_get_name (text_options, &zenity_general_uri), ERROR_SUPPORT);
-  
-  if (zenity_general_ok_button)
-    if(results->mode == MODE_FILE)
-      zenity_option_error (zenity_option_get_name (general_options, &zenity_general_ok_button), 
ERROR_SUPPORT);
-  
-  if (zenity_general_cancel_button)
-    if(results->mode == MODE_FILE || results->mode == MODE_ERROR || results->mode == MODE_WARNING || 
results->mode == MODE_INFO)
-      zenity_option_error (zenity_option_get_name (general_options, &zenity_general_cancel_button), 
ERROR_SUPPORT);
-  
-  if (zenity_general_dialog_no_wrap)
-    if (results->mode != MODE_INFO && results->mode != MODE_ERROR && results->mode != MODE_QUESTION && 
results->mode != MODE_WARNING && results->mode != MODE_TEXTINFO)
-      zenity_option_error (zenity_option_get_name (text_options, &zenity_general_dialog_no_wrap), 
ERROR_SUPPORT);
-
-  if (zenity_general_dialog_ellipsize)
-    if (results->mode != MODE_INFO && results->mode != MODE_ERROR && results->mode != MODE_QUESTION && 
results->mode != MODE_WARNING)
-      zenity_option_error (zenity_option_get_name (text_options, &zenity_general_dialog_ellipsize), 
ERROR_SUPPORT);
-
-
-  return results; 
+zenity_option_parse (gint argc, gchar **argv) {
+       GError *error = NULL;
+
+       zenity_option_init ();
+
+       ctx = zenity_create_context ();
+
+       g_option_context_parse (ctx, &argc, &argv, &error);
+
+       /* Some option pointer a shared among more than one group and don't
+          have their post condition tested. This test is done here. */
+
+       if (zenity_general_dialog_text)
+               if (results->mode == MODE_ABOUT || results->mode == MODE_VERSION)
+                       zenity_option_error (zenity_option_get_name (calendar_options,
+                                                                        &zenity_general_dialog_text),
+                               ERROR_SUPPORT);
+
+       if (strcmp (zenity_general_separator, "|") != 0)
+               if (results->mode != MODE_LIST && results->mode != MODE_FILE &&
+                       results->mode != MODE_FORMS)
+                       zenity_option_error (zenity_option_get_name (
+                                                                        list_options, 
&zenity_general_separator),
+                               ERROR_SUPPORT);
+
+       if (zenity_general_multiple)
+               if (results->mode != MODE_FILE && results->mode != MODE_LIST)
+                       zenity_option_error (
+                               zenity_option_get_name (list_options, &zenity_general_multiple),
+                               ERROR_SUPPORT);
+
+       if (zenity_general_editable)
+               if (results->mode != MODE_TEXTINFO && results->mode != MODE_LIST)
+                       zenity_option_error (
+                               zenity_option_get_name (list_options, &zenity_general_editable),
+                               ERROR_SUPPORT);
+
+       if (zenity_general_uri)
+               if (results->mode != MODE_FILE && results->mode != MODE_TEXTINFO)
+                       zenity_option_error (
+                               zenity_option_get_name (text_options, &zenity_general_uri),
+                               ERROR_SUPPORT);
+
+       if (zenity_general_ok_button)
+               if (results->mode == MODE_FILE)
+                       zenity_option_error (zenity_option_get_name (general_options,
+                                                                        &zenity_general_ok_button),
+                               ERROR_SUPPORT);
+
+       if (zenity_general_cancel_button)
+               if (results->mode == MODE_FILE || results->mode == MODE_ERROR ||
+                       results->mode == MODE_WARNING || results->mode == MODE_INFO)
+                       zenity_option_error (zenity_option_get_name (general_options,
+                                                                        &zenity_general_cancel_button),
+                               ERROR_SUPPORT);
+
+       if (zenity_general_dialog_no_wrap)
+               if (results->mode != MODE_INFO && results->mode != MODE_ERROR &&
+                       results->mode != MODE_QUESTION && results->mode != MODE_WARNING &&
+                       results->mode != MODE_TEXTINFO)
+                       zenity_option_error (zenity_option_get_name (text_options,
+                                                                        &zenity_general_dialog_no_wrap),
+                               ERROR_SUPPORT);
+
+       if (zenity_general_dialog_ellipsize)
+               if (results->mode != MODE_INFO && results->mode != MODE_ERROR &&
+                       results->mode != MODE_QUESTION && results->mode != MODE_WARNING)
+                       zenity_option_error (zenity_option_get_name (text_options,
+                                                                        &zenity_general_dialog_ellipsize),
+                               ERROR_SUPPORT);
+
+       return results;
 }
diff --git a/src/option.h b/src/option.h
index d77c563..b495e0e 100644
--- a/src/option.h
+++ b/src/option.h
@@ -31,61 +31,59 @@
 #endif
 
 typedef enum {
-  MODE_CALENDAR,
-  MODE_ENTRY,
-  MODE_ERROR,
-  MODE_FILE,
-  MODE_LIST,
-  MODE_PROGRESS,
-  MODE_QUESTION,
-  MODE_TEXTINFO,
-  MODE_WARNING,
-  MODE_SCALE,
-  MODE_INFO,
+       MODE_CALENDAR,
+       MODE_ENTRY,
+       MODE_ERROR,
+       MODE_FILE,
+       MODE_LIST,
+       MODE_PROGRESS,
+       MODE_QUESTION,
+       MODE_TEXTINFO,
+       MODE_WARNING,
+       MODE_SCALE,
+       MODE_INFO,
 #ifdef HAVE_LIBNOTIFY
-  MODE_NOTIFICATION,
+       MODE_NOTIFICATION,
 #endif
-  MODE_COLOR,
-  MODE_PASSWORD,
-  MODE_FORMS,
-  MODE_ABOUT,
-  MODE_VERSION,
-  MODE_LAST
+       MODE_COLOR,
+       MODE_PASSWORD,
+       MODE_FORMS,
+       MODE_ABOUT,
+       MODE_VERSION,
+       MODE_LAST
 } ZenityDialogMode;
 
 typedef enum {
-  ERROR_SYNTAX,
-  ERROR_SUPPORT,
-  ERROR_DIALOG,
-  ERROR_LAST
+       ERROR_SYNTAX,
+       ERROR_SUPPORT,
+       ERROR_DIALOG,
+       ERROR_LAST
 } ZenityError;
 
 typedef struct {
-  ZenityDialogMode mode;
-  ZenityData      *data;
+       ZenityDialogMode mode;
+       ZenityData *data;
 
-  ZenityCalendarData     *calendar_data;
-  ZenityMsgData          *msg_data;
-  ZenityScaleData        *scale_data;
-  ZenityFileData         *file_data;
-  ZenityEntryData        *entry_data;
-  ZenityProgressData     *progress_data;
-  ZenityTextData         *text_data;
-  ZenityTreeData         *tree_data;
+       ZenityCalendarData *calendar_data;
+       ZenityMsgData *msg_data;
+       ZenityScaleData *scale_data;
+       ZenityFileData *file_data;
+       ZenityEntryData *entry_data;
+       ZenityProgressData *progress_data;
+       ZenityTextData *text_data;
+       ZenityTreeData *tree_data;
 #ifdef HAVE_LIBNOTIFY
-  ZenityNotificationData *notification_data;
+       ZenityNotificationData *notification_data;
 #endif
-  ZenityColorData        *color_data;
-  ZenityPasswordData     *password_data;
-  ZenityFormsData        *forms_data;
+       ZenityColorData *color_data;
+       ZenityPasswordData *password_data;
+       ZenityFormsData *forms_data;
 } ZenityParsingOptions;
 
-void                   zenity_option_error (gchar      *string,
-                                            ZenityError error);
+void zenity_option_error (gchar *string, ZenityError error);
 
-ZenityParsingOptions *         zenity_option_parse (gint        argc,
-                                            gchar     **argv); 
+ZenityParsingOptions *zenity_option_parse (gint argc, gchar **argv);
 
-void                   zenity_option_free (void);
+void zenity_option_free (void);
 
 #endif /* OPTION_H */
diff --git a/src/password.c b/src/password.c
index d8f492f..44a2a20 100644
--- a/src/password.c
+++ b/src/password.c
@@ -22,168 +22,152 @@
  */
 
 #include "config.h"
-#include <string.h>
-#include "zenity.h"
 #include "util.h"
+#include "zenity.h"
+#include <string.h>
 
 static ZenityData *zen_data;
 
-static void zenity_password_dialog_response (GtkWidget *widget, int response, gpointer data);
-
-void zenity_password_dialog (ZenityData *data, ZenityPasswordData *password_data)
-{
-  GtkWidget *dialog;
-  GtkWidget *image;
-  GtkWidget *hbox;
-  GtkWidget *vbox_labels;
-  GtkWidget *vbox_entries;
-  GtkWidget *label;
-
-  zen_data = data;
-
-  dialog = gtk_dialog_new ();
-
-  if (data->extra_label) {
-    gint i=0;
-    while(data->extra_label[i]!=NULL){
-      gtk_dialog_add_button (GTK_DIALOG (dialog), data->extra_label[i], i);
-      i++;
-    }
-  }
-
-  gtk_dialog_add_button(GTK_DIALOG(dialog), 
-                        data->cancel_label != NULL ? data->cancel_label : _("_Cancel"),
-                        GTK_RESPONSE_CANCEL);
-  gtk_dialog_add_button(GTK_DIALOG(dialog), 
-                        data->ok_label != NULL ? data->ok_label : _("_OK"),
-                        GTK_RESPONSE_OK);
-  
-  image = gtk_image_new_from_icon_name("dialog-password",
-                                       GTK_ICON_SIZE_DIALOG);
-  gtk_dialog_set_default_response(GTK_DIALOG(dialog), 
-                                  GTK_RESPONSE_OK);
-  hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
-  gtk_box_pack_start(GTK_BOX(hbox),
-                     image,
-                     FALSE,
-                     FALSE,
-                     12);
-
-  /* Checks if username has been passed as a parameter */
-  gchar *title_text = N_("Type your password");
-
-  if(password_data->username)
-    title_text = N_("Type your username and password");
-
-  label = gtk_label_new(title_text);
-
-  gtk_box_pack_start(GTK_BOX(hbox),
-                     label,
-                     FALSE,
-                     FALSE,
-                     12);
-  gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),
-                     hbox,
-                     FALSE,
-                     TRUE,
-                     5);
-                     
-  vbox_labels = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
-  vbox_entries = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
-
-  hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
-  gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),
-                     hbox,
-                     FALSE,
-                     TRUE,
-                     5);
-
-  gtk_box_pack_start(GTK_BOX(hbox),
-                     vbox_labels,
-                     FALSE,
-                     TRUE,
-                     12);
-  gtk_box_pack_start(GTK_BOX(hbox),
-                     vbox_entries,
-                     TRUE,
-                     TRUE,
-                     12);
-
-  if(password_data->username) {
-    label = gtk_label_new(_("Username:"));
-    gtk_box_pack_start(GTK_BOX(vbox_labels),
-                       label,
-                       TRUE,
-                       FALSE,
-                       12);
-    password_data->entry_username = gtk_entry_new();
-    gtk_box_pack_start(GTK_BOX(vbox_entries),
-                       password_data->entry_username,
-                       TRUE,
-                       TRUE,
-                       12);
-  }
-
-  label = gtk_label_new(_("Password:"));
-  gtk_box_pack_start(GTK_BOX(vbox_labels),
-                     label,
-                     TRUE,
-                     FALSE,
-                     12);
-  password_data->entry_password = gtk_entry_new();
-  gtk_entry_set_visibility(GTK_ENTRY(password_data->entry_password), 
-                           FALSE);
-  gtk_entry_set_activates_default (GTK_ENTRY(password_data->entry_password),
-                                  TRUE);
-  gtk_box_pack_start(GTK_BOX(vbox_entries),
-                     password_data->entry_password,
-                     TRUE,
-                     TRUE,
-                     12);
-
-  if (data->dialog_title)
-    gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
-
-  if (data->modal)
-    gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
-
-  g_signal_connect (G_OBJECT (dialog), "response",
-                    G_CALLBACK (zenity_password_dialog_response),
-                    password_data);
-  gtk_widget_show_all(GTK_WIDGET(gtk_dialog_get_content_area(GTK_DIALOG(dialog))));
-  zenity_util_show_dialog (dialog, data->attach);
-
-  if (data->timeout_delay > 0) {
-    g_timeout_add_seconds (data->timeout_delay,
-                           (GSourceFunc) zenity_util_timeout_handle,
-                           dialog);
-  }
-  gtk_main();
+static void zenity_password_dialog_response (
+       GtkWidget *widget, int response, gpointer data);
+
+void
+zenity_password_dialog (ZenityData *data, ZenityPasswordData *password_data) {
+       GtkWidget *dialog;
+       GtkWidget *image;
+       GtkWidget *hbox;
+       GtkWidget *vbox_labels;
+       GtkWidget *vbox_entries;
+       GtkWidget *label;
+
+       zen_data = data;
+
+       dialog = gtk_dialog_new ();
+
+       if (data->extra_label) {
+               gint i = 0;
+               while (data->extra_label[i] != NULL) {
+                       gtk_dialog_add_button (
+                               GTK_DIALOG (dialog), data->extra_label[i], i);
+                       i++;
+               }
+       }
+
+       gtk_dialog_add_button (GTK_DIALOG (dialog),
+               data->cancel_label != NULL ? data->cancel_label : _ ("_Cancel"),
+               GTK_RESPONSE_CANCEL);
+       gtk_dialog_add_button (GTK_DIALOG (dialog),
+               data->ok_label != NULL ? data->ok_label : _ ("_OK"),
+               GTK_RESPONSE_OK);
+
+       image =
+               gtk_image_new_from_icon_name ("dialog-password", GTK_ICON_SIZE_DIALOG);
+       gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
+       hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
+       gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 12);
+
+       /* Checks if username has been passed as a parameter */
+       gchar *title_text = N_ ("Type your password");
+
+       if (password_data->username)
+               title_text = N_ ("Type your username and password");
+
+       label = gtk_label_new (title_text);
+
+       gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 12);
+       gtk_box_pack_start (
+               GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
+               hbox,
+               FALSE,
+               TRUE,
+               5);
+
+       vbox_labels = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
+       vbox_entries = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
+
+       hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
+       gtk_box_pack_start (
+               GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
+               hbox,
+               FALSE,
+               TRUE,
+               5);
+
+       gtk_box_pack_start (GTK_BOX (hbox), vbox_labels, FALSE, TRUE, 12);
+       gtk_box_pack_start (GTK_BOX (hbox), vbox_entries, TRUE, TRUE, 12);
+
+       if (password_data->username) {
+               label = gtk_label_new (_ ("Username:"));
+               gtk_box_pack_start (GTK_BOX (vbox_labels), label, TRUE, FALSE, 12);
+               password_data->entry_username = gtk_entry_new ();
+               gtk_box_pack_start (GTK_BOX (vbox_entries),
+                       password_data->entry_username,
+                       TRUE,
+                       TRUE,
+                       12);
+       }
+
+       label = gtk_label_new (_ ("Password:"));
+       gtk_box_pack_start (GTK_BOX (vbox_labels), label, TRUE, FALSE, 12);
+       password_data->entry_password = gtk_entry_new ();
+       gtk_entry_set_visibility (GTK_ENTRY (password_data->entry_password), FALSE);
+       gtk_entry_set_activates_default (
+               GTK_ENTRY (password_data->entry_password), TRUE);
+       gtk_box_pack_start (
+               GTK_BOX (vbox_entries), password_data->entry_password, TRUE, TRUE, 12);
+
+       if (data->dialog_title)
+               gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
+
+       if (data->modal)
+               gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+
+       g_signal_connect (G_OBJECT (dialog),
+               "response",
+               G_CALLBACK (zenity_password_dialog_response),
+               password_data);
+       gtk_widget_show_all (
+               GTK_WIDGET (gtk_dialog_get_content_area (GTK_DIALOG (dialog))));
+       zenity_util_show_dialog (dialog, data->attach);
+
+       if (data->timeout_delay > 0) {
+               g_timeout_add_seconds (data->timeout_delay,
+                       (GSourceFunc) zenity_util_timeout_handle,
+                       dialog);
+       }
+       gtk_main ();
 }
 
 static void
-zenity_password_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
-  ZenityPasswordData *password_data = (ZenityPasswordData *) data;
-  switch (response) {
-    case GTK_RESPONSE_OK:
-      zenity_util_exit_code_with_data(ZENITY_OK, zen_data);
-      if (password_data->username)
-        g_print("%s|%s\n", gtk_entry_get_text (GTK_ENTRY(password_data->entry_username)), gtk_entry_get_text 
(GTK_ENTRY(password_data->entry_password)));
-      else
-        g_print ("%s\n", gtk_entry_get_text (GTK_ENTRY(password_data->entry_password)));
-      break;
-
-    case GTK_RESPONSE_CANCEL:
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
-      break;
-
-    default:
-      if (zen_data->extra_label && response < g_strv_length(zen_data->extra_label))
-        printf("%s\n",zen_data->extra_label[response]);
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
-      break;
-  }
-
-  gtk_main_quit ();
+zenity_password_dialog_response (
+       GtkWidget *widget, int response, gpointer data) {
+       ZenityPasswordData *password_data = (ZenityPasswordData *) data;
+       switch (response) {
+               case GTK_RESPONSE_OK:
+                       zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
+                       if (password_data->username)
+                               g_print ("%s|%s\n",
+                                       gtk_entry_get_text (
+                                               GTK_ENTRY (password_data->entry_username)),
+                                       gtk_entry_get_text (
+                                               GTK_ENTRY (password_data->entry_password)));
+                       else
+                               g_print ("%s\n",
+                                       gtk_entry_get_text (
+                                               GTK_ENTRY (password_data->entry_password)));
+                       break;
+
+               case GTK_RESPONSE_CANCEL:
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+                       break;
+
+               default:
+                       if (zen_data->extra_label &&
+                               response < g_strv_length (zen_data->extra_label))
+                               printf ("%s\n", zen_data->extra_label[response]);
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
+                       break;
+       }
+
+       gtk_main_quit ();
 }
diff --git a/src/progress.c b/src/progress.c
index 4995c5f..1a5a68f 100644
--- a/src/progress.c
+++ b/src/progress.c
@@ -23,15 +23,15 @@
 
 #include "config.h"
 
+#include "util.h"
+#include "zenity.h"
+#include <signal.h>
 #include <stdio.h>
-#include <string.h>
 #include <stdlib.h>
+#include <string.h>
 #include <sys/types.h>
-#include <unistd.h>
-#include <signal.h>
 #include <time.h>
-#include "zenity.h"
-#include "util.h"
+#include <unistd.h>
 
 static GtkBuilder *builder;
 static ZenityData *zen_data;
@@ -45,358 +45,385 @@ static gboolean auto_close;
 gint zenity_progress_timeout (gpointer data);
 gint zenity_progress_pulsate_timeout (gpointer data);
 
-static void zenity_progress_dialog_response (GtkWidget *widget, int response, gpointer data);
+static void zenity_progress_dialog_response (
+       GtkWidget *widget, int response, gpointer data);
 
 static gboolean
-zenity_progress_pulsate_progress_bar (gpointer user_data)
-{
-  gtk_progress_bar_pulse (GTK_PROGRESS_BAR (user_data));
-  return TRUE;
+zenity_progress_pulsate_progress_bar (gpointer user_data) {
+       gtk_progress_bar_pulse (GTK_PROGRESS_BAR (user_data));
+       return TRUE;
 }
 
 static void
-zenity_progress_pulsate_stop (void)
-{
-  if (pulsate_timeout > 0) {
-    g_source_remove (pulsate_timeout);
-    pulsate_timeout = -1;
-  }
+zenity_progress_pulsate_stop (void) {
+       if (pulsate_timeout > 0) {
+               g_source_remove (pulsate_timeout);
+               pulsate_timeout = -1;
+       }
 }
 
 static void
-zenity_progress_pulsate_start (GObject *progress_bar)
-{
-  if (pulsate_timeout == -1) {
-    pulsate_timeout = g_timeout_add (100,
-                                             zenity_progress_pulsate_progress_bar,
-                                             progress_bar);
-  }
+zenity_progress_pulsate_start (GObject *progress_bar) {
+       if (pulsate_timeout == -1) {
+               pulsate_timeout = g_timeout_add (
+                       100, zenity_progress_pulsate_progress_bar, progress_bar);
+       }
 }
 
 static void
-zenity_progress_update_time_remaining (ZenityProgressData *progress_data)
-{
-  static GObject *progress_time = NULL;
-  static time_t start_time = (time_t)(-1);
-  float percentage = progress_data->percentage;
-
-  if (progress_time == NULL)
-    progress_time = gtk_builder_get_object (builder, "zenity_progress_time");
-  if (start_time == (time_t)(-1) || percentage <= 0.0 || percentage >= 100.0) {
-    start_time = time(NULL);
-    gtk_label_set_text (GTK_LABEL (progress_time), "");
-  } else {
-    time_t current_time = time (NULL);
-    time_t elapsed_time = current_time - start_time;
-    time_t total_time = (time_t) (100.0*elapsed_time/progress_data->percentage);
-    time_t remaining_time = total_time - elapsed_time;
-    gulong hours, minutes, seconds;
-    gchar *remaining_message;
-
-    seconds = (gulong) (remaining_time%60);
-    remaining_time /= 60;
-    minutes = (gulong) (remaining_time%60);
-    remaining_time /= 60;
-    hours = (gulong) remaining_time;
-
-    remaining_message = g_strdup_printf (_("Time remaining: %lu:%02lu:%02lu"),
-                                        hours, minutes, seconds);
-    gtk_label_set_text (GTK_LABEL (progress_time), remaining_message);
-    g_free (remaining_message);
-  }
+zenity_progress_update_time_remaining (ZenityProgressData *progress_data) {
+       static GObject *progress_time = NULL;
+       static time_t start_time = (time_t) (-1);
+       float percentage = progress_data->percentage;
+
+       if (progress_time == NULL)
+               progress_time =
+                       gtk_builder_get_object (builder, "zenity_progress_time");
+       if (start_time == (time_t) (-1) || percentage <= 0.0 ||
+               percentage >= 100.0) {
+               start_time = time (NULL);
+               gtk_label_set_text (GTK_LABEL (progress_time), "");
+       } else {
+               time_t current_time = time (NULL);
+               time_t elapsed_time = current_time - start_time;
+               time_t total_time =
+                       (time_t) (100.0 * elapsed_time / progress_data->percentage);
+               time_t remaining_time = total_time - elapsed_time;
+               gulong hours, minutes, seconds;
+               gchar *remaining_message;
+
+               seconds = (gulong) (remaining_time % 60);
+               remaining_time /= 60;
+               minutes = (gulong) (remaining_time % 60);
+               remaining_time /= 60;
+               hours = (gulong) remaining_time;
+
+               remaining_message = g_strdup_printf (
+                       _ ("Time remaining: %lu:%02lu:%02lu"), hours, minutes, seconds);
+               gtk_label_set_text (GTK_LABEL (progress_time), remaining_message);
+               g_free (remaining_message);
+       }
 }
 
 static gboolean
-zenity_progress_handle_stdin (GIOChannel   *channel,
-                              GIOCondition  condition,
-                              gpointer      data)
-{
-  static ZenityProgressData *progress_data;
-  static GObject *progress_bar;
-  static GObject *progress_label;
-  float percentage = 0.0;
-  GIOStatus status = G_IO_STATUS_NORMAL;
-  
-  progress_data = (ZenityProgressData *) data;
-  progress_bar = gtk_builder_get_object (builder, "zenity_progress_bar");
-  progress_label = gtk_builder_get_object (builder, "zenity_progress_text");
-
-  if ((condition & G_IO_IN) != 0) {
-    GString *string;
-    GError *error = NULL;
-
-    string = g_string_new (NULL);
-
-    while (channel->is_readable != TRUE)
-      ;
-    do {
-      do {
-        status = g_io_channel_read_line_string (channel, string, NULL, &error);
-
-        while (gtk_events_pending ())
-          gtk_main_iteration ();
-
-      } while (status == G_IO_STATUS_AGAIN);
-
-      if (status != G_IO_STATUS_NORMAL) {
-        if (error) {
-          g_warning ("zenity_progress_handle_stdin () : %s", error->message);
-          g_error_free (error);
-          error = NULL;
-        }
-        continue;
-      }
-
-      if (!g_ascii_strncasecmp (string->str, "#", 1)) {
-        gchar *match;
-
-        /* We have a comment, so let's try to change the label */
-        match = g_strstr_len (string->str, strlen (string->str), "#");
-        match++;
-        gtk_label_set_text (GTK_LABEL (progress_label), g_strcompress(g_strchomp (g_strchug (match))));
-
-      } else if (g_str_has_prefix (string->str, "pulsate")) {
-        gchar *colon, *command, *value;
-
-        zenity_util_strip_newline (string->str);
-
-        colon = strchr(string->str, ':');
-        if (colon == NULL) {
-            continue;
-        }
-
-        /* split off the command and value */
-        command = g_strstrip (g_strndup (string->str, colon - string->str));
-
-        value = colon + 1;
-        while (*value && g_ascii_isspace (*value)) value++;
-
-        if (!g_ascii_strcasecmp (value, "false")) {
-          zenity_progress_pulsate_stop ();
-
-          gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar),
-                                         progress_data->percentage / 100.0);
-        } else {
-          zenity_progress_pulsate_start (progress_bar);
-        }
-
-        g_free (command);
-      } else {
-
-        if (!g_ascii_isdigit (*(string->str)))
-          continue;
-
-        /* Now try to convert the thing to a number */
-        percentage = CLAMP(atoi (string->str), 0, 100);
-
-        gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar),
-                                       percentage / 100.0);
-
-        progress_data->percentage = percentage;
-
-       if (progress_data->time_remaining == TRUE)
-         zenity_progress_update_time_remaining (progress_data);
+zenity_progress_handle_stdin (
+       GIOChannel *channel, GIOCondition condition, gpointer data) {
+       static ZenityProgressData *progress_data;
+       static GObject *progress_bar;
+       static GObject *progress_label;
+       float percentage = 0.0;
+       GIOStatus status = G_IO_STATUS_NORMAL;
+
+       progress_data = (ZenityProgressData *) data;
+       progress_bar = gtk_builder_get_object (builder, "zenity_progress_bar");
+       progress_label = gtk_builder_get_object (builder, "zenity_progress_text");
+
+       if ((condition & G_IO_IN) != 0) {
+               GString *string;
+               GError *error = NULL;
+
+               string = g_string_new (NULL);
+
+               while (channel->is_readable != TRUE)
+                       ;
+               do {
+                       do {
+                               status = g_io_channel_read_line_string (
+                                       channel, string, NULL, &error);
+
+                               while (gtk_events_pending ())
+                                       gtk_main_iteration ();
+
+                       } while (status == G_IO_STATUS_AGAIN);
+
+                       if (status != G_IO_STATUS_NORMAL) {
+                               if (error) {
+                                       g_warning (
+                                               "zenity_progress_handle_stdin () : %s", error->message);
+                                       g_error_free (error);
+                                       error = NULL;
+                               }
+                               continue;
+                       }
+
+                       if (!g_ascii_strncasecmp (string->str, "#", 1)) {
+                               gchar *match;
 
-        if (percentage == 100) {
-          GObject *button;
+                               /* We have a comment, so let's try to change the label */
+                               match = g_strstr_len (string->str, strlen (string->str), "#");
+                               match++;
+                               gtk_label_set_text (GTK_LABEL (progress_label),
+                                       g_strcompress (g_strchomp (g_strchug (match))));
+
+                       } else if (g_str_has_prefix (string->str, "pulsate")) {
+                               gchar *colon, *command, *value;
+
+                               zenity_util_strip_newline (string->str);
+
+                               colon = strchr (string->str, ':');
+                               if (colon == NULL) {
+                                       continue;
+                               }
+
+                               /* split off the command and value */
+                               command =
+                                       g_strstrip (g_strndup (string->str, colon - string->str));
+
+                               value = colon + 1;
+                               while (*value && g_ascii_isspace (*value))
+                                       value++;
+
+                               if (!g_ascii_strcasecmp (value, "false")) {
+                                       zenity_progress_pulsate_stop ();
+
+                                       gtk_progress_bar_set_fraction (
+                                               GTK_PROGRESS_BAR (progress_bar),
+                                               progress_data->percentage / 100.0);
+                               } else {
+                                       zenity_progress_pulsate_start (progress_bar);
+                               }
+
+                               g_free (command);
+                       } else {
+
+                               if (!g_ascii_isdigit (*(string->str)))
+                                       continue;
+
+                               /* Now try to convert the thing to a number */
+                               percentage = CLAMP (atoi (string->str), 0, 100);
+
+                               gtk_progress_bar_set_fraction (
+                                       GTK_PROGRESS_BAR (progress_bar), percentage / 100.0);
+
+                               progress_data->percentage = percentage;
+
+                               if (progress_data->time_remaining == TRUE)
+                                       zenity_progress_update_time_remaining (progress_data);
+
+                               if (percentage == 100) {
+                                       GObject *button;
+
+                                       button = gtk_builder_get_object (
+                                               builder, "zenity_progress_ok_button");
+                                       gtk_widget_set_sensitive (GTK_WIDGET (button), TRUE);
+                                       gtk_widget_grab_focus (GTK_WIDGET (button));
+
+                                       if (progress_data->autoclose) {
+                                               zen_data->exit_code =
+                                                       zenity_util_return_exit_code (ZENITY_OK);
+                                               gtk_main_quit ();
+                                       }
+                               }
+                       }
 
-          button = gtk_builder_get_object(builder, "zenity_progress_ok_button");
-          gtk_widget_set_sensitive(GTK_WIDGET (button), TRUE);
-          gtk_widget_grab_focus(GTK_WIDGET (button));
+               } while ((g_io_channel_get_buffer_condition (channel) & G_IO_IN) ==
+                               G_IO_IN &&
+                       status != G_IO_STATUS_EOF);
+               g_string_free (string, TRUE);
+       }
 
-          if (progress_data->autoclose) {
-            zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
-            gtk_main_quit();
-          }
-        }
-      }
+       if ((condition & G_IO_IN) != G_IO_IN || status == G_IO_STATUS_EOF) {
+               /* We assume that we are done, so stop the pulsating and de-sensitize
+                * the buttons */
+               GtkWidget *button;
 
-    } while ((g_io_channel_get_buffer_condition (channel) & G_IO_IN) == G_IO_IN && status != 
G_IO_STATUS_EOF);
-    g_string_free (string, TRUE);
-  }
+               button = GTK_WIDGET (
+                       gtk_builder_get_object (builder, "zenity_progress_ok_button"));
+               gtk_widget_set_sensitive (button, TRUE);
+               gtk_widget_grab_focus (button);
 
-  if ((condition & G_IO_IN) != G_IO_IN || status == G_IO_STATUS_EOF) {
-    /* We assume that we are done, so stop the pulsating and de-sensitize the buttons */
-    GtkWidget *button;
+               button = GTK_WIDGET (
+                       gtk_builder_get_object (builder, "zenity_progress_cancel_button"));
 
-    button = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                 "zenity_progress_ok_button"));
-    gtk_widget_set_sensitive (button, TRUE);
-    gtk_widget_grab_focus (button);
+               gtk_widget_set_sensitive (button, FALSE);
+
+               gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), 1.0);
 
-    button = GTK_WIDGET (gtk_builder_get_object (builder,
-                         "zenity_progress_cancel_button"));
+               zenity_progress_pulsate_stop ();
 
-    gtk_widget_set_sensitive (button, FALSE);
+               g_object_unref (builder);
 
-    gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), 1.0);
+               if (progress_data->autoclose) {
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
+                       gtk_main_quit ();
+               }
 
-    zenity_progress_pulsate_stop ();
-
-    g_object_unref (builder);
-
-    if (progress_data->autoclose) {
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
-      gtk_main_quit();
-    }
-
-    g_io_channel_shutdown (channel, TRUE, NULL);
-    return FALSE;
-  }
-  return TRUE;
+               g_io_channel_shutdown (channel, TRUE, NULL);
+               return FALSE;
+       }
+       return TRUE;
 }
 
 static void
-zenity_progress_read_info (ZenityProgressData *progress_data)
-{
-  channel = g_io_channel_unix_new (0);
-  g_io_channel_set_encoding (channel, NULL, NULL);
-  g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
-  g_io_add_watch (channel, G_IO_IN | G_IO_HUP, zenity_progress_handle_stdin, progress_data);
-  /* We need to check the pulsate state here, because, the g_io_add_watch
-     doesn't call the zenity_progress_handle_stdin function if there's no
-     input. This fix the Bug 567663 */
-  if (progress_data->pulsate) {
-      GObject *progress_bar = gtk_builder_get_object (builder, "zenity_progress_bar");
-      zenity_progress_pulsate_start (progress_bar);
-  }
+zenity_progress_read_info (ZenityProgressData *progress_data) {
+       channel = g_io_channel_unix_new (0);
+       g_io_channel_set_encoding (channel, NULL, NULL);
+       g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
+       g_io_add_watch (channel,
+               G_IO_IN | G_IO_HUP,
+               zenity_progress_handle_stdin,
+               progress_data);
+       /* We need to check the pulsate state here, because, the g_io_add_watch
+          doesn't call the zenity_progress_handle_stdin function if there's no
+          input. This fix the Bug 567663 */
+       if (progress_data->pulsate) {
+               GObject *progress_bar =
+                       gtk_builder_get_object (builder, "zenity_progress_bar");
+               zenity_progress_pulsate_start (progress_bar);
+       }
 }
 
 static void
-zenity_text_size_allocate (GtkWidget *widget, GtkAllocation *allocation, gpointer data)
-{
-  gtk_widget_set_size_request (widget, allocation->width/2, -1);
+zenity_text_size_allocate (
+       GtkWidget *widget, GtkAllocation *allocation, gpointer data) {
+       gtk_widget_set_size_request (widget, allocation->width / 2, -1);
 }
 
 void
-zenity_progress (ZenityData *data, ZenityProgressData *progress_data)
-{
-  GtkWidget *dialog;
-  GtkWidget *button;
-  GObject *text;
-  GObject *progress_bar;
-  GObject *cancel_button,*ok_button;
-
-  zen_data = data;
-  builder = zenity_util_load_ui_file ("zenity_progress_dialog", NULL);
-
-  if (builder == NULL) {
-    data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
-    return;
-  }
-
-  gtk_builder_connect_signals (builder, NULL);
-
-  text = gtk_builder_get_object (builder, "zenity_progress_text");
-
-  dialog = GTK_WIDGET (gtk_builder_get_object (builder,
-                                               "zenity_progress_dialog"));
-
-  progress_bar = gtk_builder_get_object (builder, "zenity_progress_bar");
-
-  g_signal_connect (G_OBJECT (dialog), "response",
-                    G_CALLBACK (zenity_progress_dialog_response), data);
-
-  if (data->dialog_title)
-    gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
-
-  zenity_util_set_window_icon (dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-progress.png"));
-
-  if (data->width > -1 || data->height > -1)
-    gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
-
-  if (data->width > -1) {
-    gtk_widget_set_size_request (GTK_WIDGET (text), data->width, -1);
-  }
-  else {
-    g_signal_connect_after (G_OBJECT (text), "size-allocate",
-                            G_CALLBACK (zenity_text_size_allocate), data);
-    g_signal_connect_after (G_OBJECT (progress_bar), "size-allocate",
-                            G_CALLBACK (zenity_text_size_allocate), data);
-  }
-
-  if (data->modal)
-    gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
-
-  if (data->extra_label) {
-    gint i=0;
-    while(data->extra_label[i]!=NULL){
-      gtk_dialog_add_button (GTK_DIALOG (dialog), data->extra_label[i], i);
-      i++;
-    }
-  }
-
-  if (data->ok_label) {
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_progress_ok_button"));
-    gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
-  }
-
-  if (data->cancel_label) {
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_progress_cancel_button"));
-    gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
-  }
-
-  if (progress_data->dialog_text)
-    gtk_label_set_markup (GTK_LABEL (text), g_strcompress (progress_data->dialog_text));
-
-  if (progress_data->percentage > -1)
-    gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), 
-                                   progress_data->percentage/100.0);
-
-  autokill = progress_data->autokill;
-
-  auto_close = progress_data->autoclose;
-  ok_button = gtk_builder_get_object (builder, "zenity_progress_ok_button");
-
-  no_cancel = progress_data->no_cancel;
-  cancel_button = gtk_builder_get_object (builder, "zenity_progress_cancel_button");
-
-  if (no_cancel) {
-     gtk_widget_hide (GTK_WIDGET(cancel_button));
-     gtk_window_set_deletable (GTK_WINDOW (dialog), FALSE);
-  }
-
-  if (no_cancel && auto_close)
-     gtk_widget_hide(GTK_WIDGET(ok_button));
-
-  zenity_util_show_dialog (dialog, data->attach);
-  zenity_progress_read_info (progress_data);
-
-  if(data->timeout_delay > 0) {
-    g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, NULL);
-  }
-
-  gtk_main ();
+zenity_progress (ZenityData *data, ZenityProgressData *progress_data) {
+       GtkWidget *dialog;
+       GtkWidget *button;
+       GObject *text;
+       GObject *progress_bar;
+       GObject *cancel_button, *ok_button;
+
+       zen_data = data;
+       builder = zenity_util_load_ui_file ("zenity_progress_dialog", NULL);
+
+       if (builder == NULL) {
+               data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+               return;
+       }
+
+       gtk_builder_connect_signals (builder, NULL);
+
+       text = gtk_builder_get_object (builder, "zenity_progress_text");
+
+       dialog =
+               GTK_WIDGET (gtk_builder_get_object (builder, "zenity_progress_dialog"));
+
+       progress_bar = gtk_builder_get_object (builder, "zenity_progress_bar");
+
+       g_signal_connect (G_OBJECT (dialog),
+               "response",
+               G_CALLBACK (zenity_progress_dialog_response),
+               data);
+
+       if (data->dialog_title)
+               gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
+
+       zenity_util_set_window_icon (dialog,
+               data->window_icon,
+               ZENITY_IMAGE_FULLPATH ("zenity-progress.png"));
+
+       if (data->width > -1 || data->height > -1)
+               gtk_window_set_default_size (
+                       GTK_WINDOW (dialog), data->width, data->height);
+
+       if (data->width > -1) {
+               gtk_widget_set_size_request (GTK_WIDGET (text), data->width, -1);
+       } else {
+               g_signal_connect_after (G_OBJECT (text),
+                       "size-allocate",
+                       G_CALLBACK (zenity_text_size_allocate),
+                       data);
+               g_signal_connect_after (G_OBJECT (progress_bar),
+                       "size-allocate",
+                       G_CALLBACK (zenity_text_size_allocate),
+                       data);
+       }
+
+       if (data->modal)
+               gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+
+       if (data->extra_label) {
+               gint i = 0;
+               while (data->extra_label[i] != NULL) {
+                       gtk_dialog_add_button (
+                               GTK_DIALOG (dialog), data->extra_label[i], i);
+                       i++;
+               }
+       }
+
+       if (data->ok_label) {
+               button = GTK_WIDGET (
+                       gtk_builder_get_object (builder, "zenity_progress_ok_button"));
+               gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
+       }
+
+       if (data->cancel_label) {
+               button = GTK_WIDGET (
+                       gtk_builder_get_object (builder, "zenity_progress_cancel_button"));
+               gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
+       }
+
+       if (progress_data->dialog_text)
+               gtk_label_set_markup (
+                       GTK_LABEL (text), g_strcompress (progress_data->dialog_text));
+
+       if (progress_data->percentage > -1)
+               gtk_progress_bar_set_fraction (
+                       GTK_PROGRESS_BAR (progress_bar), progress_data->percentage / 100.0);
+
+       autokill = progress_data->autokill;
+
+       auto_close = progress_data->autoclose;
+       ok_button = gtk_builder_get_object (builder, "zenity_progress_ok_button");
+
+       no_cancel = progress_data->no_cancel;
+       cancel_button =
+               gtk_builder_get_object (builder, "zenity_progress_cancel_button");
+
+       if (no_cancel) {
+               gtk_widget_hide (GTK_WIDGET (cancel_button));
+               gtk_window_set_deletable (GTK_WINDOW (dialog), FALSE);
+       }
+
+       if (no_cancel && auto_close)
+               gtk_widget_hide (GTK_WIDGET (ok_button));
+
+       zenity_util_show_dialog (dialog, data->attach);
+       zenity_progress_read_info (progress_data);
+
+       if (data->timeout_delay > 0) {
+               g_timeout_add_seconds (data->timeout_delay,
+                       (GSourceFunc) zenity_util_timeout_handle,
+                       NULL);
+       }
+
+       gtk_main ();
 }
 
 static void
-zenity_progress_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
-  switch (response) {
-    case GTK_RESPONSE_OK:
-      zenity_util_exit_code_with_data(ZENITY_OK, zen_data);
-      break;
-
-    case GTK_RESPONSE_CANCEL:
-      /* We do not want to kill the parent process, in order to give the user
-         the ability to choose the action to be taken. See bug #310824.
-         But we want to give people the option to choose this behavior.
-         -- Monday 27, March 2006
-      */
-      if (autokill) {
-        kill (getppid (), 1);
-      }
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
-      break;
-
-    case ZENITY_TIMEOUT:
-      zenity_util_exit_code_with_data (ZENITY_TIMEOUT, zen_data);
-      break;
-    default:
-      if (zen_data->extra_label && response < g_strv_length(zen_data->extra_label))
-        printf("%s\n",zen_data->extra_label[response]);
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
-      break;
-  }
-  gtk_main_quit ();
+zenity_progress_dialog_response (
+       GtkWidget *widget, int response, gpointer data) {
+       switch (response) {
+               case GTK_RESPONSE_OK:
+                       zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
+                       break;
+
+               case GTK_RESPONSE_CANCEL:
+                       /* We do not want to kill the parent process, in order to give the
+                          user
+                          the ability to choose the action to be taken. See bug #310824.
+                          But we want to give people the option to choose this behavior.
+                          -- Monday 27, March 2006
+                       */
+                       if (autokill) {
+                               kill (getppid (), 1);
+                       }
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+                       break;
+
+               case ZENITY_TIMEOUT:
+                       zenity_util_exit_code_with_data (ZENITY_TIMEOUT, zen_data);
+                       break;
+               default:
+                       if (zen_data->extra_label &&
+                               response < g_strv_length (zen_data->extra_label))
+                               printf ("%s\n", zen_data->extra_label[response]);
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
+                       break;
+       }
+       gtk_main_quit ();
 }
diff --git a/src/scale.c b/src/scale.c
index 3eb5c17..7e6686b 100644
--- a/src/scale.c
+++ b/src/scale.c
@@ -23,136 +23,151 @@
 
 #include "config.h"
 
-#include "zenity.h"
 #include "util.h"
+#include "zenity.h"
 
 static GtkWidget *scale;
 
 static void zenity_scale_value_changed (GtkWidget *widget, gpointer data);
-static void zenity_scale_dialog_response (GtkWidget *widget, int response, gpointer data);
-
-void 
-zenity_scale (ZenityData *data, ZenityScaleData *scale_data)
-{
-  GtkBuilder *builder;
-  GtkWidget *dialog;
-  GtkWidget *button;
-  GObject *text;
-
-  builder = zenity_util_load_ui_file ("zenity_scale_dialog", "adjustment1", NULL);
-
-  if (builder == NULL) {
-    data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
-    return;
-  }
-
-  dialog = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_scale_dialog"));
-  scale = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_scale_hscale"));
-  text = gtk_builder_get_object (builder, "zenity_scale_text");
-
-  g_signal_connect (G_OBJECT (dialog), "response",
-                    G_CALLBACK (zenity_scale_dialog_response), data);
-       
-  if (scale_data->min_value >= scale_data->max_value) {
-    g_printerr (_("Maximum value must be greater than minimum value.\n")); 
-    data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
-    return;
-  }
-
-  if (scale_data->value < scale_data->min_value ||
-      scale_data->value > scale_data->max_value) {
-    g_printerr (_("Value out of range.\n")); 
-    data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
-    return;
-  }
-
-  gtk_builder_connect_signals (builder, NULL);
-        
-  if (data->dialog_title)
-    gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
-
-  zenity_util_set_window_icon (dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-scale.png"));
-  
-  if (data->width > -1 || data->height > -1)
-    gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
-
-  if (data->modal)
-    gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
-
-  if (data->extra_label) {
-    gint i=0;
-    while(data->extra_label[i]!=NULL){
-      gtk_dialog_add_button (GTK_DIALOG (dialog), data->extra_label[i], i);
-      i++;
-    }
-  }
-
-  if (data->ok_label) {
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_scale_ok_button"));
-    gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
-  }
-
-  if (data->cancel_label) {
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_scale_cancel_button"));
-    gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
-  }
-
-  if (scale_data->dialog_text) 
-    gtk_label_set_markup (GTK_LABEL (text), g_strcompress (scale_data->dialog_text));
-
-  gtk_range_set_range (GTK_RANGE (scale), scale_data->min_value, scale_data->max_value);
-  gtk_range_set_value (GTK_RANGE (scale), scale_data->value);
-  gtk_range_set_increments (GTK_RANGE (scale), scale_data->step, 0);
-
-  if (scale_data->print_partial) 
-    g_signal_connect (G_OBJECT (scale), "value-changed",
-                      G_CALLBACK (zenity_scale_value_changed), data);
-  
-  if (scale_data->hide_value)
-    gtk_scale_set_draw_value (GTK_SCALE (scale), FALSE);
-  
-  zenity_util_show_dialog (dialog, data->attach);
-
-  if(data->timeout_delay > 0) {
-    g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, dialog);
-  }
-
-  g_object_unref (builder);
-
-  gtk_main ();
+static void zenity_scale_dialog_response (
+       GtkWidget *widget, int response, gpointer data);
+
+void
+zenity_scale (ZenityData *data, ZenityScaleData *scale_data) {
+       GtkBuilder *builder;
+       GtkWidget *dialog;
+       GtkWidget *button;
+       GObject *text;
+
+       builder =
+               zenity_util_load_ui_file ("zenity_scale_dialog", "adjustment1", NULL);
+
+       if (builder == NULL) {
+               data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+               return;
+       }
+
+       dialog =
+               GTK_WIDGET (gtk_builder_get_object (builder, "zenity_scale_dialog"));
+       scale =
+               GTK_WIDGET (gtk_builder_get_object (builder, "zenity_scale_hscale"));
+       text = gtk_builder_get_object (builder, "zenity_scale_text");
+
+       g_signal_connect (G_OBJECT (dialog),
+               "response",
+               G_CALLBACK (zenity_scale_dialog_response),
+               data);
+
+       if (scale_data->min_value >= scale_data->max_value) {
+               g_printerr (_ ("Maximum value must be greater than minimum value.\n"));
+               data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+               return;
+       }
+
+       if (scale_data->value < scale_data->min_value ||
+               scale_data->value > scale_data->max_value) {
+               g_printerr (_ ("Value out of range.\n"));
+               data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+               return;
+       }
+
+       gtk_builder_connect_signals (builder, NULL);
+
+       if (data->dialog_title)
+               gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
+
+       zenity_util_set_window_icon (
+               dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-scale.png"));
+
+       if (data->width > -1 || data->height > -1)
+               gtk_window_set_default_size (
+                       GTK_WINDOW (dialog), data->width, data->height);
+
+       if (data->modal)
+               gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+
+       if (data->extra_label) {
+               gint i = 0;
+               while (data->extra_label[i] != NULL) {
+                       gtk_dialog_add_button (
+                               GTK_DIALOG (dialog), data->extra_label[i], i);
+                       i++;
+               }
+       }
+
+       if (data->ok_label) {
+               button = GTK_WIDGET (
+                       gtk_builder_get_object (builder, "zenity_scale_ok_button"));
+               gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
+       }
+
+       if (data->cancel_label) {
+               button = GTK_WIDGET (
+                       gtk_builder_get_object (builder, "zenity_scale_cancel_button"));
+               gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
+       }
+
+       if (scale_data->dialog_text)
+               gtk_label_set_markup (
+                       GTK_LABEL (text), g_strcompress (scale_data->dialog_text));
+
+       gtk_range_set_range (
+               GTK_RANGE (scale), scale_data->min_value, scale_data->max_value);
+       gtk_range_set_value (GTK_RANGE (scale), scale_data->value);
+       gtk_range_set_increments (GTK_RANGE (scale), scale_data->step, 0);
+
+       if (scale_data->print_partial)
+               g_signal_connect (G_OBJECT (scale),
+                       "value-changed",
+                       G_CALLBACK (zenity_scale_value_changed),
+                       data);
+
+       if (scale_data->hide_value)
+               gtk_scale_set_draw_value (GTK_SCALE (scale), FALSE);
+
+       zenity_util_show_dialog (dialog, data->attach);
+
+       if (data->timeout_delay > 0) {
+               g_timeout_add_seconds (data->timeout_delay,
+                       (GSourceFunc) zenity_util_timeout_handle,
+                       dialog);
+       }
+
+       g_object_unref (builder);
+
+       gtk_main ();
 }
 
 static void
-zenity_scale_value_changed (GtkWidget *widget, gpointer data)
-{
-  g_print ("%.0f\n", gtk_range_get_value (GTK_RANGE (widget)));
+zenity_scale_value_changed (GtkWidget *widget, gpointer data) {
+       g_print ("%.0f\n", gtk_range_get_value (GTK_RANGE (widget)));
 }
 
 static void
-zenity_scale_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
-  ZenityData *zen_data = data;
-
-  switch (response) {
-    case GTK_RESPONSE_OK:
-      zenity_util_exit_code_with_data(ZENITY_OK, zen_data);
-      g_print ("%.0f\n", gtk_range_get_value (GTK_RANGE (scale)));
-      break;
-
-    case GTK_RESPONSE_CANCEL:
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
-      break;
-
-    case ZENITY_TIMEOUT:
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
-      g_print ("%.0f\n", gtk_range_get_value (GTK_RANGE (scale)));
-      break;
-
-    default:
-      if (zen_data->extra_label && response < g_strv_length(zen_data->extra_label))
-        printf("%s\n",zen_data->extra_label[response]);
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
-      break;
-  }
-  gtk_main_quit ();
+zenity_scale_dialog_response (GtkWidget *widget, int response, gpointer data) {
+       ZenityData *zen_data = data;
+
+       switch (response) {
+               case GTK_RESPONSE_OK:
+                       zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
+                       g_print ("%.0f\n", gtk_range_get_value (GTK_RANGE (scale)));
+                       break;
+
+               case GTK_RESPONSE_CANCEL:
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+                       break;
+
+               case ZENITY_TIMEOUT:
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
+                       g_print ("%.0f\n", gtk_range_get_value (GTK_RANGE (scale)));
+                       break;
+
+               default:
+                       if (zen_data->extra_label &&
+                               response < g_strv_length (zen_data->extra_label))
+                               printf ("%s\n", zen_data->extra_label[response]);
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
+                       break;
+       }
+       gtk_main_quit ();
 }
diff --git a/src/text.c b/src/text.c
index 1deecc6..ffe7b35 100644
--- a/src/text.c
+++ b/src/text.c
@@ -23,375 +23,426 @@
 
 #include "config.h"
 
-#include <gio/gio.h>
-#include "zenity.h"
 #include "util.h"
+#include "zenity.h"
+#include <gio/gio.h>
 
 #ifdef HAVE_WEBKITGTK
 #include <webkit2/webkit2.h>
 #endif
 
-static ZenityTextData  *zen_text_data;
+static ZenityTextData *zen_text_data;
 
-static void zenity_text_dialog_response (GtkWidget *widget, int response, gpointer data);
+static void zenity_text_dialog_response (
+       GtkWidget *widget, int response, gpointer data);
 static void zenity_text_toggle_button (GtkToggleButton *button, gpointer data);
 
 #ifdef HAVE_WEBKITGTK
 static void
-zenity_configure_webkit (WebKitWebView *web_view)
-{
-  WebKitSettings *settings;
-  settings = webkit_web_view_get_settings(web_view);
-  g_object_set(G_OBJECT(settings), "auto-load-images",   TRUE, NULL);
-  /*
-    Stick to the defaults
-    "cursive-font-family"      gchar*                : Read / Write / Construct
-    "default-encoding"         gchar*                : Read / Write / Construct
-    "default-font-family"      gchar*                : Read / Write / Construct
-    "default-font-size"        gint                  : Read / Write / Construct
-    "default-monospace-font-size" gint               : Read / Write / Construct
-    "editing-behavior"         WebKitEditingBehavior : Read / Write / Construct
-  */
-  g_object_set(G_OBJECT(settings), "enable-caret-browsing",       FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "enable-developer-extras",     FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "enable-fullscreen",           FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "enable-html5-database",       FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "enable-html5-local-storage",  FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "enable-java",                 FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "enable-javascript",           FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "enable-offline-web-application-cache", FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "enable-page-cache",           FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "enable-plugins",              FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "enable-private-browsing",     TRUE, NULL);
-  /*
-    Stick to defaults
-    "enforce-96-dpi"           gboolean              : Read / Write / Construct
-    "fantasy-font-family"      gchar*                : Read / Write / Construct
-  */
-  /*
-    Stick to defaults
-    "minimum-font-size"        gint                  : Read / Write / Construct
-    "minimum-logical-font-size" gint                 : Read / Write / Construct
-    "monospace-font-family"    gchar*                : Read / Write / Construct
-    "print-backgrounds"        gboolean              : Read / Write / Construct
-    "resizable-text-areas"     gboolean              : Read / Write / Construct
-    "sans-serif-font-family"   gchar*                : Read / Write / Construct
-    "serif-font-family"        gchar*                : Read / Write / Construct
-    "spell-checking-languages" gchar*                : Read / Write / Construct
-  */
-  g_object_set(G_OBJECT(settings), "enable-tabs-to-links", FALSE, NULL);
-  g_object_set(G_OBJECT(settings), "user-agent",
-               "Zenity with WebKit (KHTML, like Gecko) support", NULL);
-  /*
-    Stick to defaults
-    "user-stylesheet-uri"      gchar*                : Read / Write / Construct
-    "zoom-step"                gfloat                : Read / Write / Construct
-  */
+zenity_configure_webkit (WebKitWebView *web_view) {
+       WebKitSettings *settings;
+       settings = webkit_web_view_get_settings (web_view);
+       g_object_set (G_OBJECT (settings), "auto-load-images", TRUE, NULL);
+       /*
+         Stick to the defaults
+         "cursive-font-family"      gchar*                : Read / Write /
+         Construct
+         "default-encoding"         gchar*                : Read / Write /
+         Construct
+         "default-font-family"      gchar*                : Read / Write /
+         Construct
+         "default-font-size"        gint                  : Read / Write /
+         Construct
+         "default-monospace-font-size" gint               : Read / Write /
+         Construct
+         "editing-behavior"         WebKitEditingBehavior : Read / Write /
+         Construct
+       */
+       g_object_set (G_OBJECT (settings), "enable-caret-browsing", FALSE, NULL);
+       g_object_set (G_OBJECT (settings), "enable-developer-extras", FALSE, NULL);
+       g_object_set (G_OBJECT (settings), "enable-fullscreen", FALSE, NULL);
+       g_object_set (G_OBJECT (settings), "enable-html5-database", FALSE, NULL);
+       g_object_set (
+               G_OBJECT (settings), "enable-html5-local-storage", FALSE, NULL);
+       g_object_set (G_OBJECT (settings), "enable-java", FALSE, NULL);
+       g_object_set (G_OBJECT (settings), "enable-javascript", FALSE, NULL);
+       g_object_set (G_OBJECT (settings),
+               "enable-offline-web-application-cache",
+               FALSE,
+               NULL);
+       g_object_set (G_OBJECT (settings), "enable-page-cache", FALSE, NULL);
+       g_object_set (G_OBJECT (settings), "enable-plugins", FALSE, NULL);
+       g_object_set (G_OBJECT (settings), "enable-private-browsing", TRUE, NULL);
+       /*
+         Stick to defaults
+         "enforce-96-dpi"           gboolean              : Read / Write /
+         Construct
+         "fantasy-font-family"      gchar*                : Read / Write /
+         Construct
+       */
+       /*
+         Stick to defaults
+         "minimum-font-size"        gint                  : Read / Write /
+         Construct
+         "minimum-logical-font-size" gint                 : Read / Write /
+         Construct
+         "monospace-font-family"    gchar*                : Read / Write /
+         Construct
+         "print-backgrounds"        gboolean              : Read / Write /
+         Construct
+         "resizable-text-areas"     gboolean              : Read / Write /
+         Construct
+         "sans-serif-font-family"   gchar*                : Read / Write /
+         Construct
+         "serif-font-family"        gchar*                : Read / Write /
+         Construct
+         "spell-checking-languages" gchar*                : Read / Write /
+         Construct
+       */
+       g_object_set (G_OBJECT (settings), "enable-tabs-to-links", FALSE, NULL);
+       g_object_set (G_OBJECT (settings),
+               "user-agent",
+               "Zenity with WebKit (KHTML, like Gecko) support",
+               NULL);
+       /*
+         Stick to defaults
+         "user-stylesheet-uri"      gchar*                : Read / Write /
+         Construct
+         "zoom-step"                gfloat                : Read / Write /
+         Construct
+       */
 }
 
 static gboolean
 zenity_text_webview_decision_request (WebKitWebView *web_view,
-                                      WebKitPolicyDecision *decision,
-                                      WebKitPolicyDecisionType type)
-{
-  if (type == WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION) {
-    WebKitNavigationPolicyDecision *navigation_decision = WEBKIT_NAVIGATION_POLICY_DECISION (decision);
-    WebKitNavigationAction *navigation_action = 
webkit_navigation_policy_decision_get_navigation_action(navigation_decision);
-    webkit_policy_decision_ignore (decision);
-    if (!zen_text_data->no_interaction &&
-        webkit_navigation_action_get_navigation_type (navigation_action) == 
WEBKIT_NAVIGATION_TYPE_LINK_CLICKED) {
-      WebKitURIRequest *request = webkit_navigation_action_get_request(navigation_action);
-      g_app_info_launch_default_for_uri (webkit_uri_request_get_uri(request), NULL, NULL);
-    }
-  }
-  return TRUE;
+       WebKitPolicyDecision *decision, WebKitPolicyDecisionType type) {
+       if (type == WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION) {
+               WebKitNavigationPolicyDecision *navigation_decision =
+                       WEBKIT_NAVIGATION_POLICY_DECISION (decision);
+               WebKitNavigationAction *navigation_action =
+                       webkit_navigation_policy_decision_get_navigation_action (
+                               navigation_decision);
+               webkit_policy_decision_ignore (decision);
+               if (!zen_text_data->no_interaction &&
+                       webkit_navigation_action_get_navigation_type (navigation_action) ==
+                               WEBKIT_NAVIGATION_TYPE_LINK_CLICKED) {
+                       WebKitURIRequest *request =
+                               webkit_navigation_action_get_request (navigation_action);
+                       g_app_info_launch_default_for_uri (
+                               webkit_uri_request_get_uri (request), NULL, NULL);
+               }
+       }
+       return TRUE;
 }
 
 static void
-zenity_text_webview_load_changed (WebKitWebView  *webkitwebview,
-                                  WebKitLoadEvent event,
-                                  gpointer        user_data)
-{
-  if (event == WEBKIT_LOAD_FINISHED) {
-    g_signal_connect (G_OBJECT (webkitwebview), "decide-policy",
-                      G_CALLBACK (zenity_text_webview_decision_request), NULL);
-  }
+zenity_text_webview_load_changed (
+       WebKitWebView *webkitwebview, WebKitLoadEvent event, gpointer user_data) {
+       if (event == WEBKIT_LOAD_FINISHED) {
+               g_signal_connect (G_OBJECT (webkitwebview),
+                       "decide-policy",
+                       G_CALLBACK (zenity_text_webview_decision_request),
+                       NULL);
+       }
 }
 
 #endif
 
 static gboolean
-zenity_text_handle_stdin (GIOChannel  *channel,
-                          GIOCondition condition,
-                          gpointer     data)
-{
-  static GtkTextBuffer *buffer;
-  static GtkTextView *text_view;
-  gchar buf[1024];
-
-  gsize len;
-
-  text_view = GTK_TEXT_VIEW (data);
-  buffer = gtk_text_view_get_buffer (text_view);
-
-  if ((condition & G_IO_IN) || (condition & (G_IO_IN | G_IO_HUP))) {
-    GError *error = NULL;
-    gint status;
-
-    while (channel->is_readable != TRUE)
-      ;
-
-    do {
-      status = g_io_channel_read_chars (channel, buf, 1024, &len, &error);
-
-      while (gtk_events_pending ())
-        gtk_main_iteration ();
-
-    } while (status == G_IO_STATUS_AGAIN);
-
-    if (status != G_IO_STATUS_NORMAL) {
-      if (error) {
-        g_warning ("zenity_text_handle_stdin () : %s", error->message);
-        g_error_free (error);
-        error = NULL;
-      }
-      return FALSE;
-    }
-
-    if (len > 0) {
-      GtkTextIter end;
-      gchar *utftext; 
-      gsize localelen; 
-      gsize utflen;
-
-      gtk_text_buffer_get_end_iter (buffer, &end);
-
-      if (!g_utf8_validate (buf, len, NULL)) {
-        utftext = g_convert_with_fallback (buf, len, "UTF-8", "ISO-8859-1", NULL, &localelen, &utflen, NULL);
-        gtk_text_buffer_insert (buffer, &end, utftext, utflen);
-        g_free (utftext);
-      } else {
-        gtk_text_buffer_insert (buffer, &end, buf, len);
-      }
-      if (zen_text_data->auto_scroll) {
-        GtkTextMark *mark = NULL;
-        mark = gtk_text_buffer_get_insert (buffer);
-        if (mark != NULL)
-          gtk_text_view_scroll_to_mark (text_view, mark, 0.0, FALSE, 0, 0);
-      }
-    }
-  }
-
-  return TRUE;
+zenity_text_handle_stdin (
+       GIOChannel *channel, GIOCondition condition, gpointer data) {
+       static GtkTextBuffer *buffer;
+       static GtkTextView *text_view;
+       gchar buf[1024];
+
+       gsize len;
+
+       text_view = GTK_TEXT_VIEW (data);
+       buffer = gtk_text_view_get_buffer (text_view);
+
+       if ((condition & G_IO_IN) || (condition & (G_IO_IN | G_IO_HUP))) {
+               GError *error = NULL;
+               gint status;
+
+               while (channel->is_readable != TRUE)
+                       ;
+
+               do {
+                       status = g_io_channel_read_chars (channel, buf, 1024, &len, &error);
+
+                       while (gtk_events_pending ())
+                               gtk_main_iteration ();
+
+               } while (status == G_IO_STATUS_AGAIN);
+
+               if (status != G_IO_STATUS_NORMAL) {
+                       if (error) {
+                               g_warning ("zenity_text_handle_stdin () : %s", error->message);
+                               g_error_free (error);
+                               error = NULL;
+                       }
+                       return FALSE;
+               }
+
+               if (len > 0) {
+                       GtkTextIter end;
+                       gchar *utftext;
+                       gsize localelen;
+                       gsize utflen;
+
+                       gtk_text_buffer_get_end_iter (buffer, &end);
+
+                       if (!g_utf8_validate (buf, len, NULL)) {
+                               utftext = g_convert_with_fallback (buf,
+                                       len,
+                                       "UTF-8",
+                                       "ISO-8859-1",
+                                       NULL,
+                                       &localelen,
+                                       &utflen,
+                                       NULL);
+                               gtk_text_buffer_insert (buffer, &end, utftext, utflen);
+                               g_free (utftext);
+                       } else {
+                               gtk_text_buffer_insert (buffer, &end, buf, len);
+                       }
+                       if (zen_text_data->auto_scroll) {
+                               GtkTextMark *mark = NULL;
+                               mark = gtk_text_buffer_get_insert (buffer);
+                               if (mark != NULL)
+                                       gtk_text_view_scroll_to_mark (
+                                               text_view, mark, 0.0, FALSE, 0, 0);
+                       }
+               }
+       }
+
+       return TRUE;
 }
 
 static void
-zenity_text_fill_entries_from_stdin (GtkTextView *text_view)
-{
-  GIOChannel *channel; 
-
-  channel = g_io_channel_unix_new (0);
-  g_io_channel_set_encoding (channel, "UTF-8", NULL);
-  g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
-  g_io_add_watch (channel, G_IO_IN | G_IO_HUP, zenity_text_handle_stdin, text_view);
+zenity_text_fill_entries_from_stdin (GtkTextView *text_view) {
+       GIOChannel *channel;
+
+       channel = g_io_channel_unix_new (0);
+       g_io_channel_set_encoding (channel, "UTF-8", NULL);
+       g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
+       g_io_add_watch (
+               channel, G_IO_IN | G_IO_HUP, zenity_text_handle_stdin, text_view);
 }
 
 void
-zenity_text (ZenityData *data, ZenityTextData *text_data)
-{
-  GtkBuilder *builder;
-  GtkWidget *dialog;
-  GtkWidget *ok_button;
-  GtkWidget *checkbox;
-  GtkWidget *cancel_button;
+zenity_text (ZenityData *data, ZenityTextData *text_data) {
+       GtkBuilder *builder;
+       GtkWidget *dialog;
+       GtkWidget *ok_button;
+       GtkWidget *checkbox;
+       GtkWidget *cancel_button;
 
-  GObject *text_view;
-  GtkTextBuffer *text_buffer;
+       GObject *text_view;
+       GtkTextBuffer *text_buffer;
 
 #ifdef HAVE_WEBKITGTK
-  GtkWidget *web_kit;
-  GtkWidget *scrolled_window;
-  GtkTextIter start_iter, end_iter;
-  gchar *content;
+       GtkWidget *web_kit;
+       GtkWidget *scrolled_window;
+       GtkTextIter start_iter, end_iter;
+       gchar *content;
 #endif
-  zen_text_data = text_data;
-  builder = zenity_util_load_ui_file ("zenity_text_dialog",
-                                     "textbuffer1", NULL);
-       
-  if (builder == NULL) {
-    data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
-    return;
-  }
-       
-  gtk_builder_connect_signals (builder, NULL);
-         
-  dialog = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_text_dialog"));
-
-  ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_text_close_button"));
-  cancel_button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_text_cancel_button"));
-  checkbox = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_text_checkbox"));
-
-  g_signal_connect (G_OBJECT (dialog), "response",
-                    G_CALLBACK (zenity_text_dialog_response), data);
-
-  if (data->dialog_title)
-    gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
-
-  zenity_util_set_window_icon (dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-text.png"));
-
-  gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_CLOSE);
-
-  text_buffer = gtk_text_buffer_new (NULL);
-  text_view = gtk_builder_get_object (builder, "zenity_text_view");
-  gtk_text_view_set_buffer (GTK_TEXT_VIEW (text_view), text_buffer);
-  gtk_text_view_set_editable (GTK_TEXT_VIEW(text_view), text_data->editable);
-
-  if (text_data->no_wrap)
-    gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW(text_view), GTK_WRAP_NONE);
-
-  if (text_data->font) {
-      PangoFontDescription *fontDesc = pango_font_description_from_string (text_data->font);
-      gtk_widget_override_font (GTK_WIDGET(text_view), fontDesc);
-  }
-
-  if (text_data->uri)
-    zenity_util_fill_file_buffer (text_buffer, text_data->uri);
-  else
-    zenity_text_fill_entries_from_stdin (GTK_TEXT_VIEW(text_view));
-
-  if (text_data->editable)
-    zen_text_data->buffer = text_buffer;
-
-  if (data->extra_label) {
-    gint i=0;
-    while(data->extra_label[i]!=NULL){
-      gtk_dialog_add_button (GTK_DIALOG (dialog), data->extra_label[i], i);
-      i++;
-    }
-  }
-
-  if (data->ok_label) { 
-    gtk_button_set_label (GTK_BUTTON (ok_button), data->ok_label);
-  }
-
-  if (data->cancel_label) {
-    gtk_button_set_label (GTK_BUTTON (cancel_button), data->cancel_label);
-  }
-
-  if (text_data->checkbox) {
-    gtk_widget_set_visible (GTK_WIDGET (checkbox), TRUE);
-    gtk_widget_set_sensitive (GTK_WIDGET (ok_button), FALSE);
-    gtk_button_set_label (GTK_BUTTON (checkbox), text_data->checkbox);
-
-    g_signal_connect (G_OBJECT (checkbox), "toggled",
-                      G_CALLBACK (zenity_text_toggle_button), ok_button);
-  }
-
-  if (data->width > -1 || data->height > -1)
-    gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
-  else
-    gtk_window_set_default_size (GTK_WINDOW (dialog), 300, 400); 
-
-  if (data->modal)
-    gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+       zen_text_data = text_data;
+       builder =
+               zenity_util_load_ui_file ("zenity_text_dialog", "textbuffer1", NULL);
+
+       if (builder == NULL) {
+               data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+               return;
+       }
+
+       gtk_builder_connect_signals (builder, NULL);
+
+       dialog =
+               GTK_WIDGET (gtk_builder_get_object (builder, "zenity_text_dialog"));
+
+       ok_button = GTK_WIDGET (
+               gtk_builder_get_object (builder, "zenity_text_close_button"));
+       cancel_button = GTK_WIDGET (
+               gtk_builder_get_object (builder, "zenity_text_cancel_button"));
+       checkbox =
+               GTK_WIDGET (gtk_builder_get_object (builder, "zenity_text_checkbox"));
+
+       g_signal_connect (G_OBJECT (dialog),
+               "response",
+               G_CALLBACK (zenity_text_dialog_response),
+               data);
+
+       if (data->dialog_title)
+               gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
+
+       zenity_util_set_window_icon (
+               dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-text.png"));
+
+       gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_CLOSE);
+
+       text_buffer = gtk_text_buffer_new (NULL);
+       text_view = gtk_builder_get_object (builder, "zenity_text_view");
+       gtk_text_view_set_buffer (GTK_TEXT_VIEW (text_view), text_buffer);
+       gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), text_data->editable);
+
+       if (text_data->no_wrap)
+               gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), GTK_WRAP_NONE);
+
+       if (text_data->font) {
+               PangoFontDescription *fontDesc =
+                       pango_font_description_from_string (text_data->font);
+               gtk_widget_override_font (GTK_WIDGET (text_view), fontDesc);
+       }
+
+       if (text_data->uri)
+               zenity_util_fill_file_buffer (text_buffer, text_data->uri);
+       else
+               zenity_text_fill_entries_from_stdin (GTK_TEXT_VIEW (text_view));
+
+       if (text_data->editable)
+               zen_text_data->buffer = text_buffer;
+
+       if (data->extra_label) {
+               gint i = 0;
+               while (data->extra_label[i] != NULL) {
+                       gtk_dialog_add_button (
+                               GTK_DIALOG (dialog), data->extra_label[i], i);
+                       i++;
+               }
+       }
+
+       if (data->ok_label) {
+               gtk_button_set_label (GTK_BUTTON (ok_button), data->ok_label);
+       }
+
+       if (data->cancel_label) {
+               gtk_button_set_label (GTK_BUTTON (cancel_button), data->cancel_label);
+       }
+
+       if (text_data->checkbox) {
+               gtk_widget_set_visible (GTK_WIDGET (checkbox), TRUE);
+               gtk_widget_set_sensitive (GTK_WIDGET (ok_button), FALSE);
+               gtk_button_set_label (GTK_BUTTON (checkbox), text_data->checkbox);
+
+               g_signal_connect (G_OBJECT (checkbox),
+                       "toggled",
+                       G_CALLBACK (zenity_text_toggle_button),
+                       ok_button);
+       }
+
+       if (data->width > -1 || data->height > -1)
+               gtk_window_set_default_size (
+                       GTK_WINDOW (dialog), data->width, data->height);
+       else
+               gtk_window_set_default_size (GTK_WINDOW (dialog), 300, 400);
+
+       if (data->modal)
+               gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
 
 #ifdef HAVE_WEBKITGTK
-  if(text_data->html) {
-    web_kit = webkit_web_view_new();
-    scrolled_window = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_text_scrolled_window"));
-
-    zenity_configure_webkit (WEBKIT_WEB_VIEW (web_kit));
-
-    if (text_data->url)
-    {
-      if (!(g_str_has_prefix (text_data->url, "http://";) || g_str_has_prefix (text_data->url, "https://";))) 
-        text_data->url = g_strdup_printf ("http://%s";, text_data->url);
-      
-
-      webkit_web_view_load_uri (WEBKIT_WEB_VIEW (web_kit), text_data->url);
-    }
-    else
-    {
-      gchar *cwd;
-      gchar *dirname;
-      gchar *dirname_uri;
-      dirname = text_data->uri ? g_path_get_dirname (text_data->uri) : g_strdup ("/");
-      cwd = g_get_current_dir ();
-      dirname_uri = g_strconcat ("file://", cwd, "/", dirname, "/", NULL);
-      g_free (cwd);
-      g_free (dirname);
-      gtk_text_buffer_get_start_iter (text_buffer, &start_iter);
-      gtk_text_buffer_get_end_iter (text_buffer, &end_iter);
-      content = gtk_text_buffer_get_text (text_buffer, &start_iter, &end_iter, TRUE);
-      webkit_web_view_load_html (WEBKIT_WEB_VIEW(web_kit), content, dirname_uri);
-      g_free (dirname_uri);
-      g_free (content);
-    }
-
-    // We don't want user to click on links and navigate to another page.
-    // So, when the page finishes loading, we take handle of the requests.
-
-    g_signal_connect (G_OBJECT (web_kit), "load-changed",
-                      G_CALLBACK (zenity_text_webview_load_changed), NULL);
-
-    gtk_widget_destroy (GTK_WIDGET (text_view));
-    gtk_container_add (GTK_CONTAINER(scrolled_window), web_kit);
-    gtk_widget_show (GTK_WIDGET (web_kit));
-  }
+       if (text_data->html) {
+               web_kit = webkit_web_view_new ();
+               scrolled_window = GTK_WIDGET (
+                       gtk_builder_get_object (builder, "zenity_text_scrolled_window"));
+
+               zenity_configure_webkit (WEBKIT_WEB_VIEW (web_kit));
+
+               if (text_data->url) {
+                       if (!(g_str_has_prefix (text_data->url, "http://";) ||
+                                       g_str_has_prefix (text_data->url, "https://";)))
+                               text_data->url = g_strdup_printf ("http://%s";, text_data->url);
+
+                       webkit_web_view_load_uri (
+                               WEBKIT_WEB_VIEW (web_kit), text_data->url);
+               } else {
+                       gchar *cwd;
+                       gchar *dirname;
+                       gchar *dirname_uri;
+                       dirname = text_data->uri ? g_path_get_dirname (text_data->uri)
+                                                                        : g_strdup ("/");
+                       cwd = g_get_current_dir ();
+                       dirname_uri = g_strconcat ("file://", cwd, "/", dirname, "/", NULL);
+                       g_free (cwd);
+                       g_free (dirname);
+                       gtk_text_buffer_get_start_iter (text_buffer, &start_iter);
+                       gtk_text_buffer_get_end_iter (text_buffer, &end_iter);
+                       content = gtk_text_buffer_get_text (
+                               text_buffer, &start_iter, &end_iter, TRUE);
+                       webkit_web_view_load_html (
+                               WEBKIT_WEB_VIEW (web_kit), content, dirname_uri);
+                       g_free (dirname_uri);
+                       g_free (content);
+               }
+
+               // We don't want user to click on links and navigate to another page.
+               // So, when the page finishes loading, we take handle of the requests.
+
+               g_signal_connect (G_OBJECT (web_kit),
+                       "load-changed",
+                       G_CALLBACK (zenity_text_webview_load_changed),
+                       NULL);
+
+               gtk_widget_destroy (GTK_WIDGET (text_view));
+               gtk_container_add (GTK_CONTAINER (scrolled_window), web_kit);
+               gtk_widget_show (GTK_WIDGET (web_kit));
+       }
 #endif
 
-  zenity_util_show_dialog (dialog, data->attach);
+       zenity_util_show_dialog (dialog, data->attach);
 
-  g_object_unref (builder);
+       g_object_unref (builder);
 
-  if(data->timeout_delay > 0) {
-    g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, dialog);
-  }
+       if (data->timeout_delay > 0) {
+               g_timeout_add_seconds (data->timeout_delay,
+                       (GSourceFunc) zenity_util_timeout_handle,
+                       dialog);
+       }
 
-  gtk_main ();
+       gtk_main ();
 }
 
 static void
-zenity_text_toggle_button (GtkToggleButton *button, gpointer data)
-{
-  GtkWidget *ok_button = (GtkWidget *)data;
-  gtk_widget_set_sensitive (GTK_WIDGET(ok_button), gtk_toggle_button_get_active(button));
+zenity_text_toggle_button (GtkToggleButton *button, gpointer data) {
+       GtkWidget *ok_button = (GtkWidget *) data;
+       gtk_widget_set_sensitive (
+               GTK_WIDGET (ok_button), gtk_toggle_button_get_active (button));
 }
 
 static void
-zenity_text_dialog_output (ZenityData *zen_data)
-{
-  if (zen_text_data->editable) {
-    GtkTextIter start, end;
-    gchar *text;
-    gtk_text_buffer_get_bounds (zen_text_data->buffer, &start, &end);
-    text = gtk_text_buffer_get_text (zen_text_data->buffer, &start, &end, 0);
-    g_print ("%s", text);
-    g_free (text);
-  }
+zenity_text_dialog_output (ZenityData *zen_data) {
+       if (zen_text_data->editable) {
+               GtkTextIter start, end;
+               gchar *text;
+               gtk_text_buffer_get_bounds (zen_text_data->buffer, &start, &end);
+               text =
+                       gtk_text_buffer_get_text (zen_text_data->buffer, &start, &end, 0);
+               g_print ("%s", text);
+               g_free (text);
+       }
 }
 
 static void
-zenity_text_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
-  ZenityData *zen_data = data;
-
-  switch (response) {
-    case GTK_RESPONSE_CLOSE:
-      zenity_text_dialog_output (zen_data);
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
-      break;
-
-    case ZENITY_TIMEOUT:
-      zenity_text_dialog_output (zen_data);
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
-      break;
-
-    default:
-      if (zen_data->extra_label && response < g_strv_length(zen_data->extra_label))
-        printf("%s\n",zen_data->extra_label[response]);
-      zenity_util_exit_code_with_data(ZENITY_ESC, zen_data);
-      break;
-  }
-  gtk_main_quit ();
+zenity_text_dialog_response (GtkWidget *widget, int response, gpointer data) {
+       ZenityData *zen_data = data;
+
+       switch (response) {
+               case GTK_RESPONSE_CLOSE:
+                       zenity_text_dialog_output (zen_data);
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
+                       break;
+
+               case ZENITY_TIMEOUT:
+                       zenity_text_dialog_output (zen_data);
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
+                       break;
+
+               default:
+                       if (zen_data->extra_label &&
+                               response < g_strv_length (zen_data->extra_label))
+                               printf ("%s\n", zen_data->extra_label[response]);
+                       zenity_util_exit_code_with_data (ZENITY_ESC, zen_data);
+                       break;
+       }
+       gtk_main_quit ();
 }
diff --git a/src/tree.c b/src/tree.c
index 058b6b6..d94ce7e 100644
--- a/src/tree.c
+++ b/src/tree.c
@@ -25,10 +25,10 @@
 
 #include "config.h"
 
-#include <string.h>
-#include <stdlib.h>
-#include "zenity.h"
 #include "util.h"
+#include "zenity.h"
+#include <stdlib.h>
+#include <string.h>
 
 #define MAX_ELEMENTS_BEFORE_SCROLLING 5
 #define PRINT_HIDE_COLUMN_SEPARATOR ","
@@ -43,733 +43,803 @@ static GIOChannel *channel;
 
 static int *zenity_tree_extract_column_indexes (char *indexes, gint n_columns);
 static gboolean zenity_tree_column_is_hidden (gint column_index);
-static void zenity_tree_dialog_response (GtkWidget *widget, int response, gpointer data);
-static void zenity_tree_row_activated (GtkTreeView *tree_view, GtkTreePath *tree_path, 
-                                       GtkTreeViewColumn *tree_col, gpointer data);
+static void zenity_tree_dialog_response (
+       GtkWidget *widget, int response, gpointer data);
+static void zenity_tree_row_activated (GtkTreeView *tree_view,
+       GtkTreePath *tree_path, GtkTreeViewColumn *tree_col, gpointer data);
 
 static gboolean
-zenity_tree_dialog_untoggle (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data)
-{
-  GValue toggle_value = {0, };
+zenity_tree_dialog_untoggle (
+       GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) {
+       GValue toggle_value = {
+               0,
+       };
 
-  gtk_tree_model_get_value (model, iter, 0, &toggle_value);
+       gtk_tree_model_get_value (model, iter, 0, &toggle_value);
 
-  if (g_value_get_boolean (&toggle_value))
-    gtk_list_store_set (GTK_LIST_STORE (model), iter, 0, FALSE, -1);
-  return FALSE;
+       if (g_value_get_boolean (&toggle_value))
+               gtk_list_store_set (GTK_LIST_STORE (model), iter, 0, FALSE, -1);
+       return FALSE;
 }
 
 static void
-zenity_tree_toggled_callback (GtkCellRendererToggle *cell, gchar *path_string, gpointer data)
-{
-  GtkTreeModel *model;
-  GtkTreeIter iter;
-  GtkTreePath *path;
-  gboolean value;
+zenity_tree_toggled_callback (
+       GtkCellRendererToggle *cell, gchar *path_string, gpointer data) {
+       GtkTreeModel *model;
+       GtkTreeIter iter;
+       GtkTreePath *path;
+       gboolean value;
 
-  model = GTK_TREE_MODEL (data);
+       model = GTK_TREE_MODEL (data);
 
-  /* Because this is a radio list, we should untoggle the previous toggle so that 
-   * we only have one selection at any given time
-   */
+       /* Because this is a radio list, we should untoggle the previous toggle so
+        * that
+        * we only have one selection at any given time
+        */
 
-  if (GPOINTER_TO_INT (g_object_get_data (G_OBJECT (model), "radio")) == 1) {
-    gtk_tree_model_foreach (model, zenity_tree_dialog_untoggle, NULL);
-  }
+       if (GPOINTER_TO_INT (g_object_get_data (G_OBJECT (model), "radio")) == 1) {
+               gtk_tree_model_foreach (model, zenity_tree_dialog_untoggle, NULL);
+       }
 
-  path = gtk_tree_path_new_from_string (path_string);
-  gtk_tree_model_get_iter (model, &iter, path);
-  gtk_tree_model_get (model, &iter, 0, &value, -1);
+       path = gtk_tree_path_new_from_string (path_string);
+       gtk_tree_model_get_iter (model, &iter, path);
+       gtk_tree_model_get (model, &iter, 0, &value, -1);
 
-  value = !value;
-  gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, value, -1);
+       value = !value;
+       gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, value, -1);
 
-  gtk_tree_path_free (path);
+       gtk_tree_path_free (path);
 }
 
 static void
-zenity_load_pixbuf (GtkTreeViewColumn *tree_column,
-                    GtkCellRenderer *cell,
-                    GtkTreeModel *tree_model,
-                    GtkTreeIter *iter,
-                    gpointer data)
-{
-  static GHashTable *pixbuf_cache = NULL;
-  GError *error = NULL;
-  GdkPixbuf *pixbuf;
-  gchar *str;
+zenity_load_pixbuf (GtkTreeViewColumn *tree_column, GtkCellRenderer *cell,
+       GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) {
+       static GHashTable *pixbuf_cache = NULL;
+       GError *error = NULL;
+       GdkPixbuf *pixbuf;
+       gchar *str;
 
-  gtk_tree_model_get (tree_model, iter, 0, &str, -1);
+       gtk_tree_model_get (tree_model, iter, 0, &str, -1);
 
-  if (!str) 
-    return;
+       if (!str)
+               return;
 
-  if (!pixbuf_cache) {
-    pixbuf_cache = g_hash_table_new (g_str_hash, g_str_equal);
-    g_assert(pixbuf_cache);
-  }
+       if (!pixbuf_cache) {
+               pixbuf_cache = g_hash_table_new (g_str_hash, g_str_equal);
+               g_assert (pixbuf_cache);
+       }
 
-  pixbuf = g_hash_table_lookup (pixbuf_cache, str);
+       pixbuf = g_hash_table_lookup (pixbuf_cache, str);
 
-  if (!pixbuf) {
-    pixbuf = gdk_pixbuf_new_from_file (str, &error);
-    if (!pixbuf) 
-      g_warning ("Failed to load '%s'", str);
+       if (!pixbuf) {
+               pixbuf = gdk_pixbuf_new_from_file (str, &error);
+               if (!pixbuf)
+                       g_warning ("Failed to load '%s'", str);
 
-    g_hash_table_insert (pixbuf_cache, g_strdup (str), pixbuf);
-  }
+               g_hash_table_insert (pixbuf_cache, g_strdup (str), pixbuf);
+       }
 
-  if (pixbuf) 
-    g_object_set (cell, "pixbuf", pixbuf, NULL);
+       if (pixbuf)
+               g_object_set (cell, "pixbuf", pixbuf, NULL);
 
-  g_free (str);
+       g_free (str);
 }
 
 static gboolean
-zenity_tree_handle_stdin (GIOChannel  *channel,
-                          GIOCondition condition,
-                          gpointer     data)
-{
-  static GtkTreeView *tree_view;
-  GtkTreeModel *model;
-  static GtkTreeIter iter;
-  static gint column_count = 0;
-  static gint row_count = 0;
-  static gint n_columns;
-  static gboolean editable;
-  static gboolean toggles;
-  static gboolean first_time = TRUE;
-  GIOStatus status = G_IO_STATUS_NORMAL;
-
-  tree_view = GTK_TREE_VIEW (data);
-  n_columns = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "n_columns"));
-  editable = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "editable"));
-  toggles = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "toggles"));
-
-  model = gtk_tree_view_get_model (tree_view);
-
-  if (first_time) {
-    first_time = FALSE;
-    gtk_list_store_append (GTK_LIST_STORE (model), &iter);
-  }
-
-  if ((condition & G_IO_IN) == G_IO_IN) {
-    GString *string;
-    GError *error = NULL;
-
-    string = g_string_new (NULL);
-
-    while ((g_io_channel_get_flags(channel) & G_IO_FLAG_IS_READABLE) != G_IO_FLAG_IS_READABLE)
-      ;
-    do {
-      do {
-        if (g_io_channel_get_flags(channel) & G_IO_FLAG_IS_READABLE)
-          status = g_io_channel_read_line_string (channel, string, NULL, &error);
-        else
-          return FALSE;
-
-        while (gtk_events_pending ())
-          gtk_main_iteration ();
-
-        // TODO: Find a better way to avoid 100% cpu utilization
-        g_usleep(10000);
-
-      } while (status == G_IO_STATUS_AGAIN);
-
-      if (status != G_IO_STATUS_NORMAL) {
-        if (error) {
-          g_warning ("zenity_tree_handle_stdin () : %s", error->message);
-          g_error_free (error);
-          error = NULL;
-        }
-        continue;
-      }
-    
-      if (column_count == n_columns) {
-        /* We're starting a new row */
-        column_count = 0;
-        row_count++;
-        gtk_list_store_append (GTK_LIST_STORE (model), &iter);
-      }
-
-      if (toggles && column_count == 0) {
-        if (strcmp (g_ascii_strdown (zenity_util_strip_newline (string->str), -1), "true") == 0)
-          gtk_list_store_set (GTK_LIST_STORE (model), &iter, column_count, TRUE, -1);
-        else
-          gtk_list_store_set (GTK_LIST_STORE (model), &iter, column_count, FALSE, -1);
-      }
-      else {
-        gtk_list_store_set (GTK_LIST_STORE (model), &iter, column_count, zenity_util_strip_newline 
(string->str), -1);        
-      }
-
-      if (editable) {
-        gtk_list_store_set (GTK_LIST_STORE (model), &iter, n_columns, TRUE, -1);
-      }
-
-      if (row_count == MAX_ELEMENTS_BEFORE_SCROLLING) {
-        GtkWidget *scrolled_window;
-        GtkRequisition rectangle;
-
-        gtk_widget_get_preferred_size (GTK_WIDGET (tree_view), &rectangle, NULL);
-        scrolled_window = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                        "zenity_tree_window"));
-        gtk_widget_set_size_request (scrolled_window, -1, rectangle.height);
-        gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
-                                        GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-      }
-
-      column_count++;
-
-    } while ((g_io_channel_get_buffer_condition (channel) & G_IO_IN) == G_IO_IN && status != 
G_IO_STATUS_EOF); 
-    g_string_free (string, TRUE);
-  }
-
-  if ((condition & G_IO_IN) != G_IO_IN || status == G_IO_STATUS_EOF) {
-    g_io_channel_shutdown (channel, TRUE, NULL);
-    return FALSE;
-  }
-  return TRUE;
+zenity_tree_handle_stdin (
+       GIOChannel *channel, GIOCondition condition, gpointer data) {
+       static GtkTreeView *tree_view;
+       GtkTreeModel *model;
+       static GtkTreeIter iter;
+       static gint column_count = 0;
+       static gint row_count = 0;
+       static gint n_columns;
+       static gboolean editable;
+       static gboolean toggles;
+       static gboolean first_time = TRUE;
+       GIOStatus status = G_IO_STATUS_NORMAL;
+
+       tree_view = GTK_TREE_VIEW (data);
+       n_columns =
+               GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "n_columns"));
+       editable =
+               GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "editable"));
+       toggles =
+               GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "toggles"));
+
+       model = gtk_tree_view_get_model (tree_view);
+
+       if (first_time) {
+               first_time = FALSE;
+               gtk_list_store_append (GTK_LIST_STORE (model), &iter);
+       }
+
+       if ((condition & G_IO_IN) == G_IO_IN) {
+               GString *string;
+               GError *error = NULL;
+
+               string = g_string_new (NULL);
+
+               while ((g_io_channel_get_flags (channel) & G_IO_FLAG_IS_READABLE) !=
+                       G_IO_FLAG_IS_READABLE)
+                       ;
+               do {
+                       do {
+                               if (g_io_channel_get_flags (channel) & G_IO_FLAG_IS_READABLE)
+                                       status = g_io_channel_read_line_string (
+                                               channel, string, NULL, &error);
+                               else
+                                       return FALSE;
+
+                               while (gtk_events_pending ())
+                                       gtk_main_iteration ();
+
+                               // TODO: Find a better way to avoid 100% cpu utilization
+                               g_usleep (10000);
+
+                       } while (status == G_IO_STATUS_AGAIN);
+
+                       if (status != G_IO_STATUS_NORMAL) {
+                               if (error) {
+                                       g_warning (
+                                               "zenity_tree_handle_stdin () : %s", error->message);
+                                       g_error_free (error);
+                                       error = NULL;
+                               }
+                               continue;
+                       }
+
+                       if (column_count == n_columns) {
+                               /* We're starting a new row */
+                               column_count = 0;
+                               row_count++;
+                               gtk_list_store_append (GTK_LIST_STORE (model), &iter);
+                       }
+
+                       if (toggles && column_count == 0) {
+                               if (strcmp (g_ascii_strdown (
+                                                               zenity_util_strip_newline (string->str), -1),
+                                               "true") == 0)
+                                       gtk_list_store_set (
+                                               GTK_LIST_STORE (model), &iter, column_count, TRUE, -1);
+                               else
+                                       gtk_list_store_set (
+                                               GTK_LIST_STORE (model), &iter, column_count, FALSE, -1);
+                       } else {
+                               gtk_list_store_set (GTK_LIST_STORE (model),
+                                       &iter,
+                                       column_count,
+                                       zenity_util_strip_newline (string->str),
+                                       -1);
+                       }
+
+                       if (editable) {
+                               gtk_list_store_set (
+                                       GTK_LIST_STORE (model), &iter, n_columns, TRUE, -1);
+                       }
+
+                       if (row_count == MAX_ELEMENTS_BEFORE_SCROLLING) {
+                               GtkWidget *scrolled_window;
+                               GtkRequisition rectangle;
+
+                               gtk_widget_get_preferred_size (
+                                       GTK_WIDGET (tree_view), &rectangle, NULL);
+                               scrolled_window = GTK_WIDGET (
+                                       gtk_builder_get_object (builder, "zenity_tree_window"));
+                               gtk_widget_set_size_request (
+                                       scrolled_window, -1, rectangle.height);
+                               gtk_scrolled_window_set_policy (
+                                       GTK_SCROLLED_WINDOW (scrolled_window),
+                                       GTK_POLICY_AUTOMATIC,
+                                       GTK_POLICY_AUTOMATIC);
+                       }
+
+                       column_count++;
+
+               } while ((g_io_channel_get_buffer_condition (channel) & G_IO_IN) ==
+                               G_IO_IN &&
+                       status != G_IO_STATUS_EOF);
+               g_string_free (string, TRUE);
+       }
+
+       if ((condition & G_IO_IN) != G_IO_IN || status == G_IO_STATUS_EOF) {
+               g_io_channel_shutdown (channel, TRUE, NULL);
+               return FALSE;
+       }
+       return TRUE;
 }
 
 static void
-zenity_tree_fill_entries_from_stdin (GtkTreeView  *tree_view,
-                                     gint          n_columns,
-                                     gboolean      toggles,
-                                     gboolean      editable)
-{
-  g_object_set_data (G_OBJECT (tree_view), "n_columns", GINT_TO_POINTER (n_columns));
-  g_object_set_data (G_OBJECT (tree_view), "toggles", GINT_TO_POINTER (toggles));
-  g_object_set_data (G_OBJECT (tree_view), "editable", GINT_TO_POINTER (editable)); 
-
-  channel = g_io_channel_unix_new (0);
-  g_io_channel_set_encoding (channel, NULL, NULL);
-  g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
-  g_io_add_watch (channel, G_IO_IN | G_IO_HUP, zenity_tree_handle_stdin, tree_view);
+zenity_tree_fill_entries_from_stdin (GtkTreeView *tree_view, gint n_columns,
+       gboolean toggles, gboolean editable) {
+       g_object_set_data (
+               G_OBJECT (tree_view), "n_columns", GINT_TO_POINTER (n_columns));
+       g_object_set_data (
+               G_OBJECT (tree_view), "toggles", GINT_TO_POINTER (toggles));
+       g_object_set_data (
+               G_OBJECT (tree_view), "editable", GINT_TO_POINTER (editable));
+
+       channel = g_io_channel_unix_new (0);
+       g_io_channel_set_encoding (channel, NULL, NULL);
+       g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
+       g_io_add_watch (
+               channel, G_IO_IN | G_IO_HUP, zenity_tree_handle_stdin, tree_view);
 }
 
 static void
-zenity_tree_fill_entries (GtkTreeView  *tree_view, 
-                          const gchar **args, 
-                          gint          n_columns, 
-                          gboolean      toggles, 
-                          gboolean      editable)
-{
-  GtkTreeModel *model;
-  GtkTreeIter iter;
-  gint i = 0;
-
-  model = gtk_tree_view_get_model (tree_view);
-
-  g_object_set_data (G_OBJECT (tree_view), "n_columns", GINT_TO_POINTER (n_columns));
-
-  while (args[i] != NULL) {
-    gint j;
-
-    gtk_list_store_append (GTK_LIST_STORE (model), &iter);
-
-    for (j = 0; j < n_columns; j++) {
-        
-      if (toggles && j == 0) {
-        if (strcmp (g_ascii_strdown ((gchar *) args[i+j], -1), "true") == 0)
-          gtk_list_store_set (GTK_LIST_STORE (model), &iter, j, TRUE, -1);
-        else 
-          gtk_list_store_set (GTK_LIST_STORE (model), &iter, j, FALSE, -1);
-      }
-      else
-        gtk_list_store_set (GTK_LIST_STORE (model), &iter, j, args[i+j], -1);        
-    }
-
-    if (editable)
-      gtk_list_store_set (GTK_LIST_STORE (model), &iter, n_columns, TRUE, -1);
-
-    if (i == MAX_ELEMENTS_BEFORE_SCROLLING) {
-      GtkWidget *scrolled_window;
-      GtkRequisition rectangle;
-
-      gtk_widget_get_preferred_size (GTK_WIDGET (tree_view), &rectangle, NULL);
-      scrolled_window = GTK_WIDGET (gtk_builder_get_object (builder,
-                                                        "zenity_tree_window"));
-      gtk_widget_set_size_request (scrolled_window, -1, rectangle.height);
-      gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
-                                      GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-    }
-
-  i += n_columns;
-  }
+zenity_tree_fill_entries (GtkTreeView *tree_view, const gchar **args,
+       gint n_columns, gboolean toggles, gboolean editable) {
+       GtkTreeModel *model;
+       GtkTreeIter iter;
+       gint i = 0;
+
+       model = gtk_tree_view_get_model (tree_view);
+
+       g_object_set_data (
+               G_OBJECT (tree_view), "n_columns", GINT_TO_POINTER (n_columns));
+
+       while (args[i] != NULL) {
+               gint j;
+
+               gtk_list_store_append (GTK_LIST_STORE (model), &iter);
+
+               for (j = 0; j < n_columns; j++) {
+
+                       if (toggles && j == 0) {
+                               if (strcmp (g_ascii_strdown ((gchar *) args[i + j], -1),
+                                               "true") == 0)
+                                       gtk_list_store_set (
+                                               GTK_LIST_STORE (model), &iter, j, TRUE, -1);
+                               else
+                                       gtk_list_store_set (
+                                               GTK_LIST_STORE (model), &iter, j, FALSE, -1);
+                       } else
+                               gtk_list_store_set (
+                                       GTK_LIST_STORE (model), &iter, j, args[i + j], -1);
+               }
+
+               if (editable)
+                       gtk_list_store_set (
+                               GTK_LIST_STORE (model), &iter, n_columns, TRUE, -1);
+
+               if (i == MAX_ELEMENTS_BEFORE_SCROLLING) {
+                       GtkWidget *scrolled_window;
+                       GtkRequisition rectangle;
+
+                       gtk_widget_get_preferred_size (
+                               GTK_WIDGET (tree_view), &rectangle, NULL);
+                       scrolled_window = GTK_WIDGET (
+                               gtk_builder_get_object (builder, "zenity_tree_window"));
+                       gtk_widget_set_size_request (scrolled_window, -1, rectangle.height);
+                       gtk_scrolled_window_set_policy (
+                               GTK_SCROLLED_WINDOW (scrolled_window),
+                               GTK_POLICY_AUTOMATIC,
+                               GTK_POLICY_AUTOMATIC);
+               }
+
+               i += n_columns;
+       }
 }
 
 static gboolean
-zenity_mid_search_func (GtkTreeModel *model, gint column,
-                    const gchar *key, GtkTreeIter *iter,
-                    gpointer search_data)
-{
-    gchar *iter_string = NULL;
-    gtk_tree_model_get (model, iter, column, &iter_string, -1); 
-    return  ! (g_strrstr (g_utf8_strdown(iter_string, -1),
-                          g_utf8_strdown(key, -1)) != NULL);
-
+zenity_mid_search_func (GtkTreeModel *model, gint column, const gchar *key,
+       GtkTreeIter *iter, gpointer search_data) {
+       gchar *iter_string = NULL;
+       gtk_tree_model_get (model, iter, column, &iter_string, -1);
+       return !(g_strrstr (g_utf8_strdown (iter_string, -1),
+                                g_utf8_strdown (key, -1)) != NULL);
 }
 
 static void
-zenity_cell_edited_callback (GtkCellRendererText *cell, 
-                             const gchar         *path_string, 
-                             const gchar         *new_text, 
-                             gpointer             data) 
-{
-  GtkTreeModel *model;
-  GtkTreePath *path;
-  GtkTreeIter iter;
-  gint column;
-
-  model = GTK_TREE_MODEL (data);
-  path = gtk_tree_path_new_from_string (path_string);
-
-  column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (cell), "column"));
-  gtk_tree_model_get_iter (model, &iter, path);
-        
-  gtk_list_store_set (GTK_LIST_STORE (model), &iter, column, new_text, -1);
-
-  gtk_tree_path_free (path);
-}
+zenity_cell_edited_callback (GtkCellRendererText *cell,
+       const gchar *path_string, const gchar *new_text, gpointer data) {
+       GtkTreeModel *model;
+       GtkTreePath *path;
+       GtkTreeIter iter;
+       gint column;
 
-void
-zenity_tree (ZenityData *data, ZenityTreeData *tree_data)
-{
-  GtkWidget *dialog;
-  GtkWidget *button;
-  GObject *tree_view;
-  GObject *text;
-  GtkTreeViewColumn *column;
-  GtkListStore *model;
-  GType *column_types;
-  GSList *tmp;
-  gboolean first_column = FALSE;
-  gint i, column_index, n_columns;
-
-  builder = zenity_util_load_ui_file ("zenity_tree_dialog", NULL);
-
-  if (builder == NULL) {
-    data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
-    return;
-  }
-        
-  separator = g_strcompress (tree_data->separator);
-
-  n_columns = g_slist_length (tree_data->columns);
-
-  if (tree_data->print_column) {
-    if (strcmp (g_ascii_strdown (tree_data->print_column, -1), "all") == 0)
-      print_all_columns = TRUE;
-    else 
-      print_columns = zenity_tree_extract_column_indexes (tree_data->print_column, n_columns);
-  }
-  else { 
-    print_columns = g_new (gint, 2);
-    print_columns[0] = (tree_data->radiobox || tree_data->checkbox ? 2 : 1);
-    print_columns[1] = 0;
-  }
-
-  if (tree_data->hide_column) 
-    hide_columns = zenity_tree_extract_column_indexes (tree_data->hide_column, n_columns);
-
-  if (n_columns == 0) {
-    g_printerr (_("No column titles specified for List dialog.\n")); 
-    data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
-    return;
-  }
-
-  if (tree_data->checkbox + tree_data->radiobox + tree_data->imagebox > 1) {
-    g_printerr (_("You should use only one List dialog type.\n")); 
-    data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
-    return;
-  }
-
-  gtk_builder_connect_signals (builder, NULL);
-
-  dialog = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_tree_dialog"));
-
-  g_signal_connect (G_OBJECT (dialog), "response",
-                    G_CALLBACK (zenity_tree_dialog_response), data);
-
-  if (data->dialog_title)
-    gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
-
-  if (data->modal)
-    gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
-
-  if (data->extra_label) {
-    gint i=0;
-    while(data->extra_label[i]!=NULL){
-      gtk_dialog_add_button (GTK_DIALOG (dialog), data->extra_label[i], i);
-      i++;
-    }
-  }
-
-  if (data->ok_label) {
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_tree_ok_button"));
-    gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
-  }
-
-  if (data->cancel_label) {
-    button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_tree_cancel_button"));
-    gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
-  }
-
-  text = gtk_builder_get_object (builder, "zenity_tree_text");
-                                                                                
-  if (tree_data->dialog_text)
-    gtk_label_set_markup (GTK_LABEL (text), g_strcompress (tree_data->dialog_text));
-
-  zenity_util_set_window_icon (dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-list.png"));
-
-  if (data->width > -1 || data->height > -1)
-    gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
-
-  tree_view = gtk_builder_get_object (builder, "zenity_tree_view");
-
-  if (!(tree_data->radiobox || tree_data->checkbox)) 
-    g_signal_connect (tree_view, "row-activated", 
-                      G_CALLBACK (zenity_tree_row_activated), data);
- 
-  /* Create an empty list store */
-  model = g_object_new (GTK_TYPE_LIST_STORE, NULL);
-
-  if (tree_data->editable)
-    column_types = g_new (GType, n_columns + 1);
-  else
-    column_types = g_new (GType, n_columns);
-
-  for (i = 0; i < n_columns; i++) {
-    /* Have the limitation that the radioboxes and checkboxes are in the first column */
-    if (i == 0 && (tree_data->checkbox || tree_data->radiobox))
-      column_types[i] = G_TYPE_BOOLEAN;
-    else
-      column_types[i] = G_TYPE_STRING;
-  }
-
-  if (tree_data->editable)
-    column_types[n_columns] = G_TYPE_BOOLEAN;
-
-  if (tree_data->editable)
-    gtk_list_store_set_column_types (model, n_columns + 1, column_types);
-  else
-    gtk_list_store_set_column_types (model, n_columns, column_types);
-
-  gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (model));
-
-  if (!(tree_data->radiobox || tree_data->checkbox)) {
-    if (tree_data->multi)
-      gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)),
-                                   GTK_SELECTION_MULTIPLE);
-    else
-      gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)),
-                                   GTK_SELECTION_SINGLE);
-  } 
-  else  
-    gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)),
-                                   GTK_SELECTION_NONE);
-
-  column_index = 0;
-
-  for (tmp = tree_data->columns; tmp; tmp = tmp->next) {
-    if (!first_column) {
-      if (tree_data->checkbox || tree_data->radiobox) {
-        GtkCellRenderer *cell_renderer;
-    
-        cell_renderer = gtk_cell_renderer_toggle_new ();
-                                
-        if (tree_data->radiobox) {
-          g_object_set (G_OBJECT (cell_renderer), "radio", TRUE, NULL);
-          g_object_set_data (G_OBJECT (model), "radio", GINT_TO_POINTER (1));
-        }
-
-        g_signal_connect (cell_renderer, "toggled",
-                          G_CALLBACK (zenity_tree_toggled_callback), model);
-
-        column = gtk_tree_view_column_new_with_attributes (tmp->data,
-                                                           cell_renderer, 
-                                                           "active", column_index, NULL);
-      } else if (tree_data->imagebox) {
-        GtkCellRenderer *cell_renderer = gtk_cell_renderer_pixbuf_new ();
-        column = gtk_tree_view_column_new_with_attributes (tmp->data,
-                                                           cell_renderer, NULL);
-        gtk_tree_view_column_set_cell_data_func (column, cell_renderer, 
-                                                 zenity_load_pixbuf, NULL, NULL);
-      }
-      else  {
-        if (tree_data->editable) {
-          GtkCellRenderer *cell_renderer;
-
-          cell_renderer = gtk_cell_renderer_text_new ();
-          g_signal_connect (G_OBJECT (cell_renderer), "edited",
-                            G_CALLBACK (zenity_cell_edited_callback),
-          gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view)));
-          g_object_set_data (G_OBJECT (cell_renderer), "column", GINT_TO_POINTER (column_index));
-
-          column = gtk_tree_view_column_new_with_attributes (tmp->data, 
-                                                             cell_renderer, 
-                                                             "text", column_index, 
-                                                             "editable", n_columns, 
-                                                             NULL);
-        } 
-        else  {
-          column = gtk_tree_view_column_new_with_attributes (tmp->data, 
-                                                             gtk_cell_renderer_text_new (), 
-                                                             "text", column_index, 
-                                                             NULL);
-        }
-
-        gtk_tree_view_column_set_sort_column_id (column, column_index);
-        gtk_tree_view_column_set_resizable (column, TRUE);
-      }
-      if (zenity_tree_column_is_hidden (1))
-        gtk_tree_view_column_set_visible (column, FALSE);
- 
-      first_column = TRUE;
-    }
-    else {
-      if (tree_data->editable) {
-        GtkCellRenderer *cell_renderer;
-
-        cell_renderer = gtk_cell_renderer_text_new ();
-        g_signal_connect (G_OBJECT (cell_renderer), "edited",
-                          G_CALLBACK (zenity_cell_edited_callback),
-        gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view)));
-        g_object_set_data (G_OBJECT (cell_renderer), "column", GINT_TO_POINTER (column_index));
-
-        column = gtk_tree_view_column_new_with_attributes (tmp->data, 
-                                                           cell_renderer, 
-                                                           "text", column_index, 
-                                                           "editable", n_columns, 
-                                                           NULL);
-      }
-      else {
-        column = gtk_tree_view_column_new_with_attributes (tmp->data,
-                                                           gtk_cell_renderer_text_new (), 
-                                                           "text", column_index, NULL);
-      }
-
-      gtk_tree_view_column_set_sort_column_id (column, column_index);
-      gtk_tree_view_column_set_resizable (column, TRUE);
-
-      if (zenity_tree_column_is_hidden (column_index + 1))
-        gtk_tree_view_column_set_visible (column, FALSE);
-    }
-        
-    gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
-    column_index++;
-  }
-
-  if (tree_data->hide_header)
-    gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_view), FALSE);
-
-  if (tree_data->radiobox || tree_data->checkbox) {
-    if (tree_data->data && *tree_data->data)
-      zenity_tree_fill_entries (GTK_TREE_VIEW (tree_view), tree_data->data, n_columns, TRUE, 
tree_data->editable);
-    else
-      zenity_tree_fill_entries_from_stdin (GTK_TREE_VIEW (tree_view), n_columns, TRUE, tree_data->editable);
-  }
-  else {
-    if (tree_data->data && *tree_data->data)
-      zenity_tree_fill_entries (GTK_TREE_VIEW (tree_view), tree_data->data, n_columns, FALSE, 
tree_data->editable);
-    else
-      zenity_tree_fill_entries_from_stdin (GTK_TREE_VIEW (tree_view), n_columns, FALSE, tree_data->editable);
-  }
-
-  zenity_util_show_dialog (dialog, data->attach);
-
-  if (tree_data->mid_search)
-    gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(tree_view), (GtkTreeViewSearchEqualFunc) 
zenity_mid_search_func, model, NULL);
-
-  if(data->timeout_delay > 0) {
-    g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, dialog);
-  }
-
-  gtk_main ();
-
-  g_object_unref (builder);
-}
+       model = GTK_TREE_MODEL (data);
+       path = gtk_tree_path_new_from_string (path_string);
 
-static void 
-zenity_tree_dialog_get_selected (GtkTreeModel *model, GtkTreePath *path_buf, GtkTreeIter *iter, GtkTreeView 
*tree_view)
-{
-  GValue value = {0, };
-  gint n_columns, i;
+       column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (cell), "column"));
+       gtk_tree_model_get_iter (model, &iter, path);
 
-  n_columns = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "n_columns"));
+       gtk_list_store_set (GTK_LIST_STORE (model), &iter, column, new_text, -1);
 
-  if (print_all_columns) {
-    for (i = 0; i < n_columns; i++) {
-      gtk_tree_model_get_value (model, iter, i, &value);
-
-      selected = g_slist_append (selected, g_value_dup_string (&value));
-      g_value_unset (&value);
-    }
-    return;
-  }
+       gtk_tree_path_free (path);
+}
 
-  for (i = 0; print_columns[i] != 0; i++) {
-    gtk_tree_model_get_value  (model, iter, print_columns[i] - 1, &value);
+void
+zenity_tree (ZenityData *data, ZenityTreeData *tree_data) {
+       GtkWidget *dialog;
+       GtkWidget *button;
+       GObject *tree_view;
+       GObject *text;
+       GtkTreeViewColumn *column;
+       GtkListStore *model;
+       GType *column_types;
+       GSList *tmp;
+       gboolean first_column = FALSE;
+       gint i, column_index, n_columns;
+
+       builder = zenity_util_load_ui_file ("zenity_tree_dialog", NULL);
+
+       if (builder == NULL) {
+               data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+               return;
+       }
+
+       separator = g_strcompress (tree_data->separator);
+
+       n_columns = g_slist_length (tree_data->columns);
+
+       if (tree_data->print_column) {
+               if (strcmp (g_ascii_strdown (tree_data->print_column, -1), "all") == 0)
+                       print_all_columns = TRUE;
+               else
+                       print_columns = zenity_tree_extract_column_indexes (
+                               tree_data->print_column, n_columns);
+       } else {
+               print_columns = g_new (gint, 2);
+               print_columns[0] = (tree_data->radiobox || tree_data->checkbox ? 2 : 1);
+               print_columns[1] = 0;
+       }
+
+       if (tree_data->hide_column)
+               hide_columns = zenity_tree_extract_column_indexes (
+                       tree_data->hide_column, n_columns);
+
+       if (n_columns == 0) {
+               g_printerr (_ ("No column titles specified for List dialog.\n"));
+               data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+               return;
+       }
+
+       if (tree_data->checkbox + tree_data->radiobox + tree_data->imagebox > 1) {
+               g_printerr (_ ("You should use only one List dialog type.\n"));
+               data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
+               return;
+       }
+
+       gtk_builder_connect_signals (builder, NULL);
+
+       dialog =
+               GTK_WIDGET (gtk_builder_get_object (builder, "zenity_tree_dialog"));
+
+       g_signal_connect (G_OBJECT (dialog),
+               "response",
+               G_CALLBACK (zenity_tree_dialog_response),
+               data);
+
+       if (data->dialog_title)
+               gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
+
+       if (data->modal)
+               gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+
+       if (data->extra_label) {
+               gint i = 0;
+               while (data->extra_label[i] != NULL) {
+                       gtk_dialog_add_button (
+                               GTK_DIALOG (dialog), data->extra_label[i], i);
+                       i++;
+               }
+       }
+
+       if (data->ok_label) {
+               button = GTK_WIDGET (
+                       gtk_builder_get_object (builder, "zenity_tree_ok_button"));
+               gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
+       }
+
+       if (data->cancel_label) {
+               button = GTK_WIDGET (
+                       gtk_builder_get_object (builder, "zenity_tree_cancel_button"));
+               gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
+       }
+
+       text = gtk_builder_get_object (builder, "zenity_tree_text");
+
+       if (tree_data->dialog_text)
+               gtk_label_set_markup (
+                       GTK_LABEL (text), g_strcompress (tree_data->dialog_text));
+
+       zenity_util_set_window_icon (
+               dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-list.png"));
+
+       if (data->width > -1 || data->height > -1)
+               gtk_window_set_default_size (
+                       GTK_WINDOW (dialog), data->width, data->height);
+
+       tree_view = gtk_builder_get_object (builder, "zenity_tree_view");
+
+       if (!(tree_data->radiobox || tree_data->checkbox))
+               g_signal_connect (tree_view,
+                       "row-activated",
+                       G_CALLBACK (zenity_tree_row_activated),
+                       data);
+
+       /* Create an empty list store */
+       model = g_object_new (GTK_TYPE_LIST_STORE, NULL);
+
+       if (tree_data->editable)
+               column_types = g_new (GType, n_columns + 1);
+       else
+               column_types = g_new (GType, n_columns);
+
+       for (i = 0; i < n_columns; i++) {
+               /* Have the limitation that the radioboxes and checkboxes are in the
+                * first column */
+               if (i == 0 && (tree_data->checkbox || tree_data->radiobox))
+                       column_types[i] = G_TYPE_BOOLEAN;
+               else
+                       column_types[i] = G_TYPE_STRING;
+       }
+
+       if (tree_data->editable)
+               column_types[n_columns] = G_TYPE_BOOLEAN;
+
+       if (tree_data->editable)
+               gtk_list_store_set_column_types (model, n_columns + 1, column_types);
+       else
+               gtk_list_store_set_column_types (model, n_columns, column_types);
+
+       gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (model));
+
+       if (!(tree_data->radiobox || tree_data->checkbox)) {
+               if (tree_data->multi)
+                       gtk_tree_selection_set_mode (
+                               gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)),
+                               GTK_SELECTION_MULTIPLE);
+               else
+                       gtk_tree_selection_set_mode (
+                               gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)),
+                               GTK_SELECTION_SINGLE);
+       } else
+               gtk_tree_selection_set_mode (
+                       gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)),
+                       GTK_SELECTION_NONE);
+
+       column_index = 0;
+
+       for (tmp = tree_data->columns; tmp; tmp = tmp->next) {
+               if (!first_column) {
+                       if (tree_data->checkbox || tree_data->radiobox) {
+                               GtkCellRenderer *cell_renderer;
+
+                               cell_renderer = gtk_cell_renderer_toggle_new ();
+
+                               if (tree_data->radiobox) {
+                                       g_object_set (
+                                               G_OBJECT (cell_renderer), "radio", TRUE, NULL);
+                                       g_object_set_data (
+                                               G_OBJECT (model), "radio", GINT_TO_POINTER (1));
+                               }
+
+                               g_signal_connect (cell_renderer,
+                                       "toggled",
+                                       G_CALLBACK (zenity_tree_toggled_callback),
+                                       model);
+
+                               column = gtk_tree_view_column_new_with_attributes (
+                                       tmp->data, cell_renderer, "active", column_index, NULL);
+                       } else if (tree_data->imagebox) {
+                               GtkCellRenderer *cell_renderer =
+                                       gtk_cell_renderer_pixbuf_new ();
+                               column = gtk_tree_view_column_new_with_attributes (
+                                       tmp->data, cell_renderer, NULL);
+                               gtk_tree_view_column_set_cell_data_func (
+                                       column, cell_renderer, zenity_load_pixbuf, NULL, NULL);
+                       } else {
+                               if (tree_data->editable) {
+                                       GtkCellRenderer *cell_renderer;
+
+                                       cell_renderer = gtk_cell_renderer_text_new ();
+                                       g_signal_connect (G_OBJECT (cell_renderer),
+                                               "edited",
+                                               G_CALLBACK (zenity_cell_edited_callback),
+                                               gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view)));
+                                       g_object_set_data (G_OBJECT (cell_renderer),
+                                               "column",
+                                               GINT_TO_POINTER (column_index));
+
+                                       column =
+                                               gtk_tree_view_column_new_with_attributes (tmp->data,
+                                                       cell_renderer,
+                                                       "text",
+                                                       column_index,
+                                                       "editable",
+                                                       n_columns,
+                                                       NULL);
+                               } else {
+                                       column =
+                                               gtk_tree_view_column_new_with_attributes (tmp->data,
+                                                       gtk_cell_renderer_text_new (),
+                                                       "text",
+                                                       column_index,
+                                                       NULL);
+                               }
+
+                               gtk_tree_view_column_set_sort_column_id (column, column_index);
+                               gtk_tree_view_column_set_resizable (column, TRUE);
+                       }
+                       if (zenity_tree_column_is_hidden (1))
+                               gtk_tree_view_column_set_visible (column, FALSE);
+
+                       first_column = TRUE;
+               } else {
+                       if (tree_data->editable) {
+                               GtkCellRenderer *cell_renderer;
+
+                               cell_renderer = gtk_cell_renderer_text_new ();
+                               g_signal_connect (G_OBJECT (cell_renderer),
+                                       "edited",
+                                       G_CALLBACK (zenity_cell_edited_callback),
+                                       gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view)));
+                               g_object_set_data (G_OBJECT (cell_renderer),
+                                       "column",
+                                       GINT_TO_POINTER (column_index));
+
+                               column = gtk_tree_view_column_new_with_attributes (tmp->data,
+                                       cell_renderer,
+                                       "text",
+                                       column_index,
+                                       "editable",
+                                       n_columns,
+                                       NULL);
+                       } else {
+                               column = gtk_tree_view_column_new_with_attributes (tmp->data,
+                                       gtk_cell_renderer_text_new (),
+                                       "text",
+                                       column_index,
+                                       NULL);
+                       }
+
+                       gtk_tree_view_column_set_sort_column_id (column, column_index);
+                       gtk_tree_view_column_set_resizable (column, TRUE);
+
+                       if (zenity_tree_column_is_hidden (column_index + 1))
+                               gtk_tree_view_column_set_visible (column, FALSE);
+               }
+
+               gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
+               column_index++;
+       }
+
+       if (tree_data->hide_header)
+               gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_view), FALSE);
+
+       if (tree_data->radiobox || tree_data->checkbox) {
+               if (tree_data->data && *tree_data->data)
+                       zenity_tree_fill_entries (GTK_TREE_VIEW (tree_view),
+                               tree_data->data,
+                               n_columns,
+                               TRUE,
+                               tree_data->editable);
+               else
+                       zenity_tree_fill_entries_from_stdin (GTK_TREE_VIEW (tree_view),
+                               n_columns,
+                               TRUE,
+                               tree_data->editable);
+       } else {
+               if (tree_data->data && *tree_data->data)
+                       zenity_tree_fill_entries (GTK_TREE_VIEW (tree_view),
+                               tree_data->data,
+                               n_columns,
+                               FALSE,
+                               tree_data->editable);
+               else
+                       zenity_tree_fill_entries_from_stdin (GTK_TREE_VIEW (tree_view),
+                               n_columns,
+                               FALSE,
+                               tree_data->editable);
+       }
+
+       zenity_util_show_dialog (dialog, data->attach);
+
+       if (tree_data->mid_search)
+               gtk_tree_view_set_search_equal_func (GTK_TREE_VIEW (tree_view),
+                       (GtkTreeViewSearchEqualFunc) zenity_mid_search_func,
+                       model,
+                       NULL);
+
+       if (data->timeout_delay > 0) {
+               g_timeout_add_seconds (data->timeout_delay,
+                       (GSourceFunc) zenity_util_timeout_handle,
+                       dialog);
+       }
+
+       gtk_main ();
+
+       g_object_unref (builder);
+}
 
-    selected = g_slist_append (selected, g_value_dup_string (&value));
-    g_value_unset (&value);
-  }
+static void
+zenity_tree_dialog_get_selected (GtkTreeModel *model, GtkTreePath *path_buf,
+       GtkTreeIter *iter, GtkTreeView *tree_view) {
+       GValue value = {
+               0,
+       };
+       gint n_columns, i;
+
+       n_columns =
+               GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "n_columns"));
+
+       if (print_all_columns) {
+               for (i = 0; i < n_columns; i++) {
+                       gtk_tree_model_get_value (model, iter, i, &value);
+
+                       selected = g_slist_append (selected, g_value_dup_string (&value));
+                       g_value_unset (&value);
+               }
+               return;
+       }
+
+       for (i = 0; print_columns[i] != 0; i++) {
+               gtk_tree_model_get_value (model, iter, print_columns[i] - 1, &value);
+
+               selected = g_slist_append (selected, g_value_dup_string (&value));
+               g_value_unset (&value);
+       }
 }
 
 static gboolean
-zenity_tree_dialog_toggle_get_selected (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, 
GtkTreeView *tree_view)
-{
-  GValue toggle_value = {0, };
-  gint n_columns, i;
-
-  n_columns = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "n_columns"));
-
-  gtk_tree_model_get_value (model, iter, 0, &toggle_value);
-
-  if (g_value_get_boolean (&toggle_value)) {
-    GValue value = {0, };
-
-    if (print_all_columns) {
-      for (i = 1; i < n_columns; i++) {
-        gtk_tree_model_get_value (model, iter, i, &value);
-        
-        selected = g_slist_append (selected, g_value_dup_string (&value));
-        g_value_unset (&value);
-      }
-      g_value_unset (&toggle_value);
-      return FALSE;
-    }
-
-    for (i = 0; print_columns[i] != 0; i++) {
-      gtk_tree_model_get_value (model, iter, print_columns[i] - 1, &value);
-
-      selected = g_slist_append (selected, g_value_dup_string (&value));
-      g_value_unset (&value);
-    }
-  }
-  
-  g_value_unset (&toggle_value);
-
-  return FALSE;
+zenity_tree_dialog_toggle_get_selected (GtkTreeModel *model, GtkTreePath *path,
+       GtkTreeIter *iter, GtkTreeView *tree_view) {
+       GValue toggle_value = {
+               0,
+       };
+       gint n_columns, i;
+
+       n_columns =
+               GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "n_columns"));
+
+       gtk_tree_model_get_value (model, iter, 0, &toggle_value);
+
+       if (g_value_get_boolean (&toggle_value)) {
+               GValue value = {
+                       0,
+               };
+
+               if (print_all_columns) {
+                       for (i = 1; i < n_columns; i++) {
+                               gtk_tree_model_get_value (model, iter, i, &value);
+
+                               selected =
+                                       g_slist_append (selected, g_value_dup_string (&value));
+                               g_value_unset (&value);
+                       }
+                       g_value_unset (&toggle_value);
+                       return FALSE;
+               }
+
+               for (i = 0; print_columns[i] != 0; i++) {
+                       gtk_tree_model_get_value (
+                               model, iter, print_columns[i] - 1, &value);
+
+                       selected = g_slist_append (selected, g_value_dup_string (&value));
+                       g_value_unset (&value);
+               }
+       }
+
+       g_value_unset (&toggle_value);
+
+       return FALSE;
 }
 
 static void
-zenity_tree_dialog_output (void)
-{
-GObject *tree_view;
-  GtkTreeSelection *selection;
-  GtkTreeModel *model;
-
-  tree_view = gtk_builder_get_object (builder, "zenity_tree_view");
-  model = gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view));
-
-  if (gtk_tree_model_get_column_type (model, 0) == G_TYPE_BOOLEAN)
-    gtk_tree_model_foreach (model, (GtkTreeModelForeachFunc) zenity_tree_dialog_toggle_get_selected,
-                            GTK_TREE_VIEW (tree_view));
-  else {
-    selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
-    gtk_tree_selection_selected_foreach (selection,
-                                        (GtkTreeSelectionForeachFunc) zenity_tree_dialog_get_selected,
-                                         GTK_TREE_VIEW (tree_view));
-  }
-
-  GSList *tmp;
-
-  for (tmp = selected; tmp; tmp = tmp->next) {
-    if (tmp->next != NULL) {
-        g_print ("%s%s", (gchar *) tmp->data, separator);
-    }
-    else
-      g_print ("%s\n", (gchar *) tmp->data);
-  }
-
-  g_free (print_columns);
-  g_free (hide_columns);
-  g_free (separator);
-  g_slist_foreach (selected, (GFunc) g_free, NULL);
-  selected = NULL;
+zenity_tree_dialog_output (void) {
+       GObject *tree_view;
+       GtkTreeSelection *selection;
+       GtkTreeModel *model;
+
+       tree_view = gtk_builder_get_object (builder, "zenity_tree_view");
+       model = gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view));
+
+       if (gtk_tree_model_get_column_type (model, 0) == G_TYPE_BOOLEAN)
+               gtk_tree_model_foreach (model,
+                       (GtkTreeModelForeachFunc) zenity_tree_dialog_toggle_get_selected,
+                       GTK_TREE_VIEW (tree_view));
+       else {
+               selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
+               gtk_tree_selection_selected_foreach (selection,
+                       (GtkTreeSelectionForeachFunc) zenity_tree_dialog_get_selected,
+                       GTK_TREE_VIEW (tree_view));
+       }
+
+       GSList *tmp;
+
+       for (tmp = selected; tmp; tmp = tmp->next) {
+               if (tmp->next != NULL) {
+                       g_print ("%s%s", (gchar *) tmp->data, separator);
+               } else
+                       g_print ("%s\n", (gchar *) tmp->data);
+       }
+
+       g_free (print_columns);
+       g_free (hide_columns);
+       g_free (separator);
+       g_slist_foreach (selected, (GFunc) g_free, NULL);
+       selected = NULL;
 }
 
 static void
-zenity_tree_dialog_response (GtkWidget *widget, int response, gpointer data)
-{
-  ZenityData *zen_data = data;
-
-  switch (response) {
-    case GTK_RESPONSE_OK:
-      zenity_tree_dialog_output ();
-      zenity_util_exit_code_with_data(ZENITY_OK, zen_data);
-      break;
-
-    case GTK_RESPONSE_CANCEL:
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
-      break;
-
-    case ZENITY_TIMEOUT:
-      zenity_tree_dialog_output ();
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
-      break;
-
-    default:
-      if (zen_data->extra_label && response < g_strv_length(zen_data->extra_label))
-        printf("%s\n",zen_data->extra_label[response]);
-      zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
-      break;
-  }
-  if (channel != NULL && g_io_channel_get_flags (channel) & G_IO_FLAG_IS_READABLE)
-    g_io_channel_shutdown (channel, TRUE, NULL);
-
-  gtk_main_quit ();
+zenity_tree_dialog_response (GtkWidget *widget, int response, gpointer data) {
+       ZenityData *zen_data = data;
+
+       switch (response) {
+               case GTK_RESPONSE_OK:
+                       zenity_tree_dialog_output ();
+                       zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
+                       break;
+
+               case GTK_RESPONSE_CANCEL:
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
+                       break;
+
+               case ZENITY_TIMEOUT:
+                       zenity_tree_dialog_output ();
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
+                       break;
+
+               default:
+                       if (zen_data->extra_label &&
+                               response < g_strv_length (zen_data->extra_label))
+                               printf ("%s\n", zen_data->extra_label[response]);
+                       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
+                       break;
+       }
+       if (channel != NULL &&
+               g_io_channel_get_flags (channel) & G_IO_FLAG_IS_READABLE)
+               g_io_channel_shutdown (channel, TRUE, NULL);
+
+       gtk_main_quit ();
 }
 
 static void
-zenity_tree_row_activated (GtkTreeView *tree_view, GtkTreePath *tree_path, 
-                           GtkTreeViewColumn *tree_col, gpointer data)
-{
-  ZenityData *zen_data = data;
- 
-  zenity_tree_dialog_output ();
-  zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
-  gtk_main_quit ();
+zenity_tree_row_activated (GtkTreeView *tree_view, GtkTreePath *tree_path,
+       GtkTreeViewColumn *tree_col, gpointer data) {
+       ZenityData *zen_data = data;
+
+       zenity_tree_dialog_output ();
+       zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
+       gtk_main_quit ();
 }
 
 static gboolean
-zenity_tree_column_is_hidden (gint column_index)
-{
-  gint i;
+zenity_tree_column_is_hidden (gint column_index) {
+       gint i;
 
-  if (hide_columns != NULL)
-    for (i = 0; hide_columns[i] != 0; i++)
-      if (hide_columns[i] == column_index)
-        return TRUE;
+       if (hide_columns != NULL)
+               for (i = 0; hide_columns[i] != 0; i++)
+                       if (hide_columns[i] == column_index)
+                               return TRUE;
 
-  return FALSE;
+       return FALSE;
 }
 
 static gint *
-zenity_tree_extract_column_indexes (char *indexes, int n_columns)
-{
-  char **tmp;  
-  gint *result;
-  gint i, j, index;
+zenity_tree_extract_column_indexes (char *indexes, int n_columns) {
+       char **tmp;
+       gint *result;
+       gint i, j, index;
 
-  tmp = g_strsplit (indexes, 
-                    PRINT_HIDE_COLUMN_SEPARATOR, 0);
+       tmp = g_strsplit (indexes, PRINT_HIDE_COLUMN_SEPARATOR, 0);
 
-  result = g_new (gint, 1);
+       result = g_new (gint, 1);
 
-  for (j = i = 0; tmp[i] != NULL; i++) {
-    index = atoi (tmp[i]);
+       for (j = i = 0; tmp[i] != NULL; i++) {
+               index = atoi (tmp[i]);
 
-    if (index > 0 && index <= n_columns) {
-      result[j] = index;
-      j++;
-      result = g_renew (gint, result, j + 1);
-    }
-  }
-  result[j] = 0;
+               if (index > 0 && index <= n_columns) {
+                       result[j] = index;
+                       j++;
+                       result = g_renew (gint, result, j + 1);
+               }
+       }
+       result[j] = 0;
 
-  g_strfreev (tmp);
+       g_strfreev (tmp);
 
-  return result;
+       return result;
 }
diff --git a/src/util.c b/src/util.c
index ddb0146..0c10186 100644
--- a/src/util.c
+++ b/src/util.c
@@ -29,340 +29,330 @@
 
 #include "config.h"
 
-#include <stdio.h>
-#include <locale.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdarg.h>
 #include "config.h"
 #include "util.h"
 #include "zenity.h"
+#include <errno.h>
+#include <locale.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 
 #ifdef GDK_WINDOWING_X11
 #include <gdk/gdkx.h>
 #endif
 
-#define ZENITY_OK_DEFAULT      0
-#define ZENITY_CANCEL_DEFAULT  1
-#define ZENITY_ESC_DEFAULT     1
-#define ZENITY_ERROR_DEFAULT   -1
-#define ZENITY_EXTRA_DEFAULT   127
-
-GtkBuilder*
-zenity_util_load_ui_file (const gchar *root_widget, ...)
-{
-  va_list args;
-  gchar *arg = NULL;
-  GPtrArray *ptrarray;
-  GtkBuilder *builder = gtk_builder_new ();
-  GError *error = NULL;
-  gchar  **objects;
-  guint result = 0;
-
-  gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE);
-
-  /* We have at least the root_widget and a NULL */
-  ptrarray = g_ptr_array_sized_new (2);
-
-  g_ptr_array_add (ptrarray, g_strdup (root_widget));
-
-  va_start (args, root_widget);
-
-  arg = va_arg (args, gchar*);
-
-  while (arg) {
-       g_ptr_array_add (ptrarray, g_strdup (arg));
-       arg = va_arg (args, gchar*);
-  }
-  va_end (args);
-
-  /* Enforce terminating NULL */
-  g_ptr_array_add (ptrarray, NULL);
-  objects = (gchar**) g_ptr_array_free (ptrarray, FALSE);
-  
-  if (g_file_test (ZENITY_UI_FILE_RELATIVEPATH, G_FILE_TEST_EXISTS)) {
-    /* Try current dir, for debugging */
-    result = gtk_builder_add_objects_from_file (builder,
-                                               ZENITY_UI_FILE_RELATIVEPATH,
-                                               objects, NULL);
-  }
-
-  if (result == 0)
-    result = gtk_builder_add_objects_from_file (builder,
-                                               ZENITY_UI_FILE_FULLPATH,
-                                               objects, &error);
-
-  g_strfreev (objects);
-
-  if (result == 0) {
-    g_warning ("Could not load ui file %s: %s", ZENITY_UI_FILE_FULLPATH,
-                                               error->message);
-    g_error_free (error);
-    g_object_unref (builder);
-    return NULL;
-  }
-
-  return builder;
+#define ZENITY_OK_DEFAULT 0
+#define ZENITY_CANCEL_DEFAULT 1
+#define ZENITY_ESC_DEFAULT 1
+#define ZENITY_ERROR_DEFAULT -1
+#define ZENITY_EXTRA_DEFAULT 127
+
+GtkBuilder *
+zenity_util_load_ui_file (const gchar *root_widget, ...) {
+       va_list args;
+       gchar *arg = NULL;
+       GPtrArray *ptrarray;
+       GtkBuilder *builder = gtk_builder_new ();
+       GError *error = NULL;
+       gchar **objects;
+       guint result = 0;
+
+       gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE);
+
+       /* We have at least the root_widget and a NULL */
+       ptrarray = g_ptr_array_sized_new (2);
+
+       g_ptr_array_add (ptrarray, g_strdup (root_widget));
+
+       va_start (args, root_widget);
+
+       arg = va_arg (args, gchar *);
+
+       while (arg) {
+               g_ptr_array_add (ptrarray, g_strdup (arg));
+               arg = va_arg (args, gchar *);
+       }
+       va_end (args);
+
+       /* Enforce terminating NULL */
+       g_ptr_array_add (ptrarray, NULL);
+       objects = (gchar **) g_ptr_array_free (ptrarray, FALSE);
+
+       if (g_file_test (ZENITY_UI_FILE_RELATIVEPATH, G_FILE_TEST_EXISTS)) {
+               /* Try current dir, for debugging */
+               result = gtk_builder_add_objects_from_file (
+                       builder, ZENITY_UI_FILE_RELATIVEPATH, objects, NULL);
+       }
+
+       if (result == 0)
+               result = gtk_builder_add_objects_from_file (
+                       builder, ZENITY_UI_FILE_FULLPATH, objects, &error);
+
+       g_strfreev (objects);
+
+       if (result == 0) {
+               g_warning ("Could not load ui file %s: %s",
+                       ZENITY_UI_FILE_FULLPATH,
+                       error->message);
+               g_error_free (error);
+               g_object_unref (builder);
+               return NULL;
+       }
+
+       return builder;
 }
-gchar*
-zenity_util_strip_newline (gchar *string)
-{
-    gsize len;
-    
-    g_return_val_if_fail (string != NULL, NULL);
-                                                                                                             
                                                                
-    len = strlen (string);
-    while (len--) 
-    {
-      if (string[len] == '\n')
-        string[len] = '\0';
-      else
-        break;
-    }
-            
-    return string;
+gchar *
+zenity_util_strip_newline (gchar *string) {
+       gsize len;
+
+       g_return_val_if_fail (string != NULL, NULL);
+
+       len = strlen (string);
+       while (len--) {
+               if (string[len] == '\n')
+                       string[len] = '\0';
+               else
+                       break;
+       }
+
+       return string;
 }
 
 gboolean
-zenity_util_fill_file_buffer (GtkTextBuffer *buffer, const gchar *filename) 
-{
-  GtkTextIter iter, end;
-  FILE *f;
-  gchar buf[2048];
-  gint remaining = 0;
+zenity_util_fill_file_buffer (GtkTextBuffer *buffer, const gchar *filename) {
+       GtkTextIter iter, end;
+       FILE *f;
+       gchar buf[2048];
+       gint remaining = 0;
 
-  if (filename == NULL)
-    return FALSE;
+       if (filename == NULL)
+               return FALSE;
 
-  f = fopen (filename, "r");
+       f = fopen (filename, "r");
 
-  if (f == NULL) {
-    g_warning ("Cannot open file '%s': %s", filename, g_strerror (errno));
-    return FALSE;
-  }
+       if (f == NULL) {
+               g_warning ("Cannot open file '%s': %s", filename, g_strerror (errno));
+               return FALSE;
+       }
 
-  gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0);
+       gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0);
 
-  while (!feof (f)) {
-    gint count;
-    const char *leftover;
-    int to_read = 2047  - remaining;
+       while (!feof (f)) {
+               gint count;
+               const char *leftover;
+               int to_read = 2047 - remaining;
 
-    count = fread (buf + remaining, 1, to_read, f);
-    buf[count + remaining] = '\0';
+               count = fread (buf + remaining, 1, to_read, f);
+               buf[count + remaining] = '\0';
 
-    g_utf8_validate (buf, count + remaining, &leftover);
+               g_utf8_validate (buf, count + remaining, &leftover);
 
-    g_assert (g_utf8_validate (buf, leftover - buf, NULL));
-    gtk_text_buffer_insert (buffer, &iter, buf, leftover - buf);
+               g_assert (g_utf8_validate (buf, leftover - buf, NULL));
+               gtk_text_buffer_insert (buffer, &iter, buf, leftover - buf);
 
-    remaining = (buf + remaining + count) - leftover;
-    g_memmove (buf, leftover, remaining);
+               remaining = (buf + remaining + count) - leftover;
+               g_memmove (buf, leftover, remaining);
 
-    if (remaining > 6 || count < to_read)
-      break;
-  }
+               if (remaining > 6 || count < to_read)
+                       break;
+       }
 
-  if (remaining) {
-    g_warning ("Invalid UTF-8 data encountered reading file '%s'", filename);
-    return FALSE;
-  }
+       if (remaining) {
+               g_warning (
+                       "Invalid UTF-8 data encountered reading file '%s'", filename);
+               return FALSE;
+       }
 
-  /* We had a newline in the buffer to begin with. (The buffer always contains
-   * a newline, so we delete to the end of the buffer to clean up.
-   */
-  
-  gtk_text_buffer_get_end_iter (buffer, &end);
-  gtk_text_buffer_delete (buffer, &iter, &end);
+       /* We had a newline in the buffer to begin with. (The buffer always contains
+        * a newline, so we delete to the end of the buffer to clean up.
+        */
 
-  gtk_text_buffer_set_modified (buffer, FALSE);
+       gtk_text_buffer_get_end_iter (buffer, &end);
+       gtk_text_buffer_delete (buffer, &iter, &end);
 
-  return TRUE;
+       gtk_text_buffer_set_modified (buffer, FALSE);
+
+       return TRUE;
 }
 
 const gchar *
-zenity_util_icon_name_from_filename (const gchar *filename)
-{
-  if (!filename || !filename[0])
-    return "dialog-warning"; /* default */
-
-  if (!g_ascii_strcasecmp (filename, "warning"))
-    return "dialog-warning";
-  if (!g_ascii_strcasecmp (filename, "info"))
-    return "dialog-information";
-  if (!g_ascii_strcasecmp (filename, "question"))
-    return "dialog-question";
-  if (!g_ascii_strcasecmp (filename, "error"))
-    return "dialog-error";
-  return NULL;
+zenity_util_icon_name_from_filename (const gchar *filename) {
+       if (!filename || !filename[0])
+               return "dialog-warning"; /* default */
+
+       if (!g_ascii_strcasecmp (filename, "warning"))
+               return "dialog-warning";
+       if (!g_ascii_strcasecmp (filename, "info"))
+               return "dialog-information";
+       if (!g_ascii_strcasecmp (filename, "question"))
+               return "dialog-question";
+       if (!g_ascii_strcasecmp (filename, "error"))
+               return "dialog-error";
+       return NULL;
 }
 
 void
-zenity_util_set_window_icon_from_file (GtkWidget *widget, const gchar *filename)
-{
-  GdkPixbuf *pixbuf;
-  const gchar *icon_name;
-
-  icon_name = zenity_util_icon_name_from_filename (filename);
-  if (icon_name) {
-    gtk_window_set_icon_name (GTK_WINDOW (widget), icon_name);
-  } else {
-    pixbuf = gdk_pixbuf_new_from_file (filename, NULL);
-    gtk_window_set_icon (GTK_WINDOW (widget), pixbuf);
-    g_object_unref (pixbuf);
-  }
+zenity_util_set_window_icon_from_file (
+       GtkWidget *widget, const gchar *filename) {
+       GdkPixbuf *pixbuf;
+       const gchar *icon_name;
+
+       icon_name = zenity_util_icon_name_from_filename (filename);
+       if (icon_name) {
+               gtk_window_set_icon_name (GTK_WINDOW (widget), icon_name);
+       } else {
+               pixbuf = gdk_pixbuf_new_from_file (filename, NULL);
+               gtk_window_set_icon (GTK_WINDOW (widget), pixbuf);
+               g_object_unref (pixbuf);
+       }
 }
 
 void
-zenity_util_set_window_icon (GtkWidget *widget, const gchar *filename, const gchar *default_file)
-{
-  GdkPixbuf *pixbuf;
-
-  if (filename != NULL) {
-    zenity_util_set_window_icon_from_file (widget, filename);
-  } else {
-    pixbuf = gdk_pixbuf_new_from_file (default_file, NULL);
-    if (pixbuf != NULL) {
-      gtk_window_set_icon (GTK_WINDOW (widget), pixbuf);
-      g_object_unref (pixbuf);
-    }
-  }
+zenity_util_set_window_icon (
+       GtkWidget *widget, const gchar *filename, const gchar *default_file) {
+       GdkPixbuf *pixbuf;
+
+       if (filename != NULL) {
+               zenity_util_set_window_icon_from_file (widget, filename);
+       } else {
+               pixbuf = gdk_pixbuf_new_from_file (default_file, NULL);
+               if (pixbuf != NULL) {
+                       gtk_window_set_icon (GTK_WINDOW (widget), pixbuf);
+                       g_object_unref (pixbuf);
+               }
+       }
 }
 
 void
-zenity_util_set_window_icon_from_icon_name (GtkWidget *widget, const gchar *filename, const gchar 
*default_icon_name)
-{
-  if (filename != NULL)
-    zenity_util_set_window_icon_from_file (widget, filename);
-  else
-    gtk_window_set_icon_name (GTK_WINDOW (widget), default_icon_name);
+zenity_util_set_window_icon_from_icon_name (
+       GtkWidget *widget, const gchar *filename, const gchar *default_icon_name) {
+       if (filename != NULL)
+               zenity_util_set_window_icon_from_file (widget, filename);
+       else
+               gtk_window_set_icon_name (GTK_WINDOW (widget), default_icon_name);
 }
 
 void
-zenity_util_show_help (GError **error)
-{
-  gchar *tmp;
-  tmp = g_find_program_in_path ("yelp");
-
-  if (tmp) {
-    g_free (tmp);
-    g_spawn_command_line_async ("yelp help:zenity", error);
-  }
+zenity_util_show_help (GError **error) {
+       gchar *tmp;
+       tmp = g_find_program_in_path ("yelp");
+
+       if (tmp) {
+               g_free (tmp);
+               g_spawn_command_line_async ("yelp help:zenity", error);
+       }
 }
 
-gint 
-zenity_util_return_exit_code ( ZenityExitCode value ) 
-{
-
-  const gchar *env_var = NULL;
-  gint retval;
-
-  switch (value) {
-  
-  case ZENITY_OK:
-    env_var = g_getenv("ZENITY_OK");
-    if (! env_var) 
-          env_var = g_getenv("DIALOG_OK");
-    if (! env_var) 
-          retval = ZENITY_OK_DEFAULT;
-    break;
-   
-  case ZENITY_CANCEL:
-    env_var = g_getenv("ZENITY_CANCEL");
-    if (! env_var) 
-          env_var = g_getenv("DIALOG_CANCEL");
-    if (! env_var) 
-          retval = ZENITY_CANCEL_DEFAULT;
-    break;
-    
-  case ZENITY_ESC:
-    env_var = g_getenv("ZENITY_ESC");
-    if (! env_var) 
-          env_var = g_getenv("DIALOG_ESC");
-    if (! env_var) 
-          retval = ZENITY_ESC_DEFAULT;
-    break;
-    
-  case ZENITY_EXTRA:
-    env_var = g_getenv("ZENITY_EXTRA");
-    if (! env_var) 
-          env_var = g_getenv("DIALOG_EXTRA");
-    if (! env_var) 
-          retval = ZENITY_EXTRA_DEFAULT;
-    break;
-    
-  case ZENITY_ERROR:
-    env_var = g_getenv("ZENITY_ERROR");
-    if (! env_var) 
-          env_var = g_getenv("DIALOG_ERROR");
-    if (! env_var) 
-          retval = ZENITY_ERROR_DEFAULT;
-    break;
-  
-  case ZENITY_TIMEOUT:
-    env_var = g_getenv("ZENITY_TIMEOUT");
-    if (! env_var)
-          env_var = g_getenv("DIALOG_TIMEOUT");
-    if (! env_var)
-          retval = ZENITY_TIMEOUT;
-    break;
-  
-  default:
-    retval = 1;
-  }
-  
-  if (env_var) 
-      retval = atoi (env_var);
-  return retval; 
+gint
+zenity_util_return_exit_code (ZenityExitCode value) {
+
+       const gchar *env_var = NULL;
+       gint retval;
+
+       switch (value) {
+
+               case ZENITY_OK:
+                       env_var = g_getenv ("ZENITY_OK");
+                       if (!env_var)
+                               env_var = g_getenv ("DIALOG_OK");
+                       if (!env_var)
+                               retval = ZENITY_OK_DEFAULT;
+                       break;
+
+               case ZENITY_CANCEL:
+                       env_var = g_getenv ("ZENITY_CANCEL");
+                       if (!env_var)
+                               env_var = g_getenv ("DIALOG_CANCEL");
+                       if (!env_var)
+                               retval = ZENITY_CANCEL_DEFAULT;
+                       break;
+
+               case ZENITY_ESC:
+                       env_var = g_getenv ("ZENITY_ESC");
+                       if (!env_var)
+                               env_var = g_getenv ("DIALOG_ESC");
+                       if (!env_var)
+                               retval = ZENITY_ESC_DEFAULT;
+                       break;
+
+               case ZENITY_EXTRA:
+                       env_var = g_getenv ("ZENITY_EXTRA");
+                       if (!env_var)
+                               env_var = g_getenv ("DIALOG_EXTRA");
+                       if (!env_var)
+                               retval = ZENITY_EXTRA_DEFAULT;
+                       break;
+
+               case ZENITY_ERROR:
+                       env_var = g_getenv ("ZENITY_ERROR");
+                       if (!env_var)
+                               env_var = g_getenv ("DIALOG_ERROR");
+                       if (!env_var)
+                               retval = ZENITY_ERROR_DEFAULT;
+                       break;
+
+               case ZENITY_TIMEOUT:
+                       env_var = g_getenv ("ZENITY_TIMEOUT");
+                       if (!env_var)
+                               env_var = g_getenv ("DIALOG_TIMEOUT");
+                       if (!env_var)
+                               retval = ZENITY_TIMEOUT;
+                       break;
+
+               default:
+                       retval = 1;
+       }
+
+       if (env_var)
+               retval = atoi (env_var);
+       return retval;
 }
 
 void
-zenity_util_exit_code_with_data(ZenityExitCode value, ZenityData *zen_data)
-{
-    zen_data->exit_code = zenity_util_return_exit_code (value);
+zenity_util_exit_code_with_data (ZenityExitCode value, ZenityData *zen_data) {
+       zen_data->exit_code = zenity_util_return_exit_code (value);
 }
 
 #ifdef GDK_WINDOWING_X11
 
 static Window
-transient_get_xterm (void)
-{
-  const char *wid_str = g_getenv ("WINDOWID");
-  if (wid_str) {
-    char *wid_str_end;
-    int ret;
-    Window wid = strtoul (wid_str, &wid_str_end, 10);
-    if (*wid_str != '\0' && *wid_str_end == '\0' && wid != 0) {
-      XWindowAttributes attrs;
-      gdk_error_trap_push ();
-      ret = XGetWindowAttributes (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), wid, &attrs);
-      gdk_flush();
-      if (gdk_error_trap_pop () != 0 || ret == 0) {
-        return None;
-      }
-      return wid;
-    }
-  }
-  return None;
+transient_get_xterm (void) {
+       const char *wid_str = g_getenv ("WINDOWID");
+       if (wid_str) {
+               char *wid_str_end;
+               int ret;
+               Window wid = strtoul (wid_str, &wid_str_end, 10);
+               if (*wid_str != '\0' && *wid_str_end == '\0' && wid != 0) {
+                       XWindowAttributes attrs;
+                       gdk_error_trap_push ();
+                       ret = XGetWindowAttributes (
+                               GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), wid, &attrs);
+                       gdk_flush ();
+                       if (gdk_error_trap_pop () != 0 || ret == 0) {
+                               return None;
+                       }
+                       return wid;
+               }
+       }
+       return None;
 }
 
 static void
-transient_x_free (void *ptr)
-{
-  if (ptr)
-    XFree (ptr);
+transient_x_free (void *ptr) {
+       if (ptr)
+               XFree (ptr);
 }
 
 static gboolean
-transient_is_toplevel (Window wid)
-{
-  XTextProperty prop;
-  Display *dpy = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
-  if (!XGetWMName (dpy, wid, &prop))
-    return FALSE;
-  transient_x_free (prop.value);
-  return !!prop.value;
+transient_is_toplevel (Window wid) {
+       XTextProperty prop;
+       Display *dpy = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+       if (!XGetWMName (dpy, wid, &prop))
+               return FALSE;
+       transient_x_free (prop.value);
+       return !!prop.value;
 }
 
 /*
@@ -372,62 +362,56 @@ transient_is_toplevel (Window wid)
  */
 
 static Window
-transient_get_xterm_toplevel (void)
-{
-  Window xterm = transient_get_xterm ();
-  Display *dpy = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
-  while (xterm != None && !transient_is_toplevel (xterm))
-  {
-    Window root, parent, *children;
-    unsigned nchildren;
-    XQueryTree (dpy, xterm,
-                &root, &parent,
-                &children, &nchildren);
-    transient_x_free (children);
-    if (parent == root)
-      xterm = None;
-    else
-      xterm = parent;
-  }
-  return xterm;
+transient_get_xterm_toplevel (void) {
+       Window xterm = transient_get_xterm ();
+       Display *dpy = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+       while (xterm != None && !transient_is_toplevel (xterm)) {
+               Window root, parent, *children;
+               unsigned nchildren;
+               XQueryTree (dpy, xterm, &root, &parent, &children, &nchildren);
+               transient_x_free (children);
+               if (parent == root)
+                       xterm = None;
+               else
+                       xterm = parent;
+       }
+       return xterm;
 }
 
 static void
-zenity_util_make_transient (GdkWindow *window, Window parent)
-{
-  Window parent_window = parent;
-  if (parent_window == 0)
-    parent_window = transient_get_xterm_toplevel ();
-  if (parent_window != None) {
-    XSetTransientForHint (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), GDK_WINDOW_XID(window), 
parent_window);
-  }
+zenity_util_make_transient (GdkWindow *window, Window parent) {
+       Window parent_window = parent;
+       if (parent_window == 0)
+               parent_window = transient_get_xterm_toplevel ();
+       if (parent_window != None) {
+               XSetTransientForHint (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
+                       GDK_WINDOW_XID (window),
+                       parent_window);
+       }
 }
 
 #endif /* GDK_WINDOWING_X11 */
 
 void
-zenity_util_show_dialog (GtkWidget *dialog, guintptr parent)
-{
-  gtk_widget_realize (dialog);
+zenity_util_show_dialog (GtkWidget *dialog, guintptr parent) {
+       gtk_widget_realize (dialog);
 #ifdef GDK_WINDOWING_X11
-  if (GDK_IS_X11_DISPLAY (gdk_display_get_default ()))
-    {
-      g_assert (gtk_widget_get_window(dialog));
-      zenity_util_make_transient (gtk_widget_get_window(dialog), parent);
-    }
+       if (GDK_IS_X11_DISPLAY (gdk_display_get_default ())) {
+               g_assert (gtk_widget_get_window (dialog));
+               zenity_util_make_transient (gtk_widget_get_window (dialog), parent);
+       }
 #endif
-  gtk_widget_show (dialog);
+       gtk_widget_show (dialog);
 }
 
-gboolean 
-zenity_util_timeout_handle (gpointer data)
-{
-  GtkDialog *dialog = GTK_DIALOG(data);
-  if(dialog != NULL)
-    gtk_dialog_response(dialog, ZENITY_TIMEOUT);
-  else {
-    gtk_main_quit();
-    exit(ZENITY_TIMEOUT);
-  }
-  return FALSE;
+gboolean
+zenity_util_timeout_handle (gpointer data) {
+       GtkDialog *dialog = GTK_DIALOG (data);
+       if (dialog != NULL)
+               gtk_dialog_response (dialog, ZENITY_TIMEOUT);
+       else {
+               gtk_main_quit ();
+               exit (ZENITY_TIMEOUT);
+       }
+       return FALSE;
 }
diff --git a/src/util.h b/src/util.h
index c847cd4..3e5391b 100644
--- a/src/util.h
+++ b/src/util.h
@@ -1,37 +1,34 @@
-#ifndef UTIL_H 
+#ifndef UTIL_H
 #define UTIL_H
 
-#include <gtk/gtk.h>
 #include "zenity.h"
-
+#include <gtk/gtk.h>
 
 G_BEGIN_DECLS
 
-#define ZENITY_UI_FILE_FULLPATH              ZENITY_DATADIR "/zenity.ui"
-#define ZENITY_UI_FILE_RELATIVEPATH          "./zenity.ui"
-
-#define ZENITY_IMAGE_FULLPATH(filename)         (ZENITY_DATADIR "/" filename)
-
-GtkBuilder*     zenity_util_load_ui_file                  (const gchar    *widget_root, ...) 
G_GNUC_NULL_TERMINATED;
-gchar *         zenity_util_strip_newline                 (gchar          *string);
-gboolean        zenity_util_fill_file_buffer              (GtkTextBuffer  *buffer, 
-                                                           const gchar    *filename);
-const gchar *   zenity_util_icon_name_from_filename      (const gchar    *filename);
-void           zenity_util_set_window_icon               (GtkWidget      *widget,
-                                                          const gchar    *filename,
-                                                          const gchar    *default_file);
-void            zenity_util_set_window_icon_from_icon_name(GtkWidget      *widget,
-                                                          const gchar    *filename,
-                                                           const gchar    *default_icon_name);
-void           zenity_util_set_window_icon_from_file     (GtkWidget      *widget,
-                                                          const gchar    *filename);
-void           zenity_util_show_help                     (GError        **error);
-gint           zenity_util_return_exit_code              (ZenityExitCode value);                      
-void            zenity_util_exit_code_with_data           (ZenityExitCode value,
-                                                           ZenityData     *data);
-void            zenity_util_show_dialog                   (GtkWidget      *widget, guintptr parent);
-
-gboolean        zenity_util_timeout_handle                (gpointer data);
+#define ZENITY_UI_FILE_FULLPATH ZENITY_DATADIR "/zenity.ui"
+#define ZENITY_UI_FILE_RELATIVEPATH "./zenity.ui"
+
+#define ZENITY_IMAGE_FULLPATH(filename) (ZENITY_DATADIR "/" filename)
+
+GtkBuilder *zenity_util_load_ui_file (
+       const gchar *widget_root, ...) G_GNUC_NULL_TERMINATED;
+gchar *zenity_util_strip_newline (gchar *string);
+gboolean zenity_util_fill_file_buffer (
+       GtkTextBuffer *buffer, const gchar *filename);
+const gchar *zenity_util_icon_name_from_filename (const gchar *filename);
+void zenity_util_set_window_icon (
+       GtkWidget *widget, const gchar *filename, const gchar *default_file);
+void zenity_util_set_window_icon_from_icon_name (
+       GtkWidget *widget, const gchar *filename, const gchar *default_icon_name);
+void zenity_util_set_window_icon_from_file (
+       GtkWidget *widget, const gchar *filename);
+void zenity_util_show_help (GError **error);
+gint zenity_util_return_exit_code (ZenityExitCode value);
+void zenity_util_exit_code_with_data (ZenityExitCode value, ZenityData *data);
+void zenity_util_show_dialog (GtkWidget *widget, guintptr parent);
+
+gboolean zenity_util_timeout_handle (gpointer data);
 
 G_END_DECLS
 
diff --git a/src/zenity.h b/src/zenity.h
index bab11e3..b86a264 100644
--- a/src/zenity.h
+++ b/src/zenity.h
@@ -7,9 +7,9 @@ G_BEGIN_DECLS
 
 #ifdef ENABLE_NLS
 #include <libintl.h>
-#define _(String) dgettext(GETTEXT_PACKAGE,String)
+#define _(String) dgettext (GETTEXT_PACKAGE, String)
 #ifdef gettext_noop
-#define N_(String) gettext_noop(String)
+#define N_(String) gettext_noop (String)
 #else
 #define N_(String) (String)
 #endif
@@ -18,205 +18,196 @@ G_BEGIN_DECLS
 #define N_(String) (String)
 #define textdomain(String) (String)
 #define gettext(String) (String)
-#define dgettext(Domain,String) (String)
-#define dcgettext(Domain,String,Type) (String)
-#define bindtextdomain(Domain,Directory) (Domain) 
+#define dgettext(Domain, String) (String)
+#define dcgettext(Domain, String, Type) (String)
+#define bindtextdomain(Domain, Directory) (Domain)
 #endif
 
 typedef struct {
-  gchar *dialog_title;
-  gchar *window_icon;
-  gchar *ok_label;
-  gchar *cancel_label;
-  gchar **extra_label;
-  gint   width;
-  gint   height;
-  gint   exit_code;
-  gint   timeout_delay;
-  gboolean modal;
-  guintptr attach;
+       gchar *dialog_title;
+       gchar *window_icon;
+       gchar *ok_label;
+       gchar *cancel_label;
+       gchar **extra_label;
+       gint width;
+       gint height;
+       gint exit_code;
+       gint timeout_delay;
+       gboolean modal;
+       guintptr attach;
 } ZenityData;
 
 typedef enum {
-  ZENITY_OK,
-  ZENITY_CANCEL,
-  ZENITY_ESC,
-  ZENITY_ERROR,
-  ZENITY_EXTRA,
-  ZENITY_TIMEOUT
+       ZENITY_OK,
+       ZENITY_CANCEL,
+       ZENITY_ESC,
+       ZENITY_ERROR,
+       ZENITY_EXTRA,
+       ZENITY_TIMEOUT
 } ZenityExitCode;
 
 typedef struct {
-  gchar *dialog_text;
-  gint   day;
-  gint   month;
-  gint   year;
-  gchar *date_format;
+       gchar *dialog_text;
+       gint day;
+       gint month;
+       gint year;
+       gchar *date_format;
 } ZenityCalendarData;
 
 typedef enum {
-  ZENITY_MSG_WARNING,
-  ZENITY_MSG_QUESTION,
-  ZENITY_MSG_SWITCH,
-  ZENITY_MSG_ERROR,
-  ZENITY_MSG_INFO
+       ZENITY_MSG_WARNING,
+       ZENITY_MSG_QUESTION,
+       ZENITY_MSG_SWITCH,
+       ZENITY_MSG_ERROR,
+       ZENITY_MSG_INFO
 } MsgMode;
 
 typedef struct {
-  gchar   *dialog_text;
-  gchar   *dialog_icon;
-  MsgMode  mode;
-  gboolean no_wrap;
-  gboolean no_markup;
-  gboolean default_cancel;
-  gboolean ellipsize;
+       gchar *dialog_text;
+       gchar *dialog_icon;
+       MsgMode mode;
+       gboolean no_wrap;
+       gboolean no_markup;
+       gboolean default_cancel;
+       gboolean ellipsize;
 } ZenityMsgData;
 
 typedef struct {
-  gchar   *dialog_text;
-  gint     value;
-  gint     min_value;
-  gint     max_value;
-  gint     step;
-  gboolean print_partial;
-  gboolean hide_value;
+       gchar *dialog_text;
+       gint value;
+       gint min_value;
+       gint max_value;
+       gint step;
+       gboolean print_partial;
+       gboolean hide_value;
 } ZenityScaleData;
 
 typedef struct {
-  gchar          *uri;
-  gboolean multi;
-  gboolean directory;
-  gboolean save;
-  gboolean confirm_overwrite;
-  gchar   *separator;
-  gchar  **filter;
+       gchar *uri;
+       gboolean multi;
+       gboolean directory;
+       gboolean save;
+       gboolean confirm_overwrite;
+       gchar *separator;
+       gchar **filter;
 } ZenityFileData;
 
 typedef struct {
-  gchar   *dialog_text;
-  gchar   *entry_text;
-  gboolean hide_text;
-  const gchar **data;
+       gchar *dialog_text;
+       gchar *entry_text;
+       gboolean hide_text;
+       const gchar **data;
 } ZenityEntryData;
 
 typedef struct {
-  gchar   *dialog_text;
-  gchar   *entry_text;
-  gboolean pulsate;
-  gboolean autoclose;
-  gboolean autokill;
-  gdouble  percentage;
-  gboolean no_cancel;
-  gboolean time_remaining;
+       gchar *dialog_text;
+       gchar *entry_text;
+       gboolean pulsate;
+       gboolean autoclose;
+       gboolean autokill;
+       gdouble percentage;
+       gboolean no_cancel;
+       gboolean time_remaining;
 } ZenityProgressData;
 
 typedef struct {
-  gchar         *uri;
-  gboolean       editable;
-  gboolean       no_wrap;
-  gboolean       auto_scroll;
-  gchar         *font;
-  GtkTextBuffer        *buffer;
-  gchar         *checkbox;
+       gchar *uri;
+       gboolean editable;
+       gboolean no_wrap;
+       gboolean auto_scroll;
+       gchar *font;
+       GtkTextBuffer *buffer;
+       gchar *checkbox;
 #ifdef HAVE_WEBKITGTK
-  gboolean       html;
-  gboolean       no_interaction;
-  gchar         *url;
+       gboolean html;
+       gboolean no_interaction;
+       gchar *url;
 #endif
 } ZenityTextData;
 
 typedef struct {
-  gchar        *dialog_text;
-  GSList       *columns;
-  gboolean      checkbox;
-  gboolean      radiobox;
-  gboolean      hide_header;
-  gboolean      imagebox;
-  gchar        *separator;
-  gboolean      multi;
-  gboolean      editable;
-  gboolean      mid_search;
-  gchar               *print_column;
-  gchar               *hide_column;
-  const gchar **data;
+       gchar *dialog_text;
+       GSList *columns;
+       gboolean checkbox;
+       gboolean radiobox;
+       gboolean hide_header;
+       gboolean imagebox;
+       gchar *separator;
+       gboolean multi;
+       gboolean editable;
+       gboolean mid_search;
+       gchar *print_column;
+       gchar *hide_column;
+       const gchar **data;
 } ZenityTreeData;
 
 #ifdef HAVE_LIBNOTIFY
 typedef struct {
-  gchar   *notification_text;
-  gboolean listen;
-  gchar  **notification_hints;
+       gchar *notification_text;
+       gboolean listen;
+       gchar **notification_hints;
 } ZenityNotificationData;
 #endif
 
 typedef struct {
-  gchar   *color;
-  gboolean show_palette;
+       gchar *color;
+       gboolean show_palette;
 } ZenityColorData;
 
 typedef struct {
-  GSList *list;
-  GSList *list_widgets;
-  GSList *list_values;
-  GSList *column_values;
-  GSList *combo_values;
-  gchar *dialog_text;
-  gchar *separator;
-  gchar *date_format;
-//  gchar *hide_column;
-  gboolean show_header;
+       GSList *list;
+       GSList *list_widgets;
+       GSList *list_values;
+       GSList *column_values;
+       GSList *combo_values;
+       gchar *dialog_text;
+       gchar *separator;
+       gchar *date_format;
+       //  gchar *hide_column;
+       gboolean show_header;
 } ZenityFormsData;
 
 typedef enum {
-  ZENITY_FORMS_ENTRY,
-  ZENITY_FORMS_PASSWORD,
-  ZENITY_FORMS_CALENDAR,
-  ZENITY_FORMS_LIST,
-  ZENITY_FORMS_COMBO
+       ZENITY_FORMS_ENTRY,
+       ZENITY_FORMS_PASSWORD,
+       ZENITY_FORMS_CALENDAR,
+       ZENITY_FORMS_LIST,
+       ZENITY_FORMS_COMBO
 } ZenityFormsType;
 
 typedef struct {
-  gchar *option_value;
-  ZenityFormsType type;
-  GtkWidget *forms_widget;
+       gchar *option_value;
+       ZenityFormsType type;
+       GtkWidget *forms_widget;
 } ZenityFormsValue;
 
 typedef struct {
-  gboolean username;
-  gchar *password;
-  GtkWidget *entry_username;
-  GtkWidget *entry_password;
+       gboolean username;
+       gchar *password;
+       GtkWidget *entry_username;
+       GtkWidget *entry_password;
 } ZenityPasswordData;
 
-void    zenity_calendar         (ZenityData             *data,
-                                ZenityCalendarData      *calendar_data);
-void    zenity_msg              (ZenityData             *data,
-                                 ZenityMsgData          *msg_data);
-void    zenity_fileselection    (ZenityData             *data,
-                                 ZenityFileData         *file_data);
-void    zenity_entry            (ZenityData             *data,
-                                 ZenityEntryData        *entry_data);
-void    zenity_progress                (ZenityData             *data,
-                                 ZenityProgressData     *progress_data);
-void    zenity_text             (ZenityData             *data,
-                                 ZenityTextData         *text_data);
-void    zenity_tree             (ZenityData             *data,
-                                 ZenityTreeData         *tree_data);
+void zenity_calendar (ZenityData *data, ZenityCalendarData *calendar_data);
+void zenity_msg (ZenityData *data, ZenityMsgData *msg_data);
+void zenity_fileselection (ZenityData *data, ZenityFileData *file_data);
+void zenity_entry (ZenityData *data, ZenityEntryData *entry_data);
+void zenity_progress (ZenityData *data, ZenityProgressData *progress_data);
+void zenity_text (ZenityData *data, ZenityTextData *text_data);
+void zenity_tree (ZenityData *data, ZenityTreeData *tree_data);
 #ifdef HAVE_LIBNOTIFY
-void   zenity_notification     (ZenityData             *data,
-                                ZenityNotificationData *notification_data);
+void zenity_notification (
+       ZenityData *data, ZenityNotificationData *notification_data);
 #endif
 
-void    zenity_colorselection   (ZenityData             *data,
-                                 ZenityColorData        *notification_data);
-void   zenity_scale            (ZenityData             *data,
-                                ZenityScaleData        *scale_data);
-void    zenity_about            (ZenityData             *data);
+void zenity_colorselection (
+       ZenityData *data, ZenityColorData *notification_data);
+void zenity_scale (ZenityData *data, ZenityScaleData *scale_data);
+void zenity_about (ZenityData *data);
 
-void    zenity_password_dialog  (ZenityData             *data,
-                                 ZenityPasswordData     *password_data);
-void    zenity_forms_dialog     (ZenityData             *data,
-                                 ZenityFormsData        *forms_data);
+void zenity_password_dialog (
+       ZenityData *data, ZenityPasswordData *password_data);
+void zenity_forms_dialog (ZenityData *data, ZenityFormsData *forms_data);
 G_END_DECLS
 
 #endif /* ZENITY_H */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]