Le sam. 9 mars 2024 à 21:17, Samuel Thibault <samuel.thiba...@gnu.org> a
écrit :

> Hello,
>
> >  19 files changed, 547 insertions(+), 5803 deletions(-)
>
> Yay, nice cleanup :D
>
> Did you try to run Xorg with this patch applied?
>
No I have not configured an X client on my VM, I can try

>
> Did you check that it builds when xkb_common is not available?
>
No, will do

> Did you try to use compose?
>
No, I only tested the default

> Do you have a patch for debian's /etc/default/hurd-console file?
>
I will create one

> Etienne Brateau, le sam. 09 mars 2024 01:48:34 +0100, a ecrit:
> > diff --git a/console-client/pc-kbd.c b/console-client/pc-kbd.c
> > index aa5f1103..8ca36793 100644
> > --- a/console-client/pc-kbd.c
> > +++ b/console-client/pc-kbd.c
> > @@ -805,30 +799,17 @@ input_loop (void *unused)
> >          {
> >            keypress_t key;
> >
> > -          key.keycode = read_keycode () + min_keys;
> > -          key.rel = key.keycode & 0x80;
> > -          key.redir = 0;
> > -
> > -          if (!key.rel && key.keycode == prevkey)
> > -            key.repeat = 1;
> > -          else
> > -            key.repeat = 0;
> > +          keycode_t raw_keycode = read_keycode () + get_min_keycode();
> > +          key.keycode = raw_keycode & ~0x80;
> > +          key.rel = raw_keycode & 0x80;
> >
> > -          if (key.repeat)
> > +          /* don’t allow repeated key */
> > +          if (raw_keycode == prevkey)
> >              continue;
>
> You can move this above filling key.
>
> > -    {"xkbdir",     'x', "DIR",          0,
> > -     "Directory containing the XKB configuration files" },
> > -    {"keymapfile", 'f', "FILE",         0,
> > -     "File containing the keymap" },
> > -    {"keymap",     'k', "SECTIONNAME" , 0,
> > -     "Choose keymap"},
> > +    {"model",      'm', "XKB_MODEL",           0,
> > +     "the keyboard model for xkb" },
> > +    {"layout",     'l', "XKB_LAYOUT",          0,
> > +     "The layout of the keyboard" },
> > +    {"variant",    'v', "XKB_VARIANT" ,        0,
> > +     "The variant to use"},
> > +    {"options",    'p', "XKB_OPTIONS" ,        0,
> > +     "The xkb options"},
> >      {"compose",    'o', "COMPOSEFILE", 0,
> >       "Compose file to load (default none)"},
> >      {"ctrlaltbs",  'c', 0                 , 0,
> > @@ -1235,17 +1219,21 @@ parse_opt (int key, char *arg, struct argp_state
> *state)
> >      {
> >  #ifdef XKB_SUPPORT
> >      case 'x':
>
> This should be made 'm'?
>
Yes, I need to change to 'm'

> > diff --git a/console-client/xkb/xkb.c b/console-client/xkb/xkb.c
> > index f0c36a64..5046c747 100644
> > --- a/console-client/xkb/xkb.c
> > +++ b/console-client/xkb/xkb.c
> > +int
> > +execute_action(keycode_t keycode)
> >  {
> [...]
> >
> > -  if (actioncompl == KEYCONSUMED && !key.rel)
> > +  if (xkb_state_mod_name_is_active (state, XKB_MOD_NAME_ALT,
> XKB_STATE_MODS_EFFECTIVE) > 0)
> >      {
>
> The values for XKB_KEY_F1 ... XKB_KEY_F35 are fixed and happen to be
> consecutive, so you can factorize these:
>
> >    /* Special key, generate escape sequence.  */
> >    char *escseq = NULL;
> >
> >    switch (input)
> >      {
> > -    case XK_Up: case XK_KP_Up:
> > -      escseq = CONS_KEY_UP;
> > +      case XKB_KEY_Up:
> > +      case XKB_KEY_KP_Up:
> > +        escseq = CONS_KEY_UP;
>
> The GNU coding standard says it's to be like it was before:
>
>     {
>     case XKB_KEY_Up:
>     case XKB_KEY_KP_Up:
>       escseq = CONS_KEY_UP;
>       break;
>
> and similar for the rest.
>
ok changing it

>
> > @@ -1323,60 +446,138 @@ xkb_input (keypress_t key)
> >      {
> >        char *buffer = &buf[size];
> >        size_t left = sizeof (buf) - size;
> > -      char *inbuf = (char *) &input;
> > -      size_t inbufsize = sizeof (wchar_t);
> > -      size_t nr;
> > +      int nr;
> >
> >        /* Control key behaviour.  */
> > +      if (xkb_state_mod_name_is_active (state, XKB_MOD_NAME_CTRL,
> XKB_STATE_MODS_EFFECTIVE) > 0)
> > +        {
> > +          input = symtoctrlsym (input);
> > +          buffer[0] = input;
> > +          buffer[1] = '\n';
>
> Why \n?
>
Fails of me, wanted to put '\0'

>
> Samuel
>

Reply via email to