diff options
author | Thomas Wouters <thomas@python.org> | 2006-04-14 11:33:28 (GMT) |
---|---|---|
committer | Thomas Wouters <thomas@python.org> | 2006-04-14 11:33:28 (GMT) |
commit | 6caa07b23d4f838d00a9d27efc76e412549b1de9 (patch) | |
tree | 57e24f2c675a2408e0f036a80a94e999a6105596 /Parser | |
parent | 0c4eb625656a8b8169e599452e271317863d0c7e (diff) | |
download | cpython-6caa07b23d4f838d00a9d27efc76e412549b1de9.zip cpython-6caa07b23d4f838d00a9d27efc76e412549b1de9.tar.gz cpython-6caa07b23d4f838d00a9d27efc76e412549b1de9.tar.bz2 |
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.
Diffstat (limited to 'Parser')
-rw-r--r-- | Parser/parsetok.c | 15 | ||||
-rw-r--r-- | Parser/tokenizer.c | 39 |
2 files changed, 8 insertions, 46 deletions
diff --git a/Parser/parsetok.c b/Parser/parsetok.c index d877fc9..dbac6e3 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 : "<string>"; - 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 3c82588..0631ca3 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) { |