diff --git a/patch/Python/Python.patch b/patch/Python/Python.patch
index 55a4469..64127a6 100644
--- a/patch/Python/Python.patch
+++ b/patch/Python/Python.patch
@@ -1,6 +1,6 @@
diff -Nru orig/Include/datetime.h modified/Include/datetime.h
---- orig/Include/datetime.h 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Include/datetime.h 2016-07-04 09:46:55.000000000 +0800
+--- orig/Include/datetime.h 2017-01-27 19:03:00.000000000 +0800
++++ modified/Include/datetime.h 2017-01-27 19:03:44.000000000 +0800
@@ -164,6 +164,12 @@
/* "magic" constant used to partially protect against developer mistakes. */
#define DATETIME_API_MAGIC 0x414548d5
@@ -28,8 +28,8 @@ diff -Nru orig/Include/datetime.h modified/Include/datetime.h
#define PyDate_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->DateType)
#define PyDate_CheckExact(op) (Py_TYPE(op) == PyDateTimeAPI->DateType)
diff -Nru orig/Lib/ctypes/test/test_as_parameter.py modified/Lib/ctypes/test/test_as_parameter.py
---- orig/Lib/ctypes/test/test_as_parameter.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_as_parameter.py 2016-07-04 09:48:40.000000000 +0800
+--- orig/Lib/ctypes/test/test_as_parameter.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_as_parameter.py 2017-01-27 19:03:44.000000000 +0800
@@ -1,9 +1,11 @@
+import os
import unittest
@@ -56,8 +56,8 @@ diff -Nru orig/Lib/ctypes/test/test_as_parameter.py modified/Lib/ctypes/test/tes
def wrap(self, param):
return param
diff -Nru orig/Lib/ctypes/test/test_bitfields.py modified/Lib/ctypes/test/test_bitfields.py
---- orig/Lib/ctypes/test/test_bitfields.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_bitfields.py 2016-07-04 09:49:49.000000000 +0800
+--- orig/Lib/ctypes/test/test_bitfields.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_bitfields.py 2017-01-27 19:03:44.000000000 +0800
@@ -1,11 +1,12 @@
from ctypes import *
from ctypes.test import need_symbol
@@ -96,8 +96,8 @@ diff -Nru orig/Lib/ctypes/test/test_bitfields.py modified/Lib/ctypes/test/test_b
def test_longlong(self):
diff -Nru orig/Lib/ctypes/test/test_buffers.py modified/Lib/ctypes/test/test_buffers.py
---- orig/Lib/ctypes/test/test_buffers.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_buffers.py 2016-07-04 09:49:57.000000000 +0800
+--- orig/Lib/ctypes/test/test_buffers.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_buffers.py 2017-01-27 19:03:44.000000000 +0800
@@ -2,6 +2,7 @@
from ctypes.test import need_symbol
import unittest
@@ -107,10 +107,11 @@ diff -Nru orig/Lib/ctypes/test/test_buffers.py modified/Lib/ctypes/test/test_buf
def test_buffer(self):
diff -Nru orig/Lib/ctypes/test/test_callbacks.py modified/Lib/ctypes/test/test_callbacks.py
---- orig/Lib/ctypes/test/test_callbacks.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_callbacks.py 2016-07-04 09:51:32.000000000 +0800
-@@ -1,8 +1,10 @@
+--- orig/Lib/ctypes/test/test_callbacks.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_callbacks.py 2017-01-27 19:05:32.000000000 +0800
+@@ -1,9 +1,11 @@
+import os
+ import functools
import unittest
from ctypes import *
from ctypes.test import need_symbol
@@ -120,7 +121,7 @@ diff -Nru orig/Lib/ctypes/test/test_callbacks.py modified/Lib/ctypes/test/test_c
class Callbacks(unittest.TestCase):
functype = CFUNCTYPE
-@@ -163,7 +165,7 @@
+@@ -164,7 +166,7 @@
def test_integrate(self):
# Derived from some then non-working code, posted by David Foster
@@ -129,7 +130,7 @@ diff -Nru orig/Lib/ctypes/test/test_callbacks.py modified/Lib/ctypes/test/test_c
# The function prototype called by 'integrate': double func(double);
CALLBACK = CFUNCTYPE(c_double, c_double)
-@@ -207,14 +209,14 @@
+@@ -208,14 +210,14 @@
def EnumWindowsCallbackFunc(hwnd, lParam):
global windowCount
windowCount += 1
@@ -146,7 +147,7 @@ diff -Nru orig/Lib/ctypes/test/test_callbacks.py modified/Lib/ctypes/test/test_c
CALLBACK = CFUNCTYPE(c_int, c_int, c_int, c_int, c_int, c_int)
# All this function does is call the callback with its args squared
func = dll._testfunc_cbk_reg_int
-@@ -230,7 +232,7 @@
+@@ -231,7 +233,7 @@
def test_callback_register_double(self):
# Issue #8275: buggy handling of callback args under Win64
# NOTE: should be run on release builds as well
@@ -156,8 +157,8 @@ diff -Nru orig/Lib/ctypes/test/test_callbacks.py modified/Lib/ctypes/test/test_c
c_double, c_double)
# All this function does is call the callback with its args squared
diff -Nru orig/Lib/ctypes/test/test_cfuncs.py modified/Lib/ctypes/test/test_cfuncs.py
---- orig/Lib/ctypes/test/test_cfuncs.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_cfuncs.py 2016-07-04 09:52:28.000000000 +0800
+--- orig/Lib/ctypes/test/test_cfuncs.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_cfuncs.py 2017-01-27 19:03:44.000000000 +0800
@@ -1,17 +1,20 @@
# A lot of failures in these tests on Mac OS X.
# Byte order related?
@@ -203,8 +204,8 @@ diff -Nru orig/Lib/ctypes/test/test_cfuncs.py modified/Lib/ctypes/test/test_cfun
if __name__ == '__main__':
unittest.main()
diff -Nru orig/Lib/ctypes/test/test_checkretval.py modified/Lib/ctypes/test/test_checkretval.py
---- orig/Lib/ctypes/test/test_checkretval.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_checkretval.py 2016-07-04 09:52:51.000000000 +0800
+--- orig/Lib/ctypes/test/test_checkretval.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_checkretval.py 2017-01-27 19:03:44.000000000 +0800
@@ -1,20 +1,23 @@
+import os
import unittest
@@ -231,8 +232,8 @@ diff -Nru orig/Lib/ctypes/test/test_checkretval.py modified/Lib/ctypes/test/test
dll._testfunc_p_p.restype = CHECKED
diff -Nru orig/Lib/ctypes/test/test_funcptr.py modified/Lib/ctypes/test/test_funcptr.py
---- orig/Lib/ctypes/test/test_funcptr.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_funcptr.py 2016-07-04 09:53:55.000000000 +0800
+--- orig/Lib/ctypes/test/test_funcptr.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_funcptr.py 2017-01-27 19:03:44.000000000 +0800
@@ -1,4 +1,5 @@
-import os, unittest
+import os
@@ -251,8 +252,8 @@ diff -Nru orig/Lib/ctypes/test/test_funcptr.py modified/Lib/ctypes/test/test_fun
class CFuncPtrTestCase(unittest.TestCase):
def test_basic(self):
diff -Nru orig/Lib/ctypes/test/test_functions.py modified/Lib/ctypes/test/test_functions.py
---- orig/Lib/ctypes/test/test_functions.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_functions.py 2016-07-04 09:55:07.000000000 +0800
+--- orig/Lib/ctypes/test/test_functions.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_functions.py 2017-01-27 19:03:44.000000000 +0800
@@ -7,7 +7,9 @@
from ctypes import *
@@ -296,8 +297,8 @@ diff -Nru orig/Lib/ctypes/test/test_functions.py modified/Lib/ctypes/test/test_f
try:
class X(object, _Pointer):
diff -Nru orig/Lib/ctypes/test/test_libc.py modified/Lib/ctypes/test/test_libc.py
---- orig/Lib/ctypes/test/test_libc.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_libc.py 2016-07-04 09:55:27.000000000 +0800
+--- orig/Lib/ctypes/test/test_libc.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_libc.py 2017-01-27 19:03:44.000000000 +0800
@@ -1,9 +1,11 @@
+import os
import unittest
@@ -312,8 +313,8 @@ diff -Nru orig/Lib/ctypes/test/test_libc.py modified/Lib/ctypes/test/test_libc.p
class LibTest(unittest.TestCase):
def test_sqrt(self):
diff -Nru orig/Lib/ctypes/test/test_parameters.py modified/Lib/ctypes/test/test_parameters.py
---- orig/Lib/ctypes/test/test_parameters.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_parameters.py 2016-07-06 13:27:52.000000000 +0800
+--- orig/Lib/ctypes/test/test_parameters.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_parameters.py 2017-01-27 19:03:44.000000000 +0800
@@ -1,6 +1,10 @@
-import unittest, sys
+import os
@@ -336,8 +337,8 @@ diff -Nru orig/Lib/ctypes/test/test_parameters.py modified/Lib/ctypes/test/test_
# TypeError: has no from_param method
self.assertRaises(TypeError, setattr, func, "argtypes", (object,))
diff -Nru orig/Lib/ctypes/test/test_pickling.py modified/Lib/ctypes/test/test_pickling.py
---- orig/Lib/ctypes/test/test_pickling.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_pickling.py 2016-07-04 09:55:58.000000000 +0800
+--- orig/Lib/ctypes/test/test_pickling.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_pickling.py 2017-01-27 19:03:44.000000000 +0800
@@ -1,8 +1,11 @@
-import unittest
import pickle
@@ -353,8 +354,8 @@ diff -Nru orig/Lib/ctypes/test/test_pickling.py modified/Lib/ctypes/test/test_pi
class X(Structure):
_fields_ = [("a", c_int), ("b", c_double)]
diff -Nru orig/Lib/ctypes/test/test_pointers.py modified/Lib/ctypes/test/test_pointers.py
---- orig/Lib/ctypes/test/test_pointers.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_pointers.py 2016-07-04 09:55:58.000000000 +0800
+--- orig/Lib/ctypes/test/test_pointers.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_pointers.py 2017-01-27 19:03:44.000000000 +0800
@@ -1,4 +1,6 @@
-import unittest, sys
+import os
@@ -408,8 +409,8 @@ diff -Nru orig/Lib/ctypes/test/test_pointers.py modified/Lib/ctypes/test/test_po
func.restype = c_char_p
argv = (c_char_p * 2)()
diff -Nru orig/Lib/ctypes/test/test_prototypes.py modified/Lib/ctypes/test/test_prototypes.py
---- orig/Lib/ctypes/test/test_prototypes.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_prototypes.py 2016-07-04 09:55:58.000000000 +0800
+--- orig/Lib/ctypes/test/test_prototypes.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_prototypes.py 2017-01-27 19:03:44.000000000 +0800
@@ -1,6 +1,7 @@
+import os
+import unittest
@@ -431,8 +432,8 @@ diff -Nru orig/Lib/ctypes/test/test_prototypes.py modified/Lib/ctypes/test/test_
# Return machine address `a` as a (possibly long) non-negative integer.
# Starting with Python 2.5, id(anything) is always non-negative, and
diff -Nru orig/Lib/ctypes/test/test_refcounts.py modified/Lib/ctypes/test/test_refcounts.py
---- orig/Lib/ctypes/test/test_refcounts.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_refcounts.py 2016-07-04 10:24:17.000000000 +0800
+--- orig/Lib/ctypes/test/test_refcounts.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_refcounts.py 2017-01-27 19:03:44.000000000 +0800
@@ -1,12 +1,14 @@
-import unittest
import ctypes
@@ -459,8 +460,8 @@ diff -Nru orig/Lib/ctypes/test/test_refcounts.py modified/Lib/ctypes/test/test_r
from sys import getrefcount as grc
def func(*args):
diff -Nru orig/Lib/ctypes/test/test_returnfuncptrs.py modified/Lib/ctypes/test/test_returnfuncptrs.py
---- orig/Lib/ctypes/test/test_returnfuncptrs.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_returnfuncptrs.py 2016-07-04 09:55:58.000000000 +0800
+--- orig/Lib/ctypes/test/test_returnfuncptrs.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_returnfuncptrs.py 2017-01-27 19:03:44.000000000 +0800
@@ -1,15 +1,16 @@
+import os
import unittest
@@ -515,8 +516,8 @@ diff -Nru orig/Lib/ctypes/test/test_returnfuncptrs.py modified/Lib/ctypes/test/t
self.assertEqual(strchr(b"abcdef", b"x"), None)
self.assertRaises(ArgumentError, strchr, b"abcdef", 3.0)
diff -Nru orig/Lib/ctypes/test/test_slicing.py modified/Lib/ctypes/test/test_slicing.py
---- orig/Lib/ctypes/test/test_slicing.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_slicing.py 2016-07-04 09:59:12.000000000 +0800
+--- orig/Lib/ctypes/test/test_slicing.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_slicing.py 2017-01-27 19:03:44.000000000 +0800
@@ -1,3 +1,4 @@
+import os
import unittest
@@ -550,8 +551,8 @@ diff -Nru orig/Lib/ctypes/test/test_slicing.py modified/Lib/ctypes/test/test_sli
dll.my_wcsdup.argtypes = POINTER(c_wchar),
dll.my_free.restype = None
diff -Nru orig/Lib/ctypes/test/test_stringptr.py modified/Lib/ctypes/test/test_stringptr.py
---- orig/Lib/ctypes/test/test_stringptr.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_stringptr.py 2016-07-06 13:28:06.000000000 +0800
+--- orig/Lib/ctypes/test/test_stringptr.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_stringptr.py 2017-01-27 19:03:44.000000000 +0800
@@ -1,9 +1,11 @@
+import os
import unittest
@@ -571,8 +572,8 @@ diff -Nru orig/Lib/ctypes/test/test_stringptr.py modified/Lib/ctypes/test/test_s
unittest.main()
+
diff -Nru orig/Lib/ctypes/test/test_unicode.py modified/Lib/ctypes/test/test_unicode.py
---- orig/Lib/ctypes/test/test_unicode.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_unicode.py 2016-07-04 10:24:27.000000000 +0800
+--- orig/Lib/ctypes/test/test_unicode.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_unicode.py 2017-01-27 19:03:44.000000000 +0800
@@ -1,14 +1,16 @@
# coding: latin-1
+import os
@@ -607,8 +608,8 @@ diff -Nru orig/Lib/ctypes/test/test_unicode.py modified/Lib/ctypes/test/test_uni
def setUp(self):
func = self.func
diff -Nru orig/Lib/ctypes/test/test_values.py modified/Lib/ctypes/test/test_values.py
---- orig/Lib/ctypes/test/test_values.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_values.py 2016-07-04 10:24:27.000000000 +0800
+--- orig/Lib/ctypes/test/test_values.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_values.py 2017-01-27 19:03:44.000000000 +0800
@@ -2,16 +2,17 @@
A testcase which accesses *values* in a dll.
"""
@@ -642,8 +643,8 @@ diff -Nru orig/Lib/ctypes/test/test_values.py modified/Lib/ctypes/test/test_valu
"""This test only works when python itself is a dll/shared library"""
diff -Nru orig/Lib/ctypes/test/test_win32.py modified/Lib/ctypes/test/test_win32.py
---- orig/Lib/ctypes/test/test_win32.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/test/test_win32.py 2016-07-06 13:28:12.000000000 +0800
+--- orig/Lib/ctypes/test/test_win32.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/test/test_win32.py 2017-01-27 19:03:44.000000000 +0800
@@ -2,11 +2,14 @@
from ctypes import *
@@ -678,9 +679,9 @@ diff -Nru orig/Lib/ctypes/test/test_win32.py modified/Lib/ctypes/test/test_win32
pt = POINT(15, 25)
left = c_long.in_dll(dll, 'left')
diff -Nru orig/Lib/ctypes/util.py modified/Lib/ctypes/util.py
---- orig/Lib/ctypes/util.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/ctypes/util.py 2016-07-06 16:18:24.000000000 +0800
-@@ -68,7 +68,7 @@
+--- orig/Lib/ctypes/util.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/ctypes/util.py 2017-01-27 19:03:44.000000000 +0800
+@@ -70,7 +70,7 @@
def find_library(name):
return name
@@ -690,8 +691,8 @@ diff -Nru orig/Lib/ctypes/util.py modified/Lib/ctypes/util.py
def find_library(name):
possible = ['lib%s.dylib' % name,
diff -Nru orig/Lib/distutils/tests/test_build_ext.py modified/Lib/distutils/tests/test_build_ext.py
---- orig/Lib/distutils/tests/test_build_ext.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/distutils/tests/test_build_ext.py 2016-07-04 09:55:58.000000000 +0800
+--- orig/Lib/distutils/tests/test_build_ext.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/distutils/tests/test_build_ext.py 2017-01-27 19:03:44.000000000 +0800
@@ -41,6 +41,7 @@
# with xx module in TEMP
super(BuildExtTestCase, self).tearDown()
@@ -700,7 +701,7 @@ diff -Nru orig/Lib/distutils/tests/test_build_ext.py modified/Lib/distutils/test
def test_build_ext(self):
global ALREADY_TESTED
support.copy_xxmodule_c(self.tmp_dir)
-@@ -260,6 +261,7 @@
+@@ -267,6 +268,7 @@
cmd.run()
self.assertEqual(cmd.compiler, 'unix')
@@ -709,8 +710,8 @@ diff -Nru orig/Lib/distutils/tests/test_build_ext.py modified/Lib/distutils/test
tmp_dir = self.mkdtemp()
c_file = os.path.join(tmp_dir, 'foo.c')
diff -Nru orig/Lib/distutils/tests/test_config_cmd.py modified/Lib/distutils/tests/test_config_cmd.py
---- orig/Lib/distutils/tests/test_config_cmd.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/distutils/tests/test_config_cmd.py 2016-07-04 09:55:58.000000000 +0800
+--- orig/Lib/distutils/tests/test_config_cmd.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/distutils/tests/test_config_cmd.py 2017-01-27 19:03:44.000000000 +0800
@@ -38,6 +38,7 @@
self.assertEqual(len(self._logs), numlines+1)
@@ -720,8 +721,8 @@ diff -Nru orig/Lib/distutils/tests/test_config_cmd.py modified/Lib/distutils/tes
pkg_dir, dist = self.create_dist()
cmd = config(dist)
diff -Nru orig/Lib/distutils/tests/test_install.py modified/Lib/distutils/tests/test_install.py
---- orig/Lib/distutils/tests/test_install.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/distutils/tests/test_install.py 2016-07-04 10:24:39.000000000 +0800
+--- orig/Lib/distutils/tests/test_install.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/distutils/tests/test_install.py 2017-01-27 19:03:44.000000000 +0800
@@ -196,6 +196,7 @@
'UNKNOWN-0.0.0-py%s.%s.egg-info' % sys.version_info[:2]]
self.assertEqual(found, expected)
@@ -731,8 +732,8 @@ diff -Nru orig/Lib/distutils/tests/test_install.py modified/Lib/distutils/tests/
install_dir = self.mkdtemp()
project_dir, dist = self.create_dist(ext_modules=[
diff -Nru orig/Lib/distutils/tests/test_install_lib.py modified/Lib/distutils/tests/test_install_lib.py
---- orig/Lib/distutils/tests/test_install_lib.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/distutils/tests/test_install_lib.py 2016-07-04 10:25:16.000000000 +0800
+--- orig/Lib/distutils/tests/test_install_lib.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/distutils/tests/test_install_lib.py 2017-01-27 19:03:44.000000000 +0800
@@ -43,6 +43,7 @@
return pkg_dir
@@ -742,8 +743,8 @@ diff -Nru orig/Lib/distutils/tests/test_install_lib.py modified/Lib/distutils/te
pkg_dir = self._setup_byte_compile()
if sys.flags.optimize < 1:
diff -Nru orig/Lib/distutils/tests/test_spawn.py modified/Lib/distutils/tests/test_spawn.py
---- orig/Lib/distutils/tests/test_spawn.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/distutils/tests/test_spawn.py 2016-07-04 10:24:39.000000000 +0800
+--- orig/Lib/distutils/tests/test_spawn.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/distutils/tests/test_spawn.py 2017-01-27 19:03:44.000000000 +0800
@@ -22,9 +22,7 @@
res = _nt_quote_args(args)
self.assertEqual(res, wanted)
@@ -764,8 +765,8 @@ diff -Nru orig/Lib/distutils/tests/test_spawn.py modified/Lib/distutils/tests/te
return unittest.makeSuite(SpawnTestCase)
diff -Nru orig/Lib/distutils/tests/test_sysconfig.py modified/Lib/distutils/tests/test_sysconfig.py
---- orig/Lib/distutils/tests/test_sysconfig.py 2016-06-26 05:49:30.000000000 +0800
-+++ modified/Lib/distutils/tests/test_sysconfig.py 2016-07-04 10:24:39.000000000 +0800
+--- orig/Lib/distutils/tests/test_sysconfig.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/distutils/tests/test_sysconfig.py 2017-01-27 19:03:44.000000000 +0800
@@ -102,6 +102,7 @@
self.assertEqual(global_sysconfig.get_config_var('LDSHARED'), sysconfig.get_config_var('LDSHARED'))
self.assertEqual(global_sysconfig.get_config_var('CC'), sysconfig.get_config_var('CC'))
@@ -775,8 +776,8 @@ diff -Nru orig/Lib/distutils/tests/test_sysconfig.py modified/Lib/distutils/test
# Issue #21923: test that a Distribution compiler
# instance can be called without an explicit call to
diff -Nru orig/Lib/json/tests/test_tool.py modified/Lib/json/tests/test_tool.py
---- orig/Lib/json/tests/test_tool.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/json/tests/test_tool.py 2016-07-06 13:27:45.000000000 +0800
+--- orig/Lib/json/tests/test_tool.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/json/tests/test_tool.py 2017-01-27 19:03:44.000000000 +0800
@@ -6,6 +6,7 @@
from test import test_support
from test.script_helper import assert_python_ok
@@ -795,7 +796,7 @@ diff -Nru orig/Lib/json/tests/test_tool.py modified/Lib/json/tests/test_tool.py
(sys.executable, '-m', 'json.tool'),
diff -Nru orig/Lib/plat-ios/IN.py modified/Lib/plat-ios/IN.py
--- orig/Lib/plat-ios/IN.py 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Lib/plat-ios/IN.py 2016-07-06 15:02:09.000000000 +0800
++++ modified/Lib/plat-ios/IN.py 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,14529 @@
+# Generated by h2py from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/usr/include/netinet/in.h
+
@@ -15328,14 +15329,14 @@ diff -Nru orig/Lib/plat-ios/IN.py modified/Lib/plat-ios/IN.py
+IPV6CTL_MAXID = 51
diff -Nru orig/Lib/plat-ios/regen modified/Lib/plat-ios/regen
--- orig/Lib/plat-ios/regen 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Lib/plat-ios/regen 2016-07-04 10:29:15.000000000 +0800
++++ modified/Lib/plat-ios/regen 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,3 @@
+#! /bin/sh
+set -v
+include=`xcrun --sdk iphoneos --show-sdk-path`/usr/include python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' `xcrun --sdk iphoneos --show-sdk-path`/usr/include/netinet/in.h
diff -Nru orig/Lib/plat-tvos/IN.py modified/Lib/plat-tvos/IN.py
--- orig/Lib/plat-tvos/IN.py 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Lib/plat-tvos/IN.py 2016-07-06 15:13:08.000000000 +0800
++++ modified/Lib/plat-tvos/IN.py 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,14529 @@
+# Generated by h2py from /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS9.2.sdk/usr/include/netinet/in.h
+
@@ -29868,14 +29869,14 @@ diff -Nru orig/Lib/plat-tvos/IN.py modified/Lib/plat-tvos/IN.py
+IPV6CTL_MAXID = 51
diff -Nru orig/Lib/plat-tvos/regen modified/Lib/plat-tvos/regen
--- orig/Lib/plat-tvos/regen 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Lib/plat-tvos/regen 2016-07-06 15:13:06.000000000 +0800
++++ modified/Lib/plat-tvos/regen 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,3 @@
+#! /bin/sh
+set -v
+include=`xcrun --sdk appletvos --show-sdk-path`/usr/include python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' `xcrun --sdk appletvos --show-sdk-path`/usr/include/netinet/in.h
diff -Nru orig/Lib/plat-watchos/IN.py modified/Lib/plat-watchos/IN.py
--- orig/Lib/plat-watchos/IN.py 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Lib/plat-watchos/IN.py 2016-07-06 15:12:48.000000000 +0800
++++ modified/Lib/plat-watchos/IN.py 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,14529 @@
+# Generated by h2py from /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS2.2.sdk/usr/include/netinet/in.h
+
@@ -44408,14 +44409,14 @@ diff -Nru orig/Lib/plat-watchos/IN.py modified/Lib/plat-watchos/IN.py
+IPV6CTL_MAXID = 51
diff -Nru orig/Lib/plat-watchos/regen modified/Lib/plat-watchos/regen
--- orig/Lib/plat-watchos/regen 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Lib/plat-watchos/regen 2016-07-06 15:12:46.000000000 +0800
++++ modified/Lib/plat-watchos/regen 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,3 @@
+#! /bin/sh
+set -v
+include=`xcrun --sdk watchos --show-sdk-path`/usr/include python$EXE ../../Tools/scripts/h2py.py -i '(u_long)' `xcrun --sdk watchos --show-sdk-path`/usr/include/netinet/in.h
diff -Nru orig/Lib/platform.py modified/Lib/platform.py
---- orig/Lib/platform.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/platform.py 2016-07-06 16:16:54.000000000 +0800
+--- orig/Lib/platform.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/platform.py 2017-01-27 19:03:44.000000000 +0800
@@ -125,7 +125,7 @@
except AttributeError:
# os.devnull was added in Python 2.4, so emulate it for earlier
@@ -44425,7 +44426,7 @@ diff -Nru orig/Lib/platform.py modified/Lib/platform.py
# Use the old CP/M NUL as device name
DEV_NULL = 'NUL'
else:
-@@ -954,7 +954,7 @@
+@@ -956,7 +956,7 @@
""" Interface to the system's uname command.
"""
@@ -44434,7 +44435,7 @@ diff -Nru orig/Lib/platform.py modified/Lib/platform.py
# XXX Others too ?
return default
try:
-@@ -998,7 +998,7 @@
+@@ -1000,7 +1000,7 @@
import subprocess
@@ -44444,8 +44445,8 @@ diff -Nru orig/Lib/platform.py modified/Lib/platform.py
return default
target = _follow_symlinks(target)
diff -Nru orig/Lib/site.py modified/Lib/site.py
---- orig/Lib/site.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/site.py 2016-07-06 16:16:53.000000000 +0800
+--- orig/Lib/site.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/site.py 2017-01-27 19:03:44.000000000 +0800
@@ -251,6 +251,9 @@
if get_config_var('PYTHONFRAMEWORK'):
USER_SITE = get_path('purelib', 'osx_framework_user')
@@ -44457,12 +44458,13 @@ diff -Nru orig/Lib/site.py modified/Lib/site.py
USER_SITE = get_path('purelib', '%s_user' % os.name)
return USER_SITE
diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
---- orig/Lib/subprocess.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/subprocess.py 2016-07-06 16:16:53.000000000 +0800
-@@ -411,1223 +411,1228 @@
+--- orig/Lib/subprocess.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/subprocess.py 2017-01-27 19:14:06.000000000 +0800
+@@ -55,1260 +55,1265 @@
+ def __str__(self):
return "Command '%s' returned non-zero exit status %d" % (self.cmd, self.returncode)
-
+-
-if mswindows:
- import threading
- import msvcrt
@@ -44521,6 +44523,10 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
PIPE = -1
STDOUT = -2
++if sys.platform in ('ios', 'tvos', 'watchos'):
++ # iOS/tvOS/watchOS don't support subprocesses; however, some modules still import
++ # subprocess, so it's helpful to retain the symbols in the namespace.
++ __all__ = ["PIPE", "STDOUT", "CalledProcessError"]
-def _eintr_retry_call(func, *args):
- while True:
@@ -44685,33 +44691,7 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
- result.extend(bs_buf)
- bs_buf = []
- result.append(c)
-+if sys.platform in ('ios', 'tvos', 'watchos'):
-+ # iOS/tvOS/watchOS don't support subprocesses; however, some modules still import
-+ # subprocess, so it's helpful to retain the symbols in the namespace.
-+ __all__ = ["PIPE", "STDOUT", "CalledProcessError"]
-
-- # Add remaining backslashes, if any.
-- if bs_buf:
-- result.extend(bs_buf)
--
-- if needquote:
-- result.extend(bs_buf)
-- result.append('"')
--
-- return ''.join(result)
--
--
--class Popen(object):
-- _child_created = False # Set here since __del__ checks it
+else:
-
-- def __init__(self, args, bufsize=0, executable=None,
-- stdin=None, stdout=None, stderr=None,
-- preexec_fn=None, close_fds=False, shell=False,
-- cwd=None, env=None, universal_newlines=False,
-- startupinfo=None, creationflags=0):
-- """Create new Popen instance."""
-- _cleanup()
+ if mswindows:
+ import threading
+ import msvcrt
@@ -44734,11 +44714,18 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
+ # we can write up to _PIPE_BUF bytes without risk of blocking.
+ # POSIX defines PIPE_BUF as >= 512.
+ _PIPE_BUF = getattr(select, 'PIPE_BUF', 512)
+
+- # Add remaining backslashes, if any.
+- if bs_buf:
+- result.extend(bs_buf)
+
+- if needquote:
+- result.extend(bs_buf)
+- result.append('"')
+ __all__ = ["Popen", "PIPE", "STDOUT", "call", "check_call",
+ "check_output", "CalledProcessError"]
-- if not isinstance(bufsize, (int, long)):
-- raise TypeError("bufsize must be an integer")
+- return ''.join(result)
+ if mswindows:
+ from _subprocess import (CREATE_NEW_CONSOLE, CREATE_NEW_PROCESS_GROUP,
+ STD_INPUT_HANDLE, STD_OUTPUT_HANDLE,
@@ -44767,29 +44754,9 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
+ # It's harmless that it was already removed, so ignore.
+ pass
-- if mswindows:
-- if preexec_fn is not None:
-- raise ValueError("preexec_fn is not supported on Windows "
-- "platforms")
-- if close_fds and (stdin is not None or stdout is not None or
-- stderr is not None):
-- raise ValueError("close_fds is not supported on Windows "
-- "platforms if you redirect stdin/stdout/stderr")
-- else:
-- # POSIX
-- if startupinfo is not None:
-- raise ValueError("startupinfo is only supported on Windows "
-- "platforms")
-- if creationflags != 0:
-- raise ValueError("creationflags is only supported on Windows "
-- "platforms")
--
-- self.stdin = None
-- self.stdout = None
-- self.stderr = None
-- self.pid = None
-- self.returncode = None
-- self.universal_newlines = universal_newlines
+
+-class Popen(object):
+- """ Execute a child program in a new process.
+ def _eintr_retry_call(func, *args):
+ while True:
+ try:
@@ -44953,21 +44920,146 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
+ result.extend(bs_buf)
+ bs_buf = []
+ result.append(c)
-+
+
+- For a complete description of the arguments see the Python documentation.
+ # Add remaining backslashes, if any.
+ if bs_buf:
+ result.extend(bs_buf)
-+
+
+- Arguments:
+- args: A string, or a sequence of program arguments.
+ if needquote:
+ result.extend(bs_buf)
+ result.append('"')
-+
+
+- bufsize: supplied as the buffering argument to the open() function when
+- creating the stdin/stdout/stderr pipe file objects
+ return ''.join(result)
-+
-+
+
+- executable: A replacement program to execute.
+
+- stdin, stdout and stderr: These specify the executed programs' standard
+- input, standard output and standard error file handles, respectively.
+ class Popen(object):
++ """ Execute a child program in a new process.
+
+- preexec_fn: (POSIX only) An object to be called in the child process
+- just before the child is executed.
++ For a complete description of the arguments see the Python documentation.
+
+- close_fds: Controls closing or inheriting of file descriptors.
++ Arguments:
++ args: A string, or a sequence of program arguments.
+
+- shell: If true, the command will be executed through the shell.
++ bufsize: supplied as the buffering argument to the open() function when
++ creating the stdin/stdout/stderr pipe file objects
+
+- cwd: Sets the current directory before the child is executed.
++ executable: A replacement program to execute.
+
+- env: Defines the environment variables for the new process.
++ stdin, stdout and stderr: These specify the executed programs' standard
++ input, standard output and standard error file handles, respectively.
+
+- universal_newlines: If true, use universal line endings for file
+- objects stdin, stdout and stderr.
++ preexec_fn: (POSIX only) An object to be called in the child process
++ just before the child is executed.
+
+- startupinfo and creationflags (Windows only)
++ close_fds: Controls closing or inheriting of file descriptors.
+
+- Attributes:
+- stdin, stdout, stderr, pid, returncode
+- """
+- _child_created = False # Set here since __del__ checks it
++ shell: If true, the command will be executed through the shell.
+
+- def __init__(self, args, bufsize=0, executable=None,
+- stdin=None, stdout=None, stderr=None,
+- preexec_fn=None, close_fds=False, shell=False,
+- cwd=None, env=None, universal_newlines=False,
+- startupinfo=None, creationflags=0):
+- """Create new Popen instance."""
+- _cleanup()
++ cwd: Sets the current directory before the child is executed.
+
+- if not isinstance(bufsize, (int, long)):
+- raise TypeError("bufsize must be an integer")
++ env: Defines the environment variables for the new process.
+
+- if mswindows:
+- if preexec_fn is not None:
+- raise ValueError("preexec_fn is not supported on Windows "
+- "platforms")
+- if close_fds and (stdin is not None or stdout is not None or
+- stderr is not None):
+- raise ValueError("close_fds is not supported on Windows "
+- "platforms if you redirect stdin/stdout/stderr")
+- else:
+- # POSIX
+- if startupinfo is not None:
+- raise ValueError("startupinfo is only supported on Windows "
+- "platforms")
+- if creationflags != 0:
+- raise ValueError("creationflags is only supported on Windows "
+- "platforms")
+-
+- self.stdin = None
+- self.stdout = None
+- self.stderr = None
+- self.pid = None
+- self.returncode = None
+- self.universal_newlines = universal_newlines
++ universal_newlines: If true, use universal line endings for file
++ objects stdin, stdout and stderr.
+
+- # Input and output objects. The general principle is like
+- # this:
+- #
+- # Parent Child
+- # ------ -----
+- # p2cwrite ---stdin---> p2cread
+- # c2pread <--stdout--- c2pwrite
+- # errread <--stderr--- errwrite
+- #
+- # On POSIX, the child objects are file descriptors. On
+- # Windows, these are Windows file handles. The parent objects
+- # are file descriptors on both platforms. The parent objects
+- # are None when not using PIPEs. The child objects are None
+- # when not redirecting.
+-
+- (p2cread, p2cwrite,
+- c2pread, c2pwrite,
+- errread, errwrite), to_close = self._get_handles(stdin, stdout, stderr)
++ startupinfo and creationflags (Windows only)
+
+- try:
+- self._execute_child(args, executable, preexec_fn, close_fds,
+- cwd, env, universal_newlines,
+- startupinfo, creationflags, shell, to_close,
+- p2cread, p2cwrite,
+- c2pread, c2pwrite,
+- errread, errwrite)
+- except Exception:
+- # Preserve original exception in case os.close raises.
+- exc_type, exc_value, exc_trace = sys.exc_info()
++ Attributes:
++ stdin, stdout, stderr, pid, returncode
++ """
+ _child_created = False # Set here since __del__ checks it
-+
+
+- for fd in to_close:
+- try:
+- if mswindows:
+- fd.Close()
+- else:
+- os.close(fd)
+- except EnvironmentError:
+- pass
+-
+- raise exc_type, exc_value, exc_trace
+ def __init__(self, args, bufsize=0, executable=None,
+ stdin=None, stdout=None, stderr=None,
+ preexec_fn=None, close_fds=False, shell=False,
@@ -44975,10 +45067,22 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
+ startupinfo=None, creationflags=0):
+ """Create new Popen instance."""
+ _cleanup()
-+
+
+- if mswindows:
+- if p2cwrite is not None:
+- p2cwrite = msvcrt.open_osfhandle(p2cwrite.Detach(), 0)
+- if c2pread is not None:
+- c2pread = msvcrt.open_osfhandle(c2pread.Detach(), 0)
+- if errread is not None:
+- errread = msvcrt.open_osfhandle(errread.Detach(), 0)
+ if not isinstance(bufsize, (int, long)):
+ raise TypeError("bufsize must be an integer")
-+
+
+- if p2cwrite is not None:
+- self.stdin = os.fdopen(p2cwrite, 'wb', bufsize)
+- if c2pread is not None:
+- if universal_newlines:
+- self.stdout = os.fdopen(c2pread, 'rU', bufsize)
+ if mswindows:
+ if preexec_fn is not None:
+ raise ValueError("preexec_fn is not supported on Windows "
@@ -44987,7 +45091,13 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
+ stderr is not None):
+ raise ValueError("close_fds is not supported on Windows "
+ "platforms if you redirect stdin/stdout/stderr")
-+ else:
+ else:
+- self.stdout = os.fdopen(c2pread, 'rb', bufsize)
+- if errread is not None:
+- if universal_newlines:
+- self.stderr = os.fdopen(errread, 'rU', bufsize)
+- else:
+- self.stderr = os.fdopen(errread, 'rb', bufsize)
+ # POSIX
+ if startupinfo is not None:
+ raise ValueError("startupinfo is only supported on Windows "
@@ -45022,24 +45132,6 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
+ c2pread, c2pwrite,
+ errread, errwrite), to_close = self._get_handles(stdin, stdout, stderr)
-- # Input and output objects. The general principle is like
-- # this:
-- #
-- # Parent Child
-- # ------ -----
-- # p2cwrite ---stdin---> p2cread
-- # c2pread <--stdout--- c2pwrite
-- # errread <--stderr--- errwrite
-- #
-- # On POSIX, the child objects are file descriptors. On
-- # Windows, these are Windows file handles. The parent objects
-- # are file descriptors on both platforms. The parent objects
-- # are None when not using PIPEs. The child objects are None
-- # when not redirecting.
--
-- (p2cread, p2cwrite,
-- c2pread, c2pwrite,
-- errread, errwrite), to_close = self._get_handles(stdin, stdout, stderr)
+ try:
+ self._execute_child(args, executable, preexec_fn, close_fds,
+ cwd, env, universal_newlines,
@@ -45051,71 +45143,6 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
+ # Preserve original exception in case os.close raises.
+ exc_type, exc_value, exc_trace = sys.exc_info()
-- try:
-- self._execute_child(args, executable, preexec_fn, close_fds,
-- cwd, env, universal_newlines,
-- startupinfo, creationflags, shell, to_close,
-- p2cread, p2cwrite,
-- c2pread, c2pwrite,
-- errread, errwrite)
-- except Exception:
-- # Preserve original exception in case os.close raises.
-- exc_type, exc_value, exc_trace = sys.exc_info()
-+ for fd in to_close:
-+ try:
-+ if mswindows:
-+ fd.Close()
-+ else:
-+ os.close(fd)
-+ except EnvironmentError:
-+ pass
-
-- for fd in to_close:
-- try:
-- if mswindows:
-- fd.Close()
-- else:
-- os.close(fd)
-- except EnvironmentError:
-- pass
-+ raise exc_type, exc_value, exc_trace
-
-- raise exc_type, exc_value, exc_trace
-+ if mswindows:
-+ if p2cwrite is not None:
-+ p2cwrite = msvcrt.open_osfhandle(p2cwrite.Detach(), 0)
-+ if c2pread is not None:
-+ c2pread = msvcrt.open_osfhandle(c2pread.Detach(), 0)
-+ if errread is not None:
-+ errread = msvcrt.open_osfhandle(errread.Detach(), 0)
-
-- if mswindows:
- if p2cwrite is not None:
-- p2cwrite = msvcrt.open_osfhandle(p2cwrite.Detach(), 0)
-+ self.stdin = os.fdopen(p2cwrite, 'wb', bufsize)
- if c2pread is not None:
-- c2pread = msvcrt.open_osfhandle(c2pread.Detach(), 0)
-+ if universal_newlines:
-+ self.stdout = os.fdopen(c2pread, 'rU', bufsize)
-+ else:
-+ self.stdout = os.fdopen(c2pread, 'rb', bufsize)
- if errread is not None:
-- errread = msvcrt.open_osfhandle(errread.Detach(), 0)
--
-- if p2cwrite is not None:
-- self.stdin = os.fdopen(p2cwrite, 'wb', bufsize)
-- if c2pread is not None:
-- if universal_newlines:
-- self.stdout = os.fdopen(c2pread, 'rU', bufsize)
-- else:
-- self.stdout = os.fdopen(c2pread, 'rb', bufsize)
-- if errread is not None:
-- if universal_newlines:
-- self.stderr = os.fdopen(errread, 'rU', bufsize)
-- else:
-- self.stderr = os.fdopen(errread, 'rb', bufsize)
--
--
- def _translate_newlines(self, data):
- data = data.replace("\r\n", "\n")
- data = data.replace("\r", "\n")
@@ -45152,7 +45179,8 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
- stderr = None
- if self.stdin:
- if input:
-- try:
++ for fd in to_close:
+ try:
- self.stdin.write(input)
- except IOError as e:
- if e.errno != errno.EPIPE and e.errno != errno.EINVAL:
@@ -45166,72 +45194,21 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
- self.stderr.close()
- self.wait()
- return (stdout, stderr)
-+ if universal_newlines:
-+ self.stderr = os.fdopen(errread, 'rU', bufsize)
-+ else:
-+ self.stderr = os.fdopen(errread, 'rb', bufsize)
-+
-+
-+ def _translate_newlines(self, data):
-+ data = data.replace("\r\n", "\n")
-+ data = data.replace("\r", "\n")
-+ return data
-+
-+
-+ def __del__(self, _maxint=sys.maxint):
-+ # If __init__ hasn't had a chance to execute (e.g. if it
-+ # was passed an undeclared keyword argument), we don't
-+ # have a _child_created attribute at all.
-+ if not self._child_created:
-+ # We didn't get to successfully create a child process.
-+ return
-+ # In case the child hasn't been waited on, check if it's done.
-+ self._internal_poll(_deadstate=_maxint)
-+ if self.returncode is None and _active is not None:
-+ # Child is still running, keep us alive until we can wait on it.
-+ _active.append(self)
-+
-+
-+ def communicate(self, input=None):
-+ """Interact with process: Send data to stdin. Read data from
-+ stdout and stderr, until end-of-file is reached. Wait for
-+ process to terminate. The optional input argument should be a
-+ string to be sent to the child process, or None, if no data
-+ should be sent to the child.
-+
-+ communicate() returns a tuple (stdout, stderr)."""
-+
-+ # Optimization: If we are only using one pipe, or no pipe at
-+ # all, using select() or threads is unnecessary.
-+ if [self.stdin, self.stdout, self.stderr].count(None) >= 2:
-+ stdout = None
-+ stderr = None
-+ if self.stdin:
-+ if input:
-+ try:
-+ self.stdin.write(input)
-+ except IOError as e:
-+ if e.errno != errno.EPIPE and e.errno != errno.EINVAL:
-+ raise
-+ self.stdin.close()
-+ elif self.stdout:
-+ stdout = _eintr_retry_call(self.stdout.read)
-+ self.stdout.close()
-+ elif self.stderr:
-+ stderr = _eintr_retry_call(self.stderr.read)
-+ self.stderr.close()
-+ self.wait()
-+ return (stdout, stderr)
-
+-
- return self._communicate(input)
-+ return self._communicate(input)
-
-
+-
+-
- def poll(self):
+- """Check if child process has terminated. Set and return returncode
+- attribute."""
- return self._internal_poll()
-+ def poll(self):
-+ return self._internal_poll()
-
+-
++ if mswindows:
++ fd.Close()
++ else:
++ os.close(fd)
++ except EnvironmentError:
++ pass
- if mswindows:
- #
@@ -45323,93 +45300,8 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
- # Eeek - file-not-found - possibly an embedding
- # situation - see if we can locate it in sys.exec_prefix
- w9xpopen = os.path.join(os.path.dirname(sys.exec_prefix),
-+ if mswindows:
-+ #
-+ # Windows methods
-+ #
-+ def _get_handles(self, stdin, stdout, stderr):
-+ """Construct and return tuple with IO objects:
-+ p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite
-+ """
-+ to_close = set()
-+ if stdin is None and stdout is None and stderr is None:
-+ return (None, None, None, None, None, None), to_close
-+
-+ p2cread, p2cwrite = None, None
-+ c2pread, c2pwrite = None, None
-+ errread, errwrite = None, None
-+
-+ if stdin is None:
-+ p2cread = _subprocess.GetStdHandle(_subprocess.STD_INPUT_HANDLE)
-+ if p2cread is None:
-+ p2cread, _ = _subprocess.CreatePipe(None, 0)
-+ elif stdin == PIPE:
-+ p2cread, p2cwrite = _subprocess.CreatePipe(None, 0)
-+ elif isinstance(stdin, int):
-+ p2cread = msvcrt.get_osfhandle(stdin)
-+ else:
-+ # Assuming file-like object
-+ p2cread = msvcrt.get_osfhandle(stdin.fileno())
-+ p2cread = self._make_inheritable(p2cread)
-+ # We just duplicated the handle, it has to be closed at the end
-+ to_close.add(p2cread)
-+ if stdin == PIPE:
-+ to_close.add(p2cwrite)
-+
-+ if stdout is None:
-+ c2pwrite = _subprocess.GetStdHandle(_subprocess.STD_OUTPUT_HANDLE)
-+ if c2pwrite is None:
-+ _, c2pwrite = _subprocess.CreatePipe(None, 0)
-+ elif stdout == PIPE:
-+ c2pread, c2pwrite = _subprocess.CreatePipe(None, 0)
-+ elif isinstance(stdout, int):
-+ c2pwrite = msvcrt.get_osfhandle(stdout)
-+ else:
-+ # Assuming file-like object
-+ c2pwrite = msvcrt.get_osfhandle(stdout.fileno())
-+ c2pwrite = self._make_inheritable(c2pwrite)
-+ # We just duplicated the handle, it has to be closed at the end
-+ to_close.add(c2pwrite)
-+ if stdout == PIPE:
-+ to_close.add(c2pread)
-+
-+ if stderr is None:
-+ errwrite = _subprocess.GetStdHandle(_subprocess.STD_ERROR_HANDLE)
-+ if errwrite is None:
-+ _, errwrite = _subprocess.CreatePipe(None, 0)
-+ elif stderr == PIPE:
-+ errread, errwrite = _subprocess.CreatePipe(None, 0)
-+ elif stderr == STDOUT:
-+ errwrite = c2pwrite
-+ elif isinstance(stderr, int):
-+ errwrite = msvcrt.get_osfhandle(stderr)
-+ else:
-+ # Assuming file-like object
-+ errwrite = msvcrt.get_osfhandle(stderr.fileno())
-+ errwrite = self._make_inheritable(errwrite)
-+ # We just duplicated the handle, it has to be closed at the end
-+ to_close.add(errwrite)
-+ if stderr == PIPE:
-+ to_close.add(errread)
-+
-+ return (p2cread, p2cwrite,
-+ c2pread, c2pwrite,
-+ errread, errwrite), to_close
-+
-+
-+ def _make_inheritable(self, handle):
-+ """Return a duplicate of handle, which is inheritable"""
-+ return _subprocess.DuplicateHandle(_subprocess.GetCurrentProcess(),
-+ handle, _subprocess.GetCurrentProcess(), 0, 1,
-+ _subprocess.DUPLICATE_SAME_ACCESS)
-+
-+
-+ def _find_w9xpopen(self):
-+ """Find and return absolut path to w9xpopen.exe"""
-+ w9xpopen = os.path.join(
-+ os.path.dirname(_subprocess.GetModuleFileName(0)),
- "w9xpopen.exe")
- if not os.path.exists(w9xpopen):
+- "w9xpopen.exe")
+- if not os.path.exists(w9xpopen):
- raise RuntimeError("Cannot locate w9xpopen.exe, which is "
- "needed for Popen to work with your "
- "shell or platform.")
@@ -45460,7 +45352,8 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
- def _close_in_parent(fd):
- fd.Close()
- to_close.remove(fd)
--
++ raise exc_type, exc_value, exc_trace
+
- # Start the process
- try:
- hp, ht, pid, tid = _subprocess.CreateProcess(executable, args,
@@ -45512,8 +45405,79 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
- if _WaitForSingleObject(self._handle, 0) == _WAIT_OBJECT_0:
- self.returncode = _GetExitCodeProcess(self._handle)
- return self.returncode
--
--
++ if mswindows:
++ if p2cwrite is not None:
++ p2cwrite = msvcrt.open_osfhandle(p2cwrite.Detach(), 0)
++ if c2pread is not None:
++ c2pread = msvcrt.open_osfhandle(c2pread.Detach(), 0)
++ if errread is not None:
++ errread = msvcrt.open_osfhandle(errread.Detach(), 0)
+
++ if p2cwrite is not None:
++ self.stdin = os.fdopen(p2cwrite, 'wb', bufsize)
++ if c2pread is not None:
++ if universal_newlines:
++ self.stdout = os.fdopen(c2pread, 'rU', bufsize)
++ else:
++ self.stdout = os.fdopen(c2pread, 'rb', bufsize)
++ if errread is not None:
++ if universal_newlines:
++ self.stderr = os.fdopen(errread, 'rU', bufsize)
++ else:
++ self.stderr = os.fdopen(errread, 'rb', bufsize)
++
++
++ def _translate_newlines(self, data):
++ data = data.replace("\r\n", "\n")
++ data = data.replace("\r", "\n")
++ return data
++
++
++ def __del__(self, _maxint=sys.maxint):
++ # If __init__ hasn't had a chance to execute (e.g. if it
++ # was passed an undeclared keyword argument), we don't
++ # have a _child_created attribute at all.
++ if not self._child_created:
++ # We didn't get to successfully create a child process.
++ return
++ # In case the child hasn't been waited on, check if it's done.
++ self._internal_poll(_deadstate=_maxint)
++ if self.returncode is None and _active is not None:
++ # Child is still running, keep us alive until we can wait on it.
++ _active.append(self)
++
++
++ def communicate(self, input=None):
++ """Interact with process: Send data to stdin. Read data from
++ stdout and stderr, until end-of-file is reached. Wait for
++ process to terminate. The optional input argument should be a
++ string to be sent to the child process, or None, if no data
++ should be sent to the child.
++
++ communicate() returns a tuple (stdout, stderr)."""
++
++ # Optimization: If we are only using one pipe, or no pipe at
++ # all, using select() or threads is unnecessary.
++ if [self.stdin, self.stdout, self.stderr].count(None) >= 2:
++ stdout = None
++ stderr = None
++ if self.stdin:
++ if input:
++ try:
++ self.stdin.write(input)
++ except IOError as e:
++ if e.errno != errno.EPIPE and e.errno != errno.EINVAL:
++ raise
++ self.stdin.close()
++ elif self.stdout:
++ stdout = _eintr_retry_call(self.stdout.read)
++ self.stdout.close()
++ elif self.stderr:
++ stderr = _eintr_retry_call(self.stderr.read)
++ self.stderr.close()
++ self.wait()
++ return (stdout, stderr)
+
- def wait(self):
- """Wait for child process to terminate. Returns returncode
- attribute."""
@@ -45544,6 +45508,168 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
- args=(self.stderr, stderr))
- stderr_thread.setDaemon(True)
- stderr_thread.start()
++ return self._communicate(input)
+
+- if self.stdin:
+- if input is not None:
+- try:
+- self.stdin.write(input)
+- except IOError as e:
+- if e.errno == errno.EPIPE:
+- # communicate() should ignore broken pipe error
+- pass
+- elif (e.errno == errno.EINVAL
+- and self.poll() is not None):
+- # Issue #19612: stdin.write() fails with EINVAL
+- # if the process already exited before the write
+- pass
+- else:
+- raise
+- self.stdin.close()
+
+- if self.stdout:
+- stdout_thread.join()
+- if self.stderr:
+- stderr_thread.join()
+-
+- # All data exchanged. Translate lists into strings.
+- if stdout is not None:
+- stdout = stdout[0]
+- if stderr is not None:
+- stderr = stderr[0]
+-
+- # Translate newlines, if requested. We cannot let the file
+- # object do the translation: It is based on stdio, which is
+- # impossible to combine with select (unless forcing no
+- # buffering).
+- if self.universal_newlines and hasattr(file, 'newlines'):
+- if stdout:
+- stdout = self._translate_newlines(stdout)
+- if stderr:
+- stderr = self._translate_newlines(stderr)
+-
+- self.wait()
+- return (stdout, stderr)
+-
+- def send_signal(self, sig):
+- """Send a signal to the process
+- """
+- if sig == signal.SIGTERM:
+- self.terminate()
+- elif sig == signal.CTRL_C_EVENT:
+- os.kill(self.pid, signal.CTRL_C_EVENT)
+- elif sig == signal.CTRL_BREAK_EVENT:
+- os.kill(self.pid, signal.CTRL_BREAK_EVENT)
+- else:
+- raise ValueError("Unsupported signal: {}".format(sig))
++ def poll(self):
++ """Check if child process has terminated. Set and return returncode
++ attribute."""
++ return self._internal_poll()
+
+- def terminate(self):
+- """Terminates the process
+- """
+- try:
+- _subprocess.TerminateProcess(self._handle, 1)
+- except OSError as e:
+- # ERROR_ACCESS_DENIED (winerror 5) is received when the
+- # process already died.
+- if e.winerror != 5:
+- raise
+- rc = _subprocess.GetExitCodeProcess(self._handle)
+- if rc == _subprocess.STILL_ACTIVE:
+- raise
+- self.returncode = rc
+
+- kill = terminate
++ if mswindows:
++ #
++ # Windows methods
++ #
++ def _get_handles(self, stdin, stdout, stderr):
++ """Construct and return tuple with IO objects:
++ p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite
++ """
++ to_close = set()
++ if stdin is None and stdout is None and stderr is None:
++ return (None, None, None, None, None, None), to_close
++
++ p2cread, p2cwrite = None, None
++ c2pread, c2pwrite = None, None
++ errread, errwrite = None, None
++
++ if stdin is None:
++ p2cread = _subprocess.GetStdHandle(_subprocess.STD_INPUT_HANDLE)
++ if p2cread is None:
++ p2cread, _ = _subprocess.CreatePipe(None, 0)
++ elif stdin == PIPE:
++ p2cread, p2cwrite = _subprocess.CreatePipe(None, 0)
++ elif isinstance(stdin, int):
++ p2cread = msvcrt.get_osfhandle(stdin)
++ else:
++ # Assuming file-like object
++ p2cread = msvcrt.get_osfhandle(stdin.fileno())
++ p2cread = self._make_inheritable(p2cread)
++ # We just duplicated the handle, it has to be closed at the end
++ to_close.add(p2cread)
++ if stdin == PIPE:
++ to_close.add(p2cwrite)
++
++ if stdout is None:
++ c2pwrite = _subprocess.GetStdHandle(_subprocess.STD_OUTPUT_HANDLE)
++ if c2pwrite is None:
++ _, c2pwrite = _subprocess.CreatePipe(None, 0)
++ elif stdout == PIPE:
++ c2pread, c2pwrite = _subprocess.CreatePipe(None, 0)
++ elif isinstance(stdout, int):
++ c2pwrite = msvcrt.get_osfhandle(stdout)
++ else:
++ # Assuming file-like object
++ c2pwrite = msvcrt.get_osfhandle(stdout.fileno())
++ c2pwrite = self._make_inheritable(c2pwrite)
++ # We just duplicated the handle, it has to be closed at the end
++ to_close.add(c2pwrite)
++ if stdout == PIPE:
++ to_close.add(c2pread)
++
++ if stderr is None:
++ errwrite = _subprocess.GetStdHandle(_subprocess.STD_ERROR_HANDLE)
++ if errwrite is None:
++ _, errwrite = _subprocess.CreatePipe(None, 0)
++ elif stderr == PIPE:
++ errread, errwrite = _subprocess.CreatePipe(None, 0)
++ elif stderr == STDOUT:
++ errwrite = c2pwrite
++ elif isinstance(stderr, int):
++ errwrite = msvcrt.get_osfhandle(stderr)
++ else:
++ # Assuming file-like object
++ errwrite = msvcrt.get_osfhandle(stderr.fileno())
++ errwrite = self._make_inheritable(errwrite)
++ # We just duplicated the handle, it has to be closed at the end
++ to_close.add(errwrite)
++ if stderr == PIPE:
++ to_close.add(errread)
++
++ return (p2cread, p2cwrite,
++ c2pread, c2pwrite,
++ errread, errwrite), to_close
++
++
++ def _make_inheritable(self, handle):
++ """Return a duplicate of handle, which is inheritable"""
++ return _subprocess.DuplicateHandle(_subprocess.GetCurrentProcess(),
++ handle, _subprocess.GetCurrentProcess(), 0, 1,
++ _subprocess.DUPLICATE_SAME_ACCESS)
++
++
++ def _find_w9xpopen(self):
++ """Find and return absolut path to w9xpopen.exe"""
++ w9xpopen = os.path.join(
++ os.path.dirname(_subprocess.GetModuleFileName(0)),
++ "w9xpopen.exe")
++ if not os.path.exists(w9xpopen):
+ # Eeek - file-not-found - possibly an embedding
+ # situation - see if we can locate it in sys.exec_prefix
+ w9xpopen = os.path.join(os.path.dirname(sys.exec_prefix),
@@ -45600,76 +45726,6 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
+ fd.Close()
+ to_close.remove(fd)
-- if self.stdin:
-- if input is not None:
-- try:
-- self.stdin.write(input)
-- except IOError as e:
-- if e.errno == errno.EPIPE:
-- # communicate() should ignore broken pipe error
-- pass
-- elif (e.errno == errno.EINVAL
-- and self.poll() is not None):
-- # Issue #19612: stdin.write() fails with EINVAL
-- # if the process already exited before the write
-- pass
-- else:
-- raise
-- self.stdin.close()
--
-- if self.stdout:
-- stdout_thread.join()
-- if self.stderr:
-- stderr_thread.join()
--
-- # All data exchanged. Translate lists into strings.
-- if stdout is not None:
-- stdout = stdout[0]
-- if stderr is not None:
-- stderr = stderr[0]
--
-- # Translate newlines, if requested. We cannot let the file
-- # object do the translation: It is based on stdio, which is
-- # impossible to combine with select (unless forcing no
-- # buffering).
-- if self.universal_newlines and hasattr(file, 'newlines'):
-- if stdout:
-- stdout = self._translate_newlines(stdout)
-- if stderr:
-- stderr = self._translate_newlines(stderr)
--
-- self.wait()
-- return (stdout, stderr)
--
-- def send_signal(self, sig):
-- """Send a signal to the process
-- """
-- if sig == signal.SIGTERM:
-- self.terminate()
-- elif sig == signal.CTRL_C_EVENT:
-- os.kill(self.pid, signal.CTRL_C_EVENT)
-- elif sig == signal.CTRL_BREAK_EVENT:
-- os.kill(self.pid, signal.CTRL_BREAK_EVENT)
-- else:
-- raise ValueError("Unsupported signal: {}".format(sig))
--
-- def terminate(self):
-- """Terminates the process
-- """
-- try:
-- _subprocess.TerminateProcess(self._handle, 1)
-- except OSError as e:
-- # ERROR_ACCESS_DENIED (winerror 5) is received when the
-- # process already died.
-- if e.winerror != 5:
-- raise
-- rc = _subprocess.GetExitCodeProcess(self._handle)
-- if rc == _subprocess.STILL_ACTIVE:
-- raise
-- self.returncode = rc
--
-- kill = terminate
--
- else:
- #
- # POSIX methods
@@ -46129,8 +46185,47 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
- # preexec_fn(), which may open FDs.
- if close_fds:
- self._close_fds(but=errpipe_write)
+-
+- if env is None:
+- os.execvp(executable, args)
+- else:
+- os.execvpe(executable, args, env)
+-
+ self.pid = os.fork()
-+ except:
+ except:
+- exc_type, exc_value, tb = sys.exc_info()
+- # Save the traceback and attach it to the exception object
+- exc_lines = traceback.format_exception(exc_type,
+- exc_value,
+- tb)
+- exc_value.child_traceback = ''.join(exc_lines)
+- os.write(errpipe_write, pickle.dumps(exc_value))
+-
+- # This exitcode won't be reported to applications, so it
+- # really doesn't matter what we return.
+- os._exit(255)
+-
+- # Parent
+- if gc_was_enabled:
+- gc.enable()
+- finally:
+- # be sure the FD is closed no matter what
+- os.close(errpipe_write)
+-
+- # Wait for exec to fail or succeed; possibly raising exception
+- data = _eintr_retry_call(os.read, errpipe_read, 1048576)
+- pickle_bits = []
+- while data:
+- pickle_bits.append(data)
+- data = _eintr_retry_call(os.read, errpipe_read, 1048576)
+- data = "".join(pickle_bits)
+- finally:
+- if p2cread is not None and p2cwrite is not None:
+- _close_in_parent(p2cread)
+- if c2pwrite is not None and c2pread is not None:
+- _close_in_parent(c2pwrite)
+- if errwrite is not None and errread is not None:
+- _close_in_parent(errwrite)
+ if gc_was_enabled:
+ gc.enable()
+ raise
@@ -46205,10 +46300,8 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
+ # really doesn't matter what we return.
+ os._exit(255)
-- if env is None:
-- os.execvp(executable, args)
-- else:
-- os.execvpe(executable, args, env)
+- # be sure the FD is closed no matter what
+- os.close(errpipe_read)
+ # Parent
+ if gc_was_enabled:
+ gc.enable()
@@ -46216,22 +46309,14 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
+ # be sure the FD is closed no matter what
+ os.close(errpipe_write)
-- except:
-- exc_type, exc_value, tb = sys.exc_info()
-- # Save the traceback and attach it to the exception object
-- exc_lines = traceback.format_exception(exc_type,
-- exc_value,
-- tb)
-- exc_value.child_traceback = ''.join(exc_lines)
-- os.write(errpipe_write, pickle.dumps(exc_value))
--
-- # This exitcode won't be reported to applications, so it
-- # really doesn't matter what we return.
-- os._exit(255)
--
-- # Parent
-- if gc_was_enabled:
-- gc.enable()
+- if data != "":
+- try:
+- _eintr_retry_call(os.waitpid, self.pid, 0)
+- except OSError as e:
+- if e.errno != errno.ECHILD:
+- raise
+- child_exception = pickle.loads(data)
+- raise child_exception
+ # Wait for exec to fail or succeed; possibly raising exception
+ data = _eintr_retry_call(os.read, errpipe_read, 1048576)
+ pickle_bits = []
@@ -46239,32 +46324,29 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
+ pickle_bits.append(data)
+ data = _eintr_retry_call(os.read, errpipe_read, 1048576)
+ data = "".join(pickle_bits)
- finally:
++ finally:
+ if p2cread is not None and p2cwrite is not None:
+ _close_in_parent(p2cread)
+ if c2pwrite is not None and c2pread is not None:
+ _close_in_parent(c2pwrite)
+ if errwrite is not None and errread is not None:
+ _close_in_parent(errwrite)
-+
- # be sure the FD is closed no matter what
-- os.close(errpipe_write)
+
++ # be sure the FD is closed no matter what
+ os.close(errpipe_read)
-- # Wait for exec to fail or succeed; possibly raising exception
-- data = _eintr_retry_call(os.read, errpipe_read, 1048576)
-- pickle_bits = []
-- while data:
-- pickle_bits.append(data)
-- data = _eintr_retry_call(os.read, errpipe_read, 1048576)
-- data = "".join(pickle_bits)
-- finally:
-- if p2cread is not None and p2cwrite is not None:
-- _close_in_parent(p2cread)
-- if c2pwrite is not None and c2pread is not None:
-- _close_in_parent(c2pwrite)
-- if errwrite is not None and errread is not None:
-- _close_in_parent(errwrite)
+- def _handle_exitstatus(self, sts, _WIFSIGNALED=os.WIFSIGNALED,
+- _WTERMSIG=os.WTERMSIG, _WIFEXITED=os.WIFEXITED,
+- _WEXITSTATUS=os.WEXITSTATUS):
+- # This method is called (indirectly) by __del__, so it cannot
+- # refer to anything outside of its local scope.
+- if _WIFSIGNALED(sts):
+- self.returncode = -_WTERMSIG(sts)
+- elif _WIFEXITED(sts):
+- self.returncode = _WEXITSTATUS(sts)
+- else:
+- # Should never happen
+- raise RuntimeError("Unknown child exit status!")
+ if data != "":
+ try:
+ _eintr_retry_call(os.waitpid, self.pid, 0)
@@ -46274,17 +46356,11 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
+ child_exception = pickle.loads(data)
+ raise child_exception
-- # be sure the FD is closed no matter what
-- os.close(errpipe_read)
-- if data != "":
-- try:
-- _eintr_retry_call(os.waitpid, self.pid, 0)
-- except OSError as e:
-- if e.errno != errno.ECHILD:
-- raise
-- child_exception = pickle.loads(data)
-- raise child_exception
+- def _internal_poll(self, _deadstate=None, _waitpid=os.waitpid,
+- _WNOHANG=os.WNOHANG, _os_error=os.error, _ECHILD=errno.ECHILD):
+- """Check if child process has terminated. Returns returncode
+- attribute.
+ def _handle_exitstatus(self, sts, _WIFSIGNALED=os.WIFSIGNALED,
+ _WTERMSIG=os.WTERMSIG, _WIFEXITED=os.WIFEXITED,
+ _WEXITSTATUS=os.WEXITSTATUS):
@@ -46304,22 +46380,15 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
+ """Check if child process has terminated. Returns returncode
+ attribute.
+- This method is called by __del__, so it cannot reference anything
+- outside of the local scope (nor can any methods it calls).
+ This method is called by __del__, so it cannot reference anything
+ outside of the local scope (nor can any methods it calls).
-- def _handle_exitstatus(self, sts, _WIFSIGNALED=os.WIFSIGNALED,
-- _WTERMSIG=os.WTERMSIG, _WIFEXITED=os.WIFEXITED,
-- _WEXITSTATUS=os.WEXITSTATUS):
-- # This method is called (indirectly) by __del__, so it cannot
-- # refer to anything outside of its local scope.
-- if _WIFSIGNALED(sts):
-- self.returncode = -_WTERMSIG(sts)
-- elif _WIFEXITED(sts):
-- self.returncode = _WEXITSTATUS(sts)
-- else:
-- # Should never happen
-- raise RuntimeError("Unknown child exit status!")
--
+- """
+- if self.returncode is None:
+- try:
+- pid, sts = _waitpid(self.pid, _WNOHANG)
+ """
+ if self.returncode is None:
+ try:
@@ -46355,17 +46424,30 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
+ sts = 0
+ # Check the pid and loop as waitpid has been known to return
+ # 0 even without WNOHANG in odd situations. issue14396.
-+ if pid == self.pid:
-+ self._handle_exitstatus(sts)
+ if pid == self.pid:
+ self._handle_exitstatus(sts)
+- except _os_error as e:
+- if _deadstate is not None:
+- self.returncode = _deadstate
+- if e.errno == _ECHILD:
+- # This happens if SIGCLD is set to be ignored or
+- # waiting for child processes has otherwise been
+- # disabled for our process. This child is dead, we
+- # can't get the status.
+- # http://bugs.python.org/issue15756
+- self.returncode = 0
+- return self.returncode
+ return self.returncode
-- def _internal_poll(self, _deadstate=None, _waitpid=os.waitpid,
-- _WNOHANG=os.WNOHANG, _os_error=os.error, _ECHILD=errno.ECHILD):
-- """Check if child process has terminated. Returns returncode
-- attribute.
-- This method is called by __del__, so it cannot reference anything
-- outside of the local scope (nor can any methods it calls).
+- def wait(self):
+- """Wait for child process to terminate. Returns returncode
+- attribute."""
+- while self.returncode is None:
+- try:
+- pid, sts = _eintr_retry_call(os.waitpid, self.pid, 0)
+- except OSError as e:
+- if e.errno != errno.ECHILD:
+ def _communicate(self, input):
+ if self.stdin:
+ # Flush stdio buffer. This might block, if the user has
@@ -46425,34 +46507,7 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
+ if self.stderr:
+ register_and_append(self.stderr, select_POLLIN_POLLPRI)
+ fd2output[self.stderr.fileno()] = stderr = []
-
-- """
-- if self.returncode is None:
-- try:
-- pid, sts = _waitpid(self.pid, _WNOHANG)
-- if pid == self.pid:
-- self._handle_exitstatus(sts)
-- except _os_error as e:
-- if _deadstate is not None:
-- self.returncode = _deadstate
-- if e.errno == _ECHILD:
-- # This happens if SIGCLD is set to be ignored or
-- # waiting for child processes has otherwise been
-- # disabled for our process. This child is dead, we
-- # can't get the status.
-- # http://bugs.python.org/issue15756
-- self.returncode = 0
-- return self.returncode
--
--
-- def wait(self):
-- """Wait for child process to terminate. Returns returncode
-- attribute."""
-- while self.returncode is None:
-- try:
-- pid, sts = _eintr_retry_call(os.waitpid, self.pid, 0)
-- except OSError as e:
-- if e.errno != errno.ECHILD:
++
+ input_offset = 0
+ while fd2file:
+ try:
@@ -46837,8 +46892,8 @@ diff -Nru orig/Lib/subprocess.py modified/Lib/subprocess.py
if __name__ == "__main__":
diff -Nru orig/Lib/sysconfig.py modified/Lib/sysconfig.py
---- orig/Lib/sysconfig.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/sysconfig.py 2016-07-06 17:08:40.000000000 +0800
+--- orig/Lib/sysconfig.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/sysconfig.py 2017-01-27 19:03:44.000000000 +0800
@@ -82,6 +82,33 @@
'scripts': '{userbase}/bin',
'data' : '{userbase}',
@@ -46896,8 +46951,8 @@ diff -Nru orig/Lib/sysconfig.py modified/Lib/sysconfig.py
diff -Nru orig/Lib/test/regrtest.py modified/Lib/test/regrtest.py
---- orig/Lib/test/regrtest.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/regrtest.py 2016-07-05 13:09:26.000000000 +0800
+--- orig/Lib/test/regrtest.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/regrtest.py 2017-01-28 00:02:03.000000000 +0800
@@ -227,7 +227,14 @@
'decimal', 'cpu', 'subprocess', 'urlfetch', 'gui',
'xpickle')
@@ -46948,7 +47003,7 @@ diff -Nru orig/Lib/test/regrtest.py modified/Lib/test/regrtest.py
STDTESTS = [
-@@ -1577,35 +1584,36 @@
+@@ -1645,35 +1652,36 @@
assert self.isvalid()
return self.expected
@@ -47003,10 +47058,10 @@ diff -Nru orig/Lib/test/regrtest.py modified/Lib/test/regrtest.py
+ assert __file__ == os.path.abspath(sys.argv[0])
+
+ result = main_in_temp_cwd()
-+ sys.exit(retval)
++ sys.exit(result)
diff -Nru orig/Lib/test/script_helper.py modified/Lib/test/script_helper.py
---- orig/Lib/test/script_helper.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/script_helper.py 2016-07-06 11:50:26.000000000 +0800
+--- orig/Lib/test/script_helper.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/script_helper.py 2017-01-27 19:03:44.000000000 +0800
@@ -3,13 +3,14 @@
import sys
@@ -47128,8 +47183,8 @@ diff -Nru orig/Lib/test/script_helper.py modified/Lib/test/script_helper.py
source, depth=1, compiled=False):
unlink = []
diff -Nru orig/Lib/test/test_ascii_formatd.py modified/Lib/test/test_ascii_formatd.py
---- orig/Lib/test/test_ascii_formatd.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_ascii_formatd.py 2016-07-06 16:16:51.000000000 +0800
+--- orig/Lib/test/test_ascii_formatd.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_ascii_formatd.py 2017-01-27 19:03:44.000000000 +0800
@@ -1,19 +1,22 @@
# PyOS_ascii_formatd is deprecated and not called from anywhere in
# Python itself. So this module is the only place it gets tested.
@@ -47156,8 +47211,8 @@ diff -Nru orig/Lib/test/test_ascii_formatd.py modified/Lib/test/test_ascii_forma
buf = create_string_buffer(' ' * 100)
diff -Nru orig/Lib/test/test_capi.py modified/Lib/test/test_capi.py
---- orig/Lib/test/test_capi.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_capi.py 2016-07-06 11:50:40.000000000 +0800
+--- orig/Lib/test/test_capi.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_capi.py 2017-01-27 19:03:44.000000000 +0800
@@ -5,6 +5,7 @@
import sys
import time
@@ -47183,8 +47238,8 @@ diff -Nru orig/Lib/test/test_capi.py modified/Lib/test/test_capi.py
def pendingcalls_submit(self, l, n):
diff -Nru orig/Lib/test/test_commands.py modified/Lib/test/test_commands.py
---- orig/Lib/test/test_commands.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_commands.py 2016-07-06 11:50:45.000000000 +0800
+--- orig/Lib/test/test_commands.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_commands.py 2017-01-27 19:03:44.000000000 +0800
@@ -2,6 +2,7 @@
Tests for commands module
Nick Mathewson
@@ -47210,8 +47265,8 @@ diff -Nru orig/Lib/test/test_commands.py modified/Lib/test/test_commands.py
# This pattern should match 'ls -ld /.' on any posix
# system, however perversely configured. Even on systems
diff -Nru orig/Lib/test/test_dl.py modified/Lib/test/test_dl.py
---- orig/Lib/test/test_dl.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_dl.py 2016-07-06 16:16:50.000000000 +0800
+--- orig/Lib/test/test_dl.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_dl.py 2017-01-27 19:03:44.000000000 +0800
@@ -1,7 +1,13 @@
"""Test dlmodule.c
Roger E. Masse revised strategy by Barry Warsaw
@@ -47227,8 +47282,8 @@ diff -Nru orig/Lib/test/test_dl.py modified/Lib/test/test_dl.py
dl = import_module('dl', deprecated=True)
diff -Nru orig/Lib/test/test_fcntl.py modified/Lib/test/test_fcntl.py
---- orig/Lib/test/test_fcntl.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_fcntl.py 2016-07-06 16:16:50.000000000 +0800
+--- orig/Lib/test/test_fcntl.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_fcntl.py 2017-01-27 19:03:44.000000000 +0800
@@ -28,7 +28,7 @@
start_len = "qq"
@@ -47255,8 +47310,8 @@ diff -Nru orig/Lib/test/test_fcntl.py modified/Lib/test/test_fcntl.py
def setUp(self):
diff -Nru orig/Lib/test/test_file2k.py modified/Lib/test/test_file2k.py
---- orig/Lib/test/test_file2k.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_file2k.py 2016-07-06 11:50:54.000000000 +0800
+--- orig/Lib/test/test_file2k.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_file2k.py 2017-01-27 19:03:44.000000000 +0800
@@ -654,6 +654,7 @@
@@ -47274,8 +47329,8 @@ diff -Nru orig/Lib/test/test_file2k.py modified/Lib/test/test_file2k.py
import subprocess
diff -Nru orig/Lib/test/test_file_eintr.py modified/Lib/test/test_file_eintr.py
---- orig/Lib/test/test_file_eintr.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_file_eintr.py 2016-07-04 10:59:49.000000000 +0800
+--- orig/Lib/test/test_file_eintr.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_file_eintr.py 2017-01-27 19:03:44.000000000 +0800
@@ -71,6 +71,7 @@
self.fail('Error from IO process %s:\nSTDOUT:\n%sSTDERR:\n%s\n' %
(why, stdout.decode(), stderr.decode()))
@@ -47285,9 +47340,9 @@ diff -Nru orig/Lib/test/test_file_eintr.py modified/Lib/test/test_file_eintr.py
"""Generic buffered read method test harness to validate EINTR behavior.
diff -Nru orig/Lib/test/test_gdb.py modified/Lib/test/test_gdb.py
---- orig/Lib/test/test_gdb.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_gdb.py 2016-07-04 11:01:48.000000000 +0800
-@@ -19,6 +19,7 @@
+--- orig/Lib/test/test_gdb.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_gdb.py 2017-01-27 19:03:44.000000000 +0800
+@@ -20,6 +20,7 @@
except ImportError:
thread = None
@@ -47295,7 +47350,7 @@ diff -Nru orig/Lib/test/test_gdb.py modified/Lib/test/test_gdb.py
def get_gdb_version():
try:
proc = subprocess.Popen(["gdb", "-nx", "--version"],
-@@ -29,6 +30,8 @@
+@@ -31,6 +32,8 @@
# This is what "no gdb" looks like. There may, however, be other
# errors that manifest this way too.
raise unittest.SkipTest("Couldn't find gdb on the path")
@@ -47305,8 +47360,8 @@ diff -Nru orig/Lib/test/test_gdb.py modified/Lib/test/test_gdb.py
# Regex to parse:
# 'GNU gdb (GDB; SUSE Linux Enterprise 12) 7.7\n' -> 7.7
diff -Nru orig/Lib/test/test_hash.py modified/Lib/test/test_hash.py
---- orig/Lib/test/test_hash.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_hash.py 2016-07-06 11:51:03.000000000 +0800
+--- orig/Lib/test/test_hash.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_hash.py 2017-01-27 19:03:44.000000000 +0800
@@ -150,6 +150,7 @@
def get_hash_command(self, repr_):
return 'print(hash(%s))' % repr_
@@ -47354,8 +47409,8 @@ diff -Nru orig/Lib/test/test_hash.py modified/Lib/test/test_hash.py
def get_hash_command(self, repr_):
return 'import datetime; print(hash(%s))' % repr_
diff -Nru orig/Lib/test/test_httpservers.py modified/Lib/test/test_httpservers.py
---- orig/Lib/test/test_httpservers.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_httpservers.py 2016-07-04 11:04:52.000000000 +0800
+--- orig/Lib/test/test_httpservers.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_httpservers.py 2017-01-27 19:03:44.000000000 +0800
@@ -12,6 +12,7 @@
import shutil
import urllib
@@ -47398,8 +47453,8 @@ diff -Nru orig/Lib/test/test_httpservers.py modified/Lib/test/test_httpservers.p
""" Test url parsing """
def setUp(self):
diff -Nru orig/Lib/test/test_import.py modified/Lib/test/test_import.py
---- orig/Lib/test/test_import.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_import.py 2016-07-06 11:51:07.000000000 +0800
+--- orig/Lib/test/test_import.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_import.py 2017-01-27 19:03:44.000000000 +0800
@@ -16,6 +16,11 @@
from test import symlink_support
from test import script_helper
@@ -47421,9 +47476,9 @@ diff -Nru orig/Lib/test/test_import.py modified/Lib/test/test_import.py
# A modification timestamp larger than 2**32 should not be a problem
# when importing a module (issue #11235).
diff -Nru orig/Lib/test/test_io.py modified/Lib/test/test_io.py
---- orig/Lib/test/test_io.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_io.py 2016-07-06 16:16:49.000000000 +0800
-@@ -399,7 +399,7 @@
+--- orig/Lib/test/test_io.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_io.py 2017-01-27 19:03:44.000000000 +0800
+@@ -408,7 +408,7 @@
# On Windows and Mac OSX this test comsumes large resources; It takes
# a long time to build the >2GB file and takes >2GB of disk space
# therefore the resource must be enabled to run this test.
@@ -47432,7 +47487,7 @@ diff -Nru orig/Lib/test/test_io.py modified/Lib/test/test_io.py
support.requires(
'largefile',
'test requires %s bytes and a long time to run' % self.LARGE)
-@@ -686,6 +686,7 @@
+@@ -695,6 +695,7 @@
support.gc_collect()
self.assertIsNone(wr(), wr)
@@ -47441,8 +47496,8 @@ diff -Nru orig/Lib/test/test_io.py modified/Lib/test/test_io.py
test_array_writes = unittest.skip(
"len(array.array) returns number of elements rather than bytelength"
diff -Nru orig/Lib/test/test_lib2to3.py modified/Lib/test/test_lib2to3.py
---- orig/Lib/test/test_lib2to3.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_lib2to3.py 2016-07-06 11:51:10.000000000 +0800
+--- orig/Lib/test/test_lib2to3.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_lib2to3.py 2017-01-27 19:03:44.000000000 +0800
@@ -2,6 +2,7 @@
# because of running
from lib2to3.tests import (test_fixers, test_pytree, test_util, test_refactor,
@@ -47460,23 +47515,20 @@ diff -Nru orig/Lib/test/test_lib2to3.py modified/Lib/test/test_lib2to3.py
run_unittest(suite())
diff -Nru orig/Lib/test/test_marshal.py modified/Lib/test/test_marshal.py
---- orig/Lib/test/test_marshal.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_marshal.py 2016-07-06 16:16:49.000000000 +0800
-@@ -234,7 +234,10 @@
- # Create a deeply nested structure.
- head = last = []
+--- orig/Lib/test/test_marshal.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_marshal.py 2017-01-27 19:07:13.000000000 +0800
+@@ -236,6 +236,8 @@
# The max stack depth should match the value in Python/marshal.c.
-- MAX_MARSHAL_STACK_DEPTH = 2000
-+ if sys.platform in ('ios', 'tvos', 'watchos'):
+ if os.name == 'nt' and hasattr(sys, 'gettotalrefcount'):
+ MAX_MARSHAL_STACK_DEPTH = 1000
++ elif sys.platform in ('ios', 'tvos', 'watchos'):
+ MAX_MARSHAL_STACK_DEPTH = 1500
-+ else:
-+ MAX_MARSHAL_STACK_DEPTH = 2000
+ else:
+ MAX_MARSHAL_STACK_DEPTH = 2000
for i in range(MAX_MARSHAL_STACK_DEPTH - 2):
- last.append([0])
- last = last[-1]
diff -Nru orig/Lib/test/test_mmap.py modified/Lib/test/test_mmap.py
---- orig/Lib/test/test_mmap.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_mmap.py 2016-07-06 16:16:48.000000000 +0800
+--- orig/Lib/test/test_mmap.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_mmap.py 2017-01-27 19:03:44.000000000 +0800
@@ -232,7 +232,7 @@
self.assertRaises(ValueError, mmap.mmap, f.fileno(), mapsize, access=4)
f.close()
@@ -47486,7 +47538,7 @@ diff -Nru orig/Lib/test/test_mmap.py modified/Lib/test/test_mmap.py
# Try incompatible flags, prot and access parameters.
f = open(TESTFN, "r+b")
self.assertRaises(ValueError, mmap.mmap, f.fileno(), mapsize,
-@@ -662,7 +662,7 @@
+@@ -676,7 +676,7 @@
unlink(TESTFN)
def _make_test_file(self, num_zeroes, tail):
@@ -47496,8 +47548,8 @@ diff -Nru orig/Lib/test/test_mmap.py modified/Lib/test/test_mmap.py
'test requires %s bytes and a long time to run' % str(0x180000000))
f = open(TESTFN, 'w+b')
diff -Nru orig/Lib/test/test_os.py modified/Lib/test/test_os.py
---- orig/Lib/test/test_os.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_os.py 2016-07-06 11:51:14.000000000 +0800
+--- orig/Lib/test/test_os.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_os.py 2017-01-27 19:03:44.000000000 +0800
@@ -361,6 +361,7 @@
os.environ.update(self.__save)
@@ -47547,8 +47599,8 @@ diff -Nru orig/Lib/test/test_os.py modified/Lib/test/test_os.py
# Needs to accept -1. We run this in a subprocess to avoid
# altering the test runner's process state (issue8045).
diff -Nru orig/Lib/test/test_pdb.py modified/Lib/test/test_pdb.py
---- orig/Lib/test/test_pdb.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_pdb.py 2016-07-06 11:51:18.000000000 +0800
+--- orig/Lib/test/test_pdb.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_pdb.py 2017-01-27 19:03:44.000000000 +0800
@@ -15,6 +15,7 @@
class PdbTestCase(unittest.TestCase):
@@ -47566,8 +47618,8 @@ diff -Nru orig/Lib/test/test_pdb.py modified/Lib/test/test_pdb.py
"""
In issue 7750, it was found that if the filename has a sequence that
diff -Nru orig/Lib/test/test_pep277.py modified/Lib/test/test_pep277.py
---- orig/Lib/test/test_pep277.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_pep277.py 2016-07-06 16:16:48.000000000 +0800
+--- orig/Lib/test/test_pep277.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_pep277.py 2017-01-27 19:03:44.000000000 +0800
@@ -24,7 +24,7 @@
# these normal forms. For example, HFS Plus uses a variant of Normal Form D
# in which U+2000 through U+2FFF, U+F900 through U+FAFF, and U+2F800 through
@@ -47607,8 +47659,8 @@ diff -Nru orig/Lib/test/test_pep277.py modified/Lib/test/test_pep277.py
sf0 = set(self.files)
f1 = os.listdir(test_support.TESTFN)
diff -Nru orig/Lib/test/test_pipes.py modified/Lib/test/test_pipes.py
---- orig/Lib/test/test_pipes.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_pipes.py 2016-07-06 16:16:47.000000000 +0800
+--- orig/Lib/test/test_pipes.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_pipes.py 2017-01-27 19:03:44.000000000 +0800
@@ -1,17 +1,21 @@
import pipes
import os
@@ -47632,8 +47684,8 @@ diff -Nru orig/Lib/test/test_pipes.py modified/Lib/test/test_pipes.py
def tearDown(self):
for f in (TESTFN, TESTFN2):
diff -Nru orig/Lib/test/test_platform.py modified/Lib/test/test_platform.py
---- orig/Lib/test/test_platform.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_platform.py 2016-07-06 16:16:47.000000000 +0800
+--- orig/Lib/test/test_platform.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_platform.py 2017-01-27 19:03:44.000000000 +0800
@@ -6,11 +6,13 @@
from test import test_support
@@ -47666,8 +47718,8 @@ diff -Nru orig/Lib/test/test_platform.py modified/Lib/test/test_platform.py
def test_mac_ver_with_fork(self):
# Issue7895: platform.mac_ver() crashes when using fork without exec
diff -Nru orig/Lib/test/test_poll.py modified/Lib/test/test_poll.py
---- orig/Lib/test/test_poll.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_poll.py 2016-07-06 11:51:22.000000000 +0800
+--- orig/Lib/test/test_poll.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_poll.py 2017-01-27 19:03:44.000000000 +0800
@@ -3,6 +3,7 @@
import os
import random
@@ -47693,8 +47745,8 @@ diff -Nru orig/Lib/test/test_poll.py modified/Lib/test/test_poll.py
cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done'
p = os.popen(cmd, 'r')
diff -Nru orig/Lib/test/test_popen.py modified/Lib/test/test_popen.py
---- orig/Lib/test/test_popen.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_popen.py 2016-07-04 11:22:13.000000000 +0800
+--- orig/Lib/test/test_popen.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_popen.py 2017-01-27 19:03:44.000000000 +0800
@@ -5,7 +5,9 @@
import unittest
@@ -47730,8 +47782,8 @@ diff -Nru orig/Lib/test/test_popen.py modified/Lib/test/test_popen.py
test_support.run_unittest(PopenTest)
diff -Nru orig/Lib/test/test_popen2.py modified/Lib/test/test_popen2.py
---- orig/Lib/test/test_popen2.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_popen2.py 2016-07-06 11:51:30.000000000 +0800
+--- orig/Lib/test/test_popen2.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_popen2.py 2017-01-27 19:03:44.000000000 +0800
@@ -29,6 +29,7 @@
from os import fork
del fork
@@ -47741,8 +47793,8 @@ diff -Nru orig/Lib/test/test_popen2.py modified/Lib/test/test_popen2.py
cmd = "cat"
if os.name == "nt":
diff -Nru orig/Lib/test/test_posix.py modified/Lib/test/test_posix.py
---- orig/Lib/test/test_posix.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_posix.py 2016-07-06 13:10:25.000000000 +0800
+--- orig/Lib/test/test_posix.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_posix.py 2017-01-27 19:03:44.000000000 +0800
@@ -13,7 +13,7 @@
import pwd
import shutil
@@ -47797,8 +47849,8 @@ diff -Nru orig/Lib/test/test_posix.py modified/Lib/test/test_posix.py
with os.popen('id -G 2>/dev/null') as idg:
groups = idg.read().strip()
diff -Nru orig/Lib/test/test_pty.py modified/Lib/test/test_pty.py
---- orig/Lib/test/test_pty.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_pty.py 2016-07-04 11:11:43.000000000 +0800
+--- orig/Lib/test/test_pty.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_pty.py 2017-01-27 19:03:44.000000000 +0800
@@ -110,7 +110,7 @@
os.close(slave_fd)
os.close(master_fd)
@@ -47809,8 +47861,8 @@ diff -Nru orig/Lib/test/test_pty.py modified/Lib/test/test_pty.py
debug("calling pty.fork()")
pid, master_fd = pty.fork()
diff -Nru orig/Lib/test/test_quopri.py modified/Lib/test/test_quopri.py
---- orig/Lib/test/test_quopri.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_quopri.py 2016-07-04 11:11:43.000000000 +0800
+--- orig/Lib/test/test_quopri.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_quopri.py 2017-01-27 19:03:44.000000000 +0800
@@ -174,6 +174,7 @@
for p, e in self.HSTRINGS:
self.assertTrue(quopri.decodestring(e, header=True) == p)
@@ -47828,8 +47880,8 @@ diff -Nru orig/Lib/test/test_quopri.py modified/Lib/test/test_quopri.py
(p, e) = self.STRINGS[-1]
process = subprocess.Popen([sys.executable, "-mquopri", "-d"],
diff -Nru orig/Lib/test/test_select.py modified/Lib/test/test_select.py
---- orig/Lib/test/test_select.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_select.py 2016-07-06 11:51:32.000000000 +0800
+--- orig/Lib/test/test_select.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_select.py 2017-01-27 19:03:44.000000000 +0800
@@ -1,6 +1,7 @@
from test import test_support
import unittest
@@ -47847,8 +47899,8 @@ diff -Nru orig/Lib/test/test_select.py modified/Lib/test/test_select.py
cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done'
p = os.popen(cmd, 'r')
diff -Nru orig/Lib/test/test_signal.py modified/Lib/test/test_signal.py
---- orig/Lib/test/test_signal.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_signal.py 2016-07-06 11:51:37.000000000 +0800
+--- orig/Lib/test/test_signal.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_signal.py 2017-01-27 19:03:44.000000000 +0800
@@ -143,6 +143,7 @@
@unittest.skipIf(sys.platform=='freebsd6',
'inter process signals not reliable (do not mix well with threading) '
@@ -47866,8 +47918,8 @@ diff -Nru orig/Lib/test/test_signal.py modified/Lib/test/test_signal.py
"""Perform a read during which a signal will arrive. Return True if the
read is interrupted by the signal and raises an exception. Return False
diff -Nru orig/Lib/test/test_site.py modified/Lib/test/test_site.py
---- orig/Lib/test/test_site.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_site.py 2016-07-04 11:11:43.000000000 +0800
+--- orig/Lib/test/test_site.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_site.py 2017-01-27 19:03:44.000000000 +0800
@@ -34,6 +34,7 @@
% (site.USER_SITE, exc))
@@ -47885,8 +47937,8 @@ diff -Nru orig/Lib/test/test_site.py modified/Lib/test/test_site.py
usersite = site.USER_SITE
self.assertIn(usersite, sys.path)
diff -Nru orig/Lib/test/test_socket.py modified/Lib/test/test_socket.py
---- orig/Lib/test/test_socket.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_socket.py 2016-07-06 16:16:46.000000000 +0800
+--- orig/Lib/test/test_socket.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_socket.py 2017-01-27 19:03:44.000000000 +0800
@@ -423,7 +423,7 @@
if (sys.platform.startswith('linux') or
sys.platform.startswith('freebsd') or
@@ -47897,8 +47949,8 @@ diff -Nru orig/Lib/test/test_socket.py modified/Lib/test/test_socket.py
# assumption breaking non-standard port/protocol entry
services = ('daytime', 'qotd', 'domain')
diff -Nru orig/Lib/test/test_socketserver.py modified/Lib/test/test_socketserver.py
---- orig/Lib/test/test_socketserver.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_socketserver.py 2016-07-06 16:16:45.000000000 +0800
+--- orig/Lib/test/test_socketserver.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_socketserver.py 2017-01-27 19:03:44.000000000 +0800
@@ -8,7 +8,7 @@
import select
import signal
@@ -47955,8 +48007,8 @@ diff -Nru orig/Lib/test/test_socketserver.py modified/Lib/test/test_socketserver
self.run_server(SocketServer.ThreadingUnixDatagramServer,
SocketServer.DatagramRequestHandler,
diff -Nru orig/Lib/test/test_subprocess.py modified/Lib/test/test_subprocess.py
---- orig/Lib/test/test_subprocess.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_subprocess.py 2016-07-04 11:11:43.000000000 +0800
+--- orig/Lib/test/test_subprocess.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_subprocess.py 2017-01-27 19:03:44.000000000 +0800
@@ -21,6 +21,9 @@
mswindows = (sys.platform == "win32")
@@ -47968,8 +48020,8 @@ diff -Nru orig/Lib/test/test_subprocess.py modified/Lib/test/test_subprocess.py
# Depends on the following external programs: Python
#
diff -Nru orig/Lib/test/test_sundry.py modified/Lib/test/test_sundry.py
---- orig/Lib/test/test_sundry.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_sundry.py 2016-07-04 11:34:34.000000000 +0800
+--- orig/Lib/test/test_sundry.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_sundry.py 2017-01-27 19:03:44.000000000 +0800
@@ -17,7 +17,8 @@
import distutils.bcppcompiler
@@ -47981,8 +48033,8 @@ diff -Nru orig/Lib/test/test_sundry.py modified/Lib/test/test_sundry.py
import distutils.filelist
if sys.platform.startswith('win'):
diff -Nru orig/Lib/test/test_sys.py modified/Lib/test/test_sys.py
---- orig/Lib/test/test_sys.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_sys.py 2016-07-06 11:50:21.000000000 +0800
+--- orig/Lib/test/test_sys.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_sys.py 2017-01-27 19:03:44.000000000 +0800
@@ -6,8 +6,10 @@
import operator
import os
@@ -48011,8 +48063,8 @@ diff -Nru orig/Lib/test/test_sys.py modified/Lib/test/test_sys.py
# sys.executable should be absolute
self.assertEqual(os.path.abspath(sys.executable), sys.executable)
diff -Nru orig/Lib/test/test_sysconfig.py modified/Lib/test/test_sysconfig.py
---- orig/Lib/test/test_sysconfig.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_sysconfig.py 2016-07-06 17:07:50.000000000 +0800
+--- orig/Lib/test/test_sysconfig.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_sysconfig.py 2017-01-27 19:03:44.000000000 +0800
@@ -16,6 +16,7 @@
get_scheme_names, get_config_var)
import _osx_support
@@ -48042,8 +48094,8 @@ diff -Nru orig/Lib/test/test_sysconfig.py modified/Lib/test/test_sysconfig.py
# Issue 7880
symlink = get_attribute(os, "symlink")
diff -Nru orig/Lib/test/test_tcl.py modified/Lib/test/test_tcl.py
---- orig/Lib/test/test_tcl.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_tcl.py 2016-07-06 11:50:18.000000000 +0800
+--- orig/Lib/test/test_tcl.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_tcl.py 2017-01-27 19:03:44.000000000 +0800
@@ -3,7 +3,7 @@
import sys
import os
@@ -48063,8 +48115,8 @@ diff -Nru orig/Lib/test/test_tcl.py modified/Lib/test/test_tcl.py
if e.winerror == 5:
self.skipTest('Not permitted to start the child process')
diff -Nru orig/Lib/test/test_thread.py modified/Lib/test/test_thread.py
---- orig/Lib/test/test_thread.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_thread.py 2016-07-04 11:39:30.000000000 +0800
+--- orig/Lib/test/test_thread.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_thread.py 2017-01-27 19:03:44.000000000 +0800
@@ -222,6 +222,7 @@
@unittest.skipIf(sys.platform.startswith('win'),
@@ -48074,8 +48126,8 @@ diff -Nru orig/Lib/test/test_thread.py modified/Lib/test/test_thread.py
def test_forkinthread(self):
def thread1():
diff -Nru orig/Lib/test/test_threading.py modified/Lib/test/test_threading.py
---- orig/Lib/test/test_threading.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_threading.py 2016-07-06 16:16:40.000000000 +0800
+--- orig/Lib/test/test_threading.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_threading.py 2017-01-27 19:03:44.000000000 +0800
@@ -163,6 +163,8 @@
# PyThreadState_SetAsyncExc() is a CPython-only gimmick, not (currently)
@@ -48127,10 +48179,10 @@ diff -Nru orig/Lib/test/test_threading.py modified/Lib/test/test_threading.py
p = subprocess.Popen([sys.executable, "-c", script],
stdout=subprocess.PIPE)
diff -Nru orig/Lib/test/test_unicode.py modified/Lib/test/test_unicode.py
---- orig/Lib/test/test_unicode.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_unicode.py 2016-07-06 16:16:40.000000000 +0800
-@@ -1666,6 +1666,8 @@
- self.assertEqual("{}".format(u), '__unicode__ overridden')
+--- orig/Lib/test/test_unicode.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_unicode.py 2017-01-27 19:03:44.000000000 +0800
+@@ -1673,6 +1673,8 @@
+ class CAPITest(unittest.TestCase):
# Test PyUnicode_FromFormat()
+ @unittest.skipIf(sys.platform in ('ios', 'tvos', 'watchos'),
@@ -48139,8 +48191,8 @@ diff -Nru orig/Lib/test/test_unicode.py modified/Lib/test/test_unicode.py
test_support.import_module('ctypes')
from ctypes import (
diff -Nru orig/Lib/test/test_unicodedata.py modified/Lib/test/test_unicodedata.py
---- orig/Lib/test/test_unicodedata.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_unicodedata.py 2016-07-04 11:38:27.000000000 +0800
+--- orig/Lib/test/test_unicodedata.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_unicodedata.py 2017-01-27 19:03:44.000000000 +0800
@@ -217,8 +217,10 @@
self.assertEqual(eaw(u'\u2010'), 'A')
self.assertEqual(eaw(u'\U00020000'), 'W')
@@ -48153,8 +48205,8 @@ diff -Nru orig/Lib/test/test_unicodedata.py modified/Lib/test/test_unicodedata.p
# Issue 4367
# Decoding \N escapes requires the unicodedata module. If it can't be
diff -Nru orig/Lib/test/test_urllib2net.py modified/Lib/test/test_urllib2net.py
---- orig/Lib/test/test_urllib2net.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_urllib2net.py 2016-07-06 11:49:46.000000000 +0800
+--- orig/Lib/test/test_urllib2net.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_urllib2net.py 2017-01-27 19:03:44.000000000 +0800
@@ -6,6 +6,10 @@
import urllib2
import os
@@ -48175,8 +48227,8 @@ diff -Nru orig/Lib/test/test_urllib2net.py modified/Lib/test/test_urllib2net.py
urlwith_frag = "http://www.pythontest.net/index.html#frag"
with test_support.transient_internet(urlwith_frag):
diff -Nru orig/Lib/test/test_uuid.py modified/Lib/test/test_uuid.py
---- orig/Lib/test/test_uuid.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_uuid.py 2016-07-06 11:49:42.000000000 +0800
+--- orig/Lib/test/test_uuid.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_uuid.py 2017-01-27 19:03:44.000000000 +0800
@@ -2,6 +2,7 @@
from test import test_support
import io
@@ -48210,9 +48262,9 @@ diff -Nru orig/Lib/test/test_uuid.py modified/Lib/test/test_uuid.py
node = uuid._ifconfig_getnode()
self.check_node(node, 'ifconfig', True)
diff -Nru orig/Lib/test/test_warnings.py modified/Lib/test/test_warnings.py
---- orig/Lib/test/test_warnings.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_warnings.py 2016-07-06 11:49:38.000000000 +0800
-@@ -791,6 +791,7 @@
+--- orig/Lib/test/test_warnings.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_warnings.py 2017-01-27 19:03:44.000000000 +0800
+@@ -803,6 +803,7 @@
module = py_warnings
@@ -48221,8 +48273,8 @@ diff -Nru orig/Lib/test/test_warnings.py modified/Lib/test/test_warnings.py
def test_single_warning(self):
diff -Nru orig/Lib/test/test_xpickle.py modified/Lib/test/test_xpickle.py
---- orig/Lib/test/test_xpickle.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_xpickle.py 2016-07-06 16:16:39.000000000 +0800
+--- orig/Lib/test/test_xpickle.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_xpickle.py 2017-01-27 19:03:44.000000000 +0800
@@ -56,6 +56,8 @@
# Ignore fast
return cPickle.loads(buf)
@@ -48241,9 +48293,9 @@ diff -Nru orig/Lib/test/test_xpickle.py modified/Lib/test/test_xpickle.py
"""Bounce a pickled object through another version of Python.
diff -Nru orig/Lib/test/test_zipfile.py modified/Lib/test/test_zipfile.py
---- orig/Lib/test/test_zipfile.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/test/test_zipfile.py 2016-07-04 11:42:57.000000000 +0800
-@@ -786,6 +786,7 @@
+--- orig/Lib/test/test_zipfile.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/test/test_zipfile.py 2017-01-27 19:03:44.000000000 +0800
+@@ -831,6 +831,7 @@
self.skipTest('requires write access to the installed location')
unlink(filename)
@@ -48252,8 +48304,8 @@ diff -Nru orig/Lib/test/test_zipfile.py modified/Lib/test/test_zipfile.py
self.requiresWriteAccess(os.path.dirname(__file__))
with zipfile.PyZipFile(TemporaryFile(), "w") as zipfp:
diff -Nru orig/Lib/unittest/test/test_break.py modified/Lib/unittest/test/test_break.py
---- orig/Lib/unittest/test/test_break.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/unittest/test/test_break.py 2016-07-04 11:42:57.000000000 +0800
+--- orig/Lib/unittest/test/test_break.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/unittest/test/test_break.py 2017-01-27 19:03:44.000000000 +0800
@@ -11,7 +11,7 @@
@@ -48264,8 +48316,8 @@ diff -Nru orig/Lib/unittest/test/test_break.py modified/Lib/unittest/test/test_b
"if threads have been used")
class TestBreak(unittest.TestCase):
diff -Nru orig/Lib/webbrowser.py modified/Lib/webbrowser.py
---- orig/Lib/webbrowser.py 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Lib/webbrowser.py 2016-07-06 16:16:52.000000000 +0800
+--- orig/Lib/webbrowser.py 2017-01-27 19:03:00.000000000 +0800
++++ modified/Lib/webbrowser.py 2017-01-27 19:03:44.000000000 +0800
@@ -637,7 +637,6 @@
rc = osapipe.close()
return not rc
@@ -48274,7 +48326,7 @@ diff -Nru orig/Lib/webbrowser.py modified/Lib/webbrowser.py
# Don't clear _tryorder or _browsers since OS X can use above Unix support
# (but we prefer using the OS X specific stuff)
register("safari", None, MacOSXOSAScript('safari'), -1)
-@@ -646,6 +645,59 @@
+@@ -647,6 +646,59 @@
#
@@ -48336,7 +48388,7 @@ diff -Nru orig/Lib/webbrowser.py modified/Lib/webbrowser.py
diff -Nru orig/Modules/Setup.embedded modified/Modules/Setup.embedded
--- orig/Modules/Setup.embedded 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/Setup.embedded 2016-07-06 12:04:46.000000000 +0800
++++ modified/Modules/Setup.embedded 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,121 @@
+#####################################################################
+# Static compilation instructions for all binary modules.
@@ -48461,7 +48513,7 @@ diff -Nru orig/Modules/Setup.embedded modified/Modules/Setup.embedded
+#spwd spwdmodule.c
diff -Nru orig/Modules/Setup.iOS-aarch64 modified/Modules/Setup.iOS-aarch64
--- orig/Modules/Setup.iOS-aarch64 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/Setup.iOS-aarch64 2016-07-04 13:25:05.000000000 +0800
++++ modified/Modules/Setup.iOS-aarch64 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,17 @@
+
+#####################################################################
@@ -48482,7 +48534,7 @@ diff -Nru orig/Modules/Setup.iOS-aarch64 modified/Modules/Setup.iOS-aarch64
+ -I$(srcdir)/Modules/_ctypes/libffi_ios/include
diff -Nru orig/Modules/Setup.iOS-arm modified/Modules/Setup.iOS-arm
--- orig/Modules/Setup.iOS-arm 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/Setup.iOS-arm 2016-07-04 13:25:08.000000000 +0800
++++ modified/Modules/Setup.iOS-arm 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,18 @@
+
+#####################################################################
@@ -48504,7 +48556,7 @@ diff -Nru orig/Modules/Setup.iOS-arm modified/Modules/Setup.iOS-arm
+ -I$(srcdir)/Modules/_ctypes/libffi_ios/include
diff -Nru orig/Modules/Setup.iOS-i386 modified/Modules/Setup.iOS-i386
--- orig/Modules/Setup.iOS-i386 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/Setup.iOS-i386 2016-07-04 13:25:10.000000000 +0800
++++ modified/Modules/Setup.iOS-i386 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,17 @@
+
+#####################################################################
@@ -48525,7 +48577,7 @@ diff -Nru orig/Modules/Setup.iOS-i386 modified/Modules/Setup.iOS-i386
+ -I$(srcdir)/Modules/_ctypes/libffi_ios/include
diff -Nru orig/Modules/Setup.iOS-x86_64 modified/Modules/Setup.iOS-x86_64
--- orig/Modules/Setup.iOS-x86_64 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/Setup.iOS-x86_64 2016-07-04 13:25:13.000000000 +0800
++++ modified/Modules/Setup.iOS-x86_64 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,17 @@
+
+#####################################################################
@@ -48546,7 +48598,7 @@ diff -Nru orig/Modules/Setup.iOS-x86_64 modified/Modules/Setup.iOS-x86_64
+ -I$(srcdir)/Modules/_ctypes/libffi_ios/include
diff -Nru orig/Modules/Setup.tvOS-aarch64 modified/Modules/Setup.tvOS-aarch64
--- orig/Modules/Setup.tvOS-aarch64 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/Setup.tvOS-aarch64 2016-07-06 15:08:54.000000000 +0800
++++ modified/Modules/Setup.tvOS-aarch64 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,17 @@
+
+#####################################################################
@@ -48567,7 +48619,7 @@ diff -Nru orig/Modules/Setup.tvOS-aarch64 modified/Modules/Setup.tvOS-aarch64
+ -I$(srcdir)/Modules/_ctypes/libffi_ios/include
diff -Nru orig/Modules/Setup.tvOS-x86_64 modified/Modules/Setup.tvOS-x86_64
--- orig/Modules/Setup.tvOS-x86_64 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/Setup.tvOS-x86_64 2016-07-06 15:08:30.000000000 +0800
++++ modified/Modules/Setup.tvOS-x86_64 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,17 @@
+
+#####################################################################
@@ -48588,7 +48640,7 @@ diff -Nru orig/Modules/Setup.tvOS-x86_64 modified/Modules/Setup.tvOS-x86_64
+ -I$(srcdir)/Modules/_ctypes/libffi_ios/include
diff -Nru orig/Modules/Setup.watchOS-arm modified/Modules/Setup.watchOS-arm
--- orig/Modules/Setup.watchOS-arm 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/Setup.watchOS-arm 2016-07-06 15:10:52.000000000 +0800
++++ modified/Modules/Setup.watchOS-arm 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,18 @@
+
+#####################################################################
@@ -48610,7 +48662,7 @@ diff -Nru orig/Modules/Setup.watchOS-arm modified/Modules/Setup.watchOS-arm
+ -I$(srcdir)/Modules/_ctypes/libffi_ios/include
diff -Nru orig/Modules/Setup.watchOS-i386 modified/Modules/Setup.watchOS-i386
--- orig/Modules/Setup.watchOS-i386 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/Setup.watchOS-i386 2016-07-06 15:10:41.000000000 +0800
++++ modified/Modules/Setup.watchOS-i386 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,17 @@
+
+#####################################################################
@@ -48631,7 +48683,7 @@ diff -Nru orig/Modules/Setup.watchOS-i386 modified/Modules/Setup.watchOS-i386
+ -I$(srcdir)/Modules/_ctypes/libffi_ios/include
diff -Nru orig/Modules/_ctypes/libffi_ios/LICENSE modified/Modules/_ctypes/libffi_ios/LICENSE
--- orig/Modules/_ctypes/libffi_ios/LICENSE 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/LICENSE 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/LICENSE 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,21 @@
+libffi - Copyright (c) 1996-2014 Anthony Green, Red Hat, Inc and others.
+See source files for details.
@@ -48656,7 +48708,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/LICENSE modified/Modules/_ctypes/libff
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff -Nru orig/Modules/_ctypes/libffi_ios/README modified/Modules/_ctypes/libffi_ios/README
--- orig/Modules/_ctypes/libffi_ios/README 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/README 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/README 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,450 @@
+Status
+======
@@ -49110,7 +49162,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/README modified/Modules/_ctypes/libffi
+libffi-discuss@sourceware.org.
diff -Nru orig/Modules/_ctypes/libffi_ios/README.python modified/Modules/_ctypes/libffi_ios/README.python
--- orig/Modules/_ctypes/libffi_ios/README.python 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/README.python 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/README.python 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,14 @@
+This directory contains the generated source code for running libffi
+on iOS platforms (physical and simulator). It contains support for
@@ -49128,7 +49180,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/README.python modified/Modules/_ctypes
+and patched verion of libffi 4.
diff -Nru orig/Modules/_ctypes/libffi_ios/aarch64/ffi_arm64.c modified/Modules/_ctypes/libffi_ios/aarch64/ffi_arm64.c
--- orig/Modules/_ctypes/libffi_ios/aarch64/ffi_arm64.c 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/aarch64/ffi_arm64.c 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/aarch64/ffi_arm64.c 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,934 @@
+#ifdef __arm64__
+
@@ -50067,7 +50119,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/aarch64/ffi_arm64.c modified/Modules/_
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/aarch64/internal.h modified/Modules/_ctypes/libffi_ios/aarch64/internal.h
--- orig/Modules/_ctypes/libffi_ios/aarch64/internal.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/aarch64/internal.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/aarch64/internal.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,67 @@
+/*
+Permission is hereby granted, free of charge, to any person obtaining
@@ -50138,7 +50190,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/aarch64/internal.h modified/Modules/_c
+#define CALL_CONTEXT_SIZE (N_V_ARG_REG * 16 + N_X_ARG_REG * 8)
diff -Nru orig/Modules/_ctypes/libffi_ios/aarch64/sysv_arm64.S modified/Modules/_ctypes/libffi_ios/aarch64/sysv_arm64.S
--- orig/Modules/_ctypes/libffi_ios/aarch64/sysv_arm64.S 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/aarch64/sysv_arm64.S 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/aarch64/sysv_arm64.S 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,443 @@
+#ifdef __arm64__
+
@@ -50586,7 +50638,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/aarch64/sysv_arm64.S modified/Modules/
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/arm/ffi_armv7.c modified/Modules/_ctypes/libffi_ios/arm/ffi_armv7.c
--- orig/Modules/_ctypes/libffi_ios/arm/ffi_armv7.c 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/arm/ffi_armv7.c 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/arm/ffi_armv7.c 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,813 @@
+#ifdef __arm__
+
@@ -51404,7 +51456,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/arm/ffi_armv7.c modified/Modules/_ctyp
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/arm/internal.h modified/Modules/_ctypes/libffi_ios/arm/internal.h
--- orig/Modules/_ctypes/libffi_ios/arm/internal.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/arm/internal.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/arm/internal.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,7 @@
+#define ARM_TYPE_VFP_S 0
+#define ARM_TYPE_VFP_D 1
@@ -51415,7 +51467,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/arm/internal.h modified/Modules/_ctype
+#define ARM_TYPE_STRUCT 6
diff -Nru orig/Modules/_ctypes/libffi_ios/arm/sysv_armv7.S modified/Modules/_ctypes/libffi_ios/arm/sysv_armv7.S
--- orig/Modules/_ctypes/libffi_ios/arm/sysv_armv7.S 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/arm/sysv_armv7.S 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/arm/sysv_armv7.S 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,388 @@
+#ifdef __arm__
+
@@ -51808,7 +51860,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/arm/sysv_armv7.S modified/Modules/_cty
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/arm/trampoline_armv7.S modified/Modules/_ctypes/libffi_ios/arm/trampoline_armv7.S
--- orig/Modules/_ctypes/libffi_ios/arm/trampoline_armv7.S 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/arm/trampoline_armv7.S 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/arm/trampoline_armv7.S 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,5 @@
+#ifdef __arm__
+
@@ -51818,7 +51870,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/arm/trampoline_armv7.S modified/Module
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/closures.c modified/Modules/_ctypes/libffi_ios/closures.c
--- orig/Modules/_ctypes/libffi_ios/closures.c 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/closures.c 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/closures.c 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,925 @@
+/* -----------------------------------------------------------------------
+ closures.c - Copyright (c) 2007, 2009, 2010 Red Hat, Inc.
@@ -52747,7 +52799,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/closures.c modified/Modules/_ctypes/li
+#endif /* FFI_CLOSURES */
diff -Nru orig/Modules/_ctypes/libffi_ios/debug.c modified/Modules/_ctypes/libffi_ios/debug.c
--- orig/Modules/_ctypes/libffi_ios/debug.c 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/debug.c 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/debug.c 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,64 @@
+/* -----------------------------------------------------------------------
+ debug.c - Copyright (c) 1996 Red Hat, Inc.
@@ -52815,7 +52867,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/debug.c modified/Modules/_ctypes/libff
+}
diff -Nru orig/Modules/_ctypes/libffi_ios/dlmalloc.c modified/Modules/_ctypes/libffi_ios/dlmalloc.c
--- orig/Modules/_ctypes/libffi_ios/dlmalloc.c 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/dlmalloc.c 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/dlmalloc.c 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,5161 @@
+/*
+ This is a version (aka dlmalloc) of malloc/free/realloc written by
@@ -57980,7 +58032,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/dlmalloc.c modified/Modules/_ctypes/li
+*/
diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffi.h modified/Modules/_ctypes/libffi_ios/include/ffi.h
--- orig/Modules/_ctypes/libffi_ios/include/ffi.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/include/ffi.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/include/ffi.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,24 @@
+#ifdef __arm64__
+
@@ -58008,7 +58060,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffi.h modified/Modules/_ctypes
+#endif
diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffi_arm64.h modified/Modules/_ctypes/libffi_ios/include/ffi_arm64.h
--- orig/Modules/_ctypes/libffi_ios/include/ffi_arm64.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/include/ffi_arm64.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/include/ffi_arm64.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,508 @@
+#ifdef __arm64__
+
@@ -58521,7 +58573,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffi_arm64.h modified/Modules/_
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffi_armv7.h modified/Modules/_ctypes/libffi_ios/include/ffi_armv7.h
--- orig/Modules/_ctypes/libffi_ios/include/ffi_armv7.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/include/ffi_armv7.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/include/ffi_armv7.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,508 @@
+#ifdef __arm__
+
@@ -59034,7 +59086,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffi_armv7.h modified/Modules/_
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffi_cfi.h modified/Modules/_ctypes/libffi_ios/include/ffi_cfi.h
--- orig/Modules/_ctypes/libffi_ios/include/ffi_cfi.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/include/ffi_cfi.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/include/ffi_cfi.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,55 @@
+/* -----------------------------------------------------------------------
+ ffi_cfi.h - Copyright (c) 2014 Red Hat, Inc.
@@ -59093,7 +59145,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffi_cfi.h modified/Modules/_ct
+#endif /* FFI_CFI_H */
diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffi_common.h modified/Modules/_ctypes/libffi_ios/include/ffi_common.h
--- orig/Modules/_ctypes/libffi_ios/include/ffi_common.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/include/ffi_common.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/include/ffi_common.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,132 @@
+/* -----------------------------------------------------------------------
+ ffi_common.h - Copyright (C) 2011, 2012, 2013 Anthony Green
@@ -59229,7 +59281,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffi_common.h modified/Modules/
+#endif
diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffi_i386.h modified/Modules/_ctypes/libffi_ios/include/ffi_i386.h
--- orig/Modules/_ctypes/libffi_ios/include/ffi_i386.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/include/ffi_i386.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/include/ffi_i386.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,508 @@
+#ifdef __i386__
+
@@ -59742,7 +59794,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffi_i386.h modified/Modules/_c
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffi_x86_64.h modified/Modules/_ctypes/libffi_ios/include/ffi_x86_64.h
--- orig/Modules/_ctypes/libffi_ios/include/ffi_x86_64.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/include/ffi_x86_64.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/include/ffi_x86_64.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,508 @@
+#ifdef __x86_64__
+
@@ -60255,7 +60307,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffi_x86_64.h modified/Modules/
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/include/fficonfig.h modified/Modules/_ctypes/libffi_ios/include/fficonfig.h
--- orig/Modules/_ctypes/libffi_ios/include/fficonfig.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/include/fficonfig.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/include/fficonfig.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,24 @@
+#ifdef __arm64__
+
@@ -60283,7 +60335,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/include/fficonfig.h modified/Modules/_
+#endif
diff -Nru orig/Modules/_ctypes/libffi_ios/include/fficonfig_arm64.h modified/Modules/_ctypes/libffi_ios/include/fficonfig_arm64.h
--- orig/Modules/_ctypes/libffi_ios/include/fficonfig_arm64.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/include/fficonfig_arm64.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/include/fficonfig_arm64.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,214 @@
+#ifdef __arm64__
+
@@ -60502,7 +60554,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/include/fficonfig_arm64.h modified/Mod
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/include/fficonfig_armv7.h modified/Modules/_ctypes/libffi_ios/include/fficonfig_armv7.h
--- orig/Modules/_ctypes/libffi_ios/include/fficonfig_armv7.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/include/fficonfig_armv7.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/include/fficonfig_armv7.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,214 @@
+#ifdef __arm__
+
@@ -60721,7 +60773,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/include/fficonfig_armv7.h modified/Mod
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/include/fficonfig_i386.h modified/Modules/_ctypes/libffi_ios/include/fficonfig_i386.h
--- orig/Modules/_ctypes/libffi_ios/include/fficonfig_i386.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/include/fficonfig_i386.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/include/fficonfig_i386.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,214 @@
+#ifdef __i386__
+
@@ -60940,7 +60992,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/include/fficonfig_i386.h modified/Modu
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/include/fficonfig_x86_64.h modified/Modules/_ctypes/libffi_ios/include/fficonfig_x86_64.h
--- orig/Modules/_ctypes/libffi_ios/include/fficonfig_x86_64.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/include/fficonfig_x86_64.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/include/fficonfig_x86_64.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,214 @@
+#ifdef __x86_64__
+
@@ -61159,7 +61211,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/include/fficonfig_x86_64.h modified/Mo
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffitarget.h modified/Modules/_ctypes/libffi_ios/include/ffitarget.h
--- orig/Modules/_ctypes/libffi_ios/include/ffitarget.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/include/ffitarget.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/include/ffitarget.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,24 @@
+#ifdef __arm64__
+
@@ -61187,7 +61239,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffitarget.h modified/Modules/_
+#endif
diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffitarget_arm64.h modified/Modules/_ctypes/libffi_ios/include/ffitarget_arm64.h
--- orig/Modules/_ctypes/libffi_ios/include/ffitarget_arm64.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/include/ffitarget_arm64.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/include/ffitarget_arm64.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,85 @@
+#ifdef __arm64__
+
@@ -61277,7 +61329,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffitarget_arm64.h modified/Mod
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffitarget_armv7.h modified/Modules/_ctypes/libffi_ios/include/ffitarget_armv7.h
--- orig/Modules/_ctypes/libffi_ios/include/ffitarget_armv7.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/include/ffitarget_armv7.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/include/ffitarget_armv7.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,87 @@
+#ifdef __arm__
+
@@ -61369,7 +61421,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffitarget_armv7.h modified/Mod
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffitarget_i386.h modified/Modules/_ctypes/libffi_ios/include/ffitarget_i386.h
--- orig/Modules/_ctypes/libffi_ios/include/ffitarget_i386.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/include/ffitarget_i386.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/include/ffitarget_i386.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,144 @@
+#ifdef __i386__
+
@@ -61518,7 +61570,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffitarget_i386.h modified/Modu
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffitarget_x86_64.h modified/Modules/_ctypes/libffi_ios/include/ffitarget_x86_64.h
--- orig/Modules/_ctypes/libffi_ios/include/ffitarget_x86_64.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/include/ffitarget_x86_64.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/include/ffitarget_x86_64.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,144 @@
+#ifdef __x86_64__
+
@@ -61667,7 +61719,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/include/ffitarget_x86_64.h modified/Mo
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/java_raw_api.c modified/Modules/_ctypes/libffi_ios/java_raw_api.c
--- orig/Modules/_ctypes/libffi_ios/java_raw_api.c 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/java_raw_api.c 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/java_raw_api.c 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,374 @@
+/* -----------------------------------------------------------------------
+ java_raw_api.c - Copyright (c) 1999, 2007, 2008 Red Hat, Inc.
@@ -62045,7 +62097,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/java_raw_api.c modified/Modules/_ctype
+#endif /* !NO_JAVA_RAW_API */
diff -Nru orig/Modules/_ctypes/libffi_ios/prep_cif.c modified/Modules/_ctypes/libffi_ios/prep_cif.c
--- orig/Modules/_ctypes/libffi_ios/prep_cif.c 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/prep_cif.c 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/prep_cif.c 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,242 @@
+/* -----------------------------------------------------------------------
+ prep_cif.c - Copyright (c) 2011, 2012 Anthony Green
@@ -62291,7 +62343,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/prep_cif.c modified/Modules/_ctypes/li
+#endif
diff -Nru orig/Modules/_ctypes/libffi_ios/raw_api.c modified/Modules/_ctypes/libffi_ios/raw_api.c
--- orig/Modules/_ctypes/libffi_ios/raw_api.c 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/raw_api.c 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/raw_api.c 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,267 @@
+/* -----------------------------------------------------------------------
+ raw_api.c - Copyright (c) 1999, 2008 Red Hat, Inc.
@@ -62562,7 +62614,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/raw_api.c modified/Modules/_ctypes/lib
+#endif /* !FFI_NO_RAW_API */
diff -Nru orig/Modules/_ctypes/libffi_ios/types.c modified/Modules/_ctypes/libffi_ios/types.c
--- orig/Modules/_ctypes/libffi_ios/types.c 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/types.c 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/types.c 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,106 @@
+/* -----------------------------------------------------------------------
+ types.c - Copyright (c) 1996, 1998 Red Hat, Inc.
@@ -62672,7 +62724,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/types.c modified/Modules/_ctypes/libff
+#endif
diff -Nru orig/Modules/_ctypes/libffi_ios/x86/ffi64_x86_64.c modified/Modules/_ctypes/libffi_ios/x86/ffi64_x86_64.c
--- orig/Modules/_ctypes/libffi_ios/x86/ffi64_x86_64.c 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/x86/ffi64_x86_64.c 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/x86/ffi64_x86_64.c 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,829 @@
+#ifdef __x86_64__
+
@@ -63506,7 +63558,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/x86/ffi64_x86_64.c modified/Modules/_c
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/x86/ffi_i386.c modified/Modules/_ctypes/libffi_ios/x86/ffi_i386.c
--- orig/Modules/_ctypes/libffi_ios/x86/ffi_i386.c 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/x86/ffi_i386.c 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/x86/ffi_i386.c 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,734 @@
+#ifdef __i386__
+
@@ -64245,7 +64297,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/x86/ffi_i386.c modified/Modules/_ctype
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/x86/internal.h modified/Modules/_ctypes/libffi_ios/x86/internal.h
--- orig/Modules/_ctypes/libffi_ios/x86/internal.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/x86/internal.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/x86/internal.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,29 @@
+#define X86_RET_FLOAT 0
+#define X86_RET_DOUBLE 1
@@ -64278,7 +64330,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/x86/internal.h modified/Modules/_ctype
+#endif
diff -Nru orig/Modules/_ctypes/libffi_ios/x86/internal64.h modified/Modules/_ctypes/libffi_ios/x86/internal64.h
--- orig/Modules/_ctypes/libffi_ios/x86/internal64.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/x86/internal64.h 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/x86/internal64.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,22 @@
+#define UNIX64_RET_VOID 0
+#define UNIX64_RET_UINT8 1
@@ -64304,7 +64356,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/x86/internal64.h modified/Modules/_cty
+#define UNIX64_SIZE_SHIFT 12
diff -Nru orig/Modules/_ctypes/libffi_ios/x86/sysv_i386.S modified/Modules/_ctypes/libffi_ios/x86/sysv_i386.S
--- orig/Modules/_ctypes/libffi_ios/x86/sysv_i386.S 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/x86/sysv_i386.S 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/x86/sysv_i386.S 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,1045 @@
+#ifdef __i386__
+
@@ -65354,7 +65406,7 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/x86/sysv_i386.S modified/Modules/_ctyp
\ No newline at end of file
diff -Nru orig/Modules/_ctypes/libffi_ios/x86/unix64_x86_64.S modified/Modules/_ctypes/libffi_ios/x86/unix64_x86_64.S
--- orig/Modules/_ctypes/libffi_ios/x86/unix64_x86_64.S 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Modules/_ctypes/libffi_ios/x86/unix64_x86_64.S 2016-07-04 11:42:57.000000000 +0800
++++ modified/Modules/_ctypes/libffi_ios/x86/unix64_x86_64.S 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,551 @@
+#ifdef __x86_64__
+
@@ -65909,8 +65961,8 @@ diff -Nru orig/Modules/_ctypes/libffi_ios/x86/unix64_x86_64.S modified/Modules/_
+#endif
\ No newline at end of file
diff -Nru orig/Modules/makesetup modified/Modules/makesetup
---- orig/Modules/makesetup 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Modules/makesetup 2016-07-04 11:46:18.000000000 +0800
+--- orig/Modules/makesetup 2017-01-27 19:03:00.000000000 +0800
++++ modified/Modules/makesetup 2017-01-27 19:03:44.000000000 +0800
@@ -128,7 +128,7 @@
# Output DEFS in reverse order so first definition overrides
@@ -65952,8 +66004,8 @@ diff -Nru orig/Modules/makesetup modified/Modules/makesetup
*) continue;;
esac
diff -Nru orig/Modules/mathmodule.c modified/Modules/mathmodule.c
---- orig/Modules/mathmodule.c 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Modules/mathmodule.c 2016-07-04 11:46:18.000000000 +0800
+--- orig/Modules/mathmodule.c 2017-01-27 19:03:00.000000000 +0800
++++ modified/Modules/mathmodule.c 2017-01-27 19:03:44.000000000 +0800
@@ -60,6 +60,10 @@
extern double copysign(double, double);
#endif
@@ -65983,8 +66035,8 @@ diff -Nru orig/Modules/mathmodule.c modified/Modules/mathmodule.c
PyFPE_START_PROTECT("in math_hypot", return 0);
r = hypot(x, y);
diff -Nru orig/Modules/posixmodule.c modified/Modules/posixmodule.c
---- orig/Modules/posixmodule.c 2016-06-26 05:49:31.000000000 +0800
-+++ modified/Modules/posixmodule.c 2016-07-06 11:33:56.000000000 +0800
+--- orig/Modules/posixmodule.c 2017-01-27 19:03:00.000000000 +0800
++++ modified/Modules/posixmodule.c 2017-01-27 19:03:44.000000000 +0800
@@ -21,6 +21,8 @@
# pragma weak statvfs
# pragma weak fstatvfs
@@ -66047,7 +66099,7 @@ diff -Nru orig/Modules/posixmodule.c modified/Modules/posixmodule.c
#if defined(PYOS_OS2)
rc = DosQueryExtLIBPATH(buffer, BEGIN_LIBPATH);
if (rc == NO_ERROR) { /* (not a type, envname is NOT 'BEGIN_LIBPATH') */
-@@ -2853,7 +2879,12 @@
+@@ -2841,7 +2867,12 @@
if (!PyArg_ParseTuple(args, "s:system", &command))
return NULL;
Py_BEGIN_ALLOW_THREADS
@@ -66061,8 +66113,8 @@ diff -Nru orig/Modules/posixmodule.c modified/Modules/posixmodule.c
return PyInt_FromLong(sts);
}
diff -Nru orig/Modules/pwdmodule.c modified/Modules/pwdmodule.c
---- orig/Modules/pwdmodule.c 2016-07-04 13:19:38.000000000 +0800
-+++ modified/Modules/pwdmodule.c 2016-07-04 13:20:52.000000000 +0800
+--- orig/Modules/pwdmodule.c 2017-01-27 19:03:00.000000000 +0800
++++ modified/Modules/pwdmodule.c 2017-01-27 19:03:44.000000000 +0800
@@ -1,6 +1,10 @@
/* UNIX password file access module */
@@ -66127,9 +66179,9 @@ diff -Nru orig/Modules/pwdmodule.c modified/Modules/pwdmodule.c
{"getpwuid", pwd_getpwuid, METH_VARARGS, pwd_getpwuid__doc__},
{"getpwnam", pwd_getpwnam, METH_VARARGS, pwd_getpwnam__doc__},
diff -Nru orig/Python/marshal.c modified/Python/marshal.c
---- orig/Python/marshal.c 2016-06-26 05:49:32.000000000 +0800
-+++ modified/Python/marshal.c 2016-07-04 11:51:43.000000000 +0800
-@@ -11,13 +11,23 @@
+--- orig/Python/marshal.c 2017-01-27 19:03:01.000000000 +0800
++++ modified/Python/marshal.c 2017-01-27 19:08:52.000000000 +0800
+@@ -11,17 +11,26 @@
#include "code.h"
#include "marshal.h"
@@ -66139,24 +66191,27 @@ diff -Nru orig/Python/marshal.c modified/Python/marshal.c
+
#define ABS(x) ((x) < 0 ? -(x) : (x))
-+
/* High water mark to determine when the marshalled object is dangerously deep
* and risks coring the interpreter. When the object stack gets this deep,
* raise an exception instead of continuing.
-+ * iOS requires a reduced value.
+ * On Windows debug builds, reduce this value.
++ * iOS requires a reduced value also.
*/
+ #if defined(MS_WINDOWS) && defined(_DEBUG)
+ #define MAX_MARSHAL_STACK_DEPTH 1000
+ #else
-#define MAX_MARSHAL_STACK_DEPTH 2000
-+#if TARGET_OS_IPHONE
-+# define MAX_MARSHAL_STACK_DEPTH 1500
-+#else
-+# define MAX_MARSHAL_STACK_DEPTH 2000
-+#endif /* TARGET_OS_IPHONE */
++# if TARGET_OS_IPHONE
++# define MAX_MARSHAL_STACK_DEPTH 1500
++# else
++# define MAX_MARSHAL_STACK_DEPTH 2000
++# endif /* TARGET_OS_IPHONE */
+ #endif
#define TYPE_NULL '0'
- #define TYPE_NONE 'N'
diff -Nru orig/Tools/iOS-test/app/iOS-test/main.py modified/Tools/iOS-test/app/iOS-test/main.py
--- orig/Tools/iOS-test/app/iOS-test/main.py 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/iOS-test/app/iOS-test/main.py 2016-07-05 13:03:10.000000000 +0800
++++ modified/Tools/iOS-test/app/iOS-test/main.py 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,14 @@
+from __future__ import print_function
+
@@ -66174,13 +66229,13 @@ diff -Nru orig/Tools/iOS-test/app/iOS-test/main.py modified/Tools/iOS-test/app/i
+
diff -Nru orig/Tools/iOS-test/app_packages/README modified/Tools/iOS-test/app_packages/README
--- orig/Tools/iOS-test/app_packages/README 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/iOS-test/app_packages/README 2016-07-04 11:50:21.000000000 +0800
++++ modified/Tools/iOS-test/app_packages/README 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1 @@
+This directory exists so that 3rd party packages can be installed here.
\ No newline at end of file
diff -Nru orig/Tools/iOS-test/iOS-test/Images.xcassets/AppIcon.appiconset/Contents.json modified/Tools/iOS-test/iOS-test/Images.xcassets/AppIcon.appiconset/Contents.json
--- orig/Tools/iOS-test/iOS-test/Images.xcassets/AppIcon.appiconset/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/iOS-test/iOS-test/Images.xcassets/AppIcon.appiconset/Contents.json 2016-07-04 11:50:21.000000000 +0800
++++ modified/Tools/iOS-test/iOS-test/Images.xcassets/AppIcon.appiconset/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,58 @@
+{
+ "images" : [
@@ -66243,7 +66298,7 @@ diff -Nru orig/Tools/iOS-test/iOS-test/Images.xcassets/AppIcon.appiconset/Conten
\ No newline at end of file
diff -Nru orig/Tools/iOS-test/iOS-test/Images.xcassets/LaunchImage.launchimage/Contents.json modified/Tools/iOS-test/iOS-test/Images.xcassets/LaunchImage.launchimage/Contents.json
--- orig/Tools/iOS-test/iOS-test/Images.xcassets/LaunchImage.launchimage/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/iOS-test/iOS-test/Images.xcassets/LaunchImage.launchimage/Contents.json 2016-07-04 11:50:21.000000000 +0800
++++ modified/Tools/iOS-test/iOS-test/Images.xcassets/LaunchImage.launchimage/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,51 @@
+{
+ "images" : [
@@ -66299,12 +66354,12 @@ diff -Nru orig/Tools/iOS-test/iOS-test/Images.xcassets/LaunchImage.launchimage/C
\ No newline at end of file
diff -Nru orig/Tools/iOS-test/iOS-test/en.lproj/InfoPlist.strings modified/Tools/iOS-test/iOS-test/en.lproj/InfoPlist.strings
--- orig/Tools/iOS-test/iOS-test/en.lproj/InfoPlist.strings 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/iOS-test/iOS-test/en.lproj/InfoPlist.strings 2016-07-04 11:50:21.000000000 +0800
++++ modified/Tools/iOS-test/iOS-test/en.lproj/InfoPlist.strings 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1 @@
+/* Localized versions of Info.plist keys */
diff -Nru orig/Tools/iOS-test/iOS-test/iOS-test-Info.plist modified/Tools/iOS-test/iOS-test/iOS-test-Info.plist
--- orig/Tools/iOS-test/iOS-test/iOS-test-Info.plist 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/iOS-test/iOS-test/iOS-test-Info.plist 2016-07-04 11:50:21.000000000 +0800
++++ modified/Tools/iOS-test/iOS-test/iOS-test-Info.plist 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,45 @@
+
+
@@ -66353,7 +66408,7 @@ diff -Nru orig/Tools/iOS-test/iOS-test/iOS-test-Info.plist modified/Tools/iOS-te
+
diff -Nru orig/Tools/iOS-test/iOS-test/iOS-test-Prefix.pch modified/Tools/iOS-test/iOS-test/iOS-test-Prefix.pch
--- orig/Tools/iOS-test/iOS-test/iOS-test-Prefix.pch 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/iOS-test/iOS-test/iOS-test-Prefix.pch 2016-07-04 11:50:21.000000000 +0800
++++ modified/Tools/iOS-test/iOS-test/iOS-test-Prefix.pch 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,16 @@
+//
+// Prefix header
@@ -66374,7 +66429,7 @@ diff -Nru orig/Tools/iOS-test/iOS-test/iOS-test-Prefix.pch modified/Tools/iOS-te
\ No newline at end of file
diff -Nru orig/Tools/iOS-test/iOS-test/main.m modified/Tools/iOS-test/iOS-test/main.m
--- orig/Tools/iOS-test/iOS-test/main.m 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/iOS-test/iOS-test/main.m 2016-07-06 17:09:36.000000000 +0800
++++ modified/Tools/iOS-test/iOS-test/main.m 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,136 @@
+//
+// main.m
@@ -66515,7 +66570,7 @@ diff -Nru orig/Tools/iOS-test/iOS-test/main.m modified/Tools/iOS-test/iOS-test/m
\ No newline at end of file
diff -Nru orig/Tools/iOS-test/iOS-test.xcodeproj/project.pbxproj modified/Tools/iOS-test/iOS-test.xcodeproj/project.pbxproj
--- orig/Tools/iOS-test/iOS-test.xcodeproj/project.pbxproj 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/iOS-test/iOS-test.xcodeproj/project.pbxproj 2016-07-06 10:56:08.000000000 +0800
++++ modified/Tools/iOS-test/iOS-test.xcodeproj/project.pbxproj 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,369 @@
+// !$*UTF8*$!
+{
@@ -66886,10 +66941,9 @@ diff -Nru orig/Tools/iOS-test/iOS-test.xcodeproj/project.pbxproj modified/Tools/
+ };
+ rootObject = 60796EDA19190F4100A9926B /* Project object */;
+}
-Binary files orig/Tools/tvOS-test/.DS_Store and modified/Tools/tvOS-test/.DS_Store differ
diff -Nru orig/Tools/tvOS-test/app/README modified/Tools/tvOS-test/app/README
--- orig/Tools/tvOS-test/app/README 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/app/README 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/app/README 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,3 @@
+Your application code should be placed in this directory.
+
@@ -66897,7 +66951,7 @@ diff -Nru orig/Tools/tvOS-test/app/README modified/Tools/tvOS-test/app/README
\ No newline at end of file
diff -Nru orig/Tools/tvOS-test/app/tvOS-test/main.py modified/Tools/tvOS-test/app/tvOS-test/main.py
--- orig/Tools/tvOS-test/app/tvOS-test/main.py 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/app/tvOS-test/main.py 2016-07-06 22:34:35.000000000 +0800
++++ modified/Tools/tvOS-test/app/tvOS-test/main.py 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,14 @@
+from __future__ import print_function
+
@@ -66915,14 +66969,12 @@ diff -Nru orig/Tools/tvOS-test/app/tvOS-test/main.py modified/Tools/tvOS-test/ap
+
diff -Nru orig/Tools/tvOS-test/app_packages/README modified/Tools/tvOS-test/app_packages/README
--- orig/Tools/tvOS-test/app_packages/README 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/app_packages/README 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/app_packages/README 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1 @@
+This directory exists so that 3rd party packages can be installed here.
-Binary files orig/Tools/tvOS-test/tvOS-test/.DS_Store and modified/Tools/tvOS-test/tvOS-test/.DS_Store differ
-Binary files orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/.DS_Store and modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/.DS_Store differ
diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json
--- orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,13 @@
+{
+ "images" : [
@@ -66938,10 +66990,9 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Im
+ }
+}
\ No newline at end of file
-Binary files orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/large.png and modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/large.png differ
diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json
--- orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,6 @@
+{
+ "info" : {
@@ -66952,7 +67003,7 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Im
\ No newline at end of file
diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json
--- orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,17 @@
+{
+ "layers" : [
@@ -66973,7 +67024,7 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Im
+}
diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json
--- orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,13 @@
+{
+ "images" : [
@@ -66989,10 +67040,9 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Im
+ }
+}
\ No newline at end of file
-Binary files orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/large.png and modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/large.png differ
diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json
--- orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,6 @@
+{
+ "info" : {
@@ -67003,7 +67053,7 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Im
\ No newline at end of file
diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json
--- orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,13 @@
+{
+ "images" : [
@@ -67019,10 +67069,9 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Im
+ }
+}
\ No newline at end of file
-Binary files orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/large.png and modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/large.png differ
diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json
--- orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,6 @@
+{
+ "info" : {
@@ -67033,7 +67082,7 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Im
\ No newline at end of file
diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json
--- orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,13 @@
+{
+ "images" : [
@@ -67049,10 +67098,9 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Im
+ }
+}
\ No newline at end of file
-Binary files orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/small.png and modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/small.png differ
diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json
--- orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,6 @@
+{
+ "info" : {
@@ -67063,7 +67111,7 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Im
\ No newline at end of file
diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json
--- orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,17 @@
+{
+ "layers" : [
@@ -67084,7 +67132,7 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Im
+}
diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json
--- orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,13 @@
+{
+ "images" : [
@@ -67100,10 +67148,9 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Im
+ }
+}
\ No newline at end of file
-Binary files orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/small.png and modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/small.png differ
diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json
--- orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,6 @@
+{
+ "info" : {
@@ -67114,7 +67161,7 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Im
\ No newline at end of file
diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json
--- orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,13 @@
+{
+ "images" : [
@@ -67130,10 +67177,9 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Im
+ }
+}
\ No newline at end of file
-Binary files orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/small.png and modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/small.png differ
diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json
--- orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,6 @@
+{
+ "info" : {
@@ -67144,7 +67190,7 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Im
\ No newline at end of file
diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json
--- orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,26 @@
+{
+ "assets" : [
@@ -67173,10 +67219,9 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Im
+ }
+}
\ No newline at end of file
-Binary files orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/.DS_Store and modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/.DS_Store differ
diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json
--- orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,13 @@
+{
+ "images" : [
@@ -67192,10 +67237,9 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Im
+ }
+}
\ No newline at end of file
-Binary files orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/shelf.png and modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/shelf.png differ
diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/Contents.json modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/Contents.json
--- orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/Contents.json 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,6 @@
+{
+ "info" : {
@@ -67206,7 +67250,7 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/Contents.json modified/
\ No newline at end of file
diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/LaunchImage.launchimage/Contents.json modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/LaunchImage.launchimage/Contents.json
--- orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/LaunchImage.launchimage/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/LaunchImage.launchimage/Contents.json 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/LaunchImage.launchimage/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,16 @@
+{
+ "images" : [
@@ -67225,10 +67269,9 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/LaunchImage.launchimage
+ }
+}
\ No newline at end of file
-Binary files orig/Tools/tvOS-test/tvOS-test/Assets.xcassets/LaunchImage.launchimage/launch.png and modified/Tools/tvOS-test/tvOS-test/Assets.xcassets/LaunchImage.launchimage/launch.png differ
diff -Nru orig/Tools/tvOS-test/tvOS-test/Base.lproj/Main.storyboard modified/Tools/tvOS-test/tvOS-test/Base.lproj/Main.storyboard
--- orig/Tools/tvOS-test/tvOS-test/Base.lproj/Main.storyboard 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Base.lproj/Main.storyboard 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Base.lproj/Main.storyboard 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,25 @@
+
+
@@ -67257,7 +67300,7 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Base.lproj/Main.storyboard modified/Too
+
diff -Nru orig/Tools/tvOS-test/tvOS-test/Info.plist modified/Tools/tvOS-test/tvOS-test/Info.plist
--- orig/Tools/tvOS-test/tvOS-test/Info.plist 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/Info.plist 2016-07-06 22:20:13.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/Info.plist 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,32 @@
+
+
@@ -67293,7 +67336,7 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/Info.plist modified/Tools/tvOS-test/tvO
+
diff -Nru orig/Tools/tvOS-test/tvOS-test/main.m modified/Tools/tvOS-test/tvOS-test/main.m
--- orig/Tools/tvOS-test/tvOS-test/main.m 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test/main.m 2016-07-06 22:22:39.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test/main.m 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,136 @@
+//
+// main.m
@@ -67433,7 +67476,7 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test/main.m modified/Tools/tvOS-test/tvOS-te
+}
diff -Nru orig/Tools/tvOS-test/tvOS-test.xcodeproj/project.pbxproj modified/Tools/tvOS-test/tvOS-test.xcodeproj/project.pbxproj
--- orig/Tools/tvOS-test/tvOS-test.xcodeproj/project.pbxproj 1970-01-01 08:00:00.000000000 +0800
-+++ modified/Tools/tvOS-test/tvOS-test.xcodeproj/project.pbxproj 2016-07-06 22:29:04.000000000 +0800
++++ modified/Tools/tvOS-test/tvOS-test.xcodeproj/project.pbxproj 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,356 @@
+// !$*UTF8*$!
+{
@@ -67792,11 +67835,11 @@ diff -Nru orig/Tools/tvOS-test/tvOS-test.xcodeproj/project.pbxproj modified/Tool
+ rootObject = 6023B2A11C28BA7A006F2562 /* Project object */;
+}
diff -Nru orig/config.sub modified/config.sub
---- orig/config.sub 2016-06-26 05:49:32.000000000 +0800
-+++ modified/config.sub 2016-07-06 16:22:05.000000000 +0800
-@@ -1512,6 +1512,12 @@
+--- orig/config.sub 2017-01-27 19:03:00.000000000 +0800
++++ modified/config.sub 2017-01-27 19:03:44.000000000 +0800
+@@ -1543,6 +1543,12 @@
;;
- -nacl*)
+ -ios)
;;
+ -ios*)
+ ;;
@@ -67808,9 +67851,9 @@ diff -Nru orig/config.sub modified/config.sub
;;
*)
diff -Nru orig/configure modified/configure
---- orig/configure 2016-06-26 05:49:32.000000000 +0800
-+++ modified/configure 2016-07-06 16:05:43.000000000 +0800
-@@ -3219,6 +3219,15 @@
+--- orig/configure 2017-01-27 19:03:00.000000000 +0800
++++ modified/configure 2017-01-27 19:03:44.000000000 +0800
+@@ -3245,6 +3245,15 @@
*-*-cygwin*)
ac_sys_system=Cygwin
;;
@@ -67826,7 +67869,7 @@ diff -Nru orig/configure modified/configure
*)
# for now, limit cross builds to known configurations
MACHDEP="unknown"
-@@ -3262,6 +3271,15 @@
+@@ -3288,6 +3297,15 @@
_host_cpu=$host_cpu
esac
;;
@@ -67842,7 +67885,7 @@ diff -Nru orig/configure modified/configure
*-*-cygwin*)
_host_cpu=
;;
-@@ -3341,6 +3359,13 @@
+@@ -3367,6 +3385,13 @@
define_xopen_source=no;;
Darwin/1[0-9].*)
define_xopen_source=no;;
@@ -67856,7 +67899,7 @@ diff -Nru orig/configure modified/configure
# On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
# used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
# or has another value. By not (re)defining it, the defaults come in place.
-@@ -16319,7 +16344,17 @@
+@@ -16469,7 +16494,17 @@
echo "creating Modules/Setup.local"
if test ! -f Modules/Setup.local
then
@@ -67876,9 +67919,9 @@ diff -Nru orig/configure modified/configure
echo "creating Makefile"
diff -Nru orig/configure.ac modified/configure.ac
---- orig/configure.ac 2016-06-26 05:49:32.000000000 +0800
-+++ modified/configure.ac 2016-07-06 16:06:02.000000000 +0800
-@@ -50,7 +50,7 @@
+--- orig/configure.ac 2017-01-27 19:03:00.000000000 +0800
++++ modified/configure.ac 2017-01-27 19:03:44.000000000 +0800
+@@ -53,7 +53,7 @@
dnl Last slash shouldn't be stripped if prefix=/
if test "$prefix" != "/"; then
prefix=`echo "$prefix" | sed -e 's/\/$//g'`
@@ -67887,7 +67930,7 @@ diff -Nru orig/configure.ac modified/configure.ac
dnl This is for stuff that absolutely must end up in pyconfig.h.
dnl Please use pyport.h instead, if possible.
-@@ -135,7 +135,7 @@
+@@ -138,7 +138,7 @@
fi
;;
esac
@@ -67896,7 +67939,7 @@ diff -Nru orig/configure.ac modified/configure.ac
],[
UNIVERSALSDK=
enable_universalsdk=
-@@ -193,7 +193,7 @@
+@@ -196,7 +196,7 @@
AS_HELP_STRING([--enable-framework@<:@=INSTALLDIR@:>@], [Build (MacOSX|Darwin) framework]),
[
case $enableval in
@@ -67905,7 +67948,7 @@ diff -Nru orig/configure.ac modified/configure.ac
enableval=/Library/Frameworks
esac
case $enableval in
-@@ -248,7 +248,7 @@
+@@ -251,7 +251,7 @@
FRAMEWORKINSTALLAPPSPREFIX="${MDIR}/Applications"
if test "${prefix}" = "NONE"; then
@@ -67914,7 +67957,7 @@ diff -Nru orig/configure.ac modified/configure.ac
# --prefix option, but wants to install
# the framework in a non-default location,
# ensure that the compatibility links get
-@@ -323,6 +323,15 @@
+@@ -326,6 +326,15 @@
*-*-cygwin*)
ac_sys_system=Cygwin
;;
@@ -67930,7 +67973,7 @@ diff -Nru orig/configure.ac modified/configure.ac
*)
# for now, limit cross builds to known configurations
MACHDEP="unknown"
-@@ -366,6 +375,15 @@
+@@ -369,6 +378,15 @@
_host_cpu=$host_cpu
esac
;;
@@ -67946,7 +67989,7 @@ diff -Nru orig/configure.ac modified/configure.ac
*-*-cygwin*)
_host_cpu=
;;
-@@ -376,7 +394,7 @@
+@@ -379,7 +397,7 @@
esac
_PYTHON_HOST_PLATFORM="$MACHDEP${_host_cpu:+-$_host_cpu}"
fi
@@ -67955,7 +67998,7 @@ diff -Nru orig/configure.ac modified/configure.ac
# Some systems cannot stand _XOPEN_SOURCE being defined at all; they
# disable features if it is defined, without any means to access these
# features as extensions. For these systems, we skip the definition of
-@@ -393,7 +411,7 @@
+@@ -396,7 +414,7 @@
# Reconfirmed for OpenBSD 3.3 by Zachary Hamm, for 3.4 by Jason Ish.
# In addition, Stefan Krah confirms that issue #1244610 exists through
# OpenBSD 4.6, but is fixed in 4.7.
@@ -67964,7 +68007,7 @@ diff -Nru orig/configure.ac modified/configure.ac
define_xopen_source=no
# OpenBSD undoes our definition of __BSD_VISIBLE if _XOPEN_SOURCE is
# also defined. This can be overridden by defining _BSD_SOURCE
-@@ -431,17 +449,24 @@
+@@ -434,17 +452,24 @@
# with _XOPEN_SOURCE and __BSD_VISIBLE does not re-enable them.
FreeBSD/4.*)
define_xopen_source=no;;
@@ -67991,7 +68034,7 @@ diff -Nru orig/configure.ac modified/configure.ac
# On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
# used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
# or has another value. By not (re)defining it, the defaults come in place.
-@@ -462,7 +487,7 @@
+@@ -465,7 +490,7 @@
if test $define_xopen_source = yes
then
@@ -68000,7 +68043,7 @@ diff -Nru orig/configure.ac modified/configure.ac
Define to the level of X/Open that your system supports)
# On Tru64 Unix 4.0F, defining _XOPEN_SOURCE also requires
-@@ -473,7 +498,7 @@
+@@ -476,7 +501,7 @@
Define to activate Unix95-and-earlier features)
AC_DEFINE(_POSIX_C_SOURCE, 200112L, Define to activate features from IEEE Stds 1003.1-2001)
@@ -68009,7 +68052,7 @@ diff -Nru orig/configure.ac modified/configure.ac
fi
#
-@@ -504,11 +529,11 @@
+@@ -507,11 +532,11 @@
if test -z "$EXTRAPLATDIR"
then
case $MACHDEP in
@@ -68023,7 +68066,7 @@ diff -Nru orig/configure.ac modified/configure.ac
EXTRAPLATDIR=""
EXTRAMACHDEPPATH=""
;;
-@@ -646,7 +671,7 @@
+@@ -649,7 +674,7 @@
AS_HELP_STRING([--with-cxx-main=],
[compile main() and link python executable with C++ compiler]),
[
@@ -68032,7 +68075,7 @@ diff -Nru orig/configure.ac modified/configure.ac
case $withval in
no) with_cxx_main=no
MAINCC='$(CC)';;
-@@ -773,7 +798,7 @@
+@@ -776,7 +801,7 @@
# systems without shared libraries, LDLIBRARY is the same as LIBRARY
# (defined in the Makefiles). On Cygwin LDLIBRARY is the import library,
# DLLLIBRARY is the shared (i.e., DLL) library.
@@ -68041,7 +68084,7 @@ diff -Nru orig/configure.ac modified/configure.ac
# RUNSHARED is used to run shared python without installed libraries
#
# INSTSONAME is the name of the shared library that will be use to install
-@@ -795,7 +820,7 @@
+@@ -798,7 +823,7 @@
# If CXX is set, and if it is needed to link a main function that was
# compiled with CXX, LINKCC is CXX instead. Always using CXX is undesirable:
# python might then depend on the C++ runtime
@@ -68050,7 +68093,7 @@ diff -Nru orig/configure.ac modified/configure.ac
# linking.
AC_SUBST(LINKCC)
AC_MSG_CHECKING(LINKCC)
-@@ -842,7 +867,7 @@
+@@ -845,7 +870,7 @@
AS_HELP_STRING([--enable-shared], [disable/enable building shared python library]))
if test -z "$enable_shared"
@@ -68059,7 +68102,7 @@ diff -Nru orig/configure.ac modified/configure.ac
case $ac_sys_system in
CYGWIN* | atheos*)
enable_shared="yes";;
-@@ -887,7 +912,7 @@
+@@ -890,7 +915,7 @@
BLDLIBRARY=''
else
BLDLIBRARY='$(LDLIBRARY)'
@@ -68068,7 +68111,7 @@ diff -Nru orig/configure.ac modified/configure.ac
# Other platforms follow
if test $enable_shared = "yes"; then
-@@ -1038,14 +1063,14 @@
+@@ -1027,14 +1052,14 @@
# Check for --with-pydebug
AC_MSG_CHECKING(for --with-pydebug)
@@ -68088,7 +68131,7 @@ diff -Nru orig/configure.ac modified/configure.ac
Py_DEBUG='true'
else AC_MSG_RESULT(no); Py_DEBUG='false'
fi],
-@@ -1160,7 +1185,7 @@
+@@ -1149,7 +1174,7 @@
AC_MSG_CHECKING(which compiler should be used)
case "${UNIVERSALSDK}" in
*/MacOSX10.4u.sdk)
@@ -68097,7 +68140,7 @@ diff -Nru orig/configure.ac modified/configure.ac
# compiler is gcc, otherwise the user will get very
# confusing error messages when building on OSX 10.6
CC=gcc-4.0
-@@ -1183,9 +1208,9 @@
+@@ -1172,9 +1197,9 @@
cur_target=10.3
if test ${enable_universalsdk}; then
if test "${UNIVERSAL_ARCHS}" = "all"; then
@@ -68110,7 +68153,7 @@ diff -Nru orig/configure.ac modified/configure.ac
# 4-way builds make sense.
cur_target='10.5'
-@@ -1208,8 +1233,8 @@
+@@ -1197,8 +1222,8 @@
fi
fi
CONFIGURE_MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET-${cur_target}}
@@ -68121,7 +68164,7 @@ diff -Nru orig/configure.ac modified/configure.ac
# environment with a value that is the same as what we'll use
# in the Makefile to ensure that we'll get the same compiler
# environment during configure and build time.
-@@ -1251,7 +1276,7 @@
+@@ -1240,7 +1265,7 @@
CFLAGS="${UNIVERSAL_ARCH_FLAGS} ${CFLAGS}"
@@ -68130,7 +68173,7 @@ diff -Nru orig/configure.ac modified/configure.ac
then
CPPFLAGS="-isysroot ${UNIVERSALSDK} ${CPPFLAGS}"
LDFLAGS="-isysroot ${UNIVERSALSDK} ${LDFLAGS}"
-@@ -1490,7 +1515,7 @@
+@@ -1556,7 +1581,7 @@
AC_MSG_RESULT($ac_cv_pthread_is_default)
@@ -68139,7 +68182,7 @@ diff -Nru orig/configure.ac modified/configure.ac
then
ac_cv_kpthread=no
else
-@@ -1589,14 +1614,14 @@
+@@ -1655,14 +1680,14 @@
if test "$ac_cv_kpthread" = "yes"
then
@@ -68156,7 +68199,7 @@ diff -Nru orig/configure.ac modified/configure.ac
CXX="$CXX -pthread"
ac_cv_cxx_thread=yes
fi
-@@ -1715,11 +1740,11 @@
+@@ -1781,11 +1806,11 @@
# These may affect some typedefs
case $ac_sys_system/$ac_sys_release in
AIX*)
@@ -68170,7 +68213,7 @@ diff -Nru orig/configure.ac modified/configure.ac
[This must be defined on some systems to enable large file support.])
AC_DEFINE(_FILE_OFFSET_BITS, 64,
[This must be set to 64 on some systems to enable large file support.])
-@@ -1781,7 +1806,7 @@
+@@ -1847,7 +1872,7 @@
AC_MSG_CHECKING(for long long support)
have_long_long=no
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[long long x; x = (long long)0;]])],[
@@ -68179,7 +68222,7 @@ diff -Nru orig/configure.ac modified/configure.ac
have_long_long=yes
],[])
AC_MSG_RESULT($have_long_long)
-@@ -1803,7 +1828,7 @@
+@@ -1869,7 +1894,7 @@
AC_MSG_CHECKING(for _Bool support)
have_c99_bool=no
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[_Bool x; x = (_Bool)0;]])],[
@@ -68188,7 +68231,7 @@ diff -Nru orig/configure.ac modified/configure.ac
have_c99_bool=yes
],[])
AC_MSG_RESULT($have_c99_bool)
-@@ -1811,8 +1836,8 @@
+@@ -1877,8 +1902,8 @@
AC_CHECK_SIZEOF(_Bool, 1)
fi
@@ -68199,7 +68242,7 @@ diff -Nru orig/configure.ac modified/configure.ac
[], [#ifdef HAVE_STDINT_H
#include
#endif
-@@ -1831,7 +1856,7 @@
+@@ -1897,7 +1922,7 @@
then
if test "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \
"$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then
@@ -68208,7 +68251,7 @@ diff -Nru orig/configure.ac modified/configure.ac
[Defined to enable large file support when an off_t is bigger than a long
and long long is available and at least as big as an off_t. You may need
to add some flags for configuration and compilation to enable this mode.
-@@ -1882,7 +1907,7 @@
+@@ -1948,7 +1973,7 @@
AS_HELP_STRING([--enable-toolbox-glue], [disable/enable MacOSX glue code for extensions]))
if test -z "$enable_toolbox_glue"
@@ -68217,7 +68260,7 @@ diff -Nru orig/configure.ac modified/configure.ac
case $ac_sys_system/$ac_sys_release in
Darwin/*)
enable_toolbox_glue="yes";;
-@@ -1907,7 +1932,7 @@
+@@ -1973,7 +1998,7 @@
AC_SUBST(OTHER_LIBTOOL_OPT)
case $ac_sys_system/$ac_sys_release in
@@ -68226,7 +68269,7 @@ diff -Nru orig/configure.ac modified/configure.ac
OTHER_LIBTOOL_OPT="-prebind -seg1addr 0x10000000"
;;
Darwin/*)
-@@ -1918,7 +1943,7 @@
+@@ -1984,7 +2009,7 @@
AC_SUBST(LIBTOOL_CRUFT)
case $ac_sys_system/$ac_sys_release in
@@ -68235,7 +68278,7 @@ diff -Nru orig/configure.ac modified/configure.ac
LIBTOOL_CRUFT="-framework System -lcc_dynamic"
if test "${enable_universalsdk}"; then
:
-@@ -1932,7 +1957,7 @@
+@@ -1998,7 +2023,7 @@
if test ${gcc_version} '<' 4.0
then
LIBTOOL_CRUFT="-lcc_dynamic"
@@ -68244,7 +68287,7 @@ diff -Nru orig/configure.ac modified/configure.ac
LIBTOOL_CRUFT=""
fi
AC_RUN_IFELSE([AC_LANG_SOURCE([[
-@@ -1946,14 +1971,14 @@
+@@ -2012,14 +2037,14 @@
}
}
]])],[ac_osx_32bit=yes],[ac_osx_32bit=no],[ac_osx_32bit=yes])
@@ -68264,7 +68307,7 @@ diff -Nru orig/configure.ac modified/configure.ac
;;
*)
AC_MSG_ERROR([Unexpected output of 'arch' on OSX])
-@@ -1961,11 +1986,11 @@
+@@ -2027,11 +2052,11 @@
esac
else
case `/usr/bin/arch` in
@@ -68280,7 +68323,7 @@ diff -Nru orig/configure.ac modified/configure.ac
;;
*)
AC_MSG_ERROR([Unexpected output of 'arch' on OSX])
-@@ -1984,9 +2009,9 @@
+@@ -2050,9 +2075,9 @@
if test "$enable_framework"
then
BASECFLAGS="$BASECFLAGS -fno-common -dynamic"
@@ -68292,7 +68335,7 @@ diff -Nru orig/configure.ac modified/configure.ac
[Define if you want to produce an OpenStep/Rhapsody framework
(shared library plus accessory files).])
AC_MSG_RESULT(yes)
-@@ -2001,7 +2026,7 @@
+@@ -2067,7 +2092,7 @@
AC_MSG_CHECKING(for dyld)
case $ac_sys_system/$ac_sys_release in
Darwin/*)
@@ -68301,7 +68344,7 @@ diff -Nru orig/configure.ac modified/configure.ac
[Define if you want to use the new-style (Openstep, Rhapsody, MacOS)
dynamic linker (dyld) instead of the old-style (NextStep) dynamic
linker (rld). Dyld is necessary to support frameworks.])
-@@ -2067,7 +2092,7 @@
+@@ -2133,7 +2158,7 @@
;;
IRIX/5*) LDSHARED="ld -shared";;
IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
@@ -68310,7 +68353,7 @@ diff -Nru orig/configure.ac modified/configure.ac
if test "$GCC" = "yes" ; then
LDSHARED='$(CC) -shared'
LDCXXSHARED='$(CXX) -shared'
-@@ -2251,7 +2276,7 @@
+@@ -2317,7 +2342,7 @@
BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
# -u libsys_s pulls in all symbols in libsys
@@ -68319,7 +68362,7 @@ diff -Nru orig/configure.ac modified/configure.ac
# -u _PyMac_Error is needed to pull in the mac toolbox glue,
# which is
# not used by the core itself but which needs to be in the core so
-@@ -2269,7 +2294,7 @@
+@@ -2335,7 +2360,7 @@
OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
@@ -68328,7 +68371,7 @@ diff -Nru orig/configure.ac modified/configure.ac
if [[ "`$CC -dM -E - @\..*) DYNLOADFILE="dynload_next.o";;
@@ -68406,7 +68449,7 @@ diff -Nru orig/configure.ac modified/configure.ac
*)
# use dynload_shlib.c and dlopen() if we have it; otherwise stub
# out any dynamic loading
-@@ -3206,12 +3233,12 @@
+@@ -3269,12 +3296,12 @@
dnl to revert to a more traditional unix behaviour and make it possible to
dnl override the system libz with a local static library of libz. Temporarily
dnl add that flag to our CFLAGS as well to ensure that we check the version
@@ -68422,7 +68465,7 @@ diff -Nru orig/configure.ac modified/configure.ac
_CUR_CFLAGS="${CFLAGS}"
_CUR_LDFLAGS="${LDFLAGS}"
CFLAGS="${CFLAGS} -Wl,-search_paths_first"
-@@ -3222,7 +3249,7 @@
+@@ -3285,7 +3312,7 @@
AC_CHECK_LIB(z, inflateCopy, AC_DEFINE(HAVE_ZLIB_COPY, 1, [Define if the zlib library has inflateCopy]))
case $ac_sys_system/$ac_sys_release in
@@ -68431,7 +68474,7 @@ diff -Nru orig/configure.ac modified/configure.ac
CFLAGS="${_CUR_CFLAGS}"
LDFLAGS="${_CUR_LDFLAGS}"
;;
-@@ -3276,14 +3303,14 @@
+@@ -3339,14 +3366,14 @@
# check for openpty and forkpty
@@ -68449,7 +68492,7 @@ diff -Nru orig/configure.ac modified/configure.ac
[AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lutil"],
AC_CHECK_LIB(bsd,forkpty, [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lbsd"])
)
-@@ -3296,7 +3323,7 @@
+@@ -3359,7 +3386,7 @@
AC_CHECK_FUNCS(fseek64 fseeko fstatvfs ftell64 ftello statvfs)
AC_REPLACE_FUNCS(dup2 getcwd strdup)
@@ -68458,7 +68501,7 @@ diff -Nru orig/configure.ac modified/configure.ac
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[getpgrp(0);]])],
[AC_DEFINE(GETPGRP_HAVE_ARG, 1, [Define if getpgrp() must be called as getpgrp(0).])],
[])
-@@ -3306,7 +3333,7 @@
+@@ -3369,7 +3396,7 @@
[AC_DEFINE(SETPGRP_HAVE_ARG, 1, [Define if setpgrp() must be called as setpgrp(0, 0).])],
[])
)
@@ -68467,7 +68510,7 @@ diff -Nru orig/configure.ac modified/configure.ac
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]],
[[gettimeofday((struct timeval*)0,(struct timezone*)0);]])],
[],
-@@ -3336,7 +3363,7 @@
+@@ -3399,7 +3426,7 @@
])
# On OSF/1 V5.1, getaddrinfo is available, but a define
@@ -68476,7 +68519,7 @@ diff -Nru orig/configure.ac modified/configure.ac
AC_MSG_CHECKING(for getaddrinfo)
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include
-@@ -3496,7 +3523,7 @@
+@@ -3561,7 +3588,7 @@
]], [[;]])],[
AC_DEFINE(SYS_SELECT_WITH_SYS_TIME, 1,
[Define if you can safely include both and
@@ -68485,7 +68528,7 @@ diff -Nru orig/configure.ac modified/configure.ac
was_it_defined=yes
],[])
AC_MSG_RESULT($was_it_defined)
-@@ -3547,8 +3574,8 @@
+@@ -3612,8 +3639,8 @@
have_prototypes=no
AC_MSG_CHECKING(for prototypes)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[int foo(int x) { return 0; }]], [[return foo(10);]])],
@@ -68496,7 +68539,7 @@ diff -Nru orig/configure.ac modified/configure.ac
have_prototypes=yes],
[]
)
-@@ -3569,7 +3596,7 @@
+@@ -3634,7 +3661,7 @@
]], [[return foo(10, "", 3.14);]])],[
AC_DEFINE(HAVE_STDARG_PROTOTYPES, 1,
[Define if your compiler supports variable length function prototypes
@@ -68505,7 +68548,7 @@ diff -Nru orig/configure.ac modified/configure.ac
works=yes
],[])
AC_MSG_RESULT($works)
-@@ -3604,7 +3631,7 @@
+@@ -3669,7 +3696,7 @@
#include
#endif
]], [[va_list list1, list2; list1 = list2;]])],[],[
@@ -68514,7 +68557,7 @@ diff -Nru orig/configure.ac modified/configure.ac
va_list_is_array=yes
])
AC_MSG_RESULT($va_list_is_array)
-@@ -3699,9 +3726,9 @@
+@@ -3764,9 +3791,9 @@
AS_HELP_STRING([--with-fpectl], [enable SIGFPE catching]),
[
if test "$withval" != no
@@ -68526,7 +68569,7 @@ diff -Nru orig/configure.ac modified/configure.ac
AC_MSG_RESULT(yes)
else AC_MSG_RESULT(no)
fi],
-@@ -4016,8 +4043,8 @@
+@@ -4081,8 +4108,8 @@
# check for wchar.h
AC_CHECK_HEADER(wchar.h, [
@@ -68537,7 +68580,7 @@ diff -Nru orig/configure.ac modified/configure.ac
wchar_h="yes"
],
wchar_h="no"
-@@ -4060,10 +4087,10 @@
+@@ -4125,10 +4152,10 @@
[ac_cv_wchar_t_signed=yes])])
AC_MSG_RESULT($ac_cv_wchar_t_signed)
fi
@@ -68550,7 +68593,7 @@ diff -Nru orig/configure.ac modified/configure.ac
AS_HELP_STRING([--enable-unicode@<:@=ucs@<:@24@:>@@:>@], [Enable Unicode strings (default is ucs2)]),
[],
[enable_unicode=yes])
-@@ -4312,7 +4339,7 @@
+@@ -4377,7 +4404,7 @@
[Define if poll() sets errno on invalid file descriptors.])
fi
@@ -68559,7 +68602,7 @@ diff -Nru orig/configure.ac modified/configure.ac
# (which is not required by ISO C or UNIX spec) and/or if we support
# tzname[]
AC_STRUCT_TIMEZONE
-@@ -4338,7 +4365,7 @@
+@@ -4403,7 +4430,7 @@
tm->tm_zone does not exist since it is the alternative way
of getting timezone info.
@@ -68568,7 +68611,7 @@ diff -Nru orig/configure.ac modified/configure.ac
after New Year's Day.
*/
-@@ -4351,7 +4378,7 @@
+@@ -4416,7 +4443,7 @@
exit(1);
#if HAVE_TZNAME
/* For UTC, tzname[1] is sometimes "", sometimes " " */
@@ -68577,7 +68620,7 @@ diff -Nru orig/configure.ac modified/configure.ac
(tzname[1][0] != 0 && tzname[1][0] != ' '))
exit(1);
#endif
-@@ -4469,7 +4496,7 @@
+@@ -4534,7 +4561,7 @@
if test "$ac_cv_window_has_flags" = yes
then
@@ -68586,7 +68629,7 @@ diff -Nru orig/configure.ac modified/configure.ac
[Define if WINDOW in curses.h offers a field _flags.])
fi
-@@ -4672,7 +4699,7 @@
+@@ -4737,7 +4764,7 @@
fi
done
@@ -68595,7 +68638,7 @@ diff -Nru orig/configure.ac modified/configure.ac
# Check for --with-computed-gotos
AC_MSG_CHECKING(for --with-computed-gotos)
AC_ARG_WITH(computed-gotos,
-@@ -4680,15 +4707,15 @@
+@@ -4745,15 +4772,15 @@
[Use computed gotos in evaluation loop (enabled by default on supported compilers)]),
[
if test "$withval" = yes
@@ -68615,7 +68658,7 @@ diff -Nru orig/configure.ac modified/configure.ac
AC_MSG_RESULT(no)
fi
],
-@@ -4753,7 +4780,17 @@
+@@ -4818,7 +4845,17 @@
echo "creating Modules/Setup.local"
if test ! -f Modules/Setup.local
then
@@ -68636,7 +68679,7 @@ diff -Nru orig/configure.ac modified/configure.ac
echo "creating Makefile"
diff -Nru orig/iOS/Makefile modified/iOS/Makefile
--- orig/iOS/Makefile 1970-01-01 08:00:00.000000000 +0800
-+++ modified/iOS/Makefile 2016-07-06 16:22:21.000000000 +0800
++++ modified/iOS/Makefile 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,248 @@
+# This is a "Meta-makefile" for building an iOS-compatible Python.framework.
+# It invokes the base makefile multiple times, once for each hardware platform
@@ -68888,7 +68931,7 @@ diff -Nru orig/iOS/Makefile modified/iOS/Makefile
+ cd $(FRAMEWORK_DIR) && ln -fs Versions/Current/Python
diff -Nru orig/iOS/README modified/iOS/README
--- orig/iOS/README 1970-01-01 08:00:00.000000000 +0800
-+++ modified/iOS/README 2016-07-06 16:43:21.000000000 +0800
++++ modified/iOS/README 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,165 @@
+====================
+Python on iOS README
@@ -69057,20 +69100,20 @@ diff -Nru orig/iOS/README modified/iOS/README
+.. _PyObjC: https://pythonhosted.org/pyobjc/
diff -Nru orig/iOS/XCode-sample/app/sample/main.py modified/iOS/XCode-sample/app/sample/main.py
--- orig/iOS/XCode-sample/app/sample/main.py 1970-01-01 08:00:00.000000000 +0800
-+++ modified/iOS/XCode-sample/app/sample/main.py 2016-07-04 11:50:21.000000000 +0800
++++ modified/iOS/XCode-sample/app/sample/main.py 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,3 @@
+
+if __name__ == '__main__':
+ print("Hello, World.")
diff -Nru orig/iOS/XCode-sample/app_packages/README modified/iOS/XCode-sample/app_packages/README
--- orig/iOS/XCode-sample/app_packages/README 1970-01-01 08:00:00.000000000 +0800
-+++ modified/iOS/XCode-sample/app_packages/README 2016-07-04 11:50:21.000000000 +0800
++++ modified/iOS/XCode-sample/app_packages/README 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1 @@
+This directory exists so that 3rd party packages can be installed here.
\ No newline at end of file
diff -Nru orig/iOS/XCode-sample/sample/Images.xcassets/AppIcon.appiconset/Contents.json modified/iOS/XCode-sample/sample/Images.xcassets/AppIcon.appiconset/Contents.json
--- orig/iOS/XCode-sample/sample/Images.xcassets/AppIcon.appiconset/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/iOS/XCode-sample/sample/Images.xcassets/AppIcon.appiconset/Contents.json 2016-07-04 11:50:21.000000000 +0800
++++ modified/iOS/XCode-sample/sample/Images.xcassets/AppIcon.appiconset/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,53 @@
+{
+ "images" : [
@@ -69128,7 +69171,7 @@ diff -Nru orig/iOS/XCode-sample/sample/Images.xcassets/AppIcon.appiconset/Conten
\ No newline at end of file
diff -Nru orig/iOS/XCode-sample/sample/Images.xcassets/LaunchImage.launchimage/Contents.json modified/iOS/XCode-sample/sample/Images.xcassets/LaunchImage.launchimage/Contents.json
--- orig/iOS/XCode-sample/sample/Images.xcassets/LaunchImage.launchimage/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/iOS/XCode-sample/sample/Images.xcassets/LaunchImage.launchimage/Contents.json 2016-07-04 11:50:21.000000000 +0800
++++ modified/iOS/XCode-sample/sample/Images.xcassets/LaunchImage.launchimage/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,51 @@
+{
+ "images" : [
@@ -69184,12 +69227,12 @@ diff -Nru orig/iOS/XCode-sample/sample/Images.xcassets/LaunchImage.launchimage/C
\ No newline at end of file
diff -Nru orig/iOS/XCode-sample/sample/en.lproj/InfoPlist.strings modified/iOS/XCode-sample/sample/en.lproj/InfoPlist.strings
--- orig/iOS/XCode-sample/sample/en.lproj/InfoPlist.strings 1970-01-01 08:00:00.000000000 +0800
-+++ modified/iOS/XCode-sample/sample/en.lproj/InfoPlist.strings 2016-07-04 11:50:21.000000000 +0800
++++ modified/iOS/XCode-sample/sample/en.lproj/InfoPlist.strings 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1 @@
+/* Localized versions of Info.plist keys */
diff -Nru orig/iOS/XCode-sample/sample/main.m modified/iOS/XCode-sample/sample/main.m
--- orig/iOS/XCode-sample/sample/main.m 1970-01-01 08:00:00.000000000 +0800
-+++ modified/iOS/XCode-sample/sample/main.m 2016-07-06 14:27:53.000000000 +0800
++++ modified/iOS/XCode-sample/sample/main.m 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,111 @@
+//
+// main.m
@@ -69305,7 +69348,7 @@ diff -Nru orig/iOS/XCode-sample/sample/main.m modified/iOS/XCode-sample/sample/m
\ No newline at end of file
diff -Nru orig/iOS/XCode-sample/sample/sample-Info.plist modified/iOS/XCode-sample/sample/sample-Info.plist
--- orig/iOS/XCode-sample/sample/sample-Info.plist 1970-01-01 08:00:00.000000000 +0800
-+++ modified/iOS/XCode-sample/sample/sample-Info.plist 2016-07-04 11:50:21.000000000 +0800
++++ modified/iOS/XCode-sample/sample/sample-Info.plist 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,45 @@
+
+
@@ -69355,7 +69398,7 @@ diff -Nru orig/iOS/XCode-sample/sample/sample-Info.plist modified/iOS/XCode-samp
\ No newline at end of file
diff -Nru orig/iOS/XCode-sample/sample/sample-Prefix.pch modified/iOS/XCode-sample/sample/sample-Prefix.pch
--- orig/iOS/XCode-sample/sample/sample-Prefix.pch 1970-01-01 08:00:00.000000000 +0800
-+++ modified/iOS/XCode-sample/sample/sample-Prefix.pch 2016-07-04 11:50:21.000000000 +0800
++++ modified/iOS/XCode-sample/sample/sample-Prefix.pch 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,16 @@
+//
+// Prefix header
@@ -69376,7 +69419,7 @@ diff -Nru orig/iOS/XCode-sample/sample/sample-Prefix.pch modified/iOS/XCode-samp
\ No newline at end of file
diff -Nru orig/iOS/XCode-sample/sample.xcodeproj/project.pbxproj modified/iOS/XCode-sample/sample.xcodeproj/project.pbxproj
--- orig/iOS/XCode-sample/sample.xcodeproj/project.pbxproj 1970-01-01 08:00:00.000000000 +0800
-+++ modified/iOS/XCode-sample/sample.xcodeproj/project.pbxproj 2016-07-04 11:50:21.000000000 +0800
++++ modified/iOS/XCode-sample/sample.xcodeproj/project.pbxproj 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,353 @@
+// !$*UTF8*$!
+{
@@ -69733,7 +69776,7 @@ diff -Nru orig/iOS/XCode-sample/sample.xcodeproj/project.pbxproj modified/iOS/XC
+}
diff -Nru orig/iOS/include/pyconfig.h modified/iOS/include/pyconfig.h
--- orig/iOS/include/pyconfig.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/iOS/include/pyconfig.h 2016-07-04 11:50:21.000000000 +0800
++++ modified/iOS/include/pyconfig.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,15 @@
+#ifdef __arm__
+#include "pyconfig-armv7.h"
@@ -69751,10 +69794,9 @@ diff -Nru orig/iOS/include/pyconfig.h modified/iOS/include/pyconfig.h
+#include "pyconfig-x86_64.h"
+#endif
\ No newline at end of file
-Binary files orig/tvOS/.DS_Store and modified/tvOS/.DS_Store differ
diff -Nru orig/tvOS/Makefile modified/tvOS/Makefile
--- orig/tvOS/Makefile 1970-01-01 08:00:00.000000000 +0800
-+++ modified/tvOS/Makefile 2016-07-06 22:32:26.000000000 +0800
++++ modified/tvOS/Makefile 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,169 @@
+# This is a "Meta-makefile" for building an tvOS-compatible Python.framework.
+# It invokes the base makefile multiple times, once for each hardware platform
@@ -69927,7 +69969,7 @@ diff -Nru orig/tvOS/Makefile modified/tvOS/Makefile
+ cd $(FRAMEWORK_DIR) && ln -fs Versions/Current/Python
diff -Nru orig/tvOS/README modified/tvOS/README
--- orig/tvOS/README 1970-01-01 08:00:00.000000000 +0800
-+++ modified/tvOS/README 2016-07-06 16:19:05.000000000 +0800
++++ modified/tvOS/README 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,161 @@
+=====================
+Python on tvOS README
@@ -70090,23 +70132,22 @@ diff -Nru orig/tvOS/README modified/tvOS/README
+.. _Rubicon ObjC: http://pybee.org/rubicon
+.. _Pyobjus: http://pyobjus.readthedocs.org/
+.. _PyObjC: https://pythonhosted.org/pyobjc/
-Binary files orig/tvOS/XCode-sample/.DS_Store and modified/tvOS/XCode-sample/.DS_Store differ
diff -Nru orig/tvOS/XCode-sample/app/sample/main.py modified/tvOS/XCode-sample/app/sample/main.py
--- orig/tvOS/XCode-sample/app/sample/main.py 1970-01-01 08:00:00.000000000 +0800
-+++ modified/tvOS/XCode-sample/app/sample/main.py 2016-07-06 14:42:24.000000000 +0800
++++ modified/tvOS/XCode-sample/app/sample/main.py 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,3 @@
+
+if __name__ == '__main__':
+ print("Hello, World.")
diff -Nru orig/tvOS/XCode-sample/app_packages/README modified/tvOS/XCode-sample/app_packages/README
--- orig/tvOS/XCode-sample/app_packages/README 1970-01-01 08:00:00.000000000 +0800
-+++ modified/tvOS/XCode-sample/app_packages/README 2016-07-06 14:42:24.000000000 +0800
++++ modified/tvOS/XCode-sample/app_packages/README 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1 @@
+This directory exists so that 3rd party packages can be installed here.
\ No newline at end of file
diff -Nru orig/tvOS/XCode-sample/sample/Images.xcassets/AppIcon.appiconset/Contents.json modified/tvOS/XCode-sample/sample/Images.xcassets/AppIcon.appiconset/Contents.json
--- orig/tvOS/XCode-sample/sample/Images.xcassets/AppIcon.appiconset/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/tvOS/XCode-sample/sample/Images.xcassets/AppIcon.appiconset/Contents.json 2016-07-06 14:42:24.000000000 +0800
++++ modified/tvOS/XCode-sample/sample/Images.xcassets/AppIcon.appiconset/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,53 @@
+{
+ "images" : [
@@ -70164,7 +70205,7 @@ diff -Nru orig/tvOS/XCode-sample/sample/Images.xcassets/AppIcon.appiconset/Conte
\ No newline at end of file
diff -Nru orig/tvOS/XCode-sample/sample/Images.xcassets/LaunchImage.launchimage/Contents.json modified/tvOS/XCode-sample/sample/Images.xcassets/LaunchImage.launchimage/Contents.json
--- orig/tvOS/XCode-sample/sample/Images.xcassets/LaunchImage.launchimage/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/tvOS/XCode-sample/sample/Images.xcassets/LaunchImage.launchimage/Contents.json 2016-07-06 14:42:24.000000000 +0800
++++ modified/tvOS/XCode-sample/sample/Images.xcassets/LaunchImage.launchimage/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,51 @@
+{
+ "images" : [
@@ -70220,12 +70261,12 @@ diff -Nru orig/tvOS/XCode-sample/sample/Images.xcassets/LaunchImage.launchimage/
\ No newline at end of file
diff -Nru orig/tvOS/XCode-sample/sample/en.lproj/InfoPlist.strings modified/tvOS/XCode-sample/sample/en.lproj/InfoPlist.strings
--- orig/tvOS/XCode-sample/sample/en.lproj/InfoPlist.strings 1970-01-01 08:00:00.000000000 +0800
-+++ modified/tvOS/XCode-sample/sample/en.lproj/InfoPlist.strings 2016-07-06 14:42:24.000000000 +0800
++++ modified/tvOS/XCode-sample/sample/en.lproj/InfoPlist.strings 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1 @@
+/* Localized versions of Info.plist keys */
diff -Nru orig/tvOS/XCode-sample/sample/main.m modified/tvOS/XCode-sample/sample/main.m
--- orig/tvOS/XCode-sample/sample/main.m 1970-01-01 08:00:00.000000000 +0800
-+++ modified/tvOS/XCode-sample/sample/main.m 2016-07-07 15:12:51.000000000 +0800
++++ modified/tvOS/XCode-sample/sample/main.m 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,111 @@
+//
+// main.m
@@ -70341,7 +70382,7 @@ diff -Nru orig/tvOS/XCode-sample/sample/main.m modified/tvOS/XCode-sample/sample
\ No newline at end of file
diff -Nru orig/tvOS/XCode-sample/sample/sample-Info.plist modified/tvOS/XCode-sample/sample/sample-Info.plist
--- orig/tvOS/XCode-sample/sample/sample-Info.plist 1970-01-01 08:00:00.000000000 +0800
-+++ modified/tvOS/XCode-sample/sample/sample-Info.plist 2016-07-06 14:42:24.000000000 +0800
++++ modified/tvOS/XCode-sample/sample/sample-Info.plist 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,45 @@
+
+
@@ -70391,7 +70432,7 @@ diff -Nru orig/tvOS/XCode-sample/sample/sample-Info.plist modified/tvOS/XCode-sa
\ No newline at end of file
diff -Nru orig/tvOS/XCode-sample/sample/sample-Prefix.pch modified/tvOS/XCode-sample/sample/sample-Prefix.pch
--- orig/tvOS/XCode-sample/sample/sample-Prefix.pch 1970-01-01 08:00:00.000000000 +0800
-+++ modified/tvOS/XCode-sample/sample/sample-Prefix.pch 2016-07-06 14:42:24.000000000 +0800
++++ modified/tvOS/XCode-sample/sample/sample-Prefix.pch 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,16 @@
+//
+// Prefix header
@@ -70412,7 +70453,7 @@ diff -Nru orig/tvOS/XCode-sample/sample/sample-Prefix.pch modified/tvOS/XCode-sa
\ No newline at end of file
diff -Nru orig/tvOS/XCode-sample/sample.xcodeproj/project.pbxproj modified/tvOS/XCode-sample/sample.xcodeproj/project.pbxproj
--- orig/tvOS/XCode-sample/sample.xcodeproj/project.pbxproj 1970-01-01 08:00:00.000000000 +0800
-+++ modified/tvOS/XCode-sample/sample.xcodeproj/project.pbxproj 2016-07-06 14:42:24.000000000 +0800
++++ modified/tvOS/XCode-sample/sample.xcodeproj/project.pbxproj 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,353 @@
+// !$*UTF8*$!
+{
@@ -70769,7 +70810,7 @@ diff -Nru orig/tvOS/XCode-sample/sample.xcodeproj/project.pbxproj modified/tvOS/
+}
diff -Nru orig/tvOS/include/pyconfig.h modified/tvOS/include/pyconfig.h
--- orig/tvOS/include/pyconfig.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/tvOS/include/pyconfig.h 2016-07-06 15:32:16.000000000 +0800
++++ modified/tvOS/include/pyconfig.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,7 @@
+#ifdef __arm64__
+#include "pyconfig-arm64.h"
@@ -70779,10 +70820,9 @@ diff -Nru orig/tvOS/include/pyconfig.h modified/tvOS/include/pyconfig.h
+#include "pyconfig-x86_64.h"
+#endif
\ No newline at end of file
-Binary files orig/watchOS/.DS_Store and modified/watchOS/.DS_Store differ
diff -Nru orig/watchOS/Makefile modified/watchOS/Makefile
--- orig/watchOS/Makefile 1970-01-01 08:00:00.000000000 +0800
-+++ modified/watchOS/Makefile 2016-07-06 22:32:24.000000000 +0800
++++ modified/watchOS/Makefile 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,169 @@
+# This is a "Meta-makefile" for building an watchOS-compatible Python.framework.
+# It invokes the base makefile multiple times, once for each hardware platform
@@ -70955,7 +70995,7 @@ diff -Nru orig/watchOS/Makefile modified/watchOS/Makefile
+ cd $(FRAMEWORK_DIR) && ln -fs Versions/Current/Python
diff -Nru orig/watchOS/README modified/watchOS/README
--- orig/watchOS/README 1970-01-01 08:00:00.000000000 +0800
-+++ modified/watchOS/README 2016-07-06 16:17:30.000000000 +0800
++++ modified/watchOS/README 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,161 @@
+========================
+Python on watchOS README
@@ -71118,23 +71158,22 @@ diff -Nru orig/watchOS/README modified/watchOS/README
+.. _Rubicon ObjC: http://pybee.org/rubicon
+.. _Pyobjus: http://pyobjus.readthedocs.org/
+.. _PyObjC: https://pythonhosted.org/pyobjc/
-Binary files orig/watchOS/XCode-sample/.DS_Store and modified/watchOS/XCode-sample/.DS_Store differ
diff -Nru orig/watchOS/XCode-sample/app/sample/main.py modified/watchOS/XCode-sample/app/sample/main.py
--- orig/watchOS/XCode-sample/app/sample/main.py 1970-01-01 08:00:00.000000000 +0800
-+++ modified/watchOS/XCode-sample/app/sample/main.py 2016-07-06 15:24:57.000000000 +0800
++++ modified/watchOS/XCode-sample/app/sample/main.py 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,3 @@
+
+if __name__ == '__main__':
+ print("Hello, World.")
diff -Nru orig/watchOS/XCode-sample/app_packages/README modified/watchOS/XCode-sample/app_packages/README
--- orig/watchOS/XCode-sample/app_packages/README 1970-01-01 08:00:00.000000000 +0800
-+++ modified/watchOS/XCode-sample/app_packages/README 2016-07-06 15:24:57.000000000 +0800
++++ modified/watchOS/XCode-sample/app_packages/README 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1 @@
+This directory exists so that 3rd party packages can be installed here.
\ No newline at end of file
diff -Nru orig/watchOS/XCode-sample/sample/Images.xcassets/AppIcon.appiconset/Contents.json modified/watchOS/XCode-sample/sample/Images.xcassets/AppIcon.appiconset/Contents.json
--- orig/watchOS/XCode-sample/sample/Images.xcassets/AppIcon.appiconset/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/watchOS/XCode-sample/sample/Images.xcassets/AppIcon.appiconset/Contents.json 2016-07-06 15:24:57.000000000 +0800
++++ modified/watchOS/XCode-sample/sample/Images.xcassets/AppIcon.appiconset/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,53 @@
+{
+ "images" : [
@@ -71192,7 +71231,7 @@ diff -Nru orig/watchOS/XCode-sample/sample/Images.xcassets/AppIcon.appiconset/Co
\ No newline at end of file
diff -Nru orig/watchOS/XCode-sample/sample/Images.xcassets/LaunchImage.launchimage/Contents.json modified/watchOS/XCode-sample/sample/Images.xcassets/LaunchImage.launchimage/Contents.json
--- orig/watchOS/XCode-sample/sample/Images.xcassets/LaunchImage.launchimage/Contents.json 1970-01-01 08:00:00.000000000 +0800
-+++ modified/watchOS/XCode-sample/sample/Images.xcassets/LaunchImage.launchimage/Contents.json 2016-07-06 15:24:57.000000000 +0800
++++ modified/watchOS/XCode-sample/sample/Images.xcassets/LaunchImage.launchimage/Contents.json 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,51 @@
+{
+ "images" : [
@@ -71248,12 +71287,12 @@ diff -Nru orig/watchOS/XCode-sample/sample/Images.xcassets/LaunchImage.launchima
\ No newline at end of file
diff -Nru orig/watchOS/XCode-sample/sample/en.lproj/InfoPlist.strings modified/watchOS/XCode-sample/sample/en.lproj/InfoPlist.strings
--- orig/watchOS/XCode-sample/sample/en.lproj/InfoPlist.strings 1970-01-01 08:00:00.000000000 +0800
-+++ modified/watchOS/XCode-sample/sample/en.lproj/InfoPlist.strings 2016-07-06 15:24:57.000000000 +0800
++++ modified/watchOS/XCode-sample/sample/en.lproj/InfoPlist.strings 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1 @@
+/* Localized versions of Info.plist keys */
diff -Nru orig/watchOS/XCode-sample/sample/main.m modified/watchOS/XCode-sample/sample/main.m
--- orig/watchOS/XCode-sample/sample/main.m 1970-01-01 08:00:00.000000000 +0800
-+++ modified/watchOS/XCode-sample/sample/main.m 2016-07-06 15:24:57.000000000 +0800
++++ modified/watchOS/XCode-sample/sample/main.m 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,111 @@
+//
+// main.m
@@ -71369,7 +71408,7 @@ diff -Nru orig/watchOS/XCode-sample/sample/main.m modified/watchOS/XCode-sample/
\ No newline at end of file
diff -Nru orig/watchOS/XCode-sample/sample/sample-Info.plist modified/watchOS/XCode-sample/sample/sample-Info.plist
--- orig/watchOS/XCode-sample/sample/sample-Info.plist 1970-01-01 08:00:00.000000000 +0800
-+++ modified/watchOS/XCode-sample/sample/sample-Info.plist 2016-07-06 15:24:57.000000000 +0800
++++ modified/watchOS/XCode-sample/sample/sample-Info.plist 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,45 @@
+
+
@@ -71419,7 +71458,7 @@ diff -Nru orig/watchOS/XCode-sample/sample/sample-Info.plist modified/watchOS/XC
\ No newline at end of file
diff -Nru orig/watchOS/XCode-sample/sample/sample-Prefix.pch modified/watchOS/XCode-sample/sample/sample-Prefix.pch
--- orig/watchOS/XCode-sample/sample/sample-Prefix.pch 1970-01-01 08:00:00.000000000 +0800
-+++ modified/watchOS/XCode-sample/sample/sample-Prefix.pch 2016-07-06 15:24:57.000000000 +0800
++++ modified/watchOS/XCode-sample/sample/sample-Prefix.pch 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,16 @@
+//
+// Prefix header
@@ -71440,7 +71479,7 @@ diff -Nru orig/watchOS/XCode-sample/sample/sample-Prefix.pch modified/watchOS/XC
\ No newline at end of file
diff -Nru orig/watchOS/XCode-sample/sample.xcodeproj/project.pbxproj modified/watchOS/XCode-sample/sample.xcodeproj/project.pbxproj
--- orig/watchOS/XCode-sample/sample.xcodeproj/project.pbxproj 1970-01-01 08:00:00.000000000 +0800
-+++ modified/watchOS/XCode-sample/sample.xcodeproj/project.pbxproj 2016-07-06 15:24:57.000000000 +0800
++++ modified/watchOS/XCode-sample/sample.xcodeproj/project.pbxproj 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,353 @@
+// !$*UTF8*$!
+{
@@ -71797,7 +71836,7 @@ diff -Nru orig/watchOS/XCode-sample/sample.xcodeproj/project.pbxproj modified/wa
+}
diff -Nru orig/watchOS/include/pyconfig.h modified/watchOS/include/pyconfig.h
--- orig/watchOS/include/pyconfig.h 1970-01-01 08:00:00.000000000 +0800
-+++ modified/watchOS/include/pyconfig.h 2016-07-06 15:32:25.000000000 +0800
++++ modified/watchOS/include/pyconfig.h 2017-01-27 19:03:44.000000000 +0800
@@ -0,0 +1,7 @@
+#ifdef __arm__
+#include "pyconfig-armv7k.h"