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

From: Eli Zaretskii <[email-masked]>
Date: Sun, 08 Dec 2024 08:09:15 +0200

> From: Yoichi Nakayama <[email-masked]>
> Date: Sun, 8 Dec 2024 10:01:16 +0900
> Cc: [email-masked], [email-masked], [email-masked]
> 
> 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".

Thanks, then I guess it's okay to move the code there.