From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.devel Subject: `global-set-key' vs `keymap-global-set' `key-valid-p' syntax Date: Tue, 07 May 2024 08:19:26 +0200 Message-ID: <874jba9ma9.fsf@dataswamp.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="34578"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: emacs-devel@gnu.org Cancel-Lock: sha1:2hPJmeftkO47veqStj+UrWhdUSU= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue May 07 13:04:14 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1s4IcI-0008nF-36 for ged-emacs-devel@m.gmane-mx.org; Tue, 07 May 2024 13:04:14 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s4Ibl-0007Xs-PC; Tue, 07 May 2024 07:03:41 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s4EAs-0004bH-J6 for emacs-devel@gnu.org; Tue, 07 May 2024 02:19:38 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s4EAq-0008Aq-8U for emacs-devel@gnu.org; Tue, 07 May 2024 02:19:37 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1s4EAn-0008TV-My for emacs-devel@gnu.org; Tue, 07 May 2024 08:19:33 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: emacs-devel@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.248, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Tue, 07 May 2024 07:03:36 -0400 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:318933 Archived-At: In the docstring to `global-set-key' they say it is a legacy function and one should use `keymap-global-set' instead. This note is hardcoded in the docstring so the byte-compiler don't tell you about it. What is the difference between obsolete, legacy, and deprecated source code? We learn from gpt4 that - obsolete code is outdated and no longer used; - legacy code is still in use but outdated; and - deprecated code is discouraged from being used but still functional. Since `global-set-key' and `keymap-global-set' superficially have identical interfaces, it would seem it would be easy to do a search and replace. However, this is not so because one syntax to denote keys, if I just take one example from my own Elisp - which, BTW, has 78 instances of global-set-key - isn't allowed with keymap-global-set. ;; disable keys (global-set-key "\C-h\C-p" #'ignore) ; view-emacs-problems (global-set-key "\C-hr" #'ignore) ; info-emacs-manual (global-set-key "\C-ht" #'ignore) ; help-with-tutorial (global-set-key "\C-x\C-c" #'ignore) ; save-buffers-kill-terminal (global-set-key "\C-x\C-n" #'ignore) ; set-goal-column The reason is they are not valid by `key-valid-p'. I don't know what the reasoning behind this was? One gets the feeling that Emacs is obsolete but still in use, and left in the repos only to avoid conflicts with legacy programmers. -- underground experts united https://dataswamp.org/~incal