Subject: bug#54889: 29.0.50; shift keys can't function when using setxkbmap with custom_symbol in gnome

From: [email-masked]
Date: Thu, 14 Apr 2022 22:56:29 +0000

i tried the version of emacs today,
it still do not give me chance to input ,
gui emacs freeze when gdb showed the prompt again,
i tried to press key before it freeze,
the result is showed below:

[root@lpc src]# gdb ./emacs -q
Reading symbols from ./emacs...
SIGINT is used by the debugger.
Are you sure you want to change it? (y or n) [answered Y; input not from
terminal]
DISPLAY = :0
TERM = rxvt-unicode-256color
Breakpoint 1 at 0x21284d: file emacs.c, line 412.
Breakpoint 2 at 0x1c817a: file xterm.c, line 19763.
(gdb) break xterm.c:17399
Breakpoint 3 at 0x1c559f: file xterm.c, line 18527.
(gdb) break xterm.c:17399
Note: breakpoint 3 also set at pc 0x1c559f.
Breakpoint 4 at 0x1c559f: file xterm.c, line 18527.
(gdb) run
Starting program: /dev/shm/e29/src/emacs
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7ffff1355640 (LWP 298831)]
[New Thread 0x7ffff0a5f640 (LWP 298832)]
[Detaching after fork from child process 298833]
[Detaching after fork from child process 298834]
[New Thread 0x7fffebfff640 (LWP 298835)]
[New Thread 0x7fffeb7fe640 (LWP 298836)]
[Thread 0x7fffeb7fe640 (LWP 298836) exited]
[New Thread 0x7fffeb7fe640 (LWP 298837)]
[New Thread 0x7fffeaffd640 (LWP 298838)]
[Thread 0x7fffeb7fe640 (LWP 298837) exited]
[Thread 0x7fffeaffd640 (LWP 298838) exited]

Thread 1 "emacs" hit Breakpoint 3, handle_one_xevent
(dpyinfo=0x555556112d50, event=0x7fffffffd710, finish=0x555555e9191c
<current_finish>, hold_quit=0x7fffffffda40) at xterm.c:18527
18527          if (dpyinfo->supports_xkb
(gdb) p xkey.state
No symbol "xkey" in current context.
(gdb) p dpyinfo->hyper_mod_mask
$1 = 0

i also tried to comment out that you say this :
         else if (dpyinfo->xkb_desc->names->vmods[i] ==
dpyinfo->Xatom_Hyper)
            dpyinfo->hyper_mod_mask |= vmodmask;

after rebuild,
the capital letter can normally insert with shift now.
hope it useful.

Thanks

Po Lu <[email-masked]> 於 2022年4月14日 週四 下午1:18寫道：

> [email-masked] writes:
>
> > I am sorry, i will notice to use 'reply all' since this time.
> >
> > here is this time i tried:
> >
> > 1. after 'run' , i do not see gui window,
> > i have no way to input,
> > here is the result:
> >
> > $ gdb ./emacs -q
> > Reading symbols from ./emacs...
> > SIGINT is used by the debugger.
> > Are you sure you want to change it? (y or n) [answered Y; input not from
> terminal]
> > DISPLAY = :0
> > TERM = rxvt-unicode-256color
> > Breakpoint 1 at 0x4ac18: file emacs.c, line 412.
> > Breakpoint 2 at 0x129bc0: file xterm.c, line 19625.
> > (gdb) break xterm.c:17399
> > Breakpoint 3 at 0x13cb23: file xterm.c, line 18393.
> > (gdb) run
> > Starting program: /dev/shm/e29/src/emacs
> > [Thread debugging using libthread_db enabled]
> > Using host libthread_db library "/usr/lib/libthread_db.so.1".
> > [New Thread 0x7ffff1356640 (LWP 198258)]
> > [New Thread 0x7ffff0ae1640 (LWP 198259)]
> > [New Thread 0x7fffebfff640 (LWP 198260)]
> > [New Thread 0x7fffeb758640 (LWP 198261)]
> > [New Thread 0x7fffeaf57640 (LWP 198262)]
> > [New Thread 0x7fffea756640 (LWP 198263)]
> >
> > Thread 1 "emacs" hit Breakpoint 3, handle_one_xevent
> (dpyinfo=0x555555e69600, event=0x7fffffffd120, finish=<optimized out>,
> hold_quit=0x7fffffffd3f0) at
> > xterm.c:18393
> > 18393          if (dpyinfo->supports_xkb
> > (gdb) p xkey.state
> > No symbol "xkey" in current context.
> > (gdb) p dpyinfo->hyper_mod_mask
> > $1 = 1
>
> It seems that your copy of Emacs is slightly out of date, please update
> and try again.  Thanks in advance!
>
> But this does say that hyper_mask is set to what is normally ShiftMask
> on X.  What happens if you comment out this bit of code in the function
> `x_find_modifier_meanings'?
>
>           else if (dpyinfo->xkb_desc->names->vmods[i] ==
> dpyinfo->Xatom_Hyper)
>             dpyinfo->hyper_mod_mask |= vmodmask;
>
> Thanks.
>