static void SelectionReceived(w, client_data, selection, type, value, length, format) Widget w; XtPointer client_data; Atom *selection GCC_UNUSED, *type; XtPointer value; unsigned long *length; int *format GCC_UNUSED;
static void SelectionReceived( Widget w, XtPointer client_data, Atom *selection GCC_UNUSED, Atom *type, XtPointer value, unsigned long *length, int *format GCC_UNUSED)
static void SelectionReceived(w, client_data, selection, type,			      value, length, format)Widget w;XtPointer client_data;Atom *selection GCC_UNUSED, *type;XtPointer value;unsigned long *length;int *format GCC_UNUSED;{    int pty;    register char *lag, *cp, *end;    char *line = (char*)value;    if (!IsXtermWidget(w))	return;    pty = ((XtermWidget)w)->screen.respond;	/* file descriptor of pty */    if (*type == 0 /*XT_CONVERT_FAIL*/ || *length == 0 || value == NULL) {	/* could not get this selection, so see if there are more to try */	struct _SelectionList* list = (struct _SelectionList*)client_data;	if (list != NULL) {	    _GetSelection(w, list->time, list->params, list->count);	    XtFree(client_data);	}	return;    }    /* Write data to pty a line at a time. */    /* Doing this one line at a time may no longer be necessary       because v_write has been re-written. */    end = &line[*length];    lag = line;    for (cp = line; cp != end; cp++)	{	    if (*cp != '\n') continue;	    *cp = '\r';	    v_write(pty, lag, cp - lag + 1);	    lag = cp + 1;	}    if (lag != end)	v_write(pty, lag, end - lag);    XtFree(client_data);    XtFree(value);}