if (flags & INVISIBLE)
if (flags & INVISIBLE) {
WriteText(	register TScreen *screen,	register Char	*str,	register int	len){	unsigned flags	= term->flags;	int	fg_bg = makeColorPair(term->cur_foreground, term->cur_background);	GC	currentGC;	TRACE(("WriteText (%2d,%2d) (%d) %3d:%.*s\n",		screen->cur_row,		screen->cur_col,		curXtermChrSet(screen->cur_row),		len, len, str))	if(screen->cur_row - screen->topline <= screen->max_row) {		if(screen->cursor_state)			HideCursor();		if (flags & INSERT)			InsertChar(screen, len);		if (!AddToRefresh(screen)) {			/* make sure that the correct GC is current */			currentGC = updatedXtermGC(screen, flags, fg_bg, False);			if(screen->scroll_amt)				FlushScroll(screen);			if (flags & INVISIBLE)				memset(str, ' ', len);			TRACE(("%s @%d, calling drawXtermText (%d,%d)\n",				__FILE__, __LINE__,				screen->cur_col,				screen->cur_row))			drawXtermText(screen, flags, currentGC,				CurCursorX(screen, screen->cur_row, screen->cur_col),				CursorY(screen, screen->cur_row),				curXtermChrSet(screen->cur_row),				str, len);			resetXtermGC(screen, flags, False);			/*			 * The following statements compile data to compute the			 * average number of characters written on each call to			 * XText.  The data may be examined via the use of a			 * "hidden" escape sequence.			 */#ifdef UNUSED			ctotal += len;			++ntotal;#endif		}	}	ScreenWrite(screen, str, flags, fg_bg, len);	CursorForward(screen, len);#if OPT_ZICONBEEP	/* Flag icon name with "***"  on window output when iconified.	 */	if( zIconBeep && mapstate == IsUnmapped && ! zIconBeep_flagged) {	    static char *icon_name;	    static Arg args[] = {		{ XtNiconName, (XtArgVal) &icon_name }	    };	    icon_name = NULL;	    XtGetValues(toplevel,args,XtNumber(args));	    if( icon_name != NULL ) {		zIconBeep_flagged = True;		Changename(icon_name);	    }	    if (zIconBeep > 0)		XBell( XtDisplay(toplevel), zIconBeep );	}	mapstate = -1;#endif /* OPT_ZICONBEEP */}