From f47a40034763e9877861d995402715ca0dedb17c Mon Sep 17 00:00:00 2001
From: Martin Panter <vadmium+py@gmail.com>
Date: Sun, 15 May 2016 00:13:04 +0000
Subject: Issue #25533: Update documentation regarding the frozen modules table

* "ctypes" documentation was using Python 2 bytes-str equivalence.
* PyImport_FrozenModules is a pointer to const as of Python 3.4
---
 Doc/c-api/import.rst           |  2 +-
 Doc/library/ctypes.rst         | 11 ++++++-----
 Doc/library/pkgutil.rst        |  4 ++--
 Lib/ctypes/test/test_values.py | 11 ++++++-----
 4 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/Doc/c-api/import.rst b/Doc/c-api/import.rst
index 86c1d7d..2936f4f 100644
--- a/Doc/c-api/import.rst
+++ b/Doc/c-api/import.rst
@@ -272,7 +272,7 @@ Importing Modules
       };
 
 
-.. c:var:: struct _frozen* PyImport_FrozenModules
+.. c:var:: const struct _frozen* PyImport_FrozenModules
 
    This pointer is initialized to point to an array of :c:type:`struct _frozen`
    records, terminated by one whose members are all *NULL* or zero.  When a frozen
diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst
index 4da276c..1d45a37 100644
--- a/Doc/library/ctypes.rst
+++ b/Doc/library/ctypes.rst
@@ -1100,14 +1100,15 @@ access violation or whatever, so it's better to break out of the loop when we
 hit the NULL entry::
 
    >>> for item in table:
-   ...     print(item.name, item.size)
    ...     if item.name is None:
    ...         break
+   ...     print(item.name.decode("ascii"), item.size)
    ...
-   __hello__ 104
-   __phello__ -104
-   __phello__.spam 104
-   None 0
+   _frozen_importlib 31764
+   _frozen_importlib_external 41499
+   __hello__ 161
+   __phello__ -161
+   __phello__.spam 161
    >>>
 
 The fact that standard Python has a frozen module and a frozen package
diff --git a/Doc/library/pkgutil.rst b/Doc/library/pkgutil.rst
index 5d3295d..26c5ac0 100644
--- a/Doc/library/pkgutil.rst
+++ b/Doc/library/pkgutil.rst
@@ -140,7 +140,7 @@ support.
 .. function:: iter_modules(path=None, prefix='')
 
    Yields ``(module_finder, name, ispkg)`` for all submodules on *path*, or, if
-   path is ``None``, all top-level modules on ``sys.path``.
+   *path* is ``None``, all top-level modules on ``sys.path``.
 
    *path* should be either ``None`` or a list of paths to look for modules in.
 
@@ -161,7 +161,7 @@ support.
 .. function:: walk_packages(path=None, prefix='', onerror=None)
 
    Yields ``(module_finder, name, ispkg)`` for all modules recursively on
-   *path*, or, if path is ``None``, all accessible modules.
+   *path*, or, if *path* is ``None``, all accessible modules.
 
    *path* should be either ``None`` or a list of paths to look for modules in.
 
diff --git a/Lib/ctypes/test/test_values.py b/Lib/ctypes/test/test_values.py
index c7c78ce..5a3a47f 100644
--- a/Lib/ctypes/test/test_values.py
+++ b/Lib/ctypes/test/test_values.py
@@ -77,13 +77,14 @@ class PythonValuesTestCase(unittest.TestCase):
                 self.assertTrue(entry.size,
                     "{!r} was reported as having no size".format(entry.name))
                 continue
-            items.append((entry.name, entry.size))
+            items.append((entry.name.decode("ascii"), entry.size))
 
-        expected = [(b"__hello__", 161),
-                    (b"__phello__", -161),
-                    (b"__phello__.spam", 161),
+        expected = [("__hello__", 161),
+                    ("__phello__", -161),
+                    ("__phello__.spam", 161),
                     ]
-        self.assertEqual(items, expected)
+        self.assertEqual(items, expected, "PyImport_FrozenModules example "
+            "in Doc/library/ctypes.rst may be out of date")
 
         self.assertEqual(sorted(bootstrap_seen), bootstrap_expected,
             "frozen bootstrap modules did not match PyImport_FrozenModules")
-- 
cgit v0.12

