if (cl->viewOnly) {
if (cl && cl->viewOnly) {
void xcut_receive(char *text, int len, rfbClientPtr cl) {	if (cl->viewOnly) {		return;	}	if (text == NULL || len == 0) {		return;	}	X_LOCK;	/* associate this text with PRIMARY (and SECONDARY...) */	if (! own_selection) {		own_selection = 1;		/* we need to grab the PRIMARY selection */		XSetSelectionOwner(dpy, XA_PRIMARY, selwin, CurrentTime);		XFlush(dpy);	}	/* duplicate the text string for our own use. */	if (xcut_string != NULL) {		free(xcut_string);	}	xcut_string = (unsigned char *)	    malloc((size_t) (len+1) * sizeof(unsigned char));	strncpy(xcut_string, text, len);	xcut_string[len] = '\0';	/* make sure null terminated */	/* copy this text to CUT_BUFFER0 as well: */	XChangeProperty(dpy, rootwin, XA_CUT_BUFFER0, XA_STRING, 8,	    PropModeReplace, (unsigned char *) text, len);	XFlush(dpy);	X_UNLOCK;	set_cutbuffer = 1;}