]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/subr.el (global-map): Initialize inside declaration.
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 5 Jan 2021 03:57:21 +0000 (22:57 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 5 Jan 2021 04:41:19 +0000 (23:41 -0500)
* src/commands.h (global_map):
* src/keymap.c (global_map): Delete variable.
(syms_of_keymap): Don't initialize global_map here.
(keys_of_keymap): Delete function.
* src/lisp.h (keys_of_cmds):
* src/cmds.c (keys_of_cmds): Delete function.
* src/emacs.c (main): Don't call them.

* src/window.c (keys_of_window): Don't initialize global_map here.
* src/keyboard.c (keys_of_keyboard): Don't initialize global_map here.

lisp/subr.el
src/cmds.c
src/commands.h
src/emacs.c
src/keyboard.c
src/keymap.c
src/keymap.h
src/lisp.h
src/window.c

index 1acc3c3250bae1414cdceec014fb8842d319950e..6187f7ad3c480f25ebe4dfb834d7cc313d6689e4 100644 (file)
@@ -1242,11 +1242,6 @@ in a cleaner way with command remapping, like this:
 ;; global-map, esc-map, and ctl-x-map have their values set up in
 ;; keymap.c; we just give them docstrings here.
 
-(defvar global-map nil
-  "Default global keymap mapping Emacs keyboard input into commands.
-The value is a keymap that is usually (but not necessarily) Emacs's
-global map.")
-
 (defvar esc-map nil
   "Default keymap for ESC (meta) commands.
 The normal global definition of the character ESC indirects to this keymap.")
@@ -1269,6 +1264,37 @@ The normal global definition of the character C-x indirects to this keymap.")
   "Keymap for tab-bar related commands.")
 (define-key ctl-x-map "t" tab-prefix-map)
 
+(defvar global-map
+  (let ((map (make-keymap)))
+    (define-key map "\C-[" 'ESC-prefix)
+    (define-key map "\C-x" 'Control-X-prefix)
+
+    (define-key map "\C-i" #'self-insert-command)
+    (let* ((vec1 (make-vector 1 nil))
+           (f (lambda (from to)
+                (while (< from to)
+                  (aset vec1 0 from)
+                  (define-key map vec1 #'self-insert-command)
+                  (setq from (1+ from))))))
+      (funcall f #o040 #o0177)
+      (when (eq system-type 'ms-dos)      ;FIXME: Why?
+        (funcall f #o0200 #o0240))
+      (funcall f #o0240 #o0400))
+
+    (define-key map "\C-a" #'beginning-of-line)
+    (define-key map "\C-b" #'backward-char)
+    (define-key map "\C-e" #'end-of-line)
+    (define-key map "\C-f" #'forward-char)
+    (define-key map "\C-z" #'suspend-emacs) ;FIXME: Re-bound later!
+
+    (define-key map "\C-v" #'scroll-up-command)
+    (define-key map "\C-]" #'abort-recursive-edit)
+    map)
+  "Default global keymap mapping Emacs keyboard input into commands.
+The value is a keymap that is usually (but not necessarily) Emacs's
+global map.")
+(use-global-map global-map)
+
 \f
 ;;;; Event manipulation functions.
 
index 798fd68a9202bf345928270a2b946f3f5e5d32b5..1547db80e88fe401b8d88f5c75ec031a1dd6f161 100644 (file)
@@ -529,24 +529,3 @@ This is run after inserting the character.  */);
   defsubr (&Sdelete_char);
   defsubr (&Sself_insert_command);
 }
-
-void
-keys_of_cmds (void)
-{
-  int n;
-
-  initial_define_key (global_map, Ctl ('I'), "self-insert-command");
-  for (n = 040; n < 0177; n++)
-    initial_define_key (global_map, n, "self-insert-command");
-#ifdef MSDOS
-  for (n = 0200; n < 0240; n++)
-    initial_define_key (global_map, n, "self-insert-command");
-#endif
-  for (n = 0240; n < 0400; n++)
-    initial_define_key (global_map, n, "self-insert-command");
-
-  initial_define_key (global_map, Ctl ('A'), "beginning-of-line");
-  initial_define_key (global_map, Ctl ('B'), "backward-char");
-  initial_define_key (global_map, Ctl ('E'), "end-of-line");
-  initial_define_key (global_map, Ctl ('F'), "forward-char");
-}
index a09858d050d4bc48a282a083efa9df08fdb9a73a..be6f5823bcc3edb925b71150e42293f37304492e 100644 (file)
@@ -27,7 +27,6 @@ along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
    calls to initial_define_key.  These should *not* be used after
    initialization; use-global-map doesn't affect these; it sets
    current_global_map instead.  */
-extern Lisp_Object global_map;
 extern Lisp_Object meta_map;
 extern Lisp_Object control_x_map;
 
index fe8dcb1c47636079befd6c458ed2195b673ed081..3c293d85eddbf52a41d44e90a61f83c55903630c 100644 (file)
@@ -1957,10 +1957,8 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem
 #endif
 
       keys_of_casefiddle ();
-      keys_of_cmds ();
       keys_of_buffer ();
       keys_of_keyboard ();
-      keys_of_keymap ();
       keys_of_window ();
     }
   else
index cf15cd73572beedc77df2eafe9ae326482bc9a01..52d913c537da47f9bf17d240e9e3a208b7bb7804 100644 (file)
@@ -12388,10 +12388,8 @@ syms_of_keyboard_for_pdumper (void)
 void
 keys_of_keyboard (void)
 {
-  initial_define_key (global_map, Ctl ('Z'), "suspend-emacs");
   initial_define_key (control_x_map, Ctl ('Z'), "suspend-emacs");
   initial_define_key (meta_map, Ctl ('C'), "exit-recursive-edit");
-  initial_define_key (global_map, Ctl (']'), "abort-recursive-edit");
   initial_define_key (meta_map, 'x', "execute-extended-command");
 
   initial_define_lispy_key (Vspecial_event_map, "delete-frame",
index 1eeea81f627d4731e73a8d4068e1268178161c61..772ced42ccdecad43112b62c7d5278373dbaf601 100644 (file)
@@ -59,8 +59,6 @@ along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
 
 Lisp_Object current_global_map;        /* Current global keymap.  */
 
-Lisp_Object global_map;                /* Default global key bindings.  */
-
 Lisp_Object meta_map;          /* The keymap used for globally bound
                                   ESC-prefixed default commands.  */
 
@@ -3195,11 +3193,7 @@ syms_of_keymap (void)
      Each one is the value of a Lisp variable, and is also
      pointed to by a C variable */
 
-  global_map = Fmake_keymap (Qnil);
-  Fset (intern_c_string ("global-map"), global_map);
-
-  current_global_map = global_map;
-  staticpro (&global_map);
+  current_global_map = Qnil;
   staticpro (&current_global_map);
 
   meta_map = Fmake_keymap (Qnil);
@@ -3328,10 +3322,3 @@ be preferred.  */);
   defsubr (&Swhere_is_internal);
   defsubr (&Sdescribe_buffer_bindings);
 }
-
-void
-keys_of_keymap (void)
-{
-  initial_define_key (global_map, 033, "ESC-prefix");
-  initial_define_key (global_map, Ctl ('X'), "Control-X-prefix");
-}
index 072c09348e2c3e7fa2931c86b5ac640533f440ce..1967025dcb45ac8baf5faa259883f869ae965f82 100644 (file)
@@ -40,7 +40,6 @@ extern ptrdiff_t current_minor_maps (Lisp_Object **, Lisp_Object **);
 extern void initial_define_key (Lisp_Object, int, const char *);
 extern void initial_define_lispy_key (Lisp_Object, const char *, const char *);
 extern void syms_of_keymap (void);
-extern void keys_of_keymap (void);
 
 typedef void (*map_keymap_function_t)
      (Lisp_Object key, Lisp_Object val, Lisp_Object args, void *data);
index 5cc735be86cd489367026a8fc77a71ba7c3c6788..d259e950dab7c5e1499dc1f8018b29b5e12b1d22 100644 (file)
@@ -3561,7 +3561,6 @@ extern void swap_in_global_binding (struct Lisp_Symbol *);
 
 /* Defined in cmds.c */
 extern void syms_of_cmds (void);
-extern void keys_of_cmds (void);
 
 /* Defined in coding.c.  */
 extern Lisp_Object detect_coding_system (const unsigned char *, ptrdiff_t,
index ba8682eed7c5e6f72d3651a2e2ceab66e52cbe17..f2862a287d6b88e88eb6b1a294e27cd57e4698b2 100644 (file)
@@ -8590,7 +8590,6 @@ keys_of_window (void)
   initial_define_key (control_x_map, '<', "scroll-left");
   initial_define_key (control_x_map, '>', "scroll-right");
 
-  initial_define_key (global_map, Ctl ('V'), "scroll-up-command");
   initial_define_key (meta_map, Ctl ('V'), "scroll-other-window");
   initial_define_key (meta_map, 'v', "scroll-down-command");
 }