lkml.org 
[lkml]   [2007]   [Apr]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: [PATCH 17/16] Do not reset UTF8 on terminal reset
    From
    Date
    On Mon, 2007-04-02 at 12:54 +0100, Paul LeoNerd Evans wrote:
    > 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?

    I did not actually.

    > 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.

    How about this? This should allow us to reset the terminal without
    affecting utf, and also allows setting of a global utf default that can
    be set via boot option or sysfs:

    echo 1 > /sys/module/vt/parameters/default_utf

    Tony




    >
    diff --git a/drivers/char/vt.c b/drivers/char/vt.c
    index 1bbb45b..b9b3247 100644
    --- a/drivers/char/vt.c
    +++ b/drivers/char/vt.c
    @@ -157,6 +157,8 @@ static void blank_screen_t(unsigned long
    static void set_palette(struct vc_data *vc);

    static int printable; /* Is console ready for printing? */
    +static int default_utf;
    +module_param(default_utf, int, S_IRUGO | S_IWUSR);

    /*
    * ignore_poke: don't unblank the screen when things are typed. This is
    @@ -1497,7 +1499,6 @@ static void reset_terminal(struct vc_dat
    vc->vc_charset = 0;
    vc->vc_need_wrap = 0;
    vc->vc_report_mouse = 0;
    - vc->vc_utf = 0;
    vc->vc_utf_count = 0;

    vc->vc_disp_ctrl = 0;
    @@ -2590,6 +2591,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 = default_utf;

    set_origin(vc);
    vc->vc_pos = vc->vc_origin;
    \
     
     \ /
      Last update: 2007-04-02 14:51    [W:3.861 / U:0.112 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site