Commit graph

15 commits

Author SHA1 Message Date
Alan Mackenzie
14d64a8adc Merge branch 'master' into scratch/correct-warning-pos 2022-01-22 11:02:50 +00:00
Alan Mackenzie
bdd9b5b8a0 Miscellaneous amendments to the scratch/correct-warning-pos branch
* lisp/cedet/semantic/fw.el (semantic-alias-obsolete)
(semantic-varalias-obsolete): Replace calls to byte-compile-warn with calls to
byte-compile-warn-x (when it exists).

* lisp/emacs-lisp/bytecomp.el (byte-compile-log-warning-function)
(byte-compile--log-warning-for-byte-compile): Make the POSITION parameter no
longer &optional (for the benefit of flymake on *.el).
(byte-compile-log-warning): Replace a nil POSITION argument with an actual
position.
(byte-compile-file-form-require): Push the required symbol onto
byte-compile-form-stack, for the benefit of `do-after-load-evaluation'.

* lisp/keymap.el (define-keymap--compile): Replace four calls to
byte-compile-warn with byte-compile-warn-x.

* doc/lispref/elisp.texi (master menu): Add entries for Shorthands and Symbols
with position.

* doc/lispref/streams.texi (Input Functions): Document
read-positioning-symbols.

* doc/lispref/symbols.texi (Symbols): Add new menu entry.
(Symbols with Position): New @section.
2022-01-22 09:59:05 +00:00
Lars Ingebrigtsen
3eb1b2a115 Make key-valid-p work in Turkey
* lisp/keymap.el (key-valid-p): Inhibit case folding, otherwise
(key-valid-p "I") would return nil in tr_TR environments.
2022-01-20 10:19:23 +01:00
Robert Pluim
a0263cfee3 Remove ambiguity from key-valid-p docstring
* lisp/keymap.el (key-valid-p): Be explicit about the separator
being one and only one space.
2022-01-04 16:43:03 +01:00
Stefan Kangas
7ddfe1cab2 Move define-keymap and defvar-keymap to keymap.el
These functions deal with the "new" keymap binding interface, so they
belong in keymap.el rather than in subr.el.
* lisp/subr.el (define-keymap--compile, define-keymap)
(defvar-keymap): Move from here ...
* lisp/keymap.el (define-keymap--compile, define-keymap)
(defvar-keymap): ... to here.
2022-01-02 23:33:41 +01:00
Eli Zaretskii
823b6b8d26 ; Add 2022 to copyright years. 2022-01-01 07:07:15 -05:00
Eli Zaretskii
8276605efb ; * lisp/keymap.el (key-valid-p): Fix wording of doc string. 2021-12-28 20:07:54 +02:00
Stefan Kangas
8df3a71c52 Doc fix; fix terminology in key binding functions
* lisp/keymap.el (keymap-set, key-valid-p):
* lisp/subr.el (define-keymap): Doc fix; improve terminology.
2021-12-27 16:24:18 +01:00
Lars Ingebrigtsen
79825f724f Make keymap-lookup work for keymap results, too
* lisp/keymap.el (keymap-lookup): Make this function work for
non-symbol lookups, too (bug#52374).
2021-12-10 13:11:26 +01:00
Lars Ingebrigtsen
55ff91e822 Fix keymap-lookup implementation
* lisp/keymap.el (keymap-lookup): Make this actually work for
looking up keys.
2021-12-04 05:24:54 +01:00
Lars Ingebrigtsen
1bd7b5dd51 Fix some of the argument handling in keymap-set and keymap-substitute
* lisp/keymap.el (keymap-set): Fix handling of binding one key to
another key.
(keymap-substitute): Fix confusion in implementation -- the args
are definitions, not keys.
2021-11-30 00:13:47 +01:00
Mattias Engdegård
d50e0bdbac Use compiler macros for the key syntax checks
Compile-time key string syntax checks are better written using
compiler macros than with byte-hunk-handlers inside the compiler
proper.

* lisp/emacs-lisp/bytecomp.el (byte-compile-define-keymap)
(byte-compile-define-keymap--define): Remove.
* lisp/keymap.el (keymap--compile-check): New.
(keymap-set, keymap-global-set, keymap-local-set, keymap-global-unset)
(keymap-local-unset, keymap-unset, keymap-substitute)
(keymap-set-after, key-translate, keymap-lookup, keymap-local-lookup)
(keymap-global-lookup): Use compiler-macro for argument checks.
* lisp/subr.el (define-keymap--compile): New.
(define-keymap--define): Fold into define-keymap.
(define-keymap): Use compiler-macro.
(defvar-keymap): Use define-keymap.
2021-11-28 18:10:23 +01:00
Lars Ingebrigtsen
cde5dcd441 Change the call signature to keymap-substitute
* lisp/keymap.el (keymap-substitute): Make the keymap the first
parameter for symmetry with the other functions.
* lisp/emacs-lisp/shortdoc.el (keymaps):
* lisp/emacs-lisp/bytecomp.el (lambda): Adjust.
2021-11-17 08:34:35 +01:00
Lars Ingebrigtsen
97c23204b9 Make keymap-unset work
* lisp/keymap.el (keymap-unset): Fix key syntax (bug#51897).
2021-11-16 19:42:09 +01:00
Lars Ingebrigtsen
de477ec683 Add new 'keymap-*' functions
* lisp/keymap.el: New file with all the new keymap-* functions.

* lisp/loadup.el ("keymap"): Load.

* lisp/subr.el (kbd): Refactor out all the code to key-parse.
(define-key-after, keyboard-translate, global-set-key)
(local-set-key, global-unset-key, local-unset-key)
(local-key-binding, global-key-binding)
(substitute-key-definition): Note in doc strings that these are
legacy functions.
(define-keymap--define): Use keymap-set.

* lisp/emacs-lisp/byte-opt.el: Remove the optimizations for
defvar-keymap and define-keymap since the macros now only
understand the kbd syntax.
* lisp/emacs-lisp/bytecomp.el (byte-compile-define-keymap)
(byte-compile-define-keymap--define): Warn about invalid key
definitions in all keymap-* functions.

* lisp/emacs-lisp/shortdoc.el (keymaps): Add shortdocs form
keymap* functions.

* src/keymap.c (possibly_translate_key_sequence): Adjust callers
to key-valid-p and key-parse.
(syms_of_keymap): Adjust defs.
2021-11-16 08:26:24 +01:00