[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: new console server code checked in

From: Marcus Brinkmann
Subject: Re: new console server code checked in
Date: Wed, 5 Jun 2002 11:14:45 +0200
User-agent: Mutt/1.3.28i

On Wed, Jun 05, 2002 at 10:03:27AM +0200, Niels Möller wrote:
> > It just seems like the interface is wrongheaded if it winds up doing byte
> > order conversions back and forth on the same machine.
> I suspect that the conversions are actually not between UCS-4 little
> endian and UCS-4 big endian, but between UCS-4 (some flavour) to and
> from utf-8 and latin1 to UCS-4.

Or from UCS-4 to the internal format of the console client, whatever it is.
Rolands hint for UTF-32LE etc was very helpful.

> Keeping it together in a single file seems reasonably clean to me. One
> advantage over having two files is that it seems easier to make sure
> that update notifications arrive in the right order.

This is a good point.  BTW, the only thing so far that would require
ordering on the clients end is scrolling a part of the screen, so it is an
optimization :)

> The header could
> look something like
> uint32_t version number
> uint32_t byte order flag for the screen data
> uint32_t nrows, ncolumns (screen size)

There is a ioctl that _could_ be used for the screen size, but if we are
going for the header, it is fair game to put this in there, too, of course.

> uint32_t row offset for the top-most row (for scrolling)
> uint32_t crow, ccolumn (cursor position)
> uint32_t cflags (cursor flags)
> ...
> uint32_t screen[nrows][ncolumns]

Yeah, this seems to be all for now as far as I have it in mind.
Although if you really care about backward compatibility, you want
uint32_t screen matrix offset
uint32_t current version
uint32_t interface age (eg last version support)

> Then the only new rpc needed should be for rectangular updates,
> scrolling of regions, etc, that are needed only for performance.

For rectangular and scrolling updates, I am unprejudiced enough to just use
new flags for the file update, which mean that it is the rectangular area of
the screen as indicated by start and end, rather than the whole area
[start:end].  I suggested this in an earlier mail, and nobody was kicking
and screaming, so I guess it is not totally absurd ;)


`Rhubarb is no Egyptian god.' Debian http://www.debian.org brinkmd@debian.org
Marcus Brinkmann              GNU    http://www.gnu.org    marcus@gnu.org

reply via email to

[Prev in Thread] Current Thread [Next in Thread]