a = multiple_cursors_mode[0]; if (a == 'd' || a == 'X') {
if (!strcmp(s, "default") || !strcmp(s, "X") || !strcmp(s, "arrow")) {
void tree_descend_cursor(int *depth, Window *w, win_str_info_t *winfo) {	Window r, c;	int i, rx, ry, wx, wy;	unsigned int mask;	Window wins[10];	int descend, maxtries = 10;	char *name, a;	static XClassHint *classhint = NULL;	int nm_info = 1;	XErrorHandler old_handler;	X_LOCK;	a = multiple_cursors_mode[0];	if (a == 'd' || a == 'X') {		nm_info = 0;	}	*(winfo->wm_name)   = '\0';	*(winfo->res_name)  = '\0';	*(winfo->res_class) = '\0';	/* some times a window can go away before we get to it */	trapped_xerror = 0;	old_handler = XSetErrorHandler(trap_xerror);	c = window;	descend = -1;	while (c) {		wins[++descend] = c;		if (descend >= maxtries - 1) {			break;		}		if ( XTestCompareCurrentCursorWithWindow_wr(dpy, c) ) {			break;		}		XQueryPointer(dpy, c, &r, &c, &rx, &ry, &wx, &wy, &mask);	}	if (nm_info) {		int got_wm_name = 0, got_res_name = 0, got_res_class = 0;		if (! classhint) {			classhint = XAllocClassHint();		}		for (i = descend; i >=0; i--) {			c = wins[i];			if (! c) {				continue;			}						if (! got_wm_name && XFetchName(dpy, c, &name)) {				if (name) {					if (*name != '\0') {						strcpy(winfo->wm_name, name);						got_wm_name = 1;					}					XFree(name);				}			}			if (classhint && (! got_res_name || ! got_res_class)) {			    if (XGetClassHint(dpy, c, classhint)) {				char *p;				p = classhint->res_name;				if (p) {					if (*p != '\0' && ! got_res_name) {						strcpy(winfo->res_name, p);						got_res_name = 1;					}					XFree(p);					classhint->res_name = NULL;				}				p = classhint->res_class;				if (p) {					if (*p != '\0' && ! got_res_class) {						strcpy(winfo->res_class, p);						got_res_class = 1;					}					XFree(p);					classhint->res_class = NULL;				}			    }			}		}	}	XSetErrorHandler(old_handler);	trapped_xerror = 0;	X_UNLOCK;	*depth = descend;	*w = wins[descend];}