From 595ca06df2be854a9ac83155c9a579eb0360d67f Mon Sep 17 00:00:00 2001
From: Jakub Wilk <jwilk@jwilk.net>
Date: Tue, 27 Oct 2015 14:27:33 +0100
Subject: [PATCH] docs: Remove duplicated words.

---
 docs/src/reference/extension_types.rst | 2 +-
 docs/src/reference/language_basics.rst | 4 ++--
 docs/src/userguide/extension_types.rst | 2 +-
 docs/src/userguide/memoryviews.rst     | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/docs/src/reference/extension_types.rst b/docs/src/reference/extension_types.rst
index 695437a03..b003506ae 100644
--- a/docs/src/reference/extension_types.rst
+++ b/docs/src/reference/extension_types.rst
@@ -448,7 +448,7 @@ External
         print "Imag:", c.cval.imag
 
 .. note:: Some important things in the example:
-    #. ``ctypedef`` has been used because because Python's header file has the struct decalared with::
+    #. ``ctypedef`` has been used because Python's header file has the struct decalared with::
 
         ctypedef struct {
         ...
diff --git a/docs/src/reference/language_basics.rst b/docs/src/reference/language_basics.rst
index f411c3b64..4756ec4a0 100644
--- a/docs/src/reference/language_basics.rst
+++ b/docs/src/reference/language_basics.rst
@@ -66,7 +66,7 @@ cimport
 
 * Use the **cimport** statement, as you would Python's import statement, to access these files
   from other definition or implementation files.
-* **cimport** does not need to be called in ``.pyx`` file for for ``.pxd`` file that has the
+* **cimport** does not need to be called in ``.pyx`` file for ``.pxd`` file that has the
   same name, as they are already in the same namespace.
 * For cimport to find the stated definition file, the path to the file must be appended to the
   ``-I`` option of the **Cython compile command**.
@@ -705,7 +705,7 @@ Error and Exception Handling
     .. note:: Python Objects
 
         * Declared exception values are **not** need.
-        * Remember that Cython assumes that a function function without a declared return value, returns a Python object.
+        * Remember that Cython assumes that a function without a declared return value, returns a Python object.
         * Exceptions on such functions are implicitly propagated by returning ``NULL``
 
     .. note:: C++
diff --git a/docs/src/userguide/extension_types.rst b/docs/src/userguide/extension_types.rst
index f9cc69b9a..5872f0989 100644
--- a/docs/src/userguide/extension_types.rst
+++ b/docs/src/userguide/extension_types.rst
@@ -132,7 +132,7 @@ you can use a cast to write::
 This may be dangerous if :meth:`quest()` is not actually a :class:`Shrubbery`, as it 
 will try to access width as a C struct member which may not exist. At the C level, 
 rather than raising an :class:`AttributeError`, either an nonsensical result will be 
-returned (interpreting whatever data is at at that address as an int) or a segfault 
+returned (interpreting whatever data is at that address as an int) or a segfault
 may result from trying to access invalid memory. Instead, one can write::
 
     print (<Shrubbery?>quest()).width
diff --git a/docs/src/userguide/memoryviews.rst b/docs/src/userguide/memoryviews.rst
index d32b06ad1..aa19c7f37 100644
--- a/docs/src/userguide/memoryviews.rst
+++ b/docs/src/userguide/memoryviews.rst
@@ -649,7 +649,7 @@ None Slices
 ===========
 
 Although memoryview slices are not objects they can be set to None and they can
-be be checked for being None as well::
+be checked for being None as well::
 
     def func(double[:] myarray = None):
         print(myarray is None)
-- 
2.30.9