aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJoão Távora2021-10-11 22:19:51 +0100
committerJoão Távora2021-10-11 22:29:16 +0100
commitcf1409db71152926767da189bf044c3a63e77128 (patch)
treedc5aa47220a48823b5e7139a630d7b790b7db89f /src
parentb3d0f53b296a0876ec7a55ae840868e65ed54e14 (diff)
downloademacs-cf1409db71152926767da189bf044c3a63e77128.tar.gz
emacs-cf1409db71152926767da189bf044c3a63e77128.zip
Don't apply shorthands to punctuation-only symbols (bug#51089)
This includes symbols used for arithmetic functions such as -, /=, etc. Using "-" or "/=" is still possible but doing so won't shadow those functions. * doc/lispref/symbols.texi (Shorthand, Exceptions): New subsubsection. * src/lread.c (read1): Exempt punctionation-only symbols from oblookup_considering_shorthand. * test/lisp/progmodes/elisp-mode-tests.el (elisp-dont-shadow-punctuation-only-symbols): Tweak test.
Diffstat (limited to 'src')
-rw-r--r--src/lread.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lread.c b/src/lread.c
index 07580d11d13..128b46aefef 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -3805,7 +3805,12 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list)
3805 ptrdiff_t longhand_bytes = 0; 3805 ptrdiff_t longhand_bytes = 0;
3806 3806
3807 Lisp_Object tem; 3807 Lisp_Object tem;
3808 if (skip_shorthand) 3808 if (skip_shorthand ||
3809 /* The following ASCII characters are used in the
3810 only "core" Emacs Lisp symbols that are
3811 exclusively comprised of 'symbol constituent'
3812 syntax. */
3813 strspn(read_buffer, "^*+-/<=>_|") >= nbytes)
3809 tem = oblookup (obarray, read_buffer, nchars, nbytes); 3814 tem = oblookup (obarray, read_buffer, nchars, nbytes);
3810 else 3815 else
3811 tem = oblookup_considering_shorthand (obarray, read_buffer, 3816 tem = oblookup_considering_shorthand (obarray, read_buffer,