Subject: Re: bug#74619: macOS: <ns-show-prefs> displayed as keybinding for \\[customize] on emacs -nw

From: Yoichi Nakayama <[email-masked]>
Date: Sun, 8 Dec 2024 10:01:16 +0900

The problem I reported is that
  (substitute-command-keys "\\[customize]")
results in "<ns-show-prefs>".

This is caused by defining global key mapping in term/ns-win.el:
  (define-key global-map [ns-show-prefs] 'customize)
without make-non-key-event call for ns-*.

So, if term/ns-win.el is not loaded and the problem doesn't occur.
That is why I said:

> If term/ns-win.el is not loaded, no need to call make-non-key-event for ns-".
> It is because global-set-key for ns-" is only in term/ns-win.el.

(Sorry. I wrote "global-set-key" by mistake, it was "define-key
global-map" in fact)

* Emacs built with --without-ns doesn't load term/ns-win.el (in this
case, the problem doesn't occur)
* Emacs built with --with-ns does load term/ns-win.el even in -nw process

Therefore, putting make-non-key-event for non-key events ns-* in the
toplevel of term/ns-win.el solve the problem, and I also think
term/ns-win.el is better place as you said "NS specific code should
definitely go to ns-win.el".

On Sat, Dec 7, 2024 at 4:32 PM Eli Zaretskii <[email-masked]> wrote:
>
> > From: Yoichi Nakayama <[email-masked]>
> > Date: Sat, 7 Dec 2024 05:20:42 +0900
> > Cc: Eli Zaretskii <[email-masked]>, Robert Pluim <[email-masked]>, [email-masked]
> >
> > > I configure --without-ns, and ns-win.el is not loaded in that case.
> >
> > If term/ns-win.el is not loaded, no need to call make-non-key-event for ns-".
> > It is because global-set-key for ns-" is only in term/ns-win.el.
>
> Sorry, I don't understand: are you saying that those keys don't need
> to be supported in the --without-ns build?  Then what exactly is the
> meaning of --with-ns for -nw sessions?  Isn't NS a kind-of
> window-system?

-- 
Yoichi NAKAYAMA