Introduction
Introduction Statistics Contact Development Disclaimer Help
code-style improvements - lsw - lists window titles of X clients to stdout
git clone git://git.suckless.org/lsw
Log
Files
Refs
README
LICENSE
---
commit 8d5beffdb4522df02fc5b80003de94a248b20e70
parent a2e5856f22739a9056fa41789369948450cd7e36
Author: Hiltjo Posthuma <[email protected]>
Date: Sat, 25 Jun 2022 10:19:04 +0200
code-style improvements
Diffstat:
M lsw.c | 81 ++++++++++++++++-------------…
1 file changed, 43 insertions(+), 38 deletions(-)
---
diff --git a/lsw.c b/lsw.c
@@ -5,62 +5,67 @@
#include <X11/Xlib.h>
#include <X11/Xutil.h>
-static const char *getname(Window);
-static void lsw(Window);
-
static Atom netwmname;
static Display *dpy;
-int
-main(int argc, char *argv[]) {
- int i;
+char *
+getname(Window win)
+{
+ static char buf[BUFSIZ];
+ char **list;
+ int n;
+ XTextProperty prop;
- if(!(dpy = XOpenDisplay(NULL))) {
- fprintf(stderr, "%s: cannot open display\n", argv[0]);
- exit(EXIT_FAILURE);
+ if (!XGetTextProperty(dpy, win, &prop, netwmname) || prop.nitems == 0)
+ if (!XGetWMName(dpy, win, &prop) || prop.nitems == 0)
+ return "";
+ if (!XmbTextPropertyToTextList(dpy, &prop, &list, &n) && n > 0) {
+ strncpy(buf, list[0], sizeof buf);
+ XFreeStringList(list);
+ } else {
+ strncpy(buf, (char *)prop.value, sizeof buf);
}
- netwmname = XInternAtom(dpy, "_NET_WM_NAME", False);
-
- if(argc < 2)
- lsw(DefaultRootWindow(dpy));
- else for(i = 1; i < argc; i++)
- lsw(strtol(argv[i], NULL, 0));
+ XFree(prop.value);
+ buf[sizeof buf - 1] = '\0';
- XCloseDisplay(dpy);
- return EXIT_SUCCESS;
+ return buf;
}
void
-lsw(Window win) {
+lsw(Window win)
+{
unsigned int n;
Window *wins, *w, dw;
XWindowAttributes wa;
- if(!XQueryTree(dpy, win, &dw, &dw, &wins, &n) || !n)
+ if (!XQueryTree(dpy, win, &dw, &dw, &wins, &n) || !n)
return;
- for(w = &wins[n-1]; w >= &wins[0]; w--)
- if(XGetWindowAttributes(dpy, *w, &wa)
+ for (w = &wins[n-1]; w >= &wins[0]; w--)
+ if (XGetWindowAttributes(dpy, *w, &wa)
&& !wa.override_redirect && wa.map_state == IsViewable)
printf("0x%07lx %s\n", *w, getname(*w));
XFree(wins);
}
-const char *
-getname(Window win) {
- static char buf[BUFSIZ];
- char **list;
- int n;
- XTextProperty prop;
+int
+main(int argc, char *argv[])
+{
+ int i;
- if(!XGetTextProperty(dpy, win, &prop, netwmname) || prop.nitems == 0)
- if(!XGetWMName(dpy, win, &prop) || prop.nitems == 0)
- return "";
- if(!XmbTextPropertyToTextList(dpy, &prop, &list, &n) && n > 0) {
- strncpy(buf, list[0], sizeof buf);
- XFreeStringList(list);
- } else
- strncpy(buf, (char *)prop.value, sizeof buf);
- XFree(prop.value);
- buf[sizeof buf - 1] = '\0';
- return buf;
+ if (!(dpy = XOpenDisplay(NULL))) {
+ fprintf(stderr, "%s: cannot open display\n", argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ netwmname = XInternAtom(dpy, "_NET_WM_NAME", False);
+
+ if (argc < 2) {
+ lsw(DefaultRootWindow(dpy));
+ } else {
+ for (i = 1; i < argc; i++)
+ lsw(strtol(argv[i], NULL, 0));
+ }
+
+ XCloseDisplay(dpy);
+
+ return EXIT_SUCCESS;
}
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.