&& !isModified(event)
Input (	register TKeyboard *keyboard,	register TScreen *screen,	register XKeyEvent *event,	Bool eightbit){#define STRBUFSIZE 500	char strbuf[STRBUFSIZE];	register char *string;	register int key = FALSE;	int	pty	= screen->respond;	int	nbytes;	KeySym  keysym = 0;	ANSI	reply;	int	dec_code;	/* Ignore characters typed at the keyboard */	if (keyboard->flags & MODE_KAM)		return;#if OPT_I18N_SUPPORT	if (screen->xic) {	    Status status_return;	    nbytes = XmbLookupString (screen->xic, event, strbuf, STRBUFSIZE,				      &keysym, &status_return);	}	else#endif	{	    static XComposeStatus compose_status = {NULL, 0};	    nbytes = XLookupString (event, strbuf, STRBUFSIZE,				    &keysym, &compose_status);	}	string = &strbuf[0];	reply.a_pintro = 0;	reply.a_final = 0;	reply.a_nparam = 0;	reply.a_inters = 0;	/* VT300 & up: backarrow toggle */	if ((nbytes == 1)	 && !isModified(event)	 && (((term->keyboard.flags & MODE_DECBKM) == 0)	   ^ ((event->state & ControlMask) != 0))	 && (keysym == XK_BackSpace)) {		strbuf[0] = '\177';	}#ifdef XK_KP_Home	if (keysym >= XK_KP_Home && keysym <= XK_KP_Begin) {	    keysym += XK_Home - XK_KP_Home;	}#endif#define VT52_KEYPAD \	if_OPT_VT52_MODE(screen,{ \		reply.a_type = ESC; \		reply.a_pintro = '?'; \		})#define VT52_CURSOR_KEYS \	if_OPT_VT52_MODE(screen,{ \		reply.a_type = ESC; \		})#if OPT_SUNPC_KBD	/* make an DEC editing-keypad from a Sun or PC editing-keypad */	if (sunKeyboard && !isModified(event)) {		switch (keysym) {		case XK_Delete:#ifdef DXK_Remove			keysym = DXK_Remove;#endif			break;		case XK_Home:			keysym = XK_Find;			break;		case XK_End:			keysym = XK_Select;			break;		}	}#endif	if (IsPFKey(keysym)) {		reply.a_type = SS3;		reply.a_final = keysym-XK_KP_F1+'P';		VT52_CURSOR_KEYS		unparseseq(&reply, pty);		key = TRUE;#if 0	/* OPT_SUNPC_KBD should suppress - but only for vt220 compatibility */	} else if (sunKeyboard	 	&& screen->old_fkeys == False	 	&& screen->ansi_level <= 1		&& IsEditFunctionKey(keysym)) {		key = FALSE;	/* ignore editing-keypad in vt100 mode */#endif	} else if (IsCursorKey(keysym) &&		keysym != XK_Prior && keysym != XK_Next) {		if (keyboard->flags & MODE_DECCKM) {			reply.a_type = SS3;			reply.a_final = cur[keysym-XK_Home];			VT52_CURSOR_KEYS			unparseseq(&reply, pty);		} else {			reply.a_type = CSI;			if_OPT_VT52_MODE(screen,{ reply.a_type = ESC; })			reply.a_final = cur[keysym-XK_Home];			unparseseq(&reply, pty);		}		key = TRUE;	 } else if (IsFunctionKey(keysym)		|| IsMiscFunctionKey(keysym)		|| IsEditFunctionKey(keysym)) {#if OPT_SUNPC_KBD		if ((event->state & ControlMask)		 && sunKeyboard		 && (keysym >= XK_F1 && keysym <= XK_F12))			keysym += 12;#endif		dec_code = decfuncvalue(keysym);		if ((event->state & ShiftMask)		 && ((string = udk_lookup(dec_code, &nbytes)) != 0)) {			while (nbytes-- > 0)				unparseputc(*string++, pty);		}#if OPT_VT52_MODE		/*		 * Interpret F1-F4 as PF1-PF4 for VT52, VT100		 */		else if (!sunFunctionKeys		 && screen->old_fkeys == False		 && (dec_code >= 11 && dec_code <= 14))		{			reply.a_type = SS3;			VT52_CURSOR_KEYS			reply.a_final = dec_code - 11 + 'P';			unparseseq(&reply, pty);		}#endif		else {			reply.a_type = CSI;			reply.a_nparam = 1;			if (sunFunctionKeys) {				reply.a_param[0] = sunfuncvalue (keysym);				reply.a_final = 'z';			} else {				reply.a_param[0] = dec_code;				reply.a_final = '~';			}			if (reply.a_param[0] > 0)				unparseseq(&reply, pty);		}		key = TRUE;	} else if (IsKeypadKey(keysym)) {#if OPT_SUNPC_KBD		/*		 * DEC keyboards don't have keypad(+), but do have keypad(,)		 * instead.  Other (Sun, PC) keyboards commonly have keypad(+),		 * but no keypad(,) - it's a pain for users to work around.		 */		if (!sunFunctionKeys		 && !isModified(event)		 && sunKeyboard		 && keysym == XK_KP_Add)			keysym = XK_KP_Separator;#endif		if ((keyboard->flags & MODE_DECKPAM) != 0) {			reply.a_type  = SS3;			reply.a_final = kypd_apl[keysym-XK_KP_Space];			VT52_KEYPAD			unparseseq(&reply, pty);		} else			unparseputc(kypd_num[keysym-XK_KP_Space], pty);		key = TRUE;	} else if (nbytes > 0) {#if OPT_TEK4014		if(screen->TekGIN) {			TekEnqMouse(*string++);			TekGINoff();			nbytes--;		}#endif		if ((nbytes == 1) && eightbit) {		    if (screen->input_eight_bits)		      *string |= 0x80;	/* turn on eighth bit */		    else		      unparseputc (ESC, pty);  /* escape */		}		while (nbytes-- > 0)			unparseputc(*string++, pty);		key = TRUE;	}	if(key && !TEK4014_ACTIVE(screen))	        AdjustAfterInput(screen);#ifdef ENABLE_PRINT	if (keysym == XK_F2) TekPrint();#endif	return;}