teacl/src/echoit.c

52 lines
1.3 KiB
C

/*****************************************************************************
EchoIt()
This function displays a character in it's printable form, either
as CH, ^CH, or [CH].
*****************************************************************************/
#include "zport.h" /* define portability identifiers */
#include "tecoc.h" /* define general identifiers */
#include "defext.h" /* define external global identifiers */
#include "dchars.h" /* define identifiers for characters */
VVOID EchoIt(Charac)
unsigned char Charac;
{
if (Charac > USCHAR && Charac < DELETE) { /* displayable? */
ZDspCh(Charac);
} else if (Charac & '\200') { /* eighth bit set? */
if (EtFlag & ET_EIGHTBIT) { /* term can display */
ZDspCh(Charac);
} else {
ZDspCh('['); /* display as [ch] */
MakDBf((LONG)Charac,16);
*DBfPtr++ = ']';
ZDspBf(DBfBeg, DBfPtr-DBfBeg);
}
} else {
switch (Charac) {
case BAKSPC:
case TABCHR:
case LINEFD:
case CRETRN:
ZDspCh(Charac);
break;
case ESCAPE:
ZDspCh('$');
break;
case FORMFD:
ZDspCh('\r');
/* fall through to VRTTAB */
case VRTTAB:
ZDspBf("\n\n\n\n", 4);
break;
case DELETE:
break;
case CTRL_G:
ZDspCh(CTRL_G);
/* fall through to default case */
default: /* display as ^ch */
ZDspCh('^');
ZDspCh(Charac | '\100');
}
}
}