Skip to content

Commit a74d32b

Browse files
authored
Version 3.0a - 6th December 2019
1 parent 92468c2 commit a74d32b

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

ulisp-esp.ino

+10-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
/* uLisp ESP Version 3.0 - www.ulisp.com
2-
David Johnson-Davies - www.technoblogy.com - 28th November 2019
1+
/* uLisp ESP Version 3.0a - www.ulisp.com
2+
David Johnson-Davies - www.technoblogy.com - 6th December 2019
33
44
Licensed under the MIT license: https://opensource.org/licenses/MIT
55
*/
@@ -171,7 +171,7 @@ char LastChar = 0;
171171
char LastPrint = 0;
172172

173173
// Flags
174-
enum flag { PRINTREADABLY, RETURNFLAG, ESCAPE, EXITEDITOR, LIBRARYLOADED };
174+
enum flag { PRINTREADABLY, RETURNFLAG, ESCAPE, EXITEDITOR, LIBRARYLOADED, NOESC };
175175
volatile char Flags = 0b00001; // PRINTREADABLY set by default
176176

177177
// Forward references
@@ -3692,7 +3692,7 @@ object *eval (object *form, object *env) {
36923692
// Escape
36933693
if (tstflag(ESCAPE)) { clrflag(ESCAPE); error2(0, PSTR("Escape!"));}
36943694
#if defined (serialmonitor)
3695-
testescape();
3695+
if (!tstflag(NOESC)) testescape();
36963696
#endif
36973697

36983698
if (form == NULL) return nil;
@@ -4066,8 +4066,12 @@ object *nextitem (gfun_t gfun) {
40664066
else if (ch2 == 'O') base = 8;
40674067
else if (ch2 == 'X') base = 16;
40684068
else if (ch == '\'') return nextitem(gfun);
4069-
else if (ch == '.') return eval(read(gfun), NULL);
4070-
else error2(0, PSTR("illegal character after #"));
4069+
else if (ch == '.') {
4070+
setflag(NOESC);
4071+
object *result = eval(read(gfun), NULL);
4072+
clrflag(NOESC);
4073+
return result;
4074+
} else error2(0, PSTR("illegal character after #"));
40714075
ch = gfun();
40724076
}
40734077
int valid; // 0=undecided, -1=invalid, +1=valid

0 commit comments

Comments
 (0)