[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemacs-commit] qemacs shell.c
From: |
Charlie Gordon |
Subject: |
[Qemacs-commit] qemacs shell.c |
Date: |
Thu, 10 Apr 2008 20:57:25 +0000 |
CVSROOT: /cvsroot/qemacs
Module name: qemacs
Changes by: Charlie Gordon <chqrlie> 08/04/10 20:57:25
Modified files:
. : shell.c
Log message:
fixed terminal emulation for charset selection
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/shell.c?cvsroot=qemacs&r1=1.52&r2=1.53
Patches:
Index: shell.c
===================================================================
RCS file: /cvsroot/qemacs/qemacs/shell.c,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -b -r1.52 -r1.53
--- shell.c 9 Apr 2008 16:51:30 -0000 1.52
+++ shell.c 10 Apr 2008 20:57:25 -0000 1.53
@@ -63,6 +63,7 @@
int state;
int esc1, esc2;
int shifted;
+ int cset, charset[2];
int grab_keys;
EditBuffer *b;
EditBuffer *b_color; /* color buffer, one byte per char */
@@ -704,14 +705,10 @@
s->cur_offset = eb_goto_bol(s->b, s->cur_offset);
break;
case 14: /* ^N SO = shift out */
- // was in qemacs-0.3.1.g2.gw
- //eb_set_charset(s->b, &charset_8859_1);
- s->shifted = 1;
+ s->shifted = s->charset[s->cset = 1];
break;
case 15: /* ^O SI = shift in */
- // was in qemacs-0.3.1.g2.gw
- //eb_set_charset(s->b, &charset_cp1125);
- s->shifted = 0;
+ s->shifted = s->charset[s->cset = 0];
break;
default:
if (c >= 32) {
@@ -764,6 +761,7 @@
* set-window-title=\E]0;title text\007,
*/
switch (c) {
+ case '%':
case '(':
case ')':
case '*':
@@ -790,14 +788,26 @@
s->state = TTY_STATE_NORM;
s->esc2 = c;
switch (ESC2(s->esc1, c)) {
- case ESC2('(','B'): /* exit_alt_charset_mode */
- s->shifted = 0;
+ case ESC2('%','G'): /* set utf mode */
+ case ESC2('%','8'): /* set utf mode */
+ case ESC2('%','@'): /* reset utf mode */
+ break;
+ case ESC2('(','A'): /* set charset0 CSET_GBCHR */
+ case ESC2('(','U'): /* set charset0 CSET_SCOACS */
+ case ESC2('(','B'): /* set charset0 CSET_ASCII */
+ s->charset[0] = 0;
+ break;
+ case ESC2('(','0'): /* set charset0 CSET_LINEDRW */
+ s->charset[0] = 1;
+ break;
+ case ESC2(')','A'): /* set charset1 CSET_GBCHR */
+ case ESC2(')','U'): /* set charset1 CSET_SCOACS */
+ case ESC2(')','B'): /* set charset1 CSET_ASCII */
+ s->charset[1] = 0;
break;
- case ESC2('(','0'): /* enter_alt_charset_mode */
- s->shifted = 1;
+ case ESC2(')','0'): /* set charset1 CSET_LINEDRW */
+ s->charset[1] = 1;
break;
- case ESC2(')','B'):
- case ESC2(')','0'):
case ESC2('*','B'):
case ESC2('+','B'):
/* XXX: Todo */
@@ -814,6 +824,7 @@
/* XXX: Todo */
break;
}
+ s->shifted = s->charset[s->cset];
break;
case TTY_STATE_STRING:
/* CG: should store the string */
- [Qemacs-commit] qemacs shell.c, Charlie Gordon, 2008/04/04
- [Qemacs-commit] qemacs shell.c, Charlie Gordon, 2008/04/04
- [Qemacs-commit] qemacs shell.c, Charlie Gordon, 2008/04/04
- [Qemacs-commit] qemacs shell.c, Charlie Gordon, 2008/04/08
- [Qemacs-commit] qemacs shell.c, Charlie Gordon, 2008/04/08
- [Qemacs-commit] qemacs shell.c,
Charlie Gordon <=
- [Qemacs-commit] qemacs shell.c, Charlie Gordon, 2008/04/12
- [Qemacs-commit] qemacs shell.c, Charlie Gordon, 2008/04/12
- [Qemacs-commit] qemacs shell.c, Charlie Gordon, 2008/04/13
- [Qemacs-commit] qemacs shell.c, Charlie Gordon, 2008/04/20