On Mon, Oct 13, 2003 at 06:38:42PM +0200, Micha Nelissen wrote:
> Hi,
> 
> Attached is a patch to enable correct ncurses frame drawing. It does so 
> by implementing the escape sequence for 'start/end alternate charset'. 
> This is code \E[11m and \E[10m respectively in the linux termcap.

This patch is a nice idea but it's not quite correct.  You can't
rely on "current_codepage" being ansi_cp.  Since the user can set
it to oem_cp in the CYGWIN environment variable, you have to memorize
the old value on \E[11m and to restore to the old value on \E[10m.

Corinna

> Regards,
> 
> Micha.

> Index: fhandler_console.cc
> ===================================================================
> RCS file: /cvs/src/src/winsup/cygwin/fhandler_console.cc,v
> retrieving revision 1.115
> diff -u -w -r1.115 fhandler_console.cc
> --- fhandler_console.cc       27 Sep 2003 02:36:50 -0000      1.115
> +++ fhandler_console.cc       13 Oct 2003 16:31:13 -0000
> @@ -1111,6 +1111,12 @@
>            case 9:    /* dim */
>              dev_state->intensity = INTENSITY_DIM;
>              break;
> +             case 10:   /* end alternate charset */
> +               current_codepage = ansi_cp;
> +            break;
> +             case 11:   /* start alternate charset */
> +               current_codepage = oem_cp;
> +            break;
>            case 24:
>              dev_state->underline = FALSE;
>              break;

> 2003-10-13  Micha Nelissen  <[EMAIL PROTECTED]>
> 
> * fhandler_console.cc (char_command): added escape sequence for codepage
> ansi <-> oem switching for ncurses frame drawing capabilities.
> 


-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Developer                                mailto:[EMAIL PROTECTED]
Red Hat, Inc.

Reply via email to