diff --git a/Include/pyfpe.h b/Include/pyfpe.h
index e957119..f9a15e6 100644
--- a/Include/pyfpe.h
+++ b/Include/pyfpe.h
@@ -45,10 +45,10 @@
  *       Define macros for handling SIGFPE.
  *       Lee Busby, LLNL, November, 1996
  *       busby1@llnl.gov
- * 
+ *
  *********************************************
  * Overview of the system for handling SIGFPE:
- * 
+ *
  * This file (Include/pyfpe.h) defines a couple of "wrapper" macros for
  * insertion into your Python C code of choice. Their proper use is
  * discussed below. The file Python/pyfpe.c defines a pair of global
@@ -59,33 +59,33 @@
  * named fpectl. This module is standard in every respect. It can be loaded
  * either statically or dynamically as you choose, and like any other
  * Python module, has no effect until you import it.
- * 
+ *
  * In the general case, there are three steps toward handling SIGFPE in any
  * Python code:
- * 
+ *
  * 1) Add the *_PROTECT macros to your C code as required to protect
  *    dangerous floating point sections.
- * 
+ *
  * 2) Turn on the inclusion of the code by adding the ``--with-fpectl''
  *    flag at the time you run configure.  If the fpectl or other modules
  *    which use the *_PROTECT macros are to be dynamically loaded, be
  *    sure they are compiled with WANT_SIGFPE_HANDLER defined.
- * 
+ *
  * 3) When python is built and running, import fpectl, and execute
  *    fpectl.turnon_sigfpe(). This sets up the signal handler and enables
  *    generation of SIGFPE whenever an exception occurs. From this point
  *    on, any properly trapped SIGFPE should result in the Python
  *    FloatingPointError exception.
- * 
+ *
  * Step 1 has been done already for the Python kernel code, and should be
  * done soon for the NumPy array package.  Step 2 is usually done once at
  * python install time. Python's behavior with respect to SIGFPE is not
  * changed unless you also do step 3. Thus you can control this new
  * facility at compile time, or run time, or both.
- * 
- ******************************** 
+ *
+ ********************************
  * Using the macros in your code:
- * 
+ *
  * static PyObject *foobar(PyObject *self,PyObject *args)
  * {
  *     ....
@@ -94,17 +94,17 @@
  *     PyFPE_END_PROTECT(result)
  *     ....
  * }
- * 
+ *
  * If a floating point error occurs in dangerous_op, foobar returns 0 (NULL),
  * after setting the associated value of the FloatingPointError exception to
  * "Error in foobar". ``Dangerous_op'' can be a single operation, or a block
  * of code, function calls, or any combination, so long as no alternate
  * return is possible before the PyFPE_END_PROTECT macro is reached.
- * 
+ *
  * The macros can only be used in a function context where an error return
  * can be recognized as signaling a Python exception. (Generally, most
  * functions that return a PyObject * will qualify.)
- * 
+ *
  * Guido's original design suggestion for PyFPE_START_PROTECT and
  * PyFPE_END_PROTECT had them open and close a local block, with a locally
  * defined jmp_buf and jmp_buf pointer. This would allow recursive nesting
@@ -112,17 +112,17 @@
  * variables need to be declared with the "volatile" type qualifier to keep
  * setjmp from corrupting their values. Some current implementations seem
  * to be more restrictive. For example, the HPUX man page for setjmp says
- * 
+ *
  *   Upon the return from a setjmp() call caused by a longjmp(), the
  *   values of any non-static local variables belonging to the routine
  *   from which setjmp() was called are undefined. Code which depends on
  *   such values is not guaranteed to be portable.
- * 
+ *
  * I therefore decided on a more limited form of nesting, using a counter
  * variable (PyFPE_counter) to keep track of any recursion.  If an exception
  * occurs in an ``inner'' pair of macros, the return will apparently
  * come from the outermost level.
- * 
+ *
  */
 
 #ifdef WANT_SIGFPE_HANDLER
@@ -146,14 +146,14 @@
  * this statement so that it gets executed *before* the unsafe expression
  * which we're trying to protect.  That pretty well messes things up,
  * of course.
- * 
+ *
  * If the expression(s) you're trying to protect don't happen to return a
  * value, you will need to manufacture a dummy result just to preserve the
  * correct ordering of statements.  Note that the macro passes the address
  * of its argument (so you need to give it something which is addressable).
  * If your expression returns multiple results, pass the last such result
  * to PyFPE_END_PROTECT.
- * 
+ *
  * Note that PyFPE_dummy returns a double, which is cast to int.
  * This seeming insanity is to tickle the Floating Point Unit (FPU).
  * If an exception has occurred in a preceding floating point operation,
