From 52968808d6b81ff29d6a0abb116807881b59078b Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Sun, 17 Jul 2011 10:00:53 +0200 Subject: [PATCH] * src/lread.c (read1): Read `#:' as empty uninterned symbol if no symbol character follows. --- src/ChangeLog | 5 +++++ src/lread.c | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index d12558e5d6d..10f4186c31c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2011-07-17 Andreas Schwab + + * lread.c (read1): Read `#:' as empty uninterned symbol if no + symbol character follows. + 2011-07-17 Paul Eggert * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002) diff --git a/src/lread.c b/src/lread.c index 7dd566dc173..bb0edd898da 100644 --- a/src/lread.c +++ b/src/lread.c @@ -2660,7 +2660,18 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list) { uninterned_symbol = 1; c = READCHAR; - goto default_label; + if (!(c > 040 + && c != 0x8a0 + && (c >= 0200 + || !(strchr ("\"';()[]#`,", c))))) + { + /* No symbol character follows, this is the empty + symbol. */ + if (c >= 0) + UNREAD (c); + return Fmake_symbol (build_string ("")); + } + goto read_symbol; } /* Reader forms that can reuse previously read objects. */ if (c >= '0' && c <= '9') @@ -3002,6 +3013,8 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list) if (c <= 040) goto retry; if (c == 0x8a0) /* NBSP */ goto retry; + + read_symbol: { char *p = read_buffer; int quoted = 0; -- 2.39.2