[3.8] bpo-39136: Fixed typos (GH-17720)

funtion -> function; configuraton -> configuration; defintitions -> definitions;
focusses -> focuses; necesarily -> necessarily; follwing -> following;
Excape -> Escape,

(cherry picked from commit 6c7bb38ff2799ac218e6df598b2b262f89e2bc1e)
diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst
index 155edba..81cb4f8 100644
--- a/Doc/c-api/init.rst
+++ b/Doc/c-api/init.rst
@@ -1181,7 +1181,7 @@
 the main interpreter has unique process-global responsibilities like signal
 handling.  It is also responsible for execution during runtime initialization and
 is usually the active interpreter during runtime finalization.  The
-:c:func:`PyInterpreterState_Main` funtion returns a pointer to its state.
+:c:func:`PyInterpreterState_Main` function returns a pointer to its state.
 
 You can switch between sub-interpreters using the :c:func:`PyThreadState_Swap`
 function. You can create and destroy them using the following functions:
diff --git a/Doc/c-api/init_config.rst b/Doc/c-api/init_config.rst
index 6b16b5b..79a8815 100644
--- a/Doc/c-api/init_config.rst
+++ b/Doc/c-api/init_config.rst
@@ -757,7 +757,7 @@
         PyConfig config;
         PyConfig_InitPythonConfig(&config);
 
-        /* Set the program name before reading the configuraton
+        /* Set the program name before reading the configuration
            (decode byte string from the locale encoding).
 
            Implicitly preinitialize Python. */
diff --git a/Doc/faq/programming.rst b/Doc/faq/programming.rst
index 9d45765..70b11d6 100644
--- a/Doc/faq/programming.rst
+++ b/Doc/faq/programming.rst
@@ -1019,7 +1019,7 @@
 remember before diving further:
 
 * Performance characteristics vary across Python implementations.  This FAQ
-  focusses on :term:`CPython`.
+  focuses on :term:`CPython`.
 * Behaviour can vary across operating systems, especially when talking about
   I/O or multi-threading.
 * You should always find the hot spots in your program *before* attempting to