diff --git a/Include/pyport.h b/Include/pyport.h
index 19941ec..ec3c4df 100644
--- a/Include/pyport.h
+++ b/Include/pyport.h
@@ -747,7 +747,7 @@
 #define PY_LITTLE_ENDIAN 1
 #endif
 
-#ifdef Py_BUILD_CORE 
+#ifdef Py_BUILD_CORE
 /*
  * Macros to protect CRT calls against instant termination when passed an
  * invalid parameter (issue23524).
diff --git a/Misc/coverity_model.c b/Misc/coverity_model.c
index d17c607..1ae6179 100644
--- a/Misc/coverity_model.c
+++ b/Misc/coverity_model.c
@@ -139,7 +139,7 @@
 build_struct_time(int y, int m, int d, int hh, int mm, int ss, int dstflag)
 {
     PyObject *result;
-    
+
     __coverity_tainted_data_sanitize__(y);
     __coverity_tainted_data_sanitize__(m);
     __coverity_tainted_data_sanitize__(d);
diff --git a/Modules/_io/winconsoleio.c b/Modules/_io/winconsoleio.c
index 7d13be5..0bf4ddf 100644
--- a/Modules/_io/winconsoleio.c
+++ b/Modules/_io/winconsoleio.c
@@ -44,7 +44,7 @@
 
     if (handle == INVALID_HANDLE_VALUE)
         return '\0';
-    
+
     if (!GetConsoleMode(handle, &mode))
         return '\0';
 
@@ -803,7 +803,7 @@
     bytes_size = WideCharToMultiByte(CP_UTF8, 0, buf, len,
         NULL, 0, NULL, NULL);
     Py_END_ALLOW_THREADS
-    
+
     if (!bytes_size) {
         DWORD err = GetLastError();
         PyMem_Free(buf);
@@ -854,7 +854,7 @@
 {
     PyObject *bytes;
     Py_ssize_t bytes_size;
-    
+
     if (self->handle == INVALID_HANDLE_VALUE)
         return err_closed();
     if (!self->readable)
@@ -929,7 +929,7 @@
         wlen = MultiByteToWideChar(CP_UTF8, 0, b->buf, len, NULL, 0);
     }
     Py_END_ALLOW_THREADS
-    
+
     if (!wlen)
         return PyErr_SetFromWindowsErr(0);
 
@@ -956,7 +956,7 @@
     } else
         res = 0;
     Py_END_ALLOW_THREADS
-    
+
     if (!res) {
         DWORD err = GetLastError();
         PyMem_Free(wbuf);
@@ -996,7 +996,7 @@
 {
     if (self->handle == INVALID_HANDLE_VALUE)
         return err_closed();
-    
+
     Py_RETURN_TRUE;
 }
 
diff --git a/Modules/_struct.c b/Modules/_struct.c
index 0820961..796d168 100644
--- a/Modules/_struct.c
+++ b/Modules/_struct.c
@@ -486,7 +486,7 @@
     return unpack_halffloat(p, 1);
 #else
     return unpack_halffloat(p, 0);
-#endif    
+#endif
 }
 
 static PyObject *
diff --git a/Modules/expat/pyexpatns.h b/Modules/expat/pyexpatns.h
index 999c5c7..cfb742e 100644
--- a/Modules/expat/pyexpatns.h
+++ b/Modules/expat/pyexpatns.h
@@ -26,7 +26,7 @@
  * http://lxr.mozilla.org/seamonkey/source/modules/libimg/png/mozpngconf.h#115
  *
  * The list of relevant exported symbols can be had with this command:
- * 
+ *
        nm pyexpat.so \
            | grep -v " [a-zBUA] " \
            | grep -v "_fini\|_init\|initpyexpat"
diff --git a/Parser/myreadline.c b/Parser/myreadline.c
index c8b92da..a8f23b7 100644
--- a/Parser/myreadline.c
+++ b/Parser/myreadline.c
@@ -172,7 +172,7 @@
     buf = PyMem_RawMalloc(u8len + 1);
     u8len = WideCharToMultiByte(CP_UTF8, 0, wbuf, total_read, buf, u8len, NULL, NULL);
     buf[u8len] = '\0';
-    
+
 exit:
     if (wbuf != wbuf_local)
         PyMem_RawFree(wbuf);
@@ -204,11 +204,11 @@
 #ifdef MS_WINDOWS
     if (!Py_LegacyWindowsStdioFlag && sys_stdin == stdin) {
         HANDLE hStdIn;
-        
+
         _Py_BEGIN_SUPPRESS_IPH
         hStdIn = (HANDLE)_get_osfhandle(fileno(sys_stdin));
         _Py_END_SUPPRESS_IPH
-        
+
         if (_get_console_type(hStdIn) == 'r') {
             fflush(sys_stdout);
             if (prompt)
