SCO ACS part 2 (ESC[12m) apparently puts the top half of CP437 into
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Tue, 31 Dec 2002 11:03:23 +0000 (11:03 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Tue, 31 Dec 2002 11:03:23 +0000 (11:03 +0000)
_both_ halves of the character set, rather than flipping the two
halves. My source for this is linux/drivers/char/console.c.

git-svn-id: svn://svn.tartarus.org/sgt/putty@2394 cda61777-01e9-0310-a592-d414129be87e

terminal.c

index 3fcff47..749b120 100644 (file)
@@ -1274,7 +1274,7 @@ void term_out(Terminal *term)
            else if(term->sco_acs && 
                    (c!='\033' && c!='\012' && c!='\015' && c!='\b'))
            {
-              if (term->sco_acs == 2) c ^= 0x80;
+              if (term->sco_acs == 2) c |= 0x80;
               c |= ATTR_SCOACS;
            } else {
                switch (term->cset_attr[term->cset]) {
@@ -2103,7 +2103,7 @@ void term_out(Terminal *term)
                                    compatibility(SCOANSI);
                                    if (term->cfg->no_remote_charset) break;
                                    term->sco_acs = 1; break;
-                                 case 12:      /* SCO acs on flipped */
+                                 case 12:      /* SCO acs on, |0x80 */
                                    compatibility(SCOANSI);
                                    if (term->cfg->no_remote_charset) break;
                                    term->sco_acs = 2; break;