Merged revisions 79878-79880 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r79878 | philip.jenvey | 2010-04-06 16:24:45 -0700 (Tue, 06 Apr 2010) | 4 lines

  #7301: add the environment variable $PYTHONWARNINGS to supplement the -W
  command line option
  patch from Brian Curtin
........
  r79879 | benjamin.peterson | 2010-04-06 16:32:27 -0700 (Tue, 06 Apr 2010) | 1 line

  tell people to update python.man, too
........
  r79880 | philip.jenvey | 2010-04-06 16:38:57 -0700 (Tue, 06 Apr 2010) | 1 line

  document new PYTHONWARNINGS env var
........
diff --git a/Modules/main.c b/Modules/main.c
index 7736d99..95fae17 100644
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -82,6 +82,7 @@
          can be supplied multiple times to increase verbosity\n\
 -V     : print the Python version number and exit (also --version)\n\
 -W arg : warning control; arg is action:message:category:module:lineno\n\
+         also PYTHONWARNINGS=arg\n\
 -x     : skip first line of source, allowing use of non-Unix forms of #!cmd\n\
 ";
 static char *usage_4 = "\
@@ -401,6 +402,24 @@
 	    (p = Py_GETENV("PYTHONNOUSERSITE")) && *p != '\0')
 		Py_NoUserSiteDirectory = 1;
 
+	if ((p = Py_GETENV("PYTHONWARNINGS")) && *p != '\0') {
+		char *buf;
+		wchar_t *warning;
+		size_t len;
+
+		for (buf = strtok(p, ",");
+		     buf != NULL;
+		     buf = strtok(NULL, ",")) {
+			len = strlen(buf);
+			warning = (wchar_t *)malloc((len + 1) * sizeof(wchar_t));
+			if (warning == NULL)
+				Py_FatalError(
+				   "not enough memory to copy PYTHONWARNINGS");
+			mbstowcs(warning, buf, len);
+			PySys_AddWarnOption(warning);
+		}
+	}
+
 	if (command == NULL && module == NULL && _PyOS_optind < argc &&
 	    wcscmp(argv[_PyOS_optind], L"-") != 0)
 	{