diff options
author | james <> | 2008-02-26 23:56:12 +0000 |
---|---|---|
committer | james <> | 2008-02-26 23:56:12 +0000 |
commit | 5d11f03b6f99696f2d9df508cf7000e8f04b332b (patch) | |
tree | a6ac08bad649905d8dcb12dec3e32703bf9ef906 /src/ansi.c | |
parent | f2b8bf1dc0714a6aacb11ec9634e856a8f4cab03 (diff) | |
download | sympathy-5d11f03b6f99696f2d9df508cf7000e8f04b332b.tar.gz sympathy-5d11f03b6f99696f2d9df508cf7000e8f04b332b.tar.bz2 sympathy-5d11f03b6f99696f2d9df508cf7000e8f04b332b.zip |
*** empty log message ***
Diffstat (limited to 'src/ansi.c')
-rw-r--r-- | src/ansi.c | 116 |
1 files changed, 64 insertions, 52 deletions
@@ -10,6 +10,9 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.32 2008/02/26 23:56:12 james + * *** empty log message *** + * * Revision 1.31 2008/02/26 23:23:17 james * *** empty log message *** * @@ -325,36 +328,40 @@ ansi_set_attr (ANSI * a, int attr) static void ascii_emit (TTY * t, uint32_t ch) { -int i; - + int i; + /*Some quick obvious subsititons for quotation marks*/ -switch(ch) { -case 0x2018: - ch='`'; - break; -case 0x2019: - ch='\''; - break; -case 0x201c: -case 0x201d: - ch='"'; - break; -} + switch (ch) + { + case 0x2018: + ch = '`'; + break; + case 0x2019: + ch = '\''; + break; + case 0x201c: + case 0x201d: + ch = '"'; + break; + } /*Short cut the easy stuff*/ -if (ch<0x7f) { - uint8_t c = ch ; - t->xmit (t, &c, 1); - return; -} + if (ch < 0x7f) + { + uint8_t c = ch; + t->xmit (t, &c, 1); + return; + } -for (i=0;i<VT102_CHARSET_SIZE;++i) { -if (vt102_charset_gl[i]==ch) { - uint8_t c[3] ={016,i,017}; - t->xmit (t, &c, 3); - return; -} -} + for (i = 0; i < VT102_CHARSET_SIZE; ++i) + { + if (vt102_charset_gl[i] == ch) + { + uint8_t c[3] = { 016, i, 017 }; + t->xmit (t, &c, 3); + return; + } + } t->xmit (t, "?", 1); @@ -366,7 +373,7 @@ ansi_render (ANSI * a, CRT_CA ca) int dif; if ((ca.chr < VT102_CHARSET_SIZE) && (vt102_charset_c0[ca.chr])) - ca.chr=vt102_charset_c0[ca.chr]; + ca.chr = vt102_charset_c0[ca.chr]; if ((ca.chr >= 0x80) && (ca.chr < 0xa0)) ca.chr = ' '; @@ -377,7 +384,7 @@ ansi_render (ANSI * a, CRT_CA ca) if (a->utf8) utf8_emit (a->terminal, ca.chr); else - ascii_emit(a->terminal,ca.chr); + ascii_emit (a->terminal, ca.chr); a->pos.x++; @@ -515,41 +522,46 @@ ansi_draw_line (ANSI * a, CRT_CA * cap, int y) } static void -ansi_resize_check (ANSI * a,int new_width) +ansi_resize_check (ANSI * a, int new_width) { - if ((new_width && (new_width != a->crt.width)) || crt_pos_cmp (a->terminal->size, a->size)) { + if ((new_width && (new_width != a->crt.width)) + || crt_pos_cmp (a->terminal->size, a->size)) + { - terminal_getsize (a->terminal); + terminal_getsize (a->terminal); - a->size = a->terminal->size; + a->size = a->terminal->size; - a->pos.x = ANSI_INVAL; - a->hide_cursor = ANSI_INVAL; + a->pos.x = ANSI_INVAL; + a->hide_cursor = ANSI_INVAL; - crt_reset (&a->crt); + crt_reset (&a->crt); - if (new_width) - a->crt.width=new_width; + if (new_width) + a->crt.width = new_width; // FIXME: -- echos back crap? // a->terminal->xmit (a->terminal, "\033[c", 3); // maybe - issue 132 column command if we're 132? - ansi_cls (a); - a->terminal->xmit (a->terminal, "\033=", 2); - a->terminal->xmit (a->terminal, "\033[?6l", 5); - a->terminal->xmit (a->terminal, "\033[r", 3); - if (a->utf8) { - a->terminal->xmit (a->terminal,"\033%G",3); - } else { - a->terminal->xmit (a->terminal,"\033(B",3); - a->terminal->xmit (a->terminal,"\033)0",3); - a->terminal->xmit (a->terminal,"\017",1); - } + ansi_cls (a); + a->terminal->xmit (a->terminal, "\033=", 2); + a->terminal->xmit (a->terminal, "\033[?6l", 5); + a->terminal->xmit (a->terminal, "\033[r", 3); + if (a->utf8) + { + a->terminal->xmit (a->terminal, "\033%G", 3); + } + else + { + a->terminal->xmit (a->terminal, "\033(B", 3); + a->terminal->xmit (a->terminal, "\033)0", 3); + a->terminal->xmit (a->terminal, "\017", 1); + } -} + } } #define HISTORY_GUESS_SCROLL 24 /*guess all 24 lines usually scroll */ @@ -564,7 +576,7 @@ ansi_history (ANSI * a, History * h) if (a->history_ptr == h->wptr) return; - ansi_resize_check (a,0); + ansi_resize_check (a, 0); if ((a->size.x < a->crt.width) || (a->size.y < CRT_ROWS)) return; @@ -615,7 +627,7 @@ ansi_history (ANSI * a, History * h) { memcpy (&a->crt.screen[CRT_ADDR_POS (&e)], &a->crt.screen[CRT_ADDR_POS (&s)], - sizeof (CRT_CA)*a->crt.width); + sizeof (CRT_CA) * a->crt.width); } /* erase new line */ @@ -641,7 +653,7 @@ ansi_draw (ANSI * a, CRT * c) int o; int hidden_cursor = 0; - ansi_resize_check (a,c->width); + ansi_resize_check (a, c->width); for (p.y = 0; p.y < CRT_ROWS; ++p.y) |