[Python-checkins] cpython: Back-out wcstok deprecation suppression and updates calls to use wcstok_s.

steve.dower python-checkins at python.org
Thu Feb 26 05:49:26 CET 2015


https://hg.python.org/cpython/rev/8545624309f5
changeset:   94752:8545624309f5
user:        Steve Dower <steve.dower at microsoft.com>
date:        Wed Feb 25 20:48:01 2015 -0800
summary:
  Back-out wcstok deprecation suppression and updates calls to use wcstok_s.

files:
  Modules/main.c             |  6 +++---
  PC/getpathp.c              |  7 ++++---
  PCbuild/pythoncore.vcxproj |  2 +-
  3 files changed, 8 insertions(+), 7 deletions(-)


diff --git a/Modules/main.c b/Modules/main.c
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -520,16 +520,16 @@
 #ifdef MS_WINDOWS
     if (!Py_IgnoreEnvironmentFlag && (wp = _wgetenv(L"PYTHONWARNINGS")) &&
         *wp != L'\0') {
-        wchar_t *buf, *warning;
+        wchar_t *buf, *warning, *context = NULL;
 
         buf = (wchar_t *)PyMem_RawMalloc((wcslen(wp) + 1) * sizeof(wchar_t));
         if (buf == NULL)
             Py_FatalError(
                "not enough memory to copy PYTHONWARNINGS");
         wcscpy(buf, wp);
-        for (warning = wcstok(buf, L",");
+        for (warning = wcstok_s(buf, L",", &context);
              warning != NULL;
-             warning = wcstok(NULL, L",")) {
+             warning = wcstok_s(NULL, L",", &context)) {
             PySys_AddWarnOption(warning);
         }
         PyMem_RawFree(buf);
diff --git a/PC/getpathp.c b/PC/getpathp.c
--- a/PC/getpathp.c
+++ b/PC/getpathp.c
@@ -451,11 +451,12 @@
                                      tmpbuffer, MAXPATHLEN * 2);
             Py_DECREF(decoded);
             if (k >= 0) {
-                wchar_t * tok = wcstok(tmpbuffer, L" \t\r\n");
+                wchar_t * context = NULL;
+                wchar_t * tok = wcstok_s(tmpbuffer, L" \t\r\n", &context);
                 if ((tok != NULL) && !wcscmp(tok, key)) {
-                    tok = wcstok(NULL, L" \t");
+                    tok = wcstok_s(NULL, L" \t", &context);
                     if ((tok != NULL) && !wcscmp(tok, L"=")) {
-                        tok = wcstok(NULL, L"\r\n");
+                        tok = wcstok_s(NULL, L"\r\n", &context);
                         if (tok != NULL) {
                             wcsncpy(value, tok, MAXPATHLEN);
                             result = 1;
diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj
--- a/PCbuild/pythoncore.vcxproj
+++ b/PCbuild/pythoncore.vcxproj
@@ -67,7 +67,7 @@
     <ClCompile>
       <AdditionalOptions>/Zm200  %(AdditionalOptions)</AdditionalOptions>
       <AdditionalIncludeDirectories>$(PySourcePath)Python;$(PySourcePath)Modules\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_CRT_NON_CONFORMING_WCSTOK;_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED;MS_DLL_ID="$(SysWinVer)";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED;MS_DLL_ID="$(SysWinVer)";%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
     <Link>
       <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list