From 75a1408e9d4e54af9695bc4eca650b35c22bcff2 Mon Sep 17 00:00:00 2001 From: awy Date: Thu, 11 Sep 2025 17:35:32 +0300 Subject: BIG HAPPENING: notifications and spawn functionality --- lib/util.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ lib/util.h | 3 +++ 2 files changed, 49 insertions(+) (limited to 'lib') diff --git a/lib/util.c b/lib/util.c index 1fe30da..0c22adf 100644 --- a/lib/util.c +++ b/lib/util.c @@ -2,6 +2,7 @@ #include #include #include +#include #include "util.h" @@ -23,3 +24,48 @@ die(const char *fmt, ...) exit(1); } + +void +sendnotif(const char *appname, const char *title, const char *body) +{ + notify_init(appname); + + NotifyNotification *n; + n = notify_notification_new(title, body, NULL); + + notify_notification_show(n, NULL); + + g_object_unref(G_OBJECT(n)); + notify_uninit(); +} + +int +getbtnint(const char *blkbtn) +{ + char *endptr; + int errno; + long val; + + errno = 0; + + if (blkbtn == NULL) + return 0; + + val = strtol(blkbtn, &endptr, 10); + + if (errno == 0 && *endptr == '\0' && val >= 1 && val <= 8) + return (int)val; + + return 0; +} + +void +spawn(const char *const argv[]) +{ + if (fork() == 0) { + dup2(STDERR_FILENO, STDOUT_FILENO); + setsid(); + execvp(argv[0], (char * const *)argv); + die("spawn %s failed:", (argv)[0]); + } +} diff --git a/lib/util.h b/lib/util.h index 9ecc499..84c5d36 100644 --- a/lib/util.h +++ b/lib/util.h @@ -1 +1,4 @@ void die(const char *, ...); +void sendnotif(const char *, const char *, const char *); +int getbtnint(const char *blkbtn); +void spawn(const char *const argv[]); -- cgit v1.2.3