diff options
author | William Jon McCann <jmccann@redhat.com> | 2010-01-29 04:30:15 -0500 |
---|---|---|
committer | William Jon McCann <jmccann@redhat.com> | 2010-01-29 04:35:35 -0500 |
commit | 4db61ddb4588ab0e4f75fd97bdaa5caa91d0128d (patch) | |
tree | 533acc5d76d11789b7cc4cc93ddac07e4f3bc6c5 /tools | |
parent | ac8fe12f9aa086686ae81963a0a4c99198c5cf4d (diff) | |
download | libnotify-4db61ddb4588ab0e4f75fd97bdaa5caa91d0128d.tar.gz |
Use a consistent style
Diffstat (limited to 'tools')
-rw-r--r-- | tools/notify-send.c | 464 |
1 files changed, 226 insertions, 238 deletions
diff --git a/tools/notify-send.c b/tools/notify-send.c index 7d0a982..684cf91 100644 --- a/tools/notify-send.c +++ b/tools/notify-send.c @@ -1,4 +1,4 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- * * @file notify-send.c A tool for sending notifications. * @@ -19,6 +19,7 @@ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ + #include <config.h> #include <libnotify/notify.h> @@ -34,250 +35,237 @@ static NotifyUrgency urgency = NOTIFY_URGENCY_NORMAL; static gboolean -g_option_arg_urgency_cb(const gchar *option_name, - const gchar *value, - gpointer data, - GError **error) +g_option_arg_urgency_cb (const char *option_name, + const char *value, + gpointer data, + GError **error) { - if (value != NULL) - { - if (!strcasecmp(value, "low")) - urgency = NOTIFY_URGENCY_LOW; - else if (!strcasecmp(value, "normal")) - urgency = NOTIFY_URGENCY_NORMAL; - else if (!strcasecmp(value, "critical")) - urgency = NOTIFY_URGENCY_CRITICAL; - else - { - *error = g_error_new(G_OPTION_ERROR, G_OPTION_ERROR_BAD_VALUE, - N_("Unknown urgency %s specified. " - "Known urgency levels: low, " - "normal, critical."), - value); - - return FALSE; - } - } - - return TRUE; + if (value != NULL) { + if (!strcasecmp (value, "low")) + urgency = NOTIFY_URGENCY_LOW; + else if (!strcasecmp (value, "normal")) + urgency = NOTIFY_URGENCY_NORMAL; + else if (!strcasecmp (value, "critical")) + urgency = NOTIFY_URGENCY_CRITICAL; + else { + *error = g_error_new (G_OPTION_ERROR, + G_OPTION_ERROR_BAD_VALUE, + N_("Unknown urgency %s specified. " + "Known urgency levels: low, " + "normal, critical."), value); + + return FALSE; + } + } + + return TRUE; } static gboolean -notify_notification_set_hint_variant(NotifyNotification *notification, - const gchar *type, - const gchar *key, - const gchar *value, - GError **error) +notify_notification_set_hint_variant (NotifyNotification *notification, + const char *type, + const char *key, + const char *value, + GError **error) { - static gboolean conv_error = FALSE; - if (!strcasecmp(type, "string")) - { - notify_notification_set_hint_string(notification, key, value); - } - else if (!strcasecmp(type, "int")) - { - if (!g_ascii_isdigit(*value)) - conv_error = TRUE; - else - { - gint h_int = (gint)g_ascii_strtoull(value, NULL, 10); - notify_notification_set_hint_int32(notification, key, h_int); - } - } - else if (!strcasecmp(type, "double")) - { - if (!g_ascii_isdigit(*value)) - conv_error = TRUE; - else - { - gdouble h_double = g_strtod(value, NULL); - notify_notification_set_hint_double(notification, key, h_double); - } - } - else if (!strcasecmp(type, "byte")) - { - gint h_byte = (gint)g_ascii_strtoull(value, NULL, 10); - - if (h_byte < 0 || h_byte > 0xFF) - conv_error = TRUE; - else - { - notify_notification_set_hint_byte(notification, key, - (guchar)h_byte); - } - } - else - { - *error = g_error_new(G_OPTION_ERROR, - G_OPTION_ERROR_BAD_VALUE, - N_("Invalid hint type \"%s\". Valid types " - "are int, double, string and byte."), - type); - return FALSE; - } - - if (conv_error) - { - *error = g_error_new(G_OPTION_ERROR, - G_OPTION_ERROR_BAD_VALUE, - N_("Value \"%s\" of hint \"%s\" could not be " - "parsed as type \"%s\"."), - value, key, type); - return FALSE; - } - - return TRUE; + static gboolean conv_error = FALSE; + if (!strcasecmp (type, "string")) { + notify_notification_set_hint_string (notification, + key, + value); + } else if (!strcasecmp (type, "int")) { + if (!g_ascii_isdigit (*value)) + conv_error = TRUE; + else { + gint h_int = (gint) g_ascii_strtoull (value, NULL, 10); + notify_notification_set_hint_int32 (notification, + key, + h_int); + } + } else if (!strcasecmp (type, "double")) { + if (!g_ascii_isdigit (*value)) + conv_error = TRUE; + else { + gdouble h_double = g_strtod (value, NULL); + notify_notification_set_hint_double (notification, + key, h_double); + } + } else if (!strcasecmp (type, "byte")) { + gint h_byte = (gint) g_ascii_strtoull (value, NULL, 10); + + if (h_byte < 0 || h_byte > 0xFF) + conv_error = TRUE; + else { + notify_notification_set_hint_byte (notification, + key, + (guchar) h_byte); + } + } else { + *error = g_error_new (G_OPTION_ERROR, + G_OPTION_ERROR_BAD_VALUE, + N_("Invalid hint type \"%s\". Valid types " + "are int, double, string and byte."), + type); + return FALSE; + } + + if (conv_error) { + *error = g_error_new (G_OPTION_ERROR, + G_OPTION_ERROR_BAD_VALUE, + N_("Value \"%s\" of hint \"%s\" could not be " + "parsed as type \"%s\"."), value, key, + type); + return FALSE; + } + + return TRUE; } int -main(int argc, char *argv[]) +main (int argc, char *argv[]) { - static const gchar *summary = NULL; - static const gchar *body = ""; - static const gchar *type = NULL; - static gchar *icon_str = NULL; - static gchar *icons = NULL; - static gchar **n_text = NULL; - static gchar **hints = NULL; - static gboolean do_version = FALSE; - static gboolean hint_error = FALSE; - static glong expire_timeout = NOTIFY_EXPIRES_DEFAULT; - GOptionContext *opt_ctx; - NotifyNotification *notify; - GError *error = NULL; - gboolean retval; - - static const GOptionEntry entries[] = - { - { "urgency", 'u', 0, G_OPTION_ARG_CALLBACK, g_option_arg_urgency_cb, - N_("Specifies the urgency level (low, normal, critical)."), - N_("LEVEL") }, - { "expire-time", 't', 0,G_OPTION_ARG_INT, &expire_timeout, - N_("Specifies the timeout in milliseconds at which to expire the " - "notification."), N_("TIME") }, - { "icon", 'i', 0, G_OPTION_ARG_FILENAME, &icons, - N_("Specifies an icon filename or stock icon to display."), - N_("ICON[,ICON...]") }, - { "category", 'c', 0, G_OPTION_ARG_FILENAME, &type, - N_("Specifies the notification category."), - N_("TYPE[,TYPE...]") }, - { "hint", 'h', 0, G_OPTION_ARG_FILENAME_ARRAY, &hints, - N_("Specifies basic extra data to pass. Valid types are int, double, string and byte."), - N_("TYPE:NAME:VALUE") }, - { "version", 'v', 0, G_OPTION_ARG_NONE, &do_version, - N_("Version of the package."), - NULL }, - { G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &n_text, NULL, - NULL }, - { NULL } - }; - - g_type_init(); - - g_set_prgname(argv[0]); - - opt_ctx = g_option_context_new(N_("<SUMMARY> [BODY] - " - "create a notification")); - g_option_context_add_main_entries(opt_ctx, entries, GETTEXT_PACKAGE); - retval = g_option_context_parse(opt_ctx, &argc, &argv, &error); - g_option_context_free(opt_ctx); - - if (!retval) - { - fprintf(stderr, "%s\n", error->message); - g_error_free(error); - exit(1); - } - - if (do_version) - { - g_printf("%s %s\n", g_get_prgname(), VERSION); - exit(0); - } - - if (n_text != NULL && n_text[0] != NULL && *n_text[0] != '\0') - summary = n_text[0]; - - if (summary == NULL) - { - fprintf(stderr, "%s\n", N_("No summary specified.")); - exit(1); - } - - if (n_text[1] != NULL) - { - body = n_text[1]; - - if (n_text[2] != NULL) - { - fprintf(stderr, "%s\n", N_("Invalid number of options.")); - exit(1); - } - } - - if (icons != NULL) - { - char *c; - - /* XXX */ - if((c = strchr(icons, ',')) != NULL) - *c = '\0'; - - icon_str = icons; - } - - if (!notify_init("notify-send")) - exit(1); - - notify = notify_notification_new(summary, body, icon_str, NULL); - notify_notification_set_category(notify, type); - notify_notification_set_urgency(notify, urgency); - notify_notification_set_timeout(notify, expire_timeout); - - // Set hints - if (hints != NULL) - { - gint i = 0; - gint l; - gchar *hint = NULL; - gchar **tokens = NULL; - - while ((hint = hints[i++])) - { - tokens = g_strsplit(hint, ":", -1); - l = g_strv_length(tokens); - - if (l != 3) - { - fprintf(stderr, "%s\n", - N_("Invalid hint syntax specified. " - "Use TYPE:NAME:VALUE.")); - hint_error = TRUE; - } - else - { - retval = notify_notification_set_hint_variant(notify, tokens[0], tokens[1], tokens[2], &error); - - if (!retval) - { - fprintf(stderr, "%s\n", error->message); - g_error_free(error); - hint_error = TRUE; - } - } - - g_strfreev(tokens); - if (hint_error) - break; - } - } - - if (!hint_error) - notify_notification_show(notify, NULL); - - g_object_unref(G_OBJECT(notify)); - - notify_uninit(); - - exit(hint_error); + static const char *summary = NULL; + static const char *body = ""; + static const char *type = NULL; + static char *icon_str = NULL; + static char *icons = NULL; + static char **n_text = NULL; + static char **hints = NULL; + static gboolean do_version = FALSE; + static gboolean hint_error = FALSE; + static glong expire_timeout = NOTIFY_EXPIRES_DEFAULT; + GOptionContext *opt_ctx; + NotifyNotification *notify; + GError *error = NULL; + gboolean retval; + + static const GOptionEntry entries[] = { + {"urgency", 'u', 0, G_OPTION_ARG_CALLBACK, + g_option_arg_urgency_cb, + N_("Specifies the urgency level (low, normal, critical)."), + N_("LEVEL")}, + {"expire-time", 't', 0, G_OPTION_ARG_INT, &expire_timeout, + N_ + ("Specifies the timeout in milliseconds at which to expire the " + "notification."), N_("TIME")}, + {"icon", 'i', 0, G_OPTION_ARG_FILENAME, &icons, + N_("Specifies an icon filename or stock icon to display."), + N_("ICON[,ICON...]")}, + {"category", 'c', 0, G_OPTION_ARG_FILENAME, &type, + N_("Specifies the notification category."), + N_("TYPE[,TYPE...]")}, + {"hint", 'h', 0, G_OPTION_ARG_FILENAME_ARRAY, &hints, + N_ + ("Specifies basic extra data to pass. Valid types are int, double, string and byte."), + N_("TYPE:NAME:VALUE")}, + {"version", 'v', 0, G_OPTION_ARG_NONE, &do_version, + N_("Version of the package."), + NULL}, + {G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, + &n_text, NULL, + NULL}, + {NULL} + }; + + g_type_init (); + + g_set_prgname (argv[0]); + + opt_ctx = g_option_context_new (N_("<SUMMARY> [BODY] - " + "create a notification")); + g_option_context_add_main_entries (opt_ctx, entries, GETTEXT_PACKAGE); + retval = g_option_context_parse (opt_ctx, &argc, &argv, &error); + g_option_context_free (opt_ctx); + + if (!retval) { + fprintf (stderr, "%s\n", error->message); + g_error_free (error); + exit (1); + } + + if (do_version) { + g_printf ("%s %s\n", g_get_prgname (), VERSION); + exit (0); + } + + if (n_text != NULL && n_text[0] != NULL && *n_text[0] != '\0') + summary = n_text[0]; + + if (summary == NULL) { + fprintf (stderr, "%s\n", N_("No summary specified.")); + exit (1); + } + + if (n_text[1] != NULL) { + body = n_text[1]; + + if (n_text[2] != NULL) { + fprintf (stderr, "%s\n", + N_("Invalid number of options.")); + exit (1); + } + } + + if (icons != NULL) { + char *c; + + /* XXX */ + if ((c = strchr (icons, ',')) != NULL) + *c = '\0'; + + icon_str = icons; + } + + if (!notify_init ("notify-send")) + exit (1); + + notify = notify_notification_new (summary, body, icon_str, NULL); + notify_notification_set_category (notify, type); + notify_notification_set_urgency (notify, urgency); + notify_notification_set_timeout (notify, expire_timeout); + + // Set hints + if (hints != NULL) { + gint i = 0; + gint l; + char *hint = NULL; + char **tokens = NULL; + + while ((hint = hints[i++])) { + tokens = g_strsplit (hint, ":", -1); + l = g_strv_length (tokens); + + if (l != 3) { + fprintf (stderr, "%s\n", + N_("Invalid hint syntax specified. " + "Use TYPE:NAME:VALUE.")); + hint_error = TRUE; + } else { + retval = notify_notification_set_hint_variant (notify, + tokens[0], + tokens[1], + tokens[2], + &error); + + if (!retval) { + fprintf (stderr, "%s\n", error->message); + g_error_free (error); + hint_error = TRUE; + } + } + + g_strfreev (tokens); + if (hint_error) + break; + } + } + + if (!hint_error) + notify_notification_show (notify, NULL); + + g_object_unref (G_OBJECT (notify)); + + notify_uninit (); + + exit (hint_error); } |