diff options
author | Andreas Schwab <schwab@linux-m68k.org> | 2011-07-17 10:00:53 +0200 |
---|---|---|
committer | Andreas Schwab <schwab@linux-m68k.org> | 2011-07-17 10:00:53 +0200 |
commit | 52968808d6b81ff29d6a0abb116807881b59078b (patch) | |
tree | 2baf6893c502dbdacc3ba7de5592ab10214229a8 | |
parent | a762e96652b2e8766522f3c0894ec3b825032067 (diff) | |
download | emacs-52968808d6b81ff29d6a0abb116807881b59078b.tar.gz |
* src/lread.c (read1): Read `#:' as empty uninterned symbol if no
symbol character follows.
-rw-r--r-- | src/ChangeLog | 5 | ||||
-rw-r--r-- | src/lread.c | 15 |
2 files changed, 19 insertions, 1 deletions
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 <schwab@linux-m68k.org> + + * lread.c (read1): Read `#:' as empty uninterned symbol if no + symbol character follows. + 2011-07-17 Paul Eggert <eggert@cs.ucla.edu> * 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; |