From: Thomas Wouters Date: Fri, 14 Apr 2006 11:33:28 +0000 (+0000) Subject: Make 'python -tt' the default, meaning Python won't allow mixing tabs and X-Git-Tag: v3.0a1~1457 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6caa07b23d4f838d00a9d27efc76e412549b1de9;p=python Make 'python -tt' the default, meaning Python won't allow mixing tabs and spaces for indentation. Adds a '-ttt' option to turn the errors back into warnings; I'm not yet sure whether that's desireable for Py3K. Also remove the magic for setting the size of tabs based on emacs/vim-style comments. Python now always considers tabstops to be every-8-spaces. --- diff --git a/Parser/parsetok.c b/Parser/parsetok.c index d877fc95aa..dbac6e3c30 100644 --- a/Parser/parsetok.c +++ b/Parser/parsetok.c @@ -47,11 +47,8 @@ PyParser_ParseStringFlagsFilename(const char *s, const char *filename, } tok->filename = filename ? filename : ""; - if (Py_TabcheckFlag || Py_VerboseFlag) { - tok->altwarning = (tok->filename != NULL); - if (Py_TabcheckFlag >= 2) - tok->alterror++; - } + if (Py_TabcheckFlag >= 3) + tok->alterror = 0; return parsetok(tok, g, start, err_ret, flags); } @@ -79,12 +76,8 @@ PyParser_ParseFileFlags(FILE *fp, const char *filename, grammar *g, int start, return NULL; } tok->filename = filename; - if (Py_TabcheckFlag || Py_VerboseFlag) { - tok->altwarning = (filename != NULL); - if (Py_TabcheckFlag >= 2) - tok->alterror++; - } - + if (Py_TabcheckFlag >= 3) + tok->alterror = 0; return parsetok(tok, g, start, err_ret, flags); } diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c index 3c8258832e..0631ca3aa0 100644 --- a/Parser/tokenizer.c +++ b/Parser/tokenizer.c @@ -120,8 +120,8 @@ tok_new(void) tok->lineno = 0; tok->level = 0; tok->filename = NULL; - tok->altwarning = 0; - tok->alterror = 0; + tok->altwarning = 1; + tok->alterror = 1; tok->alttabsize = 1; tok->altindstack[0] = 0; tok->decoding_state = 0; @@ -1207,41 +1207,10 @@ tok_get(register struct tok_state *tok, char **p_start, char **p_end) /* Set start of current token */ tok->start = tok->cur - 1; - /* Skip comment, while looking for tab-setting magic */ - if (c == '#') { - static char *tabforms[] = { - "tab-width:", /* Emacs */ - ":tabstop=", /* vim, full form */ - ":ts=", /* vim, abbreviated form */ - "set tabsize=", /* will vi never die? */ - /* more templates can be added here to support other editors */ - }; - char cbuf[80]; - char *tp, **cp; - tp = cbuf; - do { - *tp++ = c = tok_nextc(tok); - } while (c != EOF && c != '\n' && - tp - cbuf + 1 < sizeof(cbuf)); - *tp = '\0'; - for (cp = tabforms; - cp < tabforms + sizeof(tabforms)/sizeof(tabforms[0]); - cp++) { - if ((tp = strstr(cbuf, *cp))) { - int newsize = atoi(tp + strlen(*cp)); - - if (newsize >= 1 && newsize <= 40) { - tok->tabsize = newsize; - if (Py_VerboseFlag) - PySys_WriteStderr( - "Tab size set to %d\n", - newsize); - } - } - } + /* Skip comment */ + if (c == '#') while (c != EOF && c != '\n') c = tok_nextc(tok); - } /* Check for EOF and errors now */ if (c == EOF) {