@@ -0,0 +1,405 @@
+--- subversion/bindings/swig/proxy/rubyhead.swg 2008-07-24 06:39:29.000000000 +0100
++++ subversion/bindings/swig/proxy/rubyhead.swg 2008-06-26 09:49:08.000000000 +0100
+@@ -1,5 +1,14 @@
+ #include <ruby.h>
+
++/* Remove global macros defined in Ruby's win32.h */
++#ifdef write
++# undef write
++#endif
++#ifdef read
++# undef read
++#endif
++
++
+ /* Ruby 1.7 defines NUM2LL(), LL2NUM() and ULL2NUM() macros */
+ #ifndef NUM2LL
+ #define NUM2LL(x) NUM2LONG((x))
+@@ -28,12 +37,44 @@
+ #ifndef RSTRING_PTR
+ # define RSTRING_PTR(x) RSTRING(x)->ptr
+ #endif
++#ifndef RSTRING_END
++# define RSTRING_END(x) (RSTRING_PTR(x) + RSTRING_LEN(x))
++#endif
+ #ifndef RARRAY_LEN
+ # define RARRAY_LEN(x) RARRAY(x)->len
+ #endif
+ #ifndef RARRAY_PTR
+ # define RARRAY_PTR(x) RARRAY(x)->ptr
+ #endif
++#ifndef RFLOAT_VALUE
++# define RFLOAT_VALUE(x) RFLOAT(x)->value
++#endif
++#ifndef DOUBLE2NUM
++# define DOUBLE2NUM(x) rb_float_new(x)
++#endif
++#ifndef RHASH_TBL
++# define RHASH_TBL(x) (RHASH(x)->tbl)
++#endif
++#ifndef RHASH_ITER_LEV
++# define RHASH_ITER_LEV(x) (RHASH(x)->iter_lev)
++#endif
++#ifndef RHASH_IFNONE
++# define RHASH_IFNONE(x) (RHASH(x)->ifnone)
++#endif
++#ifndef RHASH_SIZE
++# define RHASH_SIZE(x) (RHASH(x)->tbl->num_entries)
++#endif
++#ifndef RHASH_EMPTY_P
++# define RHASH_EMPTY_P(x) (RHASH_SIZE(x) == 0)
++#endif
++#ifndef RSTRUCT_LEN
++# define RSTRUCT_LEN(x) RSTRUCT(x)->len
++#endif
++#ifndef RSTRUCT_PTR
++# define RSTRUCT_PTR(x) RSTRUCT(x)->ptr
++#endif
++
++
+
+ /*
+ * Need to be very careful about how these macros are defined, especially
+@@ -95,3 +136,4 @@
+ #define rb_undef_alloc_func(klass) rb_undef_method(CLASS_OF((klass)), "new")
+ #endif
+
++static VALUE _mSWIG = Qnil;
+--- subversion/bindings/swig/proxy/swigrun.swg 2008-07-24 06:39:27.000000000 +0100
++++ subversion/bindings/swig/proxy/swigrun.swg 2008-06-26 09:48:55.000000000 +0100
+@@ -7,7 +7,7 @@
+
+ /* This should only be incremented when either the layout of swig_type_info changes,
+ or for whatever reason, the runtime changes incompatibly */
+-#define SWIG_RUNTIME_VERSION "3"
++#define SWIG_RUNTIME_VERSION "4"
+
+ /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
+ #ifdef SWIG_TYPE_TABLE
+@@ -42,6 +42,7 @@
+
+ /* Flags for pointer conversions */
+ #define SWIG_POINTER_DISOWN 0x1
++#define SWIG_CAST_NEW_MEMORY 0x2
+
+ /* Flags for new pointer objects */
+ #define SWIG_POINTER_OWN 0x1
+@@ -182,10 +183,10 @@ SWIGINTERNINLINE int SWIG_CheckState(int
+ extern "C" {
+ #endif
+
+-typedef void *(*swig_converter_func)(void *);
++typedef void *(*swig_converter_func)(void *, int *);
+ typedef struct swig_type_info *(*swig_dycast_func)(void **);
+
+-/* Structure to store inforomation on one type */
++/* Structure to store information on one type */
+ typedef struct swig_type_info {
+ const char *name; /* mangled name of this type */
+ const char *str; /* human readable name of this type */
+@@ -230,7 +231,7 @@ SWIG_TypeNameComp(const char *f1, const
+ while ((*f2 == ' ') && (f2 != l2)) ++f2;
+ if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
+ }
+- return (l1 - f1) - (l2 - f2);
++ return (int)((l1 - f1) - (l2 - f2));
+ }
+
+ /*
+@@ -312,8 +313,8 @@ SWIG_TypeCheckStruct(swig_type_info *fro
+ Cast a pointer up an inheritance hierarchy
+ */
+ SWIGRUNTIMEINLINE void *
+-SWIG_TypeCast(swig_cast_info *ty, void *ptr) {
+- return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr);
++SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
++ return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
+ }
+
+ /*
+--- subversion/bindings/swig/proxy/pyrun.swg 2008-07-24 06:39:30.000000000 +0100
++++ /usr/share/swig/1.3.36/python/pyrun.swg 2008-06-26 09:49:03.000000000 +0100
+@@ -128,14 +128,14 @@ SWIG_Python_AppendOutput(PyObject* resul
+ /* Unpack the argument tuple */
+
+ SWIGINTERN int
+-SWIG_Python_UnpackTuple(PyObject *args, const char *name, int min, int max, PyObject **objs)
++SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs)
+ {
+ if (!args) {
+ if (!min && !max) {
+ return 1;
+ } else {
+ PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none",
+- name, (min == max ? "" : "at least "), min);
++ name, (min == max ? "" : "at least "), (int)min);
+ return 0;
+ }
+ }
+@@ -143,14 +143,14 @@ SWIG_Python_UnpackTuple(PyObject *args,
+ PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple");
+ return 0;
+ } else {
+- register int l = PyTuple_GET_SIZE(args);
++ register Py_ssize_t l = PyTuple_GET_SIZE(args);
+ if (l < min) {
+ PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d",
+- name, (min == max ? "" : "at least "), min, l);
++ name, (min == max ? "" : "at least "), (int)min, (int)l);
+ return 0;
+ } else if (l > max) {
+ PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d",
+- name, (min == max ? "" : "at most "), max, l);
++ name, (min == max ? "" : "at most "), (int)max, (int)l);
+ return 0;
+ } else {
+ register int i;
+@@ -448,7 +448,7 @@ PySwigObject_dealloc(PyObject *v)
+ {
+ PySwigObject *sobj = (PySwigObject *) v;
+ PyObject *next = sobj->next;
+- if (sobj->own) {
++ if (sobj->own == SWIG_POINTER_OWN) {
+ swig_type_info *ty = sobj->ty;
+ PySwigClientData *data = ty ? (PySwigClientData *) ty->clientdata : 0;
+ PyObject *destroy = data ? data->destroy : 0;
+@@ -466,12 +466,13 @@ PySwigObject_dealloc(PyObject *v)
+ res = ((*meth)(mself, v));
+ }
+ Py_XDECREF(res);
+- } else {
+- const char *name = SWIG_TypePrettyName(ty);
++ }
+ #if !defined(SWIG_PYTHON_SILENT_MEMLEAK)
+- printf("swig/python detected a memory leak of type '%s', no destructor found.\n", name);
+-#endif
++ else {
++ const char *name = SWIG_TypePrettyName(ty);
++ printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown"));
+ }
++#endif
+ }
+ Py_XDECREF(next);
+ PyObject_DEL(v);
+@@ -629,9 +630,11 @@ _PySwigObject_type(void) {
+ (unaryfunc)0, /*nb_float*/
+ (unaryfunc)PySwigObject_oct, /*nb_oct*/
+ (unaryfunc)PySwigObject_hex, /*nb_hex*/
+-#if PY_VERSION_HEX >= 0x02020000
+- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */
+-#elif PY_VERSION_HEX >= 0x02000000
++#if PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */
++ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */
++#elif PY_VERSION_HEX >= 0x02020000 /* 2.2.0 */
++ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */
++#elif PY_VERSION_HEX >= 0x02000000 /* 2.0.0 */
+ 0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */
+ #endif
+ };
+@@ -974,7 +977,7 @@ SWIG_Python_GetSwigThis(PyObject *pyobj)
|