[Python-3000-checkins] r45381 - python/branches/p3yk/Parser/parsetok.c python/branches/p3yk/Parser/tokenizer.c

thomas.wouters python-3000-checkins at python.org
Fri Apr 14 13:33:28 CEST 2006


Author: thomas.wouters
Date: Fri Apr 14 13:33:28 2006
New Revision: 45381

Modified:
   python/branches/p3yk/Parser/parsetok.c
   python/branches/p3yk/Parser/tokenizer.c
Log:

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.



Modified: python/branches/p3yk/Parser/parsetok.c
==============================================================================
--- python/branches/p3yk/Parser/parsetok.c	(original)
+++ python/branches/p3yk/Parser/parsetok.c	Fri Apr 14 13:33:28 2006
@@ -47,11 +47,8 @@
 	}
 
         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 @@
 		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);
 }

Modified: python/branches/p3yk/Parser/tokenizer.c
==============================================================================
--- python/branches/p3yk/Parser/tokenizer.c	(original)
+++ python/branches/p3yk/Parser/tokenizer.c	Fri Apr 14 13:33:28 2006
@@ -120,8 +120,8 @@
 	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 @@
 	/* 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) {


More information about the Python-3000-checkins mailing list