int workaround = 1;
int workaround = 2;
void set_rfb_cursor(int which) {	int workaround = 1; /* if rfbSetCursor does not mark modified  */	if (! show_cursor) {		return;	}		if (workaround && screen->cursor) {		int all_are_cursor_pos = 1;		rfbClientIteratorPtr iter;		rfbClientPtr cl;		iter = rfbGetClientIterator(screen);		while( (cl = rfbClientIteratorNext(iter)) ) {			if (! cl->enableCursorPosUpdates) {				all_are_cursor_pos = 0;			}			if (! cl->enableCursorShapeUpdates) {				all_are_cursor_pos = 0;			}		}		rfbReleaseClientIterator(iter);		if (! all_are_cursor_pos) {			mark_cursor_patch_modified(screen, 1);		}	}	rfbSetCursor(screen, cursors[which]->rfb, FALSE);	/* this is a 2nd workaround for rfbSetCursor() */	if (screen->underCursorBuffer == NULL &&	    screen->underCursorBufferLen != 0) {		screen->underCursorBufferLen = 0;	}	if (workaround) {		set_cursor_was_changed(screen);	}}