v_write(screen->respond, (char *)line, count);
v_write(screen->respond, line, count);
EndExtend(	Widget w,	XEvent *event,			/* must be XButtonEvent */	String *params,			/* selections */	Cardinal num_params,	Bool use_cursor_loc){	int	row, col, count;	TScreen *screen = &term->screen;	Char line[9];	if (use_cursor_loc) {	    row = screen->cursor_row;	    col = screen->cursor_col;	} else {	    PointToRowCol(event->xbutton.y, event->xbutton.x, &row, &col);	}	ExtendExtend (row, col);	lastButtonUpTime = event->xbutton.time;	if (startSRow != endSRow || startSCol != endSCol) {		if (replyToEmacs) {			count = 0;			if (screen->control_eight_bits) {				line[count++] = CSI;			} else {				line[count++] = ESC;				line[count++] = '[';			}			if (rawRow == startSRow && rawCol == startSCol			    && row == endSRow && col == endSCol) {			 	/* Use short-form emacs select */				line[count++] = 't';				line[count++] = ' ' + endSCol + 1;				line[count++] = ' ' + endSRow + 1;			} else {				/* long-form, specify everything */				line[count++] = 'T';				line[count++] = ' ' + startSCol + 1;				line[count++] = ' ' + startSRow + 1;				line[count++] = ' ' + endSCol + 1;				line[count++] = ' ' + endSRow + 1;				line[count++] = ' ' + col + 1;				line[count++] = ' ' + row + 1;			}			v_write(screen->respond, (char *)line, count);			TrackText(0, 0, 0, 0);		}	}	SelectSet(w, event, params, num_params);	eventMode = NORMAL;}