guarantee client_get_{title,appid} never return NULL

ΔSLOC: -6
This commit is contained in:
Leonardo Hernández Hernández 2024-08-09 21:34:02 -06:00
parent e454f7ae81
commit 07aeef1f7e
No known key found for this signature in database
GPG key ID: E538897EE11B9624
2 changed files with 8 additions and 14 deletions

View file

@ -126,9 +126,9 @@ client_get_appid(Client *c)
{ {
#ifdef XWAYLAND #ifdef XWAYLAND
if (client_is_x11(c)) if (client_is_x11(c))
return c->surface.xwayland->class; return c->surface.xwayland->class ? c->surface.xwayland->class : "broken";
#endif #endif
return c->surface.xdg->toplevel->app_id; return c->surface.xdg->toplevel->app_id ? c->surface.xdg->toplevel->app_id : "broken";
} }
static inline void static inline void
@ -200,9 +200,9 @@ client_get_title(Client *c)
{ {
#ifdef XWAYLAND #ifdef XWAYLAND
if (client_is_x11(c)) if (client_is_x11(c))
return c->surface.xwayland->title; return c->surface.xwayland->title ? c->surface.xwayland->title : "broken";
#endif #endif
return c->surface.xdg->toplevel->title; return c->surface.xdg->toplevel->title ? c->surface.xdg->toplevel->title : "broken";
} }
static inline int static inline int

14
dwl.c
View file

@ -358,7 +358,6 @@ static void xytonode(double x, double y, struct wlr_surface **psurface,
static void zoom(const Arg *arg); static void zoom(const Arg *arg);
/* variables */ /* variables */
static const char broken[] = "broken";
static pid_t child_pid = -1; static pid_t child_pid = -1;
static int locked; static int locked;
static void *exclusive_focus; static void *exclusive_focus;
@ -462,10 +461,8 @@ applyrules(Client *c)
Monitor *mon = selmon, *m; Monitor *mon = selmon, *m;
c->isfloating = client_is_float_type(c); c->isfloating = client_is_float_type(c);
if (!(appid = client_get_appid(c))) appid = client_get_appid(c);
appid = broken; title = client_get_title(c);
if (!(title = client_get_title(c)))
title = broken;
for (r = rules; r < END(rules); r++) { for (r = rules; r < END(rules); r++) {
if ((!r->title || strstr(title, r->title)) if ((!r->title || strstr(title, r->title))
@ -2040,7 +2037,6 @@ printstatus(void)
Monitor *m = NULL; Monitor *m = NULL;
Client *c; Client *c;
uint32_t occ, urg, sel; uint32_t occ, urg, sel;
const char *appid, *title;
wl_list_for_each(m, &mons, link) { wl_list_for_each(m, &mons, link) {
occ = urg = 0; occ = urg = 0;
@ -2052,10 +2048,8 @@ printstatus(void)
urg |= c->tags; urg |= c->tags;
} }
if ((c = focustop(m))) { if ((c = focustop(m))) {
title = client_get_title(c); printf("%s title %s\n", m->wlr_output->name, client_get_title(c));
appid = client_get_appid(c); printf("%s appid %s\n", m->wlr_output->name, client_get_appid(c));
printf("%s title %s\n", m->wlr_output->name, title ? title : broken);
printf("%s appid %s\n", m->wlr_output->name, appid ? appid : broken);
printf("%s fullscreen %d\n", m->wlr_output->name, c->isfullscreen); printf("%s fullscreen %d\n", m->wlr_output->name, c->isfullscreen);
printf("%s floating %d\n", m->wlr_output->name, c->isfloating); printf("%s floating %d\n", m->wlr_output->name, c->isfloating);
sel = c->tags; sel = c->tags;