XFree(wins);
}
-static int
-winprop(Window w, Atom a, Atom t, long l, unsigned char **prop)
-{
- int status, format;
- unsigned long res, extra;
- Atom real;
-
- status = XGetWindowProperty(dpy, w, a, 0L, l, False, t, &real, &format,
- &res, &extra, prop);
-
- if(status != Success || *prop == 0) {
- return 0;
- }
- if(res == 0) {
- free((void *) *prop);
- }
- return res;
-}
-
/*
* Startup Error handler to check if another window manager
* is already running.
int
getproto(Window w)
{
- int protos = 0;
+ int status, format, protos = 0;
int i;
- long res;
- Atom *protocols;
+ unsigned long extra, res;
+ Atom *protocols, real;
- res = winprop(w, wmatom[WMProtocols], XA_ATOM, 20L,
- ((unsigned char **)&protocols));
- if(res <= 0) {
+ status = XGetWindowProperty(dpy, w, wmatom[WMProtocols], 0L, 20L,
+ False, XA_ATOM, &real, &format, &res, &extra, (unsigned char **)&protocols);
+ if(status != Success || protocols == 0)
return protos;
- }
for(i = 0; i < res; i++) {
if(protocols[i] == wmatom[WMDelete])
protos |= PROTODELWIN;
}
- free((char *) protocols);
+ free(protocols);
return protos;
}