Whoops, checkin consistent versions of *all* files to stop polluting
a bunch of names
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index 677705c..14040ad 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -17,6 +17,7 @@
 static int marshal_write_arguments(PyObject **, int *, arguments_ty);
 static int marshal_write_keyword(PyObject **, int *, keyword_ty);
 static int marshal_write_alias(PyObject **, int *, alias_ty);
+
 mod_ty
 Module(asdl_seq * body)
 {
@@ -1087,6 +1088,7 @@
         return p;
 }
 
+
 static void
 free_seq_exprs(asdl_seq *seq)
 {
@@ -1107,6 +1109,7 @@
         asdl_seq_free(seq);
 }
 
+
 void
 free_mod(mod_ty o)
 {
@@ -1533,6 +1536,76 @@
         free(o);
 }
 
+
+
+#define CHECKSIZE(BUF, OFF, MIN) { \
+	int need = *(OFF) + MIN; \
+	if (need >= PyString_GET_SIZE(*(BUF))) { \
+		int newsize = PyString_GET_SIZE(*(BUF)) * 2; \
+		if (newsize < need) \
+			newsize = need; \
+		if (_PyString_Resize((BUF), newsize) < 0) \
+			return 0; \
+	} \
+} 
+
+static int 
+marshal_write_int(PyObject **buf, int *offset, int x)
+{
+	char *s;
+
+	CHECKSIZE(buf, offset, 4)
+	s = PyString_AS_STRING(*buf) + (*offset);
+	s[0] = (x & 0xff);
+	s[1] = (x >> 8) & 0xff;
+	s[2] = (x >> 16) & 0xff;
+	s[3] = (x >> 24) & 0xff;
+	*offset += 4;
+	return 1;
+}
+
+static int 
+marshal_write_bool(PyObject **buf, int *offset, bool b)
+{
+	if (b)
+		marshal_write_int(buf, offset, 1);
+	else
+		marshal_write_int(buf, offset, 0);
+	return 1;
+}
+
+static int 
+marshal_write_identifier(PyObject **buf, int *offset, identifier id)
+{
+	int l = PyString_GET_SIZE(id);
+	marshal_write_int(buf, offset, l);
+	CHECKSIZE(buf, offset, l);
+	memcpy(PyString_AS_STRING(*buf) + *offset,
+	       PyString_AS_STRING(id), l);
+	*offset += l;
+	return 1;
+}
+
+static int 
+marshal_write_string(PyObject **buf, int *offset, string s)
+{
+	int len = PyString_GET_SIZE(s);
+	marshal_write_int(buf, offset, len);
+	CHECKSIZE(buf, offset, len);
+	memcpy(PyString_AS_STRING(*buf) + *offset,
+	       PyString_AS_STRING(s), len);
+	*offset += len;
+	return 1;
+}
+
+static int 
+marshal_write_object(PyObject **buf, int *offset, object s)
+{
+	/* XXX */
+	return 0;
+}
+
+
 static int
 marshal_write_mod(PyObject **buf, int *off, mod_ty o)
 {
@@ -2286,3 +2359,4 @@
         return 1;
 }
 
+