summaryrefslogtreecommitdiffstats
path: root/Parser
diff options
context:
space:
mode:
authorThomas Wouters <thomas@python.org>2006-04-14 11:33:28 (GMT)
committerThomas Wouters <thomas@python.org>2006-04-14 11:33:28 (GMT)
commit6caa07b23d4f838d00a9d27efc76e412549b1de9 (patch)
tree57e24f2c675a2408e0f036a80a94e999a6105596 /Parser
parent0c4eb625656a8b8169e599452e271317863d0c7e (diff)
downloadcpython-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.c15
-rw-r--r--Parser/tokenizer.c39
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) {