Support for frozen scripts; added -i option.
diff --git a/Python/marshal.c b/Python/marshal.c
index 65f7f2d..3853ff9 100644
--- a/Python/marshal.c
+++ b/Python/marshal.c
@@ -225,7 +225,8 @@
 typedef WFILE RFILE; /* Same struct with different invariants */
 
 #define r_byte(p) ((p)->fp ? getc((p)->fp) \
-			  : ((p)->ptr != (p)->end) ? *(p)->ptr++ : EOF)
+			  : ((p)->ptr != (p)->end) ? \
+		   	    (unsigned char)*(p)->ptr++ : EOF)
 
 static int
 r_string(s, n, p)
@@ -425,6 +426,19 @@
 	return r_object(&rf);
 }
 
+object *
+rds_object(str, len)
+	char *str;
+	int len;
+{
+	RFILE rf;
+	rf.fp = NULL;
+	rf.str = NULL;
+	rf.ptr = str;
+	rf.end = str + len;
+	return r_object(&rf);
+}
+
 /* And an interface for Python programs... */
 
 static object *