View Raw SPL
/* generate list of windows that meet winstatus */
_winstat(separator, winstat, addlabel)
{
local i, s = "", p, q;
if (argc < 3) addlabel = 0;
if (argc < 2) winstat = 9;
if (argc < 1) separator = strescape("\n");
for (i = 1; i <= numwindows; i++)
{
/* window */
p = q = sprintf("W%d", i);
if (addlabel < 0)
{
/* numeric */
p = sprintf("%d", i);
}
else if (addlabel > 0)
{
/* window label */
p = sprintf("%s: %s", p, eval(sprintf("getlabel(W%d)", i)));
}
/* check if winstatus TRUE */
if (eval(sprintf("Winstatus(%s, %d)", q, winstat)) == 1)
{
if (strlen(s) > 0) s = strcat(s, separator);
s = strcat(s, p);
}
}
return(s);
}