summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Trevisan (Treviño) <mail@3v1n0.net>2022-04-27 20:33:40 +0200
committerMarco Trevisan (Treviño) <mail@3v1n0.net>2022-04-27 20:33:40 +0200
commitd6f4734adf504e6efb40e4331c723a52345bdc2a (patch)
tree2cee0837603d6b642841ec2ef98c385fd119fede
parent6e871a4047b93f2e2c376e63bcbba0feb993e41f (diff)
downloadlibnotify-d6f4734adf504e6efb40e4331c723a52345bdc2a.tar.gz
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
-rw-r--r--docs/notify-send.xml2
-rw-r--r--tools/notify-send.c13
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},