* selectmodule.c: fix (another!) two memory leaks -- this time in list2set

* tokenizer.[ch]: allow continuation without \ inside () [] {}.
This commit is contained in:
Guido van Rossum 1993-05-12 11:35:44 +00:00
parent b2c6556fb0
commit a849b834f1
3 changed files with 21 additions and 2 deletions

View file

@ -109,6 +109,7 @@ tok_new()
tok->pendin = 0;
tok->prompt = tok->nextprompt = NULL;
tok->lineno = 0;
tok->level = 0;
return tok;
}
@ -390,7 +391,7 @@ tok_get(tok, p_start, p_end)
/* We can't jump back right here since we still
may need to skip to the end of a comment */
}
if (!blankline) {
if (!blankline && tok->level == 0) {
if (col == tok->indstack[tok->indent]) {
/* No change */
}
@ -483,7 +484,7 @@ tok_get(tok, p_start, p_end)
/* Newline */
if (c == '\n') {
tok->atbol = 1;
if (blankline)
if (blankline || tok->level > 0)
goto nextline;
*p_end = tok->cur - 1; /* Leave '\n' out of the string */
return NEWLINE;
@ -612,6 +613,20 @@ tok_get(tok, p_start, p_end)
tok_backup(tok, c2);
}
/* Keep track of parenteses nesting level */
switch (c) {
case '(':
case '[':
case '{':
tok->level++;
break;
case ')':
case ']':
case '}':
tok->level--;
break;
}
/* Punctuation character */
*p_end = tok->cur;
return tok_1char(c);