e33902bb3097b2df54870c25093fbe6c8f12e76c
[apps/madtty.git] / madtty_priv.h
1 /*
2     LICENSE INFORMATION:
3     This program is free software; you can redistribute it and/or
4     modify it under the terms of the GNU Lesser General Public
5     License (LGPL) as published by the Free Software Foundation.
6
7     Please refer to the COPYING file for more information.
8
9     This program is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12     General Public License for more details.
13
14     You should have received a copy of the GNU Lesser General Public
15     License along with this program; if not, write to the Free Software
16     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17
18     Copyright © 2004 Bruno T. C. de Oliveira
19     Copyright © 2006 Pierre Habouzit
20  */
21
22 #ifndef MADTTY_MADTTY_PRIV_H
23 #define MADTTY_MADTTY_PRIV_H
24
25 #define ESEQ_BUF_SIZE 128  /* size of escape sequence buffer */
26
27 /* Terminal private data */
28 struct RoteTermPrivate_ {
29     unsigned escaped : 1;      /* whether we are currently reading an
30                                 * escape sequence */
31
32     unsigned graphmode : 1;    /* whether terminal is in graphical 
33                                 * character mode or not */
34
35     int scrolltop, scrollbottom;  /* current scrolling region of terminal */
36     int saved_x, saved_y;         /* saved cursor position */
37
38     char esbuf[ESEQ_BUF_SIZE]; /* 0-terminated string. Does NOT include
39                                 * the initial escape (\x1B) character. */
40     int esbuf_len;             /* length of buffer. The following property
41                                 * is always kept: esbuf[esbuf_len] == '\0' */
42 };
43
44 /* Interprets a CSI escape sequence stored in rt->pd->esbuf,
45  * changing rt to reflect the effect of the sequence. This function
46  * will not change rt->pd->esbuf, rt->pd->escaped or other escape-sequence
47  * related fields in it */
48 void rote_es_interpret_csi(RoteTerm *rt);
49
50 #endif /* MADTTY_MADTTY_PRIV_H */