Re: [PATCH 17/16] Do not reset UTF8 on terminal reset

From: Paul LeoNerd Evans
Date: Mon Apr 02 2007 - 07:54:29 EST


On Mon, Apr 02, 2007 at 07:44:13PM +0800, Antonino A. Daplas wrote:
> > Is it OK to do that? I recall when I was originally looking at the code
> > I didn't want to just remove that line, because it looked like that was
> > being used to first initialise the vc* structure when it is created, as
> > well as reset it every time. Doesn't this leave vc->vc_utf uninitialised
> > when a new VC is allocated?
>
> That's true. We can move the line vc->vc_utf = 0; in vc_init()
> instead.

...

> @@ -2590,6 +2589,7 @@ static void vc_init(struct vc_data *vc,
> vc->vc_rows = rows;
> vc->vc_size_row = cols << 1;
> vc->vc_screenbuf_size = vc->vc_rows * vc->vc_size_row;
> + vc->vc_utf = 0;
>
> set_origin(vc);
> vc->vc_pos = vc->vc_origin;

While we're on that subject, did you take a look at my original mail?
The intent with that patch was to allow system policy to state all new
VCs are UTF-8-enabled by default. I feel that in 2007 this should be the
default setting.

Would it therefore be possible to have

vc->vc_utf = some_default;

where some_default comes maybe from a sysctl or some other configurable
source? Or maybe even have a compiletime option?

This would get around many bugs. For example, on boot, "unicode_start"
can only set utf8 mode on the existing VCs 1 to 6. If X11 fails to
start, debian nicely runs me the XKeepsCrashing program, which offers to
show me logs and the like. It reads the locale, en_GB.UTF-8 and
determines we're in UTF-8 mode, so outputs Unicode linedrawing
characters for dialogs. Unfortunately, we're on VC7 which doesn't have
UTF-8 mode turned on, so much mess results.

It would be nice if the kernel's default UTF-8 mode for new VCs could be
synched to whatever local policy was regarding locale.

--
Paul "LeoNerd" Evans

leonerd@xxxxxxxxxxxxxx
ICQ# 4135350 | Registered Linux# 179460
http://www.leonerd.org.uk/

Attachment: signature.asc
Description: Digital signature