/* use with QMC.def */ /************************************************************************ * * * copyright Richard Bornat 1981 * * * ************************************************************************/ /* translate difficult characters on input */ char itt_intwo(c) register char c; { return (c=='{'?'(': c=='}'?')': c=='|'?'!': c=='~'?'^': c=='`'?'\'': c); } /* translate difficult characters on output */ char itt_outtwo(c) register char c; { return (c=='('?'{': c==')'?'}': c=='!'?'|': c=='^'?'~': c=='\''?'`': c); } /* #define TER_ROWS 18 * #define TER_COLS 80 */ struct TERMINAL itt_ter = { /* nrows, ncols - size of the screen */ 18, 80, /* up, left, c_MODIFY, c_CONTROL, c_BLOB - single characters */ { 0, 0, '@', 032, '{' }, /* onechar */ /* rollup, pushdown, pushup, pulldown, pullup STRINGS */ /* and hardscroll boolean */ { "\n", 0, 0, 0, 0, false }, /* scrseq */ /* scrseq */ /* scrollup, scrolldown PROCEDURES */ scr0_up, scr0_down, /* splitdown, splitup, joindown, joinup STRINGS */ { 0, 0, 0, 0 }, /* splitseq */ /* split_row, join_row PROCEDURES */ split0, join0, /* clearscreen, clearhead, cleartail STRINGS */ { "\014", 0, 0 }, /* clrseq */ /* clr_screen, clr_head, clr_tail PROCEDURES */ clrs1, clrh0, clrt0, /* inspace, makespace, rubout, erase STRINGS */ { 0, 0, 0, 0 }, /* charseq */ /* ins_char, del_char PROCEDURES */ insc0, delc0, /* bright, normal STRINGS */ { 0, 0 }, /* vidseq */ /* in_two, out_two PROCEDURES */ itt_intwo, itt_outtwo, /* move PROCEDURE and nmove integer */ qmc_move, 3, /* setup, special, pad PROCEDURES */ no_int, no_int, no_int };