aboutsummaryrefslogtreecommitdiff
path: root/swaybar/tray
diff options
context:
space:
mode:
Diffstat (limited to 'swaybar/tray')
-rw-r--r--swaybar/tray/host.c10
-rw-r--r--swaybar/tray/icon.c26
-rw-r--r--swaybar/tray/watcher.c9
3 files changed, 12 insertions, 33 deletions
diff --git a/swaybar/tray/host.c b/swaybar/tray/host.c
index ddf2416d..eea2caa5 100644
--- a/swaybar/tray/host.c
+++ b/swaybar/tray/host.c
@@ -10,6 +10,7 @@
#include "swaybar/tray/tray.h"
#include "list.h"
#include "log.h"
+#include "stringop.h"
static const char *watcher_path = "/StatusNotifierWatcher";
@@ -138,12 +139,10 @@ static int handle_new_watcher(sd_bus_message *msg,
bool init_host(struct swaybar_host *host, char *protocol,
struct swaybar_tray *tray) {
- size_t len = snprintf(NULL, 0, "org.%s.StatusNotifierWatcher", protocol) + 1;
- host->watcher_interface = malloc(len);
+ host->watcher_interface = format_str("org.%s.StatusNotifierWatcher", protocol);
if (!host->watcher_interface) {
return false;
}
- snprintf(host->watcher_interface, len, "org.%s.StatusNotifierWatcher", protocol);
sd_bus_slot *reg_slot = NULL, *unreg_slot = NULL, *watcher_slot = NULL;
int ret = sd_bus_match_signal(tray->bus, &reg_slot, host->watcher_interface,
@@ -173,13 +172,10 @@ bool init_host(struct swaybar_host *host, char *protocol,
}
pid_t pid = getpid();
- size_t service_len = snprintf(NULL, 0, "org.%s.StatusNotifierHost-%d",
- protocol, pid) + 1;
- host->service = malloc(service_len);
+ host->service = format_str("org.%s.StatusNotifierHost-%d", protocol, pid);
if (!host->service) {
goto error;
}
- snprintf(host->service, service_len, "org.%s.StatusNotifierHost-%d", protocol, pid);
ret = sd_bus_request_name(tray->bus, host->service, 0);
if (ret < 0) {
sway_log(SWAY_DEBUG, "Failed to acquire service name: %s", strerror(-ret));
diff --git a/swaybar/tray/icon.c b/swaybar/tray/icon.c
index c426c3d4..b513dca5 100644
--- a/swaybar/tray/icon.c
+++ b/swaybar/tray/icon.c
@@ -40,9 +40,7 @@ static list_t *get_basedirs(void) {
data_dirs = strdup(data_dirs);
char *dir = strtok(data_dirs, ":");
do {
- size_t path_len = snprintf(NULL, 0, "%s/icons", dir) + 1;
- char *path = malloc(path_len);
- snprintf(path, path_len, "%s/icons", dir);
+ char *path = format_str("%s/icons", dir);
list_add(basedirs, path);
} while ((dir = strtok(NULL, ":")));
free(data_dirs);
@@ -206,13 +204,7 @@ static const char *entry_handler(char *group, char *key, char *value,
*/
static struct icon_theme *read_theme_file(char *basedir, char *theme_name) {
// look for index.theme file
- size_t path_len = snprintf(NULL, 0, "%s/%s/index.theme", basedir,
- theme_name) + 1;
- char *path = malloc(path_len);
- if (!path) {
- return NULL;
- }
- snprintf(path, path_len, "%s/%s/index.theme", basedir, theme_name);
+ char *path = format_str("%s/%s/index.theme", basedir, theme_name);
FILE *theme_file = fopen(path, "r");
free(path);
if (!theme_file) {
@@ -416,26 +408,20 @@ static char *find_icon_in_subdir(char *name, char *basedir, char *theme,
#endif
};
- size_t path_len = snprintf(NULL, 0, "%s/%s/%s/%s.EXT", basedir, theme,
- subdir, name) + 1;
- char *path = malloc(path_len);
-
for (size_t i = 0; i < sizeof(extensions) / sizeof(*extensions); ++i) {
- snprintf(path, path_len, "%s/%s/%s/%s.%s", basedir, theme, subdir,
- name, extensions[i]);
+ char *path = format_str("%s/%s/%s/%s.%s",
+ basedir, theme, subdir, name, extensions[i]);
if (access(path, R_OK) == 0) {
return path;
}
+ free(path);
}
- free(path);
return NULL;
}
static bool theme_exists_in_basedir(char *theme, char *basedir) {
- size_t path_len = snprintf(NULL, 0, "%s/%s", basedir, theme) + 1;
- char *path = malloc(path_len);
- snprintf(path, path_len, "%s/%s", basedir, theme);
+ char *path = format_str("%s/%s", basedir, theme);
bool ret = dir_exists(path);
free(path);
return ret;
diff --git a/swaybar/tray/watcher.c b/swaybar/tray/watcher.c
index 16afc27c..551e1d12 100644
--- a/swaybar/tray/watcher.c
+++ b/swaybar/tray/watcher.c
@@ -6,6 +6,7 @@
#include <string.h>
#include "list.h"
#include "log.h"
+#include "stringop.h"
#include "swaybar/tray/watcher.h"
static const char *obj_path = "/StatusNotifierWatcher";
@@ -76,9 +77,7 @@ static int register_sni(sd_bus_message *msg, void *data, sd_bus_error *error) {
service = service_or_path;
path = "/StatusNotifierItem";
}
- size_t id_len = snprintf(NULL, 0, "%s%s", service, path) + 1;
- id = malloc(id_len);
- snprintf(id, id_len, "%s%s", service, path);
+ id = format_str("%s%s", service, path);
}
if (list_seq_find(watcher->items, cmp_id, id) == -1) {
@@ -159,9 +158,7 @@ struct swaybar_watcher *create_watcher(char *protocol, sd_bus *bus) {
return NULL;
}
- size_t len = snprintf(NULL, 0, "org.%s.StatusNotifierWatcher", protocol) + 1;
- watcher->interface = malloc(len);
- snprintf(watcher->interface, len, "org.%s.StatusNotifierWatcher", protocol);
+ watcher->interface = format_str("org.%s.StatusNotifierWatcher", protocol);
sd_bus_slot *signal_slot = NULL, *vtable_slot = NULL;
int ret = sd_bus_add_object_vtable(bus, &vtable_slot, obj_path,