DECCOLM - 80/132 columns

schoedel at kw.igs.net schoedel at kw.igs.net
Mon Jul 19 18:45:44 CEST 2010


On Mon, 19 Jul 2010 11:36:53 -0400, schoedel wrote
> since DECSCPP isn't implemented.

On further inspection, DECSCPP is also easily added:

diff -r1.451 command.C
2802a2803,2812
>       else if ((ch >= ' ') && (ch <= '/')) {
>         /* Intermediate byte; these follow parameters. (ECMA-48 5.4) */
>         priv = ch;
>         do
>           {
>             ch = cmd_getc ();
>           }
>         while (IS_CONTROL(ch));
>         break;
>       }
2857a2868,2879
> 
>           case '$':
>             if (ch == CSI_7C)
>               {
>                 /* DECSCPP: select columns per page */
>                 if ((nargs < 1) || (arg[0] == 0))
>                   {
>                     arg[0] = 80;
>                   }
>                 set_widthheight ((unsigned int) (arg[0] * fwidth), height);
>               }
>             break;


Also, unless there is existing code somewhere misusing DECSTR with parameters
after the '!', it would probably be better to remove '!' from the private mode
test, since it is classed as an Intermediate Byte rather than a Parameter Byte
and thus should follow rather than precede any parameters:

diff -r1.451 command.C
2778c2778
<   if ((ch >= '<' && ch <= '?') || ch == '!')
---
>   if (ch >= '<' && ch <= '?')
2780c2780
<       /* '<' '=' '>' '?' '!' */
---
>       /* '<' '=' '>' '?' */


-- 
Kevin Schoedel <schoedel at kw.igs.net> VA3TCS





More information about the rxvt-unicode mailing list