diff options
Diffstat (limited to 'liblali.c')
| -rw-r--r-- | liblali.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -643,11 +643,14 @@ Object *readList(Stream *stream, GC_PARAM) { Object *readExpr(Stream *stream, GC_PARAM) { for (;;) { int ch = readNext(stream); + int chTmp = 0; if (ch == EOF) return NULL; - else if (ch == '\'') + else if (ch == '\'' + && ((chTmp = streamPeek(stream)) == '(' || isSymbolChar(chTmp))) return readUnary(stream, "quote", GC_ROOTS); - else if (ch == '/' && !isspace(streamPeek(stream))) + else if (ch == '/' + && ((chTmp = streamPeek(stream)) == '(' || isSymbolChar(chTmp))) return readUnary(stream, "say", GC_ROOTS); else if (ch == '"') return readString(stream, GC_ROOTS); |
