[libnotify] notify-send: Add support for boolean hints



commit d6f4734adf504e6efb40e4331c723a52345bdc2a
Author: Marco Trevisan (TreviƱo) <mail 3v1n0 net>
Date:   Wed Apr 27 20:33:40 2022 +0200

    notify-send: Add support for boolean hints
    
    Boolean hints are used for some common parameters such as "transient".
    
    Original bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=636343

 docs/notify-send.xml |  2 +-
 tools/notify-send.c  | 13 ++++++++++++-
 2 files changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/docs/notify-send.xml b/docs/notify-send.xml
index c8eb6ef..0f36fa0 100644
--- a/docs/notify-send.xml
+++ b/docs/notify-send.xml
@@ -101,7 +101,7 @@
       <varlistentry>
         <term><option>-h</option>, 
<option>--hint</option>=<replaceable>TYPE</replaceable>:<replaceable>NAME</replaceable>:<replaceable>VALUE</replaceable>
 </term>
         <listitem>
-          <para>Specifies basic extra data to pass. Valid types are <literal>INT</literal>, 
<literal>DOUBLE</literal>, <literal>STRING</literal> and <literal>BYTE</literal>.</para>
+          <para>Specifies basic extra data to pass. Valid types are <literal>BOOLEAN</literal>, 
<literal>INT</literal>, <literal>DOUBLE</literal>, <literal>STRING</literal> and 
<literal>BYTE</literal>.</para>
         </listitem>
       </varlistentry>
       <varlistentry>
diff --git a/tools/notify-send.c b/tools/notify-send.c
index 6214a40..8d3898d 100644
--- a/tools/notify-send.c
+++ b/tools/notify-send.c
@@ -100,6 +100,17 @@ notify_notification_set_hint_variant (NotifyNotification *notification,
                                                            key,
                                                            (guchar) h_byte);
                 }
+        } else if (g_ascii_strcasecmp (type, "boolean") == 0) {
+                gboolean h_boolean = FALSE;
+
+                if (g_ascii_strcasecmp (value, "true") == 0) {
+                        h_boolean = TRUE;
+                } else if (g_ascii_isdigit (*value)) {
+                        h_boolean = !!g_ascii_strtoull (value, NULL, 10);
+                }
+
+                notify_notification_set_hint (notification, key,
+                                              g_variant_new_boolean (h_boolean));
         } else {
                 *error = g_error_new (G_OPTION_ERROR,
                                       G_OPTION_ERROR_BAD_VALUE,
@@ -197,7 +208,7 @@ main (int argc, char *argv[])
                  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."),
+                 ("Specifies basic extra data to pass. Valid types are boolean, int, double, string and 
byte."),
                  N_("TYPE:NAME:VALUE")},
                 {"print-id", 'p', 0, G_OPTION_ARG_NONE, &print_id,
                  N_ ("Print the notification ID."), NULL},


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