master
Daniel Kolesa 2016-09-22 00:40:33 +02:00
parent 73f770552c
commit 9bfb599f64
1 changed files with 6 additions and 3 deletions

View File

@ -675,12 +675,12 @@ static void compileblockmain(GenState &gs, int wordtype, int prevargs) {
brak--; brak--;
break; break;
case '@': { case '@': {
gs.next_char();
char const *esc = gs.source; char const *esc = gs.source;
int level = 0;
while (gs.current() == '@') { while (gs.current() == '@') {
++level;
gs.next_char(); gs.next_char();
} }
int level = gs.source - (esc - 1);
if (brak > level) { if (brak > level) {
continue; continue;
} else if (brak < level) { } else if (brak < level) {
@ -695,7 +695,7 @@ static void compileblockmain(GenState &gs, int wordtype, int prevargs) {
concs = 1; concs = 1;
} }
if (compileblockstr( if (compileblockstr(
gs, ostd::ConstCharRange(start, esc - 1), true gs, ostd::ConstCharRange(start, esc), true
)) { )) {
concs++; concs++;
} }
@ -708,6 +708,9 @@ static void compileblockmain(GenState &gs, int wordtype, int prevargs) {
gs.code.pop(); gs.code.pop();
} }
break; break;
default:
gs.next_char();
break;
} }
} }
} }