/* vi: set sw=4 ts=4: */ /* * KON2 - Kanji ON Console - * Copyright (C) 1992-1996 Takashi MANABE (manabe@papilio.tutics.tut.ac.jp) * * CCE - Console Chinese Environment - * Copyright (C) 1998-2003 Rui He (rhe@3eti.com) * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE TERRENCE R. LAMBERT BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * */ /* vt -- VT emulator */ #ifndef __CCE_VT_H__ #define __CCE_VT_H__ #include #include #include struct attrStack { struct attrStack *prev; u_char x, y, attr, bcol, fcol, charfont; }; #define MAX_TTYNAME 16 typedef struct _ConInfo { struct _ConInfo *prevCon; struct _ConInfo *nextCon; int window; /* 0 -9 */ short x, y, xmax, /* 79 */ ymin, /* 0 */ ymax, /* 29 */ tab; /* 8 */ char ptyName[MAX_TTYNAME+1]; /*,ttyName[MAX_TTYNAME+1]; */ int masterPty; /*,slavePty; */ pid_t childPid; int terminate; struct attrStack *saveAttr; u_char *textBuff, *attrBuff, *flagBuff; bool textClear; int textHead, scrollLine; int currentScroll; int textSize; u_char charfont, /* 0,1 or 2 */ fcol, /* foreground color */ bcol, /* background color */ attr, /* attribute */ sb, /* 1 byte code */ db, /* 2 byte code */ knj1; /* 1 byte, first half of the double-byte char */ void (*esc)(struct _ConInfo *con,u_char); enum { CS_LEFT, CS_RIGHT, CS_GRAPH, CS_DBCS} trans, g[2]; bool soft, ins, /* insert mode or override mode */ wrap; /* need to wrap ? */ } ConInfo; extern ConInfo *curCon; extern int text_mode; extern int active; extern int OverrideSysCoding; #define G0_SET 0 #define G1_SET 0x80 #define DEF_FGCOLOR 7 #define DEF_BGCOLOR 0 #define INPUT_BGCOLOR 1 #define INPUT_FGCOLOR 15 /* 7 (7 is darker than 15) */ extern void VtInit(void); extern void VtStart(ConInfo *con); extern void VtWrite(ConInfo *con, const u_char*, int nchars); extern void VtCleanup(ConInfo *con); enum { DF_GB2312, DF_JISX0208, DF_KSC5601, DF_JISX0212, DF_BIG5_0, DF_BIG5_1, DF_GBK, }; #endif /* __CCE_VT_H__ */