<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -12,62 +12,62 @@ static PyObject *dummy;
 static dictentry *
 lookdict_string(dictobject *mp, PyObject *key, long hash);
 
-#define INIT_NONZERO_DICT_SLOTS(mp) do {			\
-		(mp)-&gt;ma_table = (mp)-&gt;ma_smalltable;		\
-		(mp)-&gt;ma_mask = PyDict_MINSIZE -1;		\
-	} while(0)
+#define INIT_NONZERO_DICT_SLOTS(mp) do {            \
+        (mp)-&gt;ma_table = (mp)-&gt;ma_smalltable;       \
+        (mp)-&gt;ma_mask = PyDict_MINSIZE -1;      \
+    } while(0)
 
-#define EMPTY_TO_MINSIZE(mp) do {					\
-		memset((mp)-&gt;ma_smalltable, 0, sizeof((mp)-&gt;ma_smalltable)); \
-		(mp)-&gt;ma_used = (mp)-&gt;ma_fill = 0;			\
-		INIT_NONZERO_DICT_SLOTS(mp);				\
-	} while(0)
+#define EMPTY_TO_MINSIZE(mp) do {                   \
+        memset((mp)-&gt;ma_smalltable, 0, sizeof((mp)-&gt;ma_smalltable)); \
+        (mp)-&gt;ma_used = (mp)-&gt;ma_fill = 0;          \
+        INIT_NONZERO_DICT_SLOTS(mp);                \
+    } while(0)
 
 PyObject *
 PyDict_New(void)
 {
-	LOG(&quot;&gt; PyDict_New\n&quot;); {
-
-	register dictobject *mp;
-	if (dummy == NULL) {
-		dummy = PyString_FromString(&quot;&lt;dummy key&gt;&quot;);
-		if (dummy == NULL)
-			return NULL;
-	}
-	mp = PyObject_GC_New(dictobject, &amp;PyDict_Type);
-	if (mp == NULL)
-		return NULL;
-	EMPTY_TO_MINSIZE(mp);
-	mp-&gt;ma_lookup = lookdict_string;
-	_PyObject_GC_TRACK(mp);
-
-	LOG(&quot;&lt; PyDict_New\n&quot;);
-	return (PyObject *)mp;
+    LOG(&quot;&gt; PyDict_New\n&quot;); {
+
+    register dictobject *mp;
+    if (dummy == NULL) {
+        dummy = PyString_FromString(&quot;&lt;dummy key&gt;&quot;);
+        if (dummy == NULL)
+            return NULL;
+    }
+    mp = PyObject_GC_New(dictobject, &amp;PyDict_Type);
+    if (mp == NULL)
+        return NULL;
+    EMPTY_TO_MINSIZE(mp);
+    mp-&gt;ma_lookup = lookdict_string;
+    _PyObject_GC_TRACK(mp);
+
+    LOG(&quot;&lt; PyDict_New\n&quot;);
+    return (PyObject *)mp;
 }}
 
 static dictentry *
 lookdict_string(dictobject *mp, PyObject *key, register long hash)
 {
-	register int i;
-	register unsigned int perturb;
-	register dictentry *freeslot;
-	register unsigned int mask = mp-&gt;ma_mask;
-	dictentry *ep0 = mp-&gt;ma_table;
-	register dictentry *ep;
-
-	i = hash &amp; mask;
-	ep = &amp;ep0[i];
-	if (ep-&gt;me_key == NULL || ep-&gt;me_key == key)
-		return ep;
-	if (ep-&gt;me_key == dummy)
-		freeslot = ep;
-	else {
-		if (ep-&gt;me_hash == hash
-		    &amp;&amp; _PyString_Eq(ep-&gt;me_key, key)) {
-			return ep;
-		}
-		freeslot = NULL;
-	}
+    register int i;
+    register unsigned int perturb;
+    register dictentry *freeslot;
+    register unsigned int mask = mp-&gt;ma_mask;
+    dictentry *ep0 = mp-&gt;ma_table;
+    register dictentry *ep;
+
+    i = hash &amp; mask;
+    ep = &amp;ep0[i];
+    if (ep-&gt;me_key == NULL || ep-&gt;me_key == key)
+        return ep;
+    if (ep-&gt;me_key == dummy)
+        freeslot = ep;
+    else {
+        if (ep-&gt;me_hash == hash
+            &amp;&amp; _PyString_Eq(ep-&gt;me_key, key)) {
+            return ep;
+        }
+        freeslot = NULL;
+    }
 
         for (perturb = hash; ; perturb &gt;&gt;= PERTURB_SHIFT) {
                 i = (i &lt;&lt; 2) + i + perturb + 1;
@@ -87,284 +87,284 @@ lookdict_string(dictobject *mp, PyObject *key, register long hash)
 static void
 insertdict(register dictobject *mp, PyObject *key, long hash, PyObject *value)
 {
-	PyObject *old_value;
-	register dictentry *ep;
-	typedef PyDictEntry *(*lookupfunc)(PyDictObject *, PyObject *, long);
-
-	ep = mp-&gt;ma_lookup(mp, key, hash);
-	if (ep-&gt;me_value != NULL) {
-		old_value = ep-&gt;me_value;
-		ep-&gt;me_value = value;
-		Py_DECREF(old_value);
-		Py_DECREF(key);
-	}
-	else {
-		if (ep-&gt;me_key == NULL)
-			mp-&gt;ma_fill++;
-		else
-			Py_DECREF(ep-&gt;me_key);
-		ep-&gt;me_key = key;
-		ep-&gt;me_hash = hash;
-		ep-&gt;me_value = value;
-		mp-&gt;ma_used++;
-	}
+    PyObject *old_value;
+    register dictentry *ep;
+    typedef PyDictEntry *(*lookupfunc)(PyDictObject *, PyObject *, long);
+
+    ep = mp-&gt;ma_lookup(mp, key, hash);
+    if (ep-&gt;me_value != NULL) {
+        old_value = ep-&gt;me_value;
+        ep-&gt;me_value = value;
+        Py_DECREF(old_value);
+        Py_DECREF(key);
+    }
+    else {
+        if (ep-&gt;me_key == NULL)
+            mp-&gt;ma_fill++;
+        else
+            Py_DECREF(ep-&gt;me_key);
+        ep-&gt;me_key = key;
+        ep-&gt;me_hash = hash;
+        ep-&gt;me_value = value;
+        mp-&gt;ma_used++;
+    }
 }
 
 static int
 dictresize(dictobject *mp, int minused)
 {
-	int newsize;
-	dictentry *oldtable, *newtable, *ep;
-	int i;
-	int is_oldtable_malloced;
-	dictentry small_copy[PyDict_MINSIZE];
+    int newsize;
+    dictentry *oldtable, *newtable, *ep;
+    int i;
+    int is_oldtable_malloced;
+    dictentry small_copy[PyDict_MINSIZE];
 
-	for (newsize = PyDict_MINSIZE;
+    for (newsize = PyDict_MINSIZE;
              newsize &lt;= minused &amp;&amp; newsize &gt; 0;
              newsize &lt;&lt;= 1)
-		;
-	if (newsize &lt;= 0) {
-		/* NO MEMORY */
-		return -1;
-	}
-
-	oldtable = mp-&gt;ma_table;
-	is_oldtable_malloced = oldtable != mp-&gt;ma_smalltable;
-
-	if (newsize == PyDict_MINSIZE) {
-		newtable = mp-&gt;ma_smalltable;
-		if (newtable == oldtable) {
-			if (mp-&gt;ma_fill == mp-&gt;ma_used) {
-				return 0;
-			}
-			memcpy(small_copy, oldtable, sizeof(small_copy));
-			oldtable = small_copy;
-		}
-	}
-	else {
-		newtable = PyMem_NEW(dictentry, newsize);
-		if (newtable == NULL) {
-			/* NO MEMORY */
-			return -1;
-		}
-	}
-
-	mp-&gt;ma_table = newtable;
-	mp-&gt;ma_mask = newsize -1;
-	memset(newtable, 0, sizeof(dictentry) * newsize);
-	mp-&gt;ma_used = 0;
-	i = mp-&gt;ma_fill;
-	mp-&gt;ma_fill = 0;
-
-	for (ep = oldtable; i &gt; 0; ep++) {
-		if (ep-&gt;me_value != NULL) {
-			--i;
-			insertdict(mp, ep-&gt;me_key, ep-&gt;me_hash, ep-&gt;me_value);
-		}
-		else if (ep-&gt;me_key != NULL) {
-			--i;
-			Py_DECREF(ep-&gt;me_key);
-		}
-	}
-
-	return 0;
+        ;
+    if (newsize &lt;= 0) {
+        /* NO MEMORY */
+        return -1;
+    }
+
+    oldtable = mp-&gt;ma_table;
+    is_oldtable_malloced = oldtable != mp-&gt;ma_smalltable;
+
+    if (newsize == PyDict_MINSIZE) {
+        newtable = mp-&gt;ma_smalltable;
+        if (newtable == oldtable) {
+            if (mp-&gt;ma_fill == mp-&gt;ma_used) {
+                return 0;
+            }
+            memcpy(small_copy, oldtable, sizeof(small_copy));
+            oldtable = small_copy;
+        }
+    }
+    else {
+        newtable = PyMem_NEW(dictentry, newsize);
+        if (newtable == NULL) {
+            /* NO MEMORY */
+            return -1;
+        }
+    }
+
+    mp-&gt;ma_table = newtable;
+    mp-&gt;ma_mask = newsize -1;
+    memset(newtable, 0, sizeof(dictentry) * newsize);
+    mp-&gt;ma_used = 0;
+    i = mp-&gt;ma_fill;
+    mp-&gt;ma_fill = 0;
+
+    for (ep = oldtable; i &gt; 0; ep++) {
+        if (ep-&gt;me_value != NULL) {
+            --i;
+            insertdict(mp, ep-&gt;me_key, ep-&gt;me_hash, ep-&gt;me_value);
+        }
+        else if (ep-&gt;me_key != NULL) {
+            --i;
+            Py_DECREF(ep-&gt;me_key);
+        }
+    }
+
+    return 0;
 }
 
 PyObject *
 PyDict_GetItem(PyObject *op, PyObject *key)
 {
-	long hash;
-	dictobject *mp = (dictobject *)op;
-	if (!PyDict_Check(op)) {
-		return NULL;
-	}
-	if (!PyString_CheckExact(key) ||
-	    (hash = ((PyStringObject *) key)-&gt;ob_shash) == -1)
-	{
-		hash = PyObject_Hash(key);
-		if (hash == -1) {
-			return NULL;
-		}
-	}
-	{ PyObject *ret = (mp-&gt;ma_lookup)(mp, key, hash)-&gt;me_value;
-	return ret; }
+    long hash;
+    dictobject *mp = (dictobject *)op;
+    if (!PyDict_Check(op)) {
+        return NULL;
+    }
+    if (!PyString_CheckExact(key) ||
+        (hash = ((PyStringObject *) key)-&gt;ob_shash) == -1)
+    {
+        hash = PyObject_Hash(key);
+        if (hash == -1) {
+            return NULL;
+        }
+    }
+    { PyObject *ret = (mp-&gt;ma_lookup)(mp, key, hash)-&gt;me_value;
+    return ret; }
 }
 
 int
 PyDict_SetItem(register PyObject *op, PyObject *key, PyObject *value)
 {
-	register dictobject *mp;
-	register long hash;
-	register int n_used;
-
-	if (!PyDict_Check(op)) {
-		/* ERROR */
-		return -1;
-	}
-	mp = (dictobject *)op;
-	if (PyString_CheckExact(key)) {
-		hash = ((PyStringObject *)key)-&gt;ob_shash;
-		if (hash == -1)
-			hash = PyObject_Hash(key);
-	}
-	else {
-		hash = PyObject_Hash(key);
-		if (hash == -1) 
-			return -1;
-	}
-	n_used = mp-&gt;ma_used;
-	Py_INCREF(value);
-	Py_INCREF(key);
-	insertdict(mp, key, hash, value);
-	if (!(mp-&gt;ma_used &gt; n_used &amp;&amp; mp-&gt;ma_fill*3 &gt;= (mp-&gt;ma_mask+1)*2))
-		return 0;
-	return dictresize(mp, mp-&gt;ma_used*(mp-&gt;ma_used&gt;50000 ? 2 : 4));
+    register dictobject *mp;
+    register long hash;
+    register int n_used;
+
+    if (!PyDict_Check(op)) {
+        /* ERROR */
+        return -1;
+    }
+    mp = (dictobject *)op;
+    if (PyString_CheckExact(key)) {
+        hash = ((PyStringObject *)key)-&gt;ob_shash;
+        if (hash == -1)
+            hash = PyObject_Hash(key);
+    }
+    else {
+        hash = PyObject_Hash(key);
+        if (hash == -1) 
+            return -1;
+    }
+    n_used = mp-&gt;ma_used;
+    Py_INCREF(value);
+    Py_INCREF(key);
+    insertdict(mp, key, hash, value);
+    if (!(mp-&gt;ma_used &gt; n_used &amp;&amp; mp-&gt;ma_fill*3 &gt;= (mp-&gt;ma_mask+1)*2))
+        return 0;
+    return dictresize(mp, mp-&gt;ma_used*(mp-&gt;ma_used&gt;50000 ? 2 : 4));
 }
 
 int
 PyDict_DelItem(PyObject *op, PyObject *key)
 {
-	register dictobject *mp;
-	register long hash;
-	register dictentry *ep;
-	PyObject *old_value, *old_key;
-
-	if (!PyDict_Check(op)) {
-	  /* ERROR */
-		return -1;
-	}
-	if (!PyString_CheckExact(key) ||
-	    (hash = ((PyStringObject *) key)-&gt;ob_shash) == -1) {
-		hash = PyObject_Hash(key);
-		if (hash == -1)
-			return -1;
-	}
-	mp = (dictobject *)op;
-	ep = (mp-&gt;ma_lookup)(mp, key, hash);
-	if (ep-&gt;me_value == NULL) {
-	  /* ERROR */
-		return -1;
-	}
-	old_key = ep-&gt;me_key;
-	Py_INCREF(dummy);
-	ep-&gt;me_key = dummy;
-	old_value = ep-&gt;me_value;
-	ep-&gt;me_value = NULL;
-	mp-&gt;ma_used--;
-	Py_DECREF(old_value);
-	Py_DECREF(old_key);
-	return 0;
+    register dictobject *mp;
+    register long hash;
+    register dictentry *ep;
+    PyObject *old_value, *old_key;
+
+    if (!PyDict_Check(op)) {
+      /* ERROR */
+        return -1;
+    }
+    if (!PyString_CheckExact(key) ||
+        (hash = ((PyStringObject *) key)-&gt;ob_shash) == -1) {
+        hash = PyObject_Hash(key);
+        if (hash == -1)
+            return -1;
+    }
+    mp = (dictobject *)op;
+    ep = (mp-&gt;ma_lookup)(mp, key, hash);
+    if (ep-&gt;me_value == NULL) {
+      /* ERROR */
+        return -1;
+    }
+    old_key = ep-&gt;me_key;
+    Py_INCREF(dummy);
+    ep-&gt;me_key = dummy;
+    old_value = ep-&gt;me_value;
+    ep-&gt;me_value = NULL;
+    mp-&gt;ma_used--;
+    Py_DECREF(old_value);
+    Py_DECREF(old_key);
+    return 0;
 }
 
 PyTypeObject PyDict_Type = {
-	PyObject_HEAD_INIT(&amp;PyType_Type)
-	0,
-	&quot;dict&quot;,
-	sizeof(dictobject),
-	0,
-	0, //(destructor)dict_dealloc,		/* tp_dealloc */
-	0, //(printfunc)dict_print,			/* tp_print */
-	0,					/* tp_getattr */
-	0,					/* tp_setattr */
-	0, //(cmpfunc)dict_compare,			/* tp_compare */
-	0, //(reprfunc)dict_repr,			/* tp_repr */
-	0,					/* tp_as_number */
-	0, //&amp;dict_as_sequence,			/* tp_as_sequence */
-	0, //&amp;dict_as_mapping,			/* tp_as_mapping */
-	0, //dict_nohash,				/* tp_hash */
-	0,					/* tp_call */
-	0,					/* tp_str */
-	PyObject_GenericGetAttr,		/* tp_getattro */
-	0,					/* tp_setattro */
-	0,					/* tp_as_buffer */
-	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,		/* tp_flags */
-	0, //dictionary_doc,				/* tp_doc */
-	0, //(traverseproc)dict_traverse,		/* tp_traverse */
-	0, //(inquiry)dict_tp_clear,			/* tp_clear */
-	0, //dict_richcompare,			/* tp_richcompare */
-	0,					/* tp_weaklistoffset */
-	0, //(getiterfunc)dict_iter,			/* tp_iter */
-	0,					/* tp_iternext */
-	0, //mapp_methods,				/* tp_methods */
-	0,					/* tp_members */
-	0,					/* tp_getset */
-	0,					/* tp_base */
-	0,					/* tp_dict */
-	0,					/* tp_descr_get */
-	0,					/* tp_descr_set */
-	0,					/* tp_dictoffset */
-	0, //(initproc)dict_init,			/* tp_init */
-	0, //PyType_GenericAlloc,			/* tp_alloc */
-	0, //dict_new,				/* tp_new */
-	0, //PyObject_GC_Del,        		/* tp_free */
+    PyObject_HEAD_INIT(&amp;PyType_Type)
+    0,
+    &quot;dict&quot;,
+    sizeof(dictobject),
+    0,
+    0, //(destructor)dict_dealloc,      /* tp_dealloc */
+    0, //(printfunc)dict_print,         /* tp_print */
+    0,                  /* tp_getattr */
+    0,                  /* tp_setattr */
+    0, //(cmpfunc)dict_compare,         /* tp_compare */
+    0, //(reprfunc)dict_repr,           /* tp_repr */
+    0,                  /* tp_as_number */
+    0, //&amp;dict_as_sequence,         /* tp_as_sequence */
+    0, //&amp;dict_as_mapping,          /* tp_as_mapping */
+    0, //dict_nohash,               /* tp_hash */
+    0,                  /* tp_call */
+    0,                  /* tp_str */
+    PyObject_GenericGetAttr,        /* tp_getattro */
+    0,                  /* tp_setattro */
+    0,                  /* tp_as_buffer */
+    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,      /* tp_flags */
+    0, //dictionary_doc,                /* tp_doc */
+    0, //(traverseproc)dict_traverse,       /* tp_traverse */
+    0, //(inquiry)dict_tp_clear,            /* tp_clear */
+    0, //dict_richcompare,          /* tp_richcompare */
+    0,                  /* tp_weaklistoffset */
+    0, //(getiterfunc)dict_iter,            /* tp_iter */
+    0,                  /* tp_iternext */
+    0, //mapp_methods,              /* tp_methods */
+    0,                  /* tp_members */
+    0,                  /* tp_getset */
+    0,                  /* tp_base */
+    0,                  /* tp_dict */
+    0,                  /* tp_descr_get */
+    0,                  /* tp_descr_set */
+    0,                  /* tp_dictoffset */
+    0, //(initproc)dict_init,           /* tp_init */
+    0, //PyType_GenericAlloc,           /* tp_alloc */
+    0, //dict_new,              /* tp_new */
+    0, //PyObject_GC_Del,               /* tp_free */
 };
 
 PyObject *
 PyDict_GetItemString(PyObject *v, const char *key)
 {
-	LOG(&quot;&gt; PyDict_GetItemString\n&quot;); {
-	PyObject *kv, *rv;
-	kv = PyString_FromString(key);
-	if (kv == NULL)
-		return NULL;
-	rv = PyDict_GetItem(v, kv);
-	Py_DECREF(kv);
-	LOG(&quot;&lt; PyDict_GetItemString\n&quot;);
-	return rv;
+    LOG(&quot;&gt; PyDict_GetItemString\n&quot;); {
+    PyObject *kv, *rv;
+    kv = PyString_FromString(key);
+    if (kv == NULL)
+        return NULL;
+    rv = PyDict_GetItem(v, kv);
+    Py_DECREF(kv);
+    LOG(&quot;&lt; PyDict_GetItemString\n&quot;);
+    return rv;
 }}
 
 int
 PyDict_SetItemString(PyObject *v, const char *key, PyObject *item)
 {
-	PyObject *kv;
-	int err;
-	kv = PyString_FromString(key);
-	if (kv == NULL)
-		return -1;
-	PyString_InternInPlace(&amp;kv);
-	err = PyDict_SetItem(v, kv, item);
-	Py_DECREF(kv);
-	return err;
+    PyObject *kv;
+    int err;
+    kv = PyString_FromString(key);
+    if (kv == NULL)
+        return -1;
+    PyString_InternInPlace(&amp;kv);
+    err = PyDict_SetItem(v, kv, item);
+    Py_DECREF(kv);
+    return err;
 }
 
 PyObject *
 PyDict_Copy(PyObject *o)
 {
-	register dictobject *mp;
-	register int i;
-	dictobject *copy;
-	dictentry *entry;
-
-	if (o == NULL || !PyDict_Check(o)) {
-		/* ERROR */
-		return NULL;
-	}
-	mp = (dictobject *)o;
-	copy = (dictobject *)PyDict_New();
-	if (copy == NULL)
-		return NULL;
-	if (mp-&gt;ma_used &gt; 0) {
-		if (dictresize(copy, mp-&gt;ma_used*2) != 0)
-			return NULL;
-		for (i = 0; i &lt;= mp-&gt;ma_mask; i++) {
-			entry = &amp;mp-&gt;ma_table[i];
-			if (entry-&gt;me_value != NULL) {
-				Py_INCREF(entry-&gt;me_key);
-				Py_INCREF(entry-&gt;me_value);
-				insertdict(copy, entry-&gt;me_key, entry-&gt;me_hash,
-					   entry-&gt;me_value);
-			}
-		}
-	}
-	return (PyObject *)copy;
+    register dictobject *mp;
+    register int i;
+    dictobject *copy;
+    dictentry *entry;
+
+    if (o == NULL || !PyDict_Check(o)) {
+        /* ERROR */
+        return NULL;
+    }
+    mp = (dictobject *)o;
+    copy = (dictobject *)PyDict_New();
+    if (copy == NULL)
+        return NULL;
+    if (mp-&gt;ma_used &gt; 0) {
+        if (dictresize(copy, mp-&gt;ma_used*2) != 0)
+            return NULL;
+        for (i = 0; i &lt;= mp-&gt;ma_mask; i++) {
+            entry = &amp;mp-&gt;ma_table[i];
+            if (entry-&gt;me_value != NULL) {
+                Py_INCREF(entry-&gt;me_key);
+                Py_INCREF(entry-&gt;me_value);
+                insertdict(copy, entry-&gt;me_key, entry-&gt;me_hash,
+                       entry-&gt;me_value);
+            }
+        }
+    }
+    return (PyObject *)copy;
 }
 
 int
 PyDict_Size(PyObject *mp)
 {
-	if (mp == NULL || !PyDict_Check(mp)) {
-		/* ERROR */
-		return 0;
-	}
-	return ((dictobject *)mp)-&gt;ma_used;
+    if (mp == NULL || !PyDict_Check(mp)) {
+        /* ERROR */
+        return 0;
+    }
+    return ((dictobject *)mp)-&gt;ma_used;
 }</diff>
      <filename>echo/python/Objects/dictobject.c</filename>
    </modified>
    <modified>
      <diff>@@ -7,160 +7,160 @@
 static PyFrameObject *free_list = NULL;
 
 PyTypeObject PyFrame_Type = {
-	PyObject_HEAD_INIT(&amp;PyType_Type)
-	0,
-	&quot;frame&quot;,
-	sizeof(PyFrameObject),
-	sizeof(PyObject *),
-	0, //(destructor)frame_dealloc, 		/* tp_dealloc */
-	0,					/* tp_print */
-	0, 					/* tp_getattr */
-	0,			 		/* tp_setattr */
-	0,					/* tp_compare */
-	0,					/* tp_repr */
-	0,					/* tp_as_number */
-	0,					/* tp_as_sequence */
-	0,					/* tp_as_mapping */
-	0,					/* tp_hash */
-	0,					/* tp_call */
-	0,					/* tp_str */
-	PyObject_GenericGetAttr,		/* tp_getattro */
-	0, //PyObject_GenericSetAttr,		/* tp_setattro */
-	0,					/* tp_as_buffer */
-	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */
-	0,             				/* tp_doc */
- 	0, //(traverseproc)frame_traverse,		/* tp_traverse */
-	0, //(inquiry)frame_clear,			/* tp_clear */
-	0,					/* tp_richcompare */
-	0,					/* tp_weaklistoffset */
-	0,					/* tp_iter */
-	0,					/* tp_iternext */
-	0,					/* tp_methods */
-	0, //frame_memberlist,			/* tp_members */
-	0, //frame_getsetlist,			/* tp_getset */
-	0,					/* tp_base */
-	0,					/* tp_dict */
+    PyObject_HEAD_INIT(&amp;PyType_Type)
+    0,
+    &quot;frame&quot;,
+    sizeof(PyFrameObject),
+    sizeof(PyObject *),
+    0, //(destructor)frame_dealloc,         /* tp_dealloc */
+    0,                  /* tp_print */
+    0,                  /* tp_getattr */
+    0,                  /* tp_setattr */
+    0,                  /* tp_compare */
+    0,                  /* tp_repr */
+    0,                  /* tp_as_number */
+    0,                  /* tp_as_sequence */
+    0,                  /* tp_as_mapping */
+    0,                  /* tp_hash */
+    0,                  /* tp_call */
+    0,                  /* tp_str */
+    PyObject_GenericGetAttr,        /* tp_getattro */
+    0, //PyObject_GenericSetAttr,       /* tp_setattro */
+    0,                  /* tp_as_buffer */
+    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */
+    0,                          /* tp_doc */
+    0, //(traverseproc)frame_traverse,      /* tp_traverse */
+    0, //(inquiry)frame_clear,          /* tp_clear */
+    0,                  /* tp_richcompare */
+    0,                  /* tp_weaklistoffset */
+    0,                  /* tp_iter */
+    0,                  /* tp_iternext */
+    0,                  /* tp_methods */
+    0, //frame_memberlist,          /* tp_members */
+    0, //frame_getsetlist,          /* tp_getset */
+    0,                  /* tp_base */
+    0,                  /* tp_dict */
 };
 
 static PyObject *builtin_object;
 
 int _PyFrame_Init()
 {
-	void *builtin_object = PyString_InternFromString(&quot;__builtins__&quot;);
-  	return (builtin_object != NULL);
+    void *builtin_object = PyString_InternFromString(&quot;__builtins__&quot;);
+    return (builtin_object != NULL);
 }
 
 PyFrameObject *
 PyFrame_New(PyThreadState *tstate, PyCodeObject *code, PyObject *globals, 
-	    PyObject *locals)
+        PyObject *locals)
 {
-	LOG(&quot;&gt; PyFrame_New\n&quot;); {
-	PyFrameObject *back = tstate-&gt;frame;
-	PyFrameObject *f;
-	PyObject *builtins;
-	int extras, ncells, nfrees;
-	ncells = PyTuple_GET_SIZE(code-&gt;co_cellvars);
-	nfrees = PyTuple_GET_SIZE(code-&gt;co_freevars);
-	extras = code-&gt;co_stacksize + code-&gt;co_nlocals + ncells + nfrees;
-
-	if (back == NULL || back-&gt;f_globals != globals) {
-
-		/* JKT: how did builtin_object get to be NULL again!?!? */
-		if (builtin_object == NULL)
-			builtin_object = PyString_InternFromString(&quot;__builtins__&quot;);
-		
-		builtins = PyDict_GetItem(globals, builtin_object);
-		if (builtins) {
-			if (PyModule_Check(builtins)) {
-				builtins = PyModule_GetDict(builtins);
-			}
-			else if (!PyDict_Check(builtins))
-				builtins = NULL;
-		}
-		if (builtins == NULL) {
-			/* No builtins!  Make up a minimal one 
-			   Give them 'None', at least. */
-			builtins = PyDict_New();
-			if (builtins == NULL || 
-			    PyDict_SetItemString(
-				    builtins, &quot;None&quot;, Py_None) &lt; 0)
-				return NULL;
-		}
-		else
-			Py_INCREF(builtins);
-
-	}
-	else {
-		/* If we share the globals, we share the builtins.
-		   Save a lookup and a call. */
-		builtins = back-&gt;f_builtins;
-		Py_INCREF(builtins);
-	}
-
-	if (free_list == NULL) {
-		f = PyObject_GC_NewVar(PyFrameObject, &amp;PyFrame_Type, extras);
-		if (f == NULL)
-			return NULL;
-	}
-	else {
-		/* NOT IMPLEMENTED */
-	}
-
-	f-&gt;f_builtins = builtins;
-	Py_XINCREF(back);
-	f-&gt;f_back = back;
-	Py_INCREF(code);
-	f-&gt;f_code = code;
-	Py_INCREF(globals);
-	f-&gt;f_globals = globals;
-
-	/* Most functions have CO_NEWLOCALS and CO_OPTIMIZED set. */
-	if ((code-&gt;co_flags &amp; (CO_NEWLOCALS | CO_OPTIMIZED)) == 
-		(CO_NEWLOCALS | CO_OPTIMIZED))
-		locals = NULL; /* PyFrame_Fast2Locals() will set. */
-	else if (code-&gt;co_flags &amp; CO_NEWLOCALS) {
-		locals = PyDict_New();
-		if (locals == NULL) {
-			Py_DECREF(f);
-			return NULL;
-		}
-	}
-	else {
-		if (locals == NULL)
-			locals = globals;
-		Py_INCREF(locals);
-	}
-
-	f-&gt;f_locals = locals;
-	f-&gt;f_trace = NULL;
-	f-&gt;f_exc_type = f-&gt;f_exc_value = f-&gt;f_exc_traceback = NULL;
-	f-&gt;f_tstate = tstate;
-
-	f-&gt;f_lasti = -1;
-	f-&gt;f_lineno = code-&gt;co_firstlineno;
-	f-&gt;f_restricted = (builtins != tstate-&gt;interp-&gt;builtins);
-	f-&gt;f_iblock = 0;
-	f-&gt;f_nlocals = code-&gt;co_nlocals;
-	f-&gt;f_stacksize = code-&gt;co_stacksize;
-	f-&gt;f_ncells = ncells;
-	f-&gt;f_nfreevars = nfrees;
-
-	extras = f-&gt;f_nlocals + ncells + nfrees;
-	memset(f-&gt;f_localsplus, 0, extras * sizeof(f-&gt;f_localsplus[0]));
-
-	f-&gt;f_valuestack = f-&gt;f_localsplus + extras;
-	f-&gt;f_stacktop = f-&gt;f_valuestack;
-
-	_PyObject_GC_TRACK(f);
-
-	LOG(&quot;&lt; PyFrame_New\n&quot;);
-	return f;
+    LOG(&quot;&gt; PyFrame_New\n&quot;); {
+    PyFrameObject *back = tstate-&gt;frame;
+    PyFrameObject *f;
+    PyObject *builtins;
+    int extras, ncells, nfrees;
+    ncells = PyTuple_GET_SIZE(code-&gt;co_cellvars);
+    nfrees = PyTuple_GET_SIZE(code-&gt;co_freevars);
+    extras = code-&gt;co_stacksize + code-&gt;co_nlocals + ncells + nfrees;
+    
+    if (back == NULL || back-&gt;f_globals != globals) {
+        
+        /* JKT: how did builtin_object get to be NULL again!?!? */
+        if (builtin_object == NULL)
+            builtin_object = PyString_InternFromString(&quot;__builtins__&quot;);
+        
+        builtins = PyDict_GetItem(globals, builtin_object);
+        if (builtins) {
+            if (PyModule_Check(builtins)) {
+                builtins = PyModule_GetDict(builtins);
+            }
+            else if (!PyDict_Check(builtins))
+                builtins = NULL;
+        }
+        if (builtins == NULL) {
+            /* No builtins!  Make up a minimal one 
+               Give them 'None', at least. */
+            builtins = PyDict_New();
+            if (builtins == NULL || 
+                PyDict_SetItemString(
+                    builtins, &quot;None&quot;, Py_None) &lt; 0)
+                return NULL;
+        }
+        else
+            Py_INCREF(builtins);
+    
+    }
+    else {
+        /* If we share the globals, we share the builtins.
+           Save a lookup and a call. */
+        builtins = back-&gt;f_builtins;
+        Py_INCREF(builtins);
+    }
+    
+    if (free_list == NULL) {
+        f = PyObject_GC_NewVar(PyFrameObject, &amp;PyFrame_Type, extras);
+        if (f == NULL)
+            return NULL;
+    }
+    else {
+        /* NOT IMPLEMENTED */
+    }
+    
+    f-&gt;f_builtins = builtins;
+    Py_XINCREF(back);
+    f-&gt;f_back = back;
+    Py_INCREF(code);
+    f-&gt;f_code = code;
+    Py_INCREF(globals);
+    f-&gt;f_globals = globals;
+    
+    /* Most functions have CO_NEWLOCALS and CO_OPTIMIZED set. */
+    if ((code-&gt;co_flags &amp; (CO_NEWLOCALS | CO_OPTIMIZED)) == 
+        (CO_NEWLOCALS | CO_OPTIMIZED))
+        locals = NULL; /* PyFrame_Fast2Locals() will set. */
+    else if (code-&gt;co_flags &amp; CO_NEWLOCALS) {
+        locals = PyDict_New();
+        if (locals == NULL) {
+            Py_DECREF(f);
+            return NULL;
+        }
+    }
+    else {
+        if (locals == NULL)
+            locals = globals;
+        Py_INCREF(locals);
+    }
+    
+    f-&gt;f_locals = locals;
+    f-&gt;f_trace = NULL;
+    f-&gt;f_exc_type = f-&gt;f_exc_value = f-&gt;f_exc_traceback = NULL;
+    f-&gt;f_tstate = tstate;
+    
+    f-&gt;f_lasti = -1;
+    f-&gt;f_lineno = code-&gt;co_firstlineno;
+    f-&gt;f_restricted = (builtins != tstate-&gt;interp-&gt;builtins);
+    f-&gt;f_iblock = 0;
+    f-&gt;f_nlocals = code-&gt;co_nlocals;
+    f-&gt;f_stacksize = code-&gt;co_stacksize;
+    f-&gt;f_ncells = ncells;
+    f-&gt;f_nfreevars = nfrees;
+    
+    extras = f-&gt;f_nlocals + ncells + nfrees;
+    memset(f-&gt;f_localsplus, 0, extras * sizeof(f-&gt;f_localsplus[0]));
+    
+    f-&gt;f_valuestack = f-&gt;f_localsplus + extras;
+    f-&gt;f_stacktop = f-&gt;f_valuestack;
+    
+    _PyObject_GC_TRACK(f);
+    
+    LOG(&quot;&lt; PyFrame_New\n&quot;);
+    return f;
 }}
 
 void
 PyFrame_Fini(void)
 {
-	/* TO DO */
+    /* TO DO */
 }
 
 /* Block management */
@@ -168,21 +168,21 @@ PyFrame_Fini(void)
 void
 PyFrame_BlockSetup(PyFrameObject *f, int type, int handler, int level)
 {
-	PyTryBlock *b;
-	if (f-&gt;f_iblock &gt;= CO_MAXBLOCKS)
-		Py_FatalError(&quot;XXX block stack overflow&quot;);
-	b = &amp;f-&gt;f_blockstack[f-&gt;f_iblock++];
-	b-&gt;b_type = type;
-	b-&gt;b_level = level;
-	b-&gt;b_handler = handler;
+    PyTryBlock *b;
+    if (f-&gt;f_iblock &gt;= CO_MAXBLOCKS)
+        Py_FatalError(&quot;XXX block stack overflow&quot;);
+    b = &amp;f-&gt;f_blockstack[f-&gt;f_iblock++];
+    b-&gt;b_type = type;
+    b-&gt;b_level = level;
+    b-&gt;b_handler = handler;
 }
 
 PyTryBlock *
 PyFrame_BlockPop(PyFrameObject *f)
 {
-	PyTryBlock *b;
-	if (f-&gt;f_iblock &lt;= 0)
-		Py_FatalError(&quot;XXX block stack underflow&quot;);
-	b = &amp;f-&gt;f_blockstack[--f-&gt;f_iblock];
-	return b;
+    PyTryBlock *b;
+    if (f-&gt;f_iblock &lt;= 0)
+        Py_FatalError(&quot;XXX block stack underflow&quot;);
+    b = &amp;f-&gt;f_blockstack[--f-&gt;f_iblock];
+    return b;
 }</diff>
      <filename>echo/python/Objects/frameobject.c</filename>
    </modified>
    <modified>
      <diff>@@ -5,77 +5,78 @@ static int initialized = 0;
 void
 Py_Initialize(void)
 {
-	printf(&quot;Initializing\n&quot;);
-	
-	LOG(&quot;&gt; Py_Initialize\n&quot;); {
-
-	PyInterpreterState *interp;
-	PyThreadState *tstate;
-	PyObject *bimod;
-	extern void _Py_ReadyTypes(void);
-
-	if (initialized)
-		return;
-	initialized = 1;
-
-	interp = PyInterpreterState_New();
-
-	if (interp == NULL)
-		Py_FatalError(&quot;Py_Initialize: can't make first interpreter&quot;);
-
-	tstate = PyThreadState_New(interp);
-
-	if (tstate == NULL)
-		Py_FatalError(&quot;Py_Initialize: can't make first thread&quot;);
-
-	(void) PyThreadState_Swap(tstate);
-
-	_Py_ReadyTypes();
-
-	if (!_PyFrame_Init())
-		Py_FatalError(&quot;Py_Initialize: can't init frames&quot;);
-
-	if (!_PyInt_Init())
-		Py_FatalError(&quot;Py_Initialize: can't init ints&quot;);
-
-	interp-&gt;modules = PyDict_New();
-	if (interp-&gt;modules == NULL)
-		Py_FatalError(&quot;Py_Initialize: can't make modules dictionary&quot;);
-
-	bimod = _PyBuiltin_Init();
-	if (bimod == NULL)
-		Py_FatalError(&quot;Py_Initialize: can't initialize __builtin__&quot;);
-	interp-&gt;builtins = PyModule_GetDict(bimod);
-	Py_INCREF(interp-&gt;builtins);
-	
-	LOG(&quot;&lt; Py_Initialize\n&quot;);
+    printf(&quot;Initializing\n&quot;);
+    
+    LOG(&quot;&gt; Py_Initialize\n&quot;); {
+    
+    PyInterpreterState *interp;
+    PyThreadState *tstate;
+    PyObject *bimod;
+    extern void _Py_ReadyTypes(void);
+    
+    if (initialized)
+        return;
+    initialized = 1;
+    
+    interp = PyInterpreterState_New();
+    
+    if (interp == NULL)
+        Py_FatalError(&quot;Py_Initialize: can't make first interpreter&quot;);
+    
+    tstate = PyThreadState_New(interp);
+    
+    if (tstate == NULL)
+        Py_FatalError(&quot;Py_Initialize: can't make first thread&quot;);
+    
+    (void) PyThreadState_Swap(tstate);
+    
+    _Py_ReadyTypes();
+    
+    if (!_PyFrame_Init())
+        Py_FatalError(&quot;Py_Initialize: can't init frames&quot;);
+    
+    if (!_PyInt_Init())
+        Py_FatalError(&quot;Py_Initialize: can't init ints&quot;);
+    
+    interp-&gt;modules = PyDict_New();
+    if (interp-&gt;modules == NULL)
+        Py_FatalError(&quot;Py_Initialize: can't make modules dictionary&quot;);
+    
+    bimod = _PyBuiltin_Init();
+    if (bimod == NULL)
+        Py_FatalError(&quot;Py_Initialize: can't initialize __builtin__&quot;);
+    
+    interp-&gt;builtins = PyModule_GetDict(bimod);
+    Py_INCREF(interp-&gt;builtins);
+    
+    LOG(&quot;&lt; Py_Initialize\n&quot;);
 }}
 
 void
 Py_Finalize(void)
 {
-	LOG(&quot;&gt; Py_Finalize\n&quot;); {
-	PyInterpreterState *interp;
-	PyThreadState *tstate;
-
-	initialized = 0;
-
-	tstate = PyThreadState_Get();
-	interp = tstate-&gt;interp;
-
-	PyInterpreterState_Clear(interp);
-
-	PyThreadState_Swap(NULL);
-	PyInterpreterState_Delete(interp);
-
-	PyFrame_Fini();
-	PyInt_Fini();
-	LOG(&quot;&lt; Py_Finalize\n&quot;);
+    LOG(&quot;&gt; Py_Finalize\n&quot;); {
+    PyInterpreterState *interp;
+    PyThreadState *tstate;
+    
+    initialized = 0;
+    
+    tstate = PyThreadState_Get();
+    interp = tstate-&gt;interp;
+    
+    PyInterpreterState_Clear(interp);
+    
+    PyThreadState_Swap(NULL);
+    PyInterpreterState_Delete(interp);
+    
+    PyFrame_Fini();
+    PyInt_Fini();
+    LOG(&quot;&lt; Py_Finalize\n&quot;);
 }}
 
 void
 Py_FatalError(const char *msg)
 {
-	printf(&quot;FATAL ERROR: %s\n&quot;, msg);
-	while (1) {}
+    printf(&quot;FATAL ERROR: %s\n&quot;, msg);
+    while (1) {}
 }</diff>
      <filename>echo/python/Python/pythonrun.c</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>2750df62d20e4698d6fdee2143e91df2b1058683</id>
    </parent>
  </parents>
  <author>
    <name>James Tauber</name>
    <email>jtauber@jtauber.com</email>
  </author>
  <url>http://github.com/jtauber/cleese/commit/005adc3959224ff39d826f3a7a7800ba9ed30a85</url>
  <id>005adc3959224ff39d826f3a7a7800ba9ed30a85</id>
  <committed-date>2009-10-11T13:15:05-07:00</committed-date>
  <authored-date>2009-10-11T13:15:05-07:00</authored-date>
  <message>tabs to spaces</message>
  <tree>c9b4c430caa6f901910f119302d1f16fc5265514</tree>
  <committer>
    <name>James Tauber</name>
    <email>jtauber@jtauber.com</email>
  </committer>
</commit>
