summaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorahze <ahze@df743ca5-7f9a-e211-a948-0013205c9059>2006-10-01 10:08:31 +0800
committerahze <ahze@df743ca5-7f9a-e211-a948-0013205c9059>2006-10-01 10:08:31 +0800
commit5fd5f9c23ad61fb47fd066ffb187e5f4362b46e4 (patch)
treed5dfb76d9c4d9d95b03d27b143a42113154c8bd6 /java
parent830d294a5e2395223311fb8b9f6aa3e65ccf1443 (diff)
downloadmarcuscom-ports-5fd5f9c23ad61fb47fd066ffb187e5f4362b46e4.tar.gz
marcuscom-ports-5fd5f9c23ad61fb47fd066ffb187e5f4362b46e4.tar.zst
marcuscom-ports-5fd5f9c23ad61fb47fd066ffb187e5f4362b46e4.zip
- Attempt to fix build with gecko move. (someone that uses eclipse please test)
git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@7447 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'java')
-rw-r--r--java/eclipse/Makefile149
-rw-r--r--java/eclipse/distinfo3
-rw-r--r--java/eclipse/files/eclipse.desktop10
-rwxr-xr-xjava/eclipse/files/eclipse.in49
-rw-r--r--java/eclipse/files/manualpatch-plugins-swt-cairo-library2432
-rw-r--r--java/eclipse/files/manualpatch-plugins-swt-gtk-build.sh42
-rw-r--r--java/eclipse/files/manualpatch-plugins-swt-gtk-make_freebsd.mak41
-rw-r--r--java/eclipse/files/manualpatch-plugins-swt-gtk-os_custom.h59
-rw-r--r--java/eclipse/files/manualpatch-plugins-swt-motif-build.sh28
-rw-r--r--java/eclipse/files/manualpatch-plugins-swt-motif-make_freebsd.mak44
-rw-r--r--java/eclipse/files/patch-assemble39
-rw-r--r--java/eclipse/files/patch-build11
-rw-r--r--java/eclipse/files/patch-build.bat12
-rw-r--r--java/eclipse/files/patch-build.xml30
-rw-r--r--java/eclipse/files/patch-features-jdt-build.xml27
-rw-r--r--java/eclipse/files/patch-features-jdt-source-build.xml15
-rw-r--r--java/eclipse/files/patch-features-launchers-gtk-build.sh41
-rw-r--r--java/eclipse/files/patch-features-launchers-gtk-make_freebsd.mak11
-rw-r--r--java/eclipse/files/patch-features-launchers-library-eclipseShm.c17
-rw-r--r--java/eclipse/files/patch-features-launchers-motif-build.sh33
-rw-r--r--java/eclipse/files/patch-features-pde-build.xml15
-rw-r--r--java/eclipse/files/patch-features-pde-source-build.xml15
-rw-r--r--java/eclipse/files/patch-features-platform-build.xml97
-rw-r--r--java/eclipse/files/patch-features-platform-source-build.xml46
-rw-r--r--java/eclipse/files/patch-features-platform-source-feature.xml10
-rw-r--r--java/eclipse/files/patch-features-rcp-build.xml80
-rw-r--r--java/eclipse/files/patch-features-rcp-source-build.xml46
-rw-r--r--java/eclipse/files/patch-features-sdk-build.xml15
-rw-r--r--java/eclipse/files/patch-plugins-core-build.xml53
-rw-r--r--java/eclipse/files/patch-plugins-update-src-build.xml31
-rw-r--r--java/eclipse/files/patch-plugins-update-src-update.c15
-rw-r--r--java/eclipse/pkg-descr8
-rw-r--r--java/eclipse/scripts/pre-patch104
33 files changed, 3628 insertions, 0 deletions
diff --git a/java/eclipse/Makefile b/java/eclipse/Makefile
new file mode 100644
index 000000000..3c818b7d0
--- /dev/null
+++ b/java/eclipse/Makefile
@@ -0,0 +1,149 @@
+# New ports collection makefile for: eclipse
+# Date created: March 7, 2003
+# Whom: various members of freebsd-java
+#
+# $FreeBSD$
+#
+
+PORTNAME= eclipse
+PORTVERSION= 3.1.2
+PORTREVISION= 0
+CATEGORIES= java devel
+MASTER_SITES= ${MASTER_SITE_ECLIPSE}
+MASTER_SITE_SUBDIR= R-${PORTVERSION}-200601181600
+DISTNAME= ${PORTNAME}-sourceBuild-srcIncluded-${PORTVERSION}
+DIST_SUBDIR= eclipse
+
+MAINTAINER= freebsd-eclipse@FreeBSD.org
+COMMENT= An open extensible IDE for anything and nothing in particular
+
+BUILD_DEPENDS= ant:${PORTSDIR}/devel/apache-ant \
+ zip:${PORTSDIR}/archivers/zip
+BUILD_DEPENDS+= ${EXTRACT_DEPENDS}
+
+ONLY_FOR_ARCHS= i386 amd64
+USE_GMAKE= yes
+USE_ZIP= yes
+USE_GCC= 3.4
+
+USE_JAVA= yes
+JAVA_VERSION= 1.4+
+JAVA_OS= native
+
+NO_WRKSUBDIR= yes
+
+PORTDESTDIR= ${PREFIX}/eclipse
+
+ECLIPSE_OS= freebsd
+
+.if defined(WITH_MOTIF)
+ECLIPSE_WS= motif
+USE_ICONV= yes
+USE_MOTIF= yes
+.else
+ECLIPSE_WS= gtk
+.if defined(WITHOUT_CAIRO)
+MAKE_CAIRO=
+.else
+LIB_DEPENDS= cairo.2:${PORTSDIR}/graphics/cairo
+MAKE_CAIRO= make_cairo
+.endif
+.endif
+
+.if defined(WITHOUT_GNOMEVFS)
+MAKE_GNOME=
+USE_GNOME= gtk20 pkgconfig desktopfileutils
+.else
+MAKE_GNOME= make_gnome
+USE_GNOME= gtk20 gnomevfs2 libgnome libgnomeui pkgconfig desktopfileutils
+.endif
+
+.include <bsd.port.pre.mk>
+
+.if (${ARCH} == "amd64")
+ECLIPSE_ARCH= amd64
+ECLIPSE_SWT= gtk64
+.else
+ECLIPSE_ARCH= x86
+ECLIPSE_SWT= gtk
+.endif
+
+.if !defined(WITHOUT_MOZILLA)
+MAKE_MOZILLA= make_mozilla
+USE_GECKO= firefox mozilla seamonkey xulrunner
+.include "${PORTSDIR}/www/mozilla/bsd.gecko.mk"
+BROWSER= ${GECKO}
+USE_LDCONFIG= yes
+.else
+BROWSER=
+MAKE_MOZILLA=
+.endif
+
+MAKE_ENV+= BROWSER=${BROWSER} \
+ ECLIPSE_ARCH=${ECLIPSE_ARCH} \
+ ECLIPSE_OS=${ECLIPSE_OS} \
+ ECLIPSE_WS=${ECLIPSE_WS} \
+ JAVA_HOME=${JAVA_HOME} \
+ MAKE_GNOME=${MAKE_GNOME} \
+ MAKE_MOZILLA=${MAKE_MOZILLA} \
+ MAKE_CAIRO=${MAKE_CAIRO} \
+ MACHINE_ARCH=${MACHINE_ARCH} \
+ MOTIF_HOME=${X11_HOME} \
+ GECKO_CONFIG=${GECKO_CONFIG}
+
+PLIST_FILES= bin/eclipse share/applications/eclipse.desktop
+
+SWTCAIRO=${WRKSRC}/plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library
+SWTGTK=${WRKSRC}/plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library
+SWTMOTIF=${WRKSRC}/plugins/org.eclipse.swt/Eclipse SWT PI/motif/library
+
+# Manually patch some files with spaces in the path
+post-patch:
+ @${PATCH} ${PATCH_DIST_ARGS} "${SWTMOTIF}/build.sh" \
+ ${FILESDIR}/manualpatch-plugins-swt-motif-build.sh
+ @${PATCH} ${PATCH_DIST_ARGS} "${SWTMOTIF}/make_freebsd.mak" \
+ ${FILESDIR}/manualpatch-plugins-swt-motif-make_freebsd.mak
+ @${PATCH} ${PATCH_DIST_ARGS} "${SWTGTK}/make_freebsd.mak" \
+ ${FILESDIR}/manualpatch-plugins-swt-gtk-make_freebsd.mak
+ @${PATCH} ${PATCH_DIST_ARGS} "${SWTGTK}/build.sh" \
+ ${FILESDIR}/manualpatch-plugins-swt-gtk-build.sh
+ @${PATCH} ${PATCH_DIST_ARGS} \
+ "plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo.c" \
+ ${FILESDIR}/manualpatch-plugins-swt-cairo-library \
+ + "plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo.h" \
+ + "plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_custom.c" \
+ + "plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_stats.c" \
+ + "plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_stats.h" \
+ + "plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_structs.c" \
+ + "plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_structs.h"
+
+do-build:
+ @(cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} \
+ ./build -os ${ECLIPSE_OS} -ws ${ECLIPSE_WS} -arch ${ECLIPSE_ARCH} -compilelibs)
+
+do-install:
+ @${MKDIR} ${PORTDESTDIR}
+ @${TAR} -xzf ${WRKSRC}/result/*.tar.gz -C ${PREFIX}
+ @${SED} \
+ -e "s+%%ECLIPSE_HOME%%+${PORTDESTDIR}+g" \
+ -e "s+%%PREFIX%%+${PREFIX}+g" \
+ -e "s+%%X11BASE%%+${X11BASE}+g" \
+ -e "s+%%BROWSER%%+${BROWSER}+g" \
+ -e "s,%%JAVA_VERSION%%,${JAVA_VERSION},g" \
+ -e "s+%%JAVA_OS%%+${JAVA_OS}+g" \
+ ${FILESDIR}/eclipse.in > ${WRKSRC}/eclipse.tmp
+ ${INSTALL_SCRIPT} ${WRKSRC}/eclipse.tmp ${PREFIX}/bin/eclipse
+ @${SED} \
+ -e "s+%%ECLIPSE_HOME%%+${PORTDESTDIR}+g" \
+ -e "s+%%PREFIX%%+${PREFIX}+g" \
+ ${FILESDIR}/eclipse.desktop > ${WRKSRC}/eclipse.desktop.tmp
+ ${INSTALL_DATA} ${WRKSRC}/eclipse.desktop.tmp ${PREFIX}/share/applications/eclipse.desktop
+ ${INSTALL_PROGRAM} ${WRKSRC}/launchertmp/eclipse ${PREFIX}/eclipse/eclipse
+ @-update-desktop-database
+ @(cd ${WRKSRC}; ${FIND} -s eclipse -not -type d) >> ${TMPPLIST}
+ @echo '@exec ${PREFIX}/bin/update-desktop-database > /dev/null || /usr/bin/true' >> ${TMPPLIST}
+ @(cd ${WRKSRC}; ${FIND} -s -d eclipse -type d) \
+ | ${SED} -ne 's,^,@dirrm ,p' >> ${TMPPLIST}
+ @echo '@unexec ${PREFIX}/bin/update-desktop-database > /dev/null || /usr/bin/true' >> ${TMPPLIST}
+
+.include <bsd.port.post.mk>
diff --git a/java/eclipse/distinfo b/java/eclipse/distinfo
new file mode 100644
index 000000000..8ae795ce9
--- /dev/null
+++ b/java/eclipse/distinfo
@@ -0,0 +1,3 @@
+MD5 (eclipse/eclipse-sourceBuild-srcIncluded-3.1.2.zip) = f2c8066151de14c5ccdf420266ce9f39
+SHA256 (eclipse/eclipse-sourceBuild-srcIncluded-3.1.2.zip) = 31233332f205a197a42aafdc4f15a4f38eb5e4be19ac8a7192492ab8a21324a4
+SIZE (eclipse/eclipse-sourceBuild-srcIncluded-3.1.2.zip) = 66630673
diff --git a/java/eclipse/files/eclipse.desktop b/java/eclipse/files/eclipse.desktop
new file mode 100644
index 000000000..37a3c2b75
--- /dev/null
+++ b/java/eclipse/files/eclipse.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Comment=Eclipse IDE
+Name=Eclipse
+Exec=%%PREFIX%%/bin/eclipse
+Encoding=UTF-8
+Terminal=false
+Type=Application
+Icon=%%ECLIPSE_HOME%%/icon.xpm
+Categories=Application;Development;
+
diff --git a/java/eclipse/files/eclipse.in b/java/eclipse/files/eclipse.in
new file mode 100755
index 000000000..e88d25feb
--- /dev/null
+++ b/java/eclipse/files/eclipse.in
@@ -0,0 +1,49 @@
+#!/bin/sh
+#
+# FreeBSD-specific startup script for Eclipse Platform
+#
+# See: http://www.eclipse.org
+#
+# $FreeBSD: ports/java/eclipse/files/eclipse.in,v 1.6 2005/10/18 02:42:04 hq Exp $
+#
+
+DEFAULT_JAVA_HOME=%%PREFIX%%
+ECLIPSE_HOME=%%ECLIPSE_HOME%%
+DEFAULT_JAVA_CMD=java
+export MOZILLA_FIVE_HOME=%%LOCALBASE%%/lib/%%BROWSER%%
+export LD_LIBRARY_PATH=$MOZILLA_FIVE_HOME:$LD_LIBRARY_PATH
+
+
+#-----------------------------------------------------------------------------
+# Determine configuration settings
+#-----------------------------------------------------------------------------
+
+# Determine the JDK home directory
+if [ -z "${JAVA_HOME}" ]; then
+ JAVA_HOME=${DEFAULT_JAVA_HOME}
+fi
+
+# Determine 'java' executable
+if [ -z "${JAVACMD}" ]; then
+ if [ -n "${JAVA_HOME}" ]; then
+ JAVACMD="${JAVA_HOME}/bin/java"
+ else
+ JAVACMD=${DEFAULT_JAVACMD}
+ fi
+fi
+
+# Check if 'java' executable can be found
+if [ ! -x "$JAVACMD" ]; then
+ echo "Error: JAVA_HOME is not defined correctly: ${JAVA_HOME}"
+ echo " Unable to find ${JAVACMD}"
+ exit 1
+fi
+
+# Check if 'eclipse' executable can be found
+if [ ! -x "${ECLIPSE_HOME}/eclipse" ]; then
+ echo "Error: ECLIPSE_HOME is not defined correctly: ${ECLIPSE_HOME}"
+ echo " Unable to find eclipse launcher binary"
+ exit 1
+fi
+
+JAVA_VERSION="%%JAVA_VERSION%%" JAVA_OS="%%JAVA_OS%%" PATH=${JAVA_HOME}/bin:${PATH} exec "${ECLIPSE_HOME}/eclipse" $@
diff --git a/java/eclipse/files/manualpatch-plugins-swt-cairo-library b/java/eclipse/files/manualpatch-plugins-swt-cairo-library
new file mode 100644
index 000000000..e0c57e25e
--- /dev/null
+++ b/java/eclipse/files/manualpatch-plugins-swt-cairo-library
@@ -0,0 +1,2432 @@
+diff -uN plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library.orig/cairo.c plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo.c
+--- plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library.orig/cairo.c Thu Aug 18 12:34:57 2005
++++ plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo.c Thu Aug 18 12:35:19 2005
+@@ -25,6 +25,16 @@
+
+ #define Cairo_NATIVE(func) Java_org_eclipse_swt_internal_cairo_Cairo_##func
+
++#ifndef NO_cairo_1append_1path
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1append_1path)
++ (JNIEnv *env, jclass that, jint arg0, jint arg1)
++{
++ Cairo_NATIVE_ENTER(env, that, cairo_1append_1path_FUNC);
++ cairo_append_path((cairo_t *)arg0, (cairo_path_t *)arg1);
++ Cairo_NATIVE_EXIT(env, that, cairo_1append_1path_FUNC);
++}
++#endif
++
+ #ifndef NO_cairo_1arc
+ JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1arc)
+ (JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2, jdouble arg3, jdouble arg4, jdouble arg5)
+@@ -55,6 +65,16 @@
+ }
+ #endif
+
++#ifndef NO_cairo_1clip_1preserve
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1clip_1preserve)
++ (JNIEnv *env, jclass that, jint arg0)
++{
++ Cairo_NATIVE_ENTER(env, that, cairo_1clip_1preserve_FUNC);
++ cairo_clip_preserve((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1clip_1preserve_FUNC);
++}
++#endif
++
+ #ifndef NO_cairo_1close_1path
+ JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1close_1path)
+ (JNIEnv *env, jclass that, jint arg0)
+@@ -65,353 +85,403 @@
+ }
+ #endif
+
+-#ifndef NO_cairo_1concat_1matrix
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1concat_1matrix)
+- (JNIEnv *env, jclass that, jint arg0, jint arg1)
++#ifndef NO_cairo_1copy_1page
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1copy_1page)
++ (JNIEnv *env, jclass that, jint arg0)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1concat_1matrix_FUNC);
+- cairo_concat_matrix((cairo_t *)arg0, (cairo_matrix_t *)arg1);
+- Cairo_NATIVE_EXIT(env, that, cairo_1concat_1matrix_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1copy_1page_FUNC);
++ cairo_copy_page((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1copy_1page_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1copy
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1copy)
+- (JNIEnv *env, jclass that, jint arg0, jint arg1)
++#ifndef NO_cairo_1copy_1path
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1copy_1path)
++ (JNIEnv *env, jclass that, jint arg0)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1copy_FUNC);
+- cairo_copy((cairo_t *)arg0, (cairo_t *)arg1);
+- Cairo_NATIVE_EXIT(env, that, cairo_1copy_FUNC);
++ jint rc = 0;
++ Cairo_NATIVE_ENTER(env, that, cairo_1copy_1path_FUNC);
++ rc = (jint)cairo_copy_path((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1copy_1path_FUNC);
++ return rc;
+ }
+ #endif
+
+-#ifndef NO_cairo_1copy_1page
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1copy_1page)
++#ifndef NO_cairo_1copy_1path_1flat
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1copy_1path_1flat)
+ (JNIEnv *env, jclass that, jint arg0)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1copy_1page_FUNC);
+- cairo_copy_page((cairo_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1copy_1page_FUNC);
++ jint rc = 0;
++ Cairo_NATIVE_ENTER(env, that, cairo_1copy_1path_1flat_FUNC);
++ rc = (jint)cairo_copy_path_flat((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1copy_1path_1flat_FUNC);
++ return rc;
+ }
+ #endif
+
+ #ifndef NO_cairo_1create
+ JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1create)
+- (JNIEnv *env, jclass that)
++ (JNIEnv *env, jclass that, jint arg0)
+ {
+ jint rc = 0;
+ Cairo_NATIVE_ENTER(env, that, cairo_1create_FUNC);
+- rc = (jint)cairo_create();
++ rc = (jint)cairo_create((cairo_surface_t *)arg0);
+ Cairo_NATIVE_EXIT(env, that, cairo_1create_FUNC);
+ return rc;
+ }
+ #endif
+
+-#ifndef NO_cairo_1current_1alpha
+-JNIEXPORT jdouble JNICALL Cairo_NATIVE(cairo_1current_1alpha)
+- (JNIEnv *env, jclass that, jint arg0)
++#ifndef NO_cairo_1curve_1to
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1curve_1to)
++ (JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2, jdouble arg3, jdouble arg4, jdouble arg5, jdouble arg6)
+ {
+- jdouble rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1current_1alpha_FUNC);
+- rc = (jdouble)cairo_current_alpha((cairo_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1current_1alpha_FUNC);
+- return rc;
++ Cairo_NATIVE_ENTER(env, that, cairo_1curve_1to_FUNC);
++ cairo_curve_to((cairo_t *)arg0, arg1, arg2, arg3, arg4, arg5, arg6);
++ Cairo_NATIVE_EXIT(env, that, cairo_1curve_1to_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1current_1fill_1rule
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1current_1fill_1rule)
++#ifndef NO_cairo_1destroy
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1destroy)
+ (JNIEnv *env, jclass that, jint arg0)
+ {
+- jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1current_1fill_1rule_FUNC);
+- rc = (jint)cairo_current_fill_rule((cairo_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1current_1fill_1rule_FUNC);
+- return rc;
++ Cairo_NATIVE_ENTER(env, that, cairo_1destroy_FUNC);
++ cairo_destroy((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1destroy_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1current_1font
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1current_1font)
+- (JNIEnv *env, jclass that, jint arg0)
++#ifndef NO_cairo_1device_1to_1user
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1device_1to_1user)
++ (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1, jdoubleArray arg2)
+ {
+- jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1current_1font_FUNC);
+- rc = (jint)cairo_current_font((cairo_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1current_1font_FUNC);
+- return rc;
++ jdouble *lparg1=NULL;
++ jdouble *lparg2=NULL;
++ Cairo_NATIVE_ENTER(env, that, cairo_1device_1to_1user_FUNC);
++ if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
++ if (arg2) if ((lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL)) == NULL) goto fail;
++ cairo_device_to_user((cairo_t *)arg0, lparg1, lparg2);
++fail:
++ if (arg2 && lparg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);
++ if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1device_1to_1user_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1current_1font_1extents
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1current_1font_1extents)
+- (JNIEnv *env, jclass that, jint arg0, jobject arg1)
++#ifndef NO_cairo_1device_1to_1user_1distance
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1device_1to_1user_1distance)
++ (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1, jdoubleArray arg2)
+ {
+- cairo_font_extents_t _arg1, *lparg1=NULL;
+- Cairo_NATIVE_ENTER(env, that, cairo_1current_1font_1extents_FUNC);
+- if (arg1) if ((lparg1 = getcairo_font_extents_tFields(env, arg1, &_arg1)) == NULL) goto fail;
+- cairo_current_font_extents((cairo_t *)arg0, (cairo_font_extents_t *)lparg1);
++ jdouble *lparg1=NULL;
++ jdouble *lparg2=NULL;
++ Cairo_NATIVE_ENTER(env, that, cairo_1device_1to_1user_1distance_FUNC);
++ if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
++ if (arg2) if ((lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL)) == NULL) goto fail;
++ cairo_device_to_user_distance((cairo_t *)arg0, lparg1, lparg2);
+ fail:
+- if (arg1 && lparg1) setcairo_font_extents_tFields(env, arg1, lparg1);
+- Cairo_NATIVE_EXIT(env, that, cairo_1current_1font_1extents_FUNC);
++ if (arg2 && lparg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);
++ if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1device_1to_1user_1distance_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1current_1line_1cap
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1current_1line_1cap)
++#ifndef NO_cairo_1fill
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1fill)
+ (JNIEnv *env, jclass that, jint arg0)
+ {
+- jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1current_1line_1cap_FUNC);
+- rc = (jint)cairo_current_line_cap((cairo_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1current_1line_1cap_FUNC);
+- return rc;
++ Cairo_NATIVE_ENTER(env, that, cairo_1fill_FUNC);
++ cairo_fill((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1fill_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1current_1line_1join
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1current_1line_1join)
+- (JNIEnv *env, jclass that, jint arg0)
++#ifndef NO_cairo_1fill_1extents
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1fill_1extents)
++ (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1, jdoubleArray arg2, jdoubleArray arg3, jdoubleArray arg4)
+ {
+- jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1current_1line_1join_FUNC);
+- rc = (jint)cairo_current_line_join((cairo_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1current_1line_1join_FUNC);
+- return rc;
++ jdouble *lparg1=NULL;
++ jdouble *lparg2=NULL;
++ jdouble *lparg3=NULL;
++ jdouble *lparg4=NULL;
++ Cairo_NATIVE_ENTER(env, that, cairo_1fill_1extents_FUNC);
++ if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
++ if (arg2) if ((lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL)) == NULL) goto fail;
++ if (arg3) if ((lparg3 = (*env)->GetDoubleArrayElements(env, arg3, NULL)) == NULL) goto fail;
++ if (arg4) if ((lparg4 = (*env)->GetDoubleArrayElements(env, arg4, NULL)) == NULL) goto fail;
++ cairo_fill_extents((cairo_t *)arg0, lparg1, lparg2, lparg3, lparg4);
++fail:
++ if (arg4 && lparg4) (*env)->ReleaseDoubleArrayElements(env, arg4, lparg4, 0);
++ if (arg3 && lparg3) (*env)->ReleaseDoubleArrayElements(env, arg3, lparg3, 0);
++ if (arg2 && lparg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);
++ if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1fill_1extents_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1current_1line_1width
+-JNIEXPORT jdouble JNICALL Cairo_NATIVE(cairo_1current_1line_1width)
++#ifndef NO_cairo_1fill_1preserve
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1fill_1preserve)
+ (JNIEnv *env, jclass that, jint arg0)
+ {
+- jdouble rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1current_1line_1width_FUNC);
+- rc = (jdouble)cairo_current_line_width((cairo_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1current_1line_1width_FUNC);
+- return rc;
++ Cairo_NATIVE_ENTER(env, that, cairo_1fill_1preserve_FUNC);
++ cairo_fill_preserve((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1fill_1preserve_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1current_1matrix
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1current_1matrix)
+- (JNIEnv *env, jclass that, jint arg0, jint arg1)
++#ifndef NO_cairo_1font_1extents
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1font_1extents)
++ (JNIEnv *env, jclass that, jint arg0, jobject arg1)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1current_1matrix_FUNC);
+- cairo_current_matrix((cairo_t *)arg0, (cairo_matrix_t *)arg1);
+- Cairo_NATIVE_EXIT(env, that, cairo_1current_1matrix_FUNC);
++ cairo_font_extents_t _arg1, *lparg1=NULL;
++ Cairo_NATIVE_ENTER(env, that, cairo_1font_1extents_FUNC);
++ if (arg1) if ((lparg1 = getcairo_font_extents_tFields(env, arg1, &_arg1)) == NULL) goto fail;
++ cairo_font_extents((cairo_t *)arg0, lparg1);
++fail:
++ if (arg1 && lparg1) setcairo_font_extents_tFields(env, arg1, lparg1);
++ Cairo_NATIVE_EXIT(env, that, cairo_1font_1extents_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1current_1miter_1limit
+-JNIEXPORT jdouble JNICALL Cairo_NATIVE(cairo_1current_1miter_1limit)
+- (JNIEnv *env, jclass that, jint arg0)
++#ifndef NO_cairo_1font_1extents_1t_1sizeof
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1font_1extents_1t_1sizeof)
++ (JNIEnv *env, jclass that)
+ {
+- jdouble rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1current_1miter_1limit_FUNC);
+- rc = (jdouble)cairo_current_miter_limit((cairo_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1current_1miter_1limit_FUNC);
++ jint rc = 0;
++ Cairo_NATIVE_ENTER(env, that, cairo_1font_1extents_1t_1sizeof_FUNC);
++ rc = (jint)cairo_font_extents_t_sizeof();
++ Cairo_NATIVE_EXIT(env, that, cairo_1font_1extents_1t_1sizeof_FUNC);
+ return rc;
+ }
+ #endif
+
+-#ifndef NO_cairo_1current_1operator
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1current_1operator)
+- (JNIEnv *env, jclass that, jint arg0)
++#ifndef NO_cairo_1font_1options_1create
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1font_1options_1create)
++ (JNIEnv *env, jclass that)
+ {
+ jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1current_1operator_FUNC);
+- rc = (jint)cairo_current_operator((cairo_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1current_1operator_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1font_1options_1create_FUNC);
++ rc = (jint)cairo_font_options_create();
++ Cairo_NATIVE_EXIT(env, that, cairo_1font_1options_1create_FUNC);
+ return rc;
+ }
+ #endif
+
+-#ifndef NO_cairo_1current_1path
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1current_1path)
+- (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5)
++#ifndef NO_cairo_1font_1options_1destroy
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1font_1options_1destroy)
++ (JNIEnv *env, jclass that, jint arg0)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1current_1path_FUNC);
+- cairo_current_path((cairo_t *)arg0, (cairo_move_to_func_t *)arg1, (cairo_line_to_func_t *)arg2, (cairo_curve_to_func_t *)arg3, (cairo_close_path_func_t *)arg4, (void *)arg5);
+- Cairo_NATIVE_EXIT(env, that, cairo_1current_1path_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1font_1options_1destroy_FUNC);
++ cairo_font_options_destroy((cairo_font_options_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1font_1options_1destroy_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1current_1path_1flat
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1current_1path_1flat)
+- (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4)
++#ifndef NO_cairo_1font_1options_1get_1antialias
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1font_1options_1get_1antialias)
++ (JNIEnv *env, jclass that, jint arg0)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1current_1path_1flat_FUNC);
+- cairo_current_path_flat((cairo_t *)arg0, (cairo_move_to_func_t *)arg1, (cairo_line_to_func_t *)arg2, (cairo_close_path_func_t *)arg3, (void *)arg4);
+- Cairo_NATIVE_EXIT(env, that, cairo_1current_1path_1flat_FUNC);
++ jint rc = 0;
++ Cairo_NATIVE_ENTER(env, that, cairo_1font_1options_1get_1antialias_FUNC);
++ rc = (jint)cairo_font_options_get_antialias((cairo_font_options_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1font_1options_1get_1antialias_FUNC);
++ return rc;
+ }
+ #endif
+
+-#ifndef NO_cairo_1current_1pattern
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1current_1pattern)
++#ifndef NO_cairo_1font_1options_1set_1antialias
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1font_1options_1set_1antialias)
++ (JNIEnv *env, jclass that, jint arg0, jint arg1)
++{
++ Cairo_NATIVE_ENTER(env, that, cairo_1font_1options_1set_1antialias_FUNC);
++ cairo_font_options_set_antialias((cairo_font_options_t *)arg0, arg1);
++ Cairo_NATIVE_EXIT(env, that, cairo_1font_1options_1set_1antialias_FUNC);
++}
++#endif
++
++#ifndef NO_cairo_1get_1antialias
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1get_1antialias)
+ (JNIEnv *env, jclass that, jint arg0)
+ {
+ jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1current_1pattern_FUNC);
+- rc = (jint)cairo_current_pattern((cairo_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1current_1pattern_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1get_1antialias_FUNC);
++ rc = (jint)cairo_get_antialias((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1get_1antialias_FUNC);
+ return rc;
+ }
+ #endif
+
+-#ifndef NO_cairo_1current_1point
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1current_1point)
++#ifndef NO_cairo_1get_1current_1point
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1get_1current_1point)
+ (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1, jdoubleArray arg2)
+ {
+ jdouble *lparg1=NULL;
+ jdouble *lparg2=NULL;
+- Cairo_NATIVE_ENTER(env, that, cairo_1current_1point_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1get_1current_1point_FUNC);
+ if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
+ if (arg2) if ((lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL)) == NULL) goto fail;
+- cairo_current_point((cairo_t *)arg0, lparg1, lparg2);
++ cairo_get_current_point((cairo_t *)arg0, lparg1, lparg2);
+ fail:
+ if (arg2 && lparg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);
+ if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1current_1point_FUNC);
++ Cairo_NATIVE_EXIT(env, that, cairo_1get_1current_1point_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1current_1rgb_1color
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1current_1rgb_1color)
+- (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1, jdoubleArray arg2, jdoubleArray arg3)
++#ifndef NO_cairo_1get_1fill_1rule
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1get_1fill_1rule)
++ (JNIEnv *env, jclass that, jint arg0)
+ {
+- jdouble *lparg1=NULL;
+- jdouble *lparg2=NULL;
+- jdouble *lparg3=NULL;
+- Cairo_NATIVE_ENTER(env, that, cairo_1current_1rgb_1color_FUNC);
+- if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
+- if (arg2) if ((lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL)) == NULL) goto fail;
+- if (arg3) if ((lparg3 = (*env)->GetDoubleArrayElements(env, arg3, NULL)) == NULL) goto fail;
+- cairo_current_rgb_color((cairo_t *)arg0, lparg1, lparg2, lparg3);
+-fail:
+- if (arg3 && lparg3) (*env)->ReleaseDoubleArrayElements(env, arg3, lparg3, 0);
+- if (arg2 && lparg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);
+- if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1current_1rgb_1color_FUNC);
++ jint rc = 0;
++ Cairo_NATIVE_ENTER(env, that, cairo_1get_1fill_1rule_FUNC);
++ rc = (jint)cairo_get_fill_rule((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1get_1fill_1rule_FUNC);
++ return rc;
+ }
+ #endif
+
+-#ifndef NO_cairo_1current_1target_1surface
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1current_1target_1surface)
++#ifndef NO_cairo_1get_1font_1face
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1get_1font_1face)
+ (JNIEnv *env, jclass that, jint arg0)
+ {
+ jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1current_1target_1surface_FUNC);
+- rc = (jint)cairo_current_target_surface((cairo_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1current_1target_1surface_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1get_1font_1face_FUNC);
++ rc = (jint)cairo_get_font_face((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1get_1font_1face_FUNC);
+ return rc;
+ }
+ #endif
+
+-#ifndef NO_cairo_1current_1tolerance
+-JNIEXPORT jdouble JNICALL Cairo_NATIVE(cairo_1current_1tolerance)
+- (JNIEnv *env, jclass that, jint arg0)
++#ifndef NO_cairo_1get_1font_1matrix
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1get_1font_1matrix)
++ (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1)
+ {
+- jdouble rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1current_1tolerance_FUNC);
+- rc = (jdouble)cairo_current_tolerance((cairo_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1current_1tolerance_FUNC);
+- return rc;
++ jdouble *lparg1=NULL;
++ Cairo_NATIVE_ENTER(env, that, cairo_1get_1font_1matrix_FUNC);
++ if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
++ cairo_get_font_matrix((cairo_t *)arg0, (cairo_matrix_t *)lparg1);
++fail:
++ if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1get_1font_1matrix_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1curve_1to
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1curve_1to)
+- (JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2, jdouble arg3, jdouble arg4, jdouble arg5, jdouble arg6)
++#ifndef NO_cairo_1get_1font_1options
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1get_1font_1options)
++ (JNIEnv *env, jclass that, jint arg0, jint arg1)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1curve_1to_FUNC);
+- cairo_curve_to((cairo_t *)arg0, arg1, arg2, arg3, arg4, arg5, arg6);
+- Cairo_NATIVE_EXIT(env, that, cairo_1curve_1to_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1get_1font_1options_FUNC);
++ cairo_get_font_options((cairo_t *)arg0, (cairo_font_options_t *)arg1);
++ Cairo_NATIVE_EXIT(env, that, cairo_1get_1font_1options_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1default_1matrix
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1default_1matrix)
++#ifndef NO_cairo_1get_1line_1cap
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1get_1line_1cap)
+ (JNIEnv *env, jclass that, jint arg0)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1default_1matrix_FUNC);
+- cairo_default_matrix((cairo_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1default_1matrix_FUNC);
++ jint rc = 0;
++ Cairo_NATIVE_ENTER(env, that, cairo_1get_1line_1cap_FUNC);
++ rc = (jint)cairo_get_line_cap((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1get_1line_1cap_FUNC);
++ return rc;
+ }
+ #endif
+
+-#ifndef NO_cairo_1destroy
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1destroy)
++#ifndef NO_cairo_1get_1line_1join
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1get_1line_1join)
+ (JNIEnv *env, jclass that, jint arg0)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1destroy_FUNC);
+- cairo_destroy((cairo_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1destroy_FUNC);
++ jint rc = 0;
++ Cairo_NATIVE_ENTER(env, that, cairo_1get_1line_1join_FUNC);
++ rc = (jint)cairo_get_line_join((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1get_1line_1join_FUNC);
++ return rc;
+ }
+ #endif
+
+-#ifndef NO_cairo_1fill
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1fill)
++#ifndef NO_cairo_1get_1line_1width
++JNIEXPORT jdouble JNICALL Cairo_NATIVE(cairo_1get_1line_1width)
+ (JNIEnv *env, jclass that, jint arg0)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1fill_FUNC);
+- cairo_fill((cairo_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1fill_FUNC);
++ jdouble rc = 0;
++ Cairo_NATIVE_ENTER(env, that, cairo_1get_1line_1width_FUNC);
++ rc = (jdouble)cairo_get_line_width((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1get_1line_1width_FUNC);
++ return rc;
+ }
+ #endif
+
+-#ifndef NO_cairo_1fill_1extents
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1fill_1extents)
+- (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1, jdoubleArray arg2, jdoubleArray arg3, jdoubleArray arg4)
++#ifndef NO_cairo_1get_1matrix
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1get_1matrix)
++ (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1)
+ {
+ jdouble *lparg1=NULL;
+- jdouble *lparg2=NULL;
+- jdouble *lparg3=NULL;
+- jdouble *lparg4=NULL;
+- Cairo_NATIVE_ENTER(env, that, cairo_1fill_1extents_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1get_1matrix_FUNC);
+ if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
+- if (arg2) if ((lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL)) == NULL) goto fail;
+- if (arg3) if ((lparg3 = (*env)->GetDoubleArrayElements(env, arg3, NULL)) == NULL) goto fail;
+- if (arg4) if ((lparg4 = (*env)->GetDoubleArrayElements(env, arg4, NULL)) == NULL) goto fail;
+- cairo_fill_extents((cairo_t *)arg0, lparg1, lparg2, lparg3, lparg4);
++ cairo_get_matrix((cairo_t *)arg0, (cairo_matrix_t *)lparg1);
+ fail:
+- if (arg4 && lparg4) (*env)->ReleaseDoubleArrayElements(env, arg4, lparg4, 0);
+- if (arg3 && lparg3) (*env)->ReleaseDoubleArrayElements(env, arg3, lparg3, 0);
+- if (arg2 && lparg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);
+ if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1fill_1extents_FUNC);
++ Cairo_NATIVE_EXIT(env, that, cairo_1get_1matrix_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1font_1destroy
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1font_1destroy)
++#ifndef NO_cairo_1get_1miter_1limit
++JNIEXPORT jdouble JNICALL Cairo_NATIVE(cairo_1get_1miter_1limit)
+ (JNIEnv *env, jclass that, jint arg0)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1font_1destroy_FUNC);
+- cairo_font_destroy((cairo_font_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1font_1destroy_FUNC);
++ jdouble rc = 0;
++ Cairo_NATIVE_ENTER(env, that, cairo_1get_1miter_1limit_FUNC);
++ rc = (jdouble)cairo_get_miter_limit((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1get_1miter_1limit_FUNC);
++ return rc;
+ }
+ #endif
+
+-#ifndef NO_cairo_1font_1extents_1t_1sizeof
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1font_1extents_1t_1sizeof)
+- (JNIEnv *env, jclass that)
++#ifndef NO_cairo_1get_1operator
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1get_1operator)
++ (JNIEnv *env, jclass that, jint arg0)
+ {
+ jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1font_1extents_1t_1sizeof_FUNC);
+- rc = (jint)cairo_font_extents_t_sizeof();
+- Cairo_NATIVE_EXIT(env, that, cairo_1font_1extents_1t_1sizeof_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1get_1operator_FUNC);
++ rc = (jint)cairo_get_operator((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1get_1operator_FUNC);
++ return rc;
++}
++#endif
++
++#ifndef NO_cairo_1get_1source
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1get_1source)
++ (JNIEnv *env, jclass that, jint arg0)
++{
++ jint rc = 0;
++ Cairo_NATIVE_ENTER(env, that, cairo_1get_1source_FUNC);
++ rc = (jint)cairo_get_source((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1get_1source_FUNC);
+ return rc;
+ }
+ #endif
+
+-#ifndef NO_cairo_1font_1reference
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1font_1reference)
++#ifndef NO_cairo_1get_1target
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1get_1target)
+ (JNIEnv *env, jclass that, jint arg0)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1font_1reference_FUNC);
+- cairo_font_reference((cairo_font_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1font_1reference_FUNC);
++ jint rc = 0;
++ Cairo_NATIVE_ENTER(env, that, cairo_1get_1target_FUNC);
++ rc = (jint)cairo_get_target((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1get_1target_FUNC);
++ return rc;
++}
++#endif
++
++#ifndef NO_cairo_1get_1tolerance
++JNIEXPORT jdouble JNICALL Cairo_NATIVE(cairo_1get_1tolerance)
++ (JNIEnv *env, jclass that, jint arg0)
++{
++ jdouble rc = 0;
++ Cairo_NATIVE_ENTER(env, that, cairo_1get_1tolerance_FUNC);
++ rc = (jdouble)cairo_get_tolerance((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1get_1tolerance_FUNC);
++ return rc;
+ }
+ #endif
+
+@@ -469,6 +539,30 @@
+ }
+ #endif
+
++#ifndef NO_cairo_1image_1surface_1get_1height
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1image_1surface_1get_1height)
++ (JNIEnv *env, jclass that, jint arg0)
++{
++ jint rc = 0;
++ Cairo_NATIVE_ENTER(env, that, cairo_1image_1surface_1get_1height_FUNC);
++ rc = (jint)cairo_image_surface_get_height((cairo_surface_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1image_1surface_1get_1height_FUNC);
++ return rc;
++}
++#endif
++
++#ifndef NO_cairo_1image_1surface_1get_1width
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1image_1surface_1get_1width)
++ (JNIEnv *env, jclass that, jint arg0)
++{
++ jint rc = 0;
++ Cairo_NATIVE_ENTER(env, that, cairo_1image_1surface_1get_1width_FUNC);
++ rc = (jint)cairo_image_surface_get_width((cairo_surface_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1image_1surface_1get_1width_FUNC);
++ return rc;
++}
++#endif
++
+ #ifndef NO_cairo_1in_1fill
+ JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1in_1fill)
+ (JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2)
+@@ -493,244 +587,221 @@
+ }
+ #endif
+
+-#ifndef NO_cairo_1init_1clip
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1init_1clip)
+- (JNIEnv *env, jclass that, jint arg0)
++#ifndef NO_cairo_1line_1to
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1line_1to)
++ (JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1init_1clip_FUNC);
+- cairo_init_clip((cairo_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1init_1clip_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1line_1to_FUNC);
++ cairo_line_to((cairo_t *)arg0, arg1, arg2);
++ Cairo_NATIVE_EXIT(env, that, cairo_1line_1to_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1inverse_1transform_1distance
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1inverse_1transform_1distance)
+- (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1, jdoubleArray arg2)
++#ifndef NO_cairo_1mask
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1mask)
++ (JNIEnv *env, jclass that, jint arg0, jint arg1)
+ {
+- jdouble *lparg1=NULL;
+- jdouble *lparg2=NULL;
+- Cairo_NATIVE_ENTER(env, that, cairo_1inverse_1transform_1distance_FUNC);
+- if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
+- if (arg2) if ((lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL)) == NULL) goto fail;
+- cairo_inverse_transform_distance((cairo_t *)arg0, lparg1, lparg2);
+-fail:
+- if (arg2 && lparg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);
+- if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1inverse_1transform_1distance_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1mask_FUNC);
++ cairo_mask((cairo_t *)arg0, (cairo_pattern_t *)arg1);
++ Cairo_NATIVE_EXIT(env, that, cairo_1mask_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1inverse_1transform_1point
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1inverse_1transform_1point)
+- (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1, jdoubleArray arg2)
++#ifndef NO_cairo_1mask_1surface
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1mask_1surface)
++ (JNIEnv *env, jclass that, jint arg0, jint arg1, jdouble arg2, jdouble arg3)
+ {
+- jdouble *lparg1=NULL;
+- jdouble *lparg2=NULL;
+- Cairo_NATIVE_ENTER(env, that, cairo_1inverse_1transform_1point_FUNC);
+- if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
+- if (arg2) if ((lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL)) == NULL) goto fail;
+- cairo_inverse_transform_point((cairo_t *)arg0, lparg1, lparg2);
+-fail:
+- if (arg2 && lparg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);
+- if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1inverse_1transform_1point_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1mask_1surface_FUNC);
++ cairo_mask_surface((cairo_t *)arg0, (cairo_surface_t *)arg1, arg2, arg3);
++ Cairo_NATIVE_EXIT(env, that, cairo_1mask_1surface_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1line_1to
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1line_1to)
+- (JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2)
++#ifndef NO_cairo_1matrix_1init
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1matrix_1init)
++ (JNIEnv *env, jclass that, jdoubleArray arg0, jdouble arg1, jdouble arg2, jdouble arg3, jdouble arg4, jdouble arg5, jdouble arg6)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1line_1to_FUNC);
+- cairo_line_to((cairo_t *)arg0, arg1, arg2);
+- Cairo_NATIVE_EXIT(env, that, cairo_1line_1to_FUNC);
++ jdouble *lparg0=NULL;
++ Cairo_NATIVE_ENTER(env, that, cairo_1matrix_1init_FUNC);
++ if (arg0) if ((lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL)) == NULL) goto fail;
++ cairo_matrix_init((cairo_matrix_t *)lparg0, arg1, arg2, arg3, arg4, arg5, arg6);
++fail:
++ if (arg0 && lparg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1matrix_1init_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1matrix_1copy
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1matrix_1copy)
+- (JNIEnv *env, jclass that, jint arg0, jint arg1)
++#ifndef NO_cairo_1matrix_1init_1identity
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1matrix_1init_1identity)
++ (JNIEnv *env, jclass that, jdoubleArray arg0)
+ {
+- jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1matrix_1copy_FUNC);
+- rc = (jint)cairo_matrix_copy((cairo_matrix_t *)arg0, (cairo_matrix_t *)arg1);
+- Cairo_NATIVE_EXIT(env, that, cairo_1matrix_1copy_FUNC);
+- return rc;
++ jdouble *lparg0=NULL;
++ Cairo_NATIVE_ENTER(env, that, cairo_1matrix_1init_1identity_FUNC);
++ if (arg0) if ((lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL)) == NULL) goto fail;
++ cairo_matrix_init_identity((cairo_matrix_t *)lparg0);
++fail:
++ if (arg0 && lparg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1matrix_1init_1identity_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1matrix_1create
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1matrix_1create)
+- (JNIEnv *env, jclass that)
++#ifndef NO_cairo_1matrix_1init_1rotate
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1matrix_1init_1rotate)
++ (JNIEnv *env, jclass that, jdoubleArray arg0, jdouble arg1)
+ {
+- jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1matrix_1create_FUNC);
+- rc = (jint)cairo_matrix_create();
+- Cairo_NATIVE_EXIT(env, that, cairo_1matrix_1create_FUNC);
+- return rc;
++ jdouble *lparg0=NULL;
++ Cairo_NATIVE_ENTER(env, that, cairo_1matrix_1init_1rotate_FUNC);
++ if (arg0) if ((lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL)) == NULL) goto fail;
++ cairo_matrix_init_rotate((cairo_matrix_t *)lparg0, arg1);
++fail:
++ if (arg0 && lparg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1matrix_1init_1rotate_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1matrix_1destroy
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1matrix_1destroy)
+- (JNIEnv *env, jclass that, jint arg0)
++#ifndef NO_cairo_1matrix_1init_1scale
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1matrix_1init_1scale)
++ (JNIEnv *env, jclass that, jdoubleArray arg0, jdouble arg1, jdouble arg2)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1matrix_1destroy_FUNC);
+- cairo_matrix_destroy((cairo_matrix_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1matrix_1destroy_FUNC);
++ jdouble *lparg0=NULL;
++ Cairo_NATIVE_ENTER(env, that, cairo_1matrix_1init_1scale_FUNC);
++ if (arg0) if ((lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL)) == NULL) goto fail;
++ cairo_matrix_init_scale((cairo_matrix_t *)lparg0, arg1, arg2);
++fail:
++ if (arg0 && lparg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1matrix_1init_1scale_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1matrix_1get_1affine
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1matrix_1get_1affine)
+- (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1, jdoubleArray arg2, jdoubleArray arg3, jdoubleArray arg4, jdoubleArray arg5, jdoubleArray arg6)
++#ifndef NO_cairo_1matrix_1init_1translate
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1matrix_1init_1translate)
++ (JNIEnv *env, jclass that, jdoubleArray arg0, jdouble arg1, jdouble arg2)
+ {
+- jdouble *lparg1=NULL;
+- jdouble *lparg2=NULL;
+- jdouble *lparg3=NULL;
+- jdouble *lparg4=NULL;
+- jdouble *lparg5=NULL;
+- jdouble *lparg6=NULL;
+- jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1matrix_1get_1affine_FUNC);
+- if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
+- if (arg2) if ((lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL)) == NULL) goto fail;
+- if (arg3) if ((lparg3 = (*env)->GetDoubleArrayElements(env, arg3, NULL)) == NULL) goto fail;
+- if (arg4) if ((lparg4 = (*env)->GetDoubleArrayElements(env, arg4, NULL)) == NULL) goto fail;
+- if (arg5) if ((lparg5 = (*env)->GetDoubleArrayElements(env, arg5, NULL)) == NULL) goto fail;
+- if (arg6) if ((lparg6 = (*env)->GetDoubleArrayElements(env, arg6, NULL)) == NULL) goto fail;
+- rc = (jint)cairo_matrix_get_affine((cairo_matrix_t *)arg0, lparg1, lparg2, lparg3, lparg4, lparg5, lparg6);
++ jdouble *lparg0=NULL;
++ Cairo_NATIVE_ENTER(env, that, cairo_1matrix_1init_1translate_FUNC);
++ if (arg0) if ((lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL)) == NULL) goto fail;
++ cairo_matrix_init_translate((cairo_matrix_t *)lparg0, arg1, arg2);
+ fail:
+- if (arg6 && lparg6) (*env)->ReleaseDoubleArrayElements(env, arg6, lparg6, 0);
+- if (arg5 && lparg5) (*env)->ReleaseDoubleArrayElements(env, arg5, lparg5, 0);
+- if (arg4 && lparg4) (*env)->ReleaseDoubleArrayElements(env, arg4, lparg4, 0);
+- if (arg3 && lparg3) (*env)->ReleaseDoubleArrayElements(env, arg3, lparg3, 0);
+- if (arg2 && lparg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);
+- if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1matrix_1get_1affine_FUNC);
+- return rc;
++ if (arg0 && lparg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1matrix_1init_1translate_FUNC);
+ }
+ #endif
+
+ #ifndef NO_cairo_1matrix_1invert
+ JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1matrix_1invert)
+- (JNIEnv *env, jclass that, jint arg0)
++ (JNIEnv *env, jclass that, jdoubleArray arg0)
+ {
++ jdouble *lparg0=NULL;
+ jint rc = 0;
+ Cairo_NATIVE_ENTER(env, that, cairo_1matrix_1invert_FUNC);
+- rc = (jint)cairo_matrix_invert((cairo_matrix_t *)arg0);
++ if (arg0) if ((lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL)) == NULL) goto fail;
++ rc = (jint)cairo_matrix_invert((cairo_matrix_t *)lparg0);
++fail:
++ if (arg0 && lparg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);
+ Cairo_NATIVE_EXIT(env, that, cairo_1matrix_1invert_FUNC);
+ return rc;
+ }
+ #endif
+
+ #ifndef NO_cairo_1matrix_1multiply
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1matrix_1multiply)
+- (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1matrix_1multiply)
++ (JNIEnv *env, jclass that, jdoubleArray arg0, jdoubleArray arg1, jdoubleArray arg2)
+ {
+- jint rc = 0;
++ jdouble *lparg0=NULL;
++ jdouble *lparg1=NULL;
++ jdouble *lparg2=NULL;
+ Cairo_NATIVE_ENTER(env, that, cairo_1matrix_1multiply_FUNC);
+- rc = (jint)cairo_matrix_multiply((cairo_matrix_t *)arg0, (cairo_matrix_t *)arg1, (cairo_matrix_t *)arg2);
++ if (arg0) if ((lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL)) == NULL) goto fail;
++ if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
++ if (arg2) if ((lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL)) == NULL) goto fail;
++ cairo_matrix_multiply((cairo_matrix_t *)lparg0, (cairo_matrix_t *)lparg1, (cairo_matrix_t *)lparg2);
++fail:
++ if (arg2 && lparg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);
++ if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
++ if (arg0 && lparg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);
+ Cairo_NATIVE_EXIT(env, that, cairo_1matrix_1multiply_FUNC);
+- return rc;
+ }
+ #endif
+
+ #ifndef NO_cairo_1matrix_1rotate
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1matrix_1rotate)
+- (JNIEnv *env, jclass that, jint arg0, jdouble arg1)
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1matrix_1rotate)
++ (JNIEnv *env, jclass that, jdoubleArray arg0, jdouble arg1)
+ {
+- jint rc = 0;
++ jdouble *lparg0=NULL;
+ Cairo_NATIVE_ENTER(env, that, cairo_1matrix_1rotate_FUNC);
+- rc = (jint)cairo_matrix_rotate((cairo_matrix_t *)arg0, arg1);
++ if (arg0) if ((lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL)) == NULL) goto fail;
++ cairo_matrix_rotate((cairo_matrix_t *)lparg0, arg1);
++fail:
++ if (arg0 && lparg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);
+ Cairo_NATIVE_EXIT(env, that, cairo_1matrix_1rotate_FUNC);
+- return rc;
+ }
+ #endif
+
+ #ifndef NO_cairo_1matrix_1scale
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1matrix_1scale)
+- (JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2)
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1matrix_1scale)
++ (JNIEnv *env, jclass that, jdoubleArray arg0, jdouble arg1, jdouble arg2)
+ {
+- jint rc = 0;
++ jdouble *lparg0=NULL;
+ Cairo_NATIVE_ENTER(env, that, cairo_1matrix_1scale_FUNC);
+- rc = (jint)cairo_matrix_scale((cairo_matrix_t *)arg0, arg1, arg2);
++ if (arg0) if ((lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL)) == NULL) goto fail;
++ cairo_matrix_scale((cairo_matrix_t *)lparg0, arg1, arg2);
++fail:
++ if (arg0 && lparg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);
+ Cairo_NATIVE_EXIT(env, that, cairo_1matrix_1scale_FUNC);
+- return rc;
+-}
+-#endif
+-
+-#ifndef NO_cairo_1matrix_1set_1affine
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1matrix_1set_1affine)
+- (JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2, jdouble arg3, jdouble arg4, jdouble arg5, jdouble arg6)
+-{
+- jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1matrix_1set_1affine_FUNC);
+- rc = (jint)cairo_matrix_set_affine((cairo_matrix_t *)arg0, arg1, arg2, arg3, arg4, arg5, arg6);
+- Cairo_NATIVE_EXIT(env, that, cairo_1matrix_1set_1affine_FUNC);
+- return rc;
+-}
+-#endif
+-
+-#ifndef NO_cairo_1matrix_1set_1identity
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1matrix_1set_1identity)
+- (JNIEnv *env, jclass that, jint arg0)
+-{
+- jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1matrix_1set_1identity_FUNC);
+- rc = (jint)cairo_matrix_set_identity((cairo_matrix_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1matrix_1set_1identity_FUNC);
+- return rc;
+ }
+ #endif
+
+ #ifndef NO_cairo_1matrix_1transform_1distance
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1matrix_1transform_1distance)
+- (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1, jdoubleArray arg2)
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1matrix_1transform_1distance)
++ (JNIEnv *env, jclass that, jdoubleArray arg0, jdoubleArray arg1, jdoubleArray arg2)
+ {
++ jdouble *lparg0=NULL;
+ jdouble *lparg1=NULL;
+ jdouble *lparg2=NULL;
+- jint rc = 0;
+ Cairo_NATIVE_ENTER(env, that, cairo_1matrix_1transform_1distance_FUNC);
++ if (arg0) if ((lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL)) == NULL) goto fail;
+ if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
+ if (arg2) if ((lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL)) == NULL) goto fail;
+- rc = (jint)cairo_matrix_transform_distance((cairo_matrix_t *)arg0, lparg1, lparg2);
++ cairo_matrix_transform_distance((cairo_matrix_t *)lparg0, lparg1, lparg2);
+ fail:
+ if (arg2 && lparg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);
+ if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
++ if (arg0 && lparg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);
+ Cairo_NATIVE_EXIT(env, that, cairo_1matrix_1transform_1distance_FUNC);
+- return rc;
+ }
+ #endif
+
+ #ifndef NO_cairo_1matrix_1transform_1point
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1matrix_1transform_1point)
+- (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1, jdoubleArray arg2)
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1matrix_1transform_1point)
++ (JNIEnv *env, jclass that, jdoubleArray arg0, jdoubleArray arg1, jdoubleArray arg2)
+ {
++ jdouble *lparg0=NULL;
+ jdouble *lparg1=NULL;
+ jdouble *lparg2=NULL;
+- jint rc = 0;
+ Cairo_NATIVE_ENTER(env, that, cairo_1matrix_1transform_1point_FUNC);
++ if (arg0) if ((lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL)) == NULL) goto fail;
+ if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
+ if (arg2) if ((lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL)) == NULL) goto fail;
+- rc = (jint)cairo_matrix_transform_point((cairo_matrix_t *)arg0, lparg1, lparg2);
++ cairo_matrix_transform_point((cairo_matrix_t *)lparg0, lparg1, lparg2);
+ fail:
+ if (arg2 && lparg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);
+ if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
++ if (arg0 && lparg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);
+ Cairo_NATIVE_EXIT(env, that, cairo_1matrix_1transform_1point_FUNC);
+- return rc;
+ }
+ #endif
+
+ #ifndef NO_cairo_1matrix_1translate
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1matrix_1translate)
+- (JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2)
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1matrix_1translate)
++ (JNIEnv *env, jclass that, jdoubleArray arg0, jdouble arg1, jdouble arg2)
+ {
+- jint rc = 0;
++ jdouble *lparg0=NULL;
+ Cairo_NATIVE_ENTER(env, that, cairo_1matrix_1translate_FUNC);
+- rc = (jint)cairo_matrix_translate((cairo_matrix_t *)arg0, arg1, arg2);
++ if (arg0) if ((lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL)) == NULL) goto fail;
++ cairo_matrix_translate((cairo_matrix_t *)lparg0, arg1, arg2);
++fail:
++ if (arg0 && lparg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);
+ Cairo_NATIVE_EXIT(env, that, cairo_1matrix_1translate_FUNC);
+- return rc;
+ }
+ #endif
+
+@@ -754,18 +825,80 @@
+ }
+ #endif
+
+-#ifndef NO_cairo_1pattern_1add_1color_1stop
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1pattern_1add_1color_1stop)
+- (JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2, jdouble arg3, jdouble arg4, jdouble arg5)
++#ifndef NO_cairo_1paint
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1paint)
++ (JNIEnv *env, jclass that, jint arg0)
++{
++ Cairo_NATIVE_ENTER(env, that, cairo_1paint_FUNC);
++ cairo_paint((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1paint_FUNC);
++}
++#endif
++
++#ifndef NO_cairo_1paint_1with_1alpha
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1paint_1with_1alpha)
++ (JNIEnv *env, jclass that, jint arg0, jdouble arg1)
++{
++ Cairo_NATIVE_ENTER(env, that, cairo_1paint_1with_1alpha_FUNC);
++ cairo_paint_with_alpha((cairo_t *)arg0, arg1);
++ Cairo_NATIVE_EXIT(env, that, cairo_1paint_1with_1alpha_FUNC);
++}
++#endif
++
++#ifndef NO_cairo_1path_1data_1t_1sizeof
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1path_1data_1t_1sizeof)
++ (JNIEnv *env, jclass that)
++{
++ jint rc = 0;
++ Cairo_NATIVE_ENTER(env, that, cairo_1path_1data_1t_1sizeof_FUNC);
++ rc = (jint)cairo_path_data_t_sizeof();
++ Cairo_NATIVE_EXIT(env, that, cairo_1path_1data_1t_1sizeof_FUNC);
++ return rc;
++}
++#endif
++
++#ifndef NO_cairo_1path_1destroy
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1path_1destroy)
++ (JNIEnv *env, jclass that, jint arg0)
++{
++ Cairo_NATIVE_ENTER(env, that, cairo_1path_1destroy_FUNC);
++ cairo_path_destroy((cairo_path_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1path_1destroy_FUNC);
++}
++#endif
++
++#ifndef NO_cairo_1path_1t_1sizeof
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1path_1t_1sizeof)
++ (JNIEnv *env, jclass that)
+ {
+ jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1pattern_1add_1color_1stop_FUNC);
+- rc = (jint)cairo_pattern_add_color_stop((cairo_pattern_t *)arg0, arg1, arg2, arg3, arg4, arg5);
+- Cairo_NATIVE_EXIT(env, that, cairo_1pattern_1add_1color_1stop_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1path_1t_1sizeof_FUNC);
++ rc = (jint)cairo_path_t_sizeof();
++ Cairo_NATIVE_EXIT(env, that, cairo_1path_1t_1sizeof_FUNC);
+ return rc;
+ }
+ #endif
+
++#ifndef NO_cairo_1pattern_1add_1color_1stop_1rgb
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1pattern_1add_1color_1stop_1rgb)
++ (JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2, jdouble arg3, jdouble arg4)
++{
++ Cairo_NATIVE_ENTER(env, that, cairo_1pattern_1add_1color_1stop_1rgb_FUNC);
++ cairo_pattern_add_color_stop_rgb((cairo_pattern_t *)arg0, arg1, arg2, arg3, arg4);
++ Cairo_NATIVE_EXIT(env, that, cairo_1pattern_1add_1color_1stop_1rgb_FUNC);
++}
++#endif
++
++#ifndef NO_cairo_1pattern_1add_1color_1stop_1rgba
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1pattern_1add_1color_1stop_1rgba)
++ (JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2, jdouble arg3, jdouble arg4, jdouble arg5)
++{
++ Cairo_NATIVE_ENTER(env, that, cairo_1pattern_1add_1color_1stop_1rgba_FUNC);
++ cairo_pattern_add_color_stop_rgba((cairo_pattern_t *)arg0, arg1, arg2, arg3, arg4, arg5);
++ Cairo_NATIVE_EXIT(env, that, cairo_1pattern_1add_1color_1stop_1rgba_FUNC);
++}
++#endif
++
+ #ifndef NO_cairo_1pattern_1create_1for_1surface
+ JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1pattern_1create_1for_1surface)
+ (JNIEnv *env, jclass that, jint arg0)
+@@ -837,14 +970,16 @@
+ #endif
+
+ #ifndef NO_cairo_1pattern_1get_1matrix
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1pattern_1get_1matrix)
+- (JNIEnv *env, jclass that, jint arg0, jint arg1)
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1pattern_1get_1matrix)
++ (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1)
+ {
+- jint rc = 0;
++ jdouble *lparg1=NULL;
+ Cairo_NATIVE_ENTER(env, that, cairo_1pattern_1get_1matrix_FUNC);
+- rc = (jint)cairo_pattern_get_matrix((cairo_pattern_t *)arg0, (cairo_matrix_t *)arg1);
++ if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
++ cairo_pattern_get_matrix((cairo_pattern_t *)arg0, (cairo_matrix_t *)lparg1);
++fail:
++ if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
+ Cairo_NATIVE_EXIT(env, that, cairo_1pattern_1get_1matrix_FUNC);
+- return rc;
+ }
+ #endif
+
+@@ -859,38 +994,36 @@
+ #endif
+
+ #ifndef NO_cairo_1pattern_1set_1extend
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1pattern_1set_1extend)
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1pattern_1set_1extend)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1)
+ {
+- jint rc = 0;
+ Cairo_NATIVE_ENTER(env, that, cairo_1pattern_1set_1extend_FUNC);
+- rc = (jint)cairo_pattern_set_extend((cairo_pattern_t *)arg0, arg1);
++ cairo_pattern_set_extend((cairo_pattern_t *)arg0, arg1);
+ Cairo_NATIVE_EXIT(env, that, cairo_1pattern_1set_1extend_FUNC);
+- return rc;
+ }
+ #endif
+
+ #ifndef NO_cairo_1pattern_1set_1filter
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1pattern_1set_1filter)
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1pattern_1set_1filter)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1)
+ {
+- jint rc = 0;
+ Cairo_NATIVE_ENTER(env, that, cairo_1pattern_1set_1filter_FUNC);
+- rc = (jint)cairo_pattern_set_filter((cairo_pattern_t *)arg0, arg1);
++ cairo_pattern_set_filter((cairo_pattern_t *)arg0, arg1);
+ Cairo_NATIVE_EXIT(env, that, cairo_1pattern_1set_1filter_FUNC);
+- return rc;
+ }
+ #endif
+
+ #ifndef NO_cairo_1pattern_1set_1matrix
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1pattern_1set_1matrix)
+- (JNIEnv *env, jclass that, jint arg0, jint arg1)
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1pattern_1set_1matrix)
++ (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1)
+ {
+- jint rc = 0;
++ jdouble *lparg1=NULL;
+ Cairo_NATIVE_ENTER(env, that, cairo_1pattern_1set_1matrix_FUNC);
+- rc = (jint)cairo_pattern_set_matrix((cairo_pattern_t *)arg0, (cairo_matrix_t *)arg1);
++ if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
++ cairo_pattern_set_matrix((cairo_pattern_t *)arg0, (cairo_matrix_t *)lparg1);
++fail:
++ if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
+ Cairo_NATIVE_EXIT(env, that, cairo_1pattern_1set_1matrix_FUNC);
+- return rc;
+ }
+ #endif
+
+@@ -905,12 +1038,14 @@
+ #endif
+
+ #ifndef NO_cairo_1reference
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1reference)
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1reference)
+ (JNIEnv *env, jclass that, jint arg0)
+ {
++ jint rc = 0;
+ Cairo_NATIVE_ENTER(env, that, cairo_1reference_FUNC);
+- cairo_reference((cairo_t *)arg0);
++ rc = (jint)cairo_reference((cairo_t *)arg0);
+ Cairo_NATIVE_EXIT(env, that, cairo_1reference_FUNC);
++ return rc;
+ }
+ #endif
+
+@@ -944,6 +1079,16 @@
+ }
+ #endif
+
++#ifndef NO_cairo_1reset_1clip
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1reset_1clip)
++ (JNIEnv *env, jclass that, jint arg0)
++{
++ Cairo_NATIVE_ENTER(env, that, cairo_1reset_1clip_FUNC);
++ cairo_reset_clip((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1reset_1clip_FUNC);
++}
++#endif
++
+ #ifndef NO_cairo_1restore
+ JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1restore)
+ (JNIEnv *env, jclass that, jint arg0)
+@@ -984,37 +1129,27 @@
+ }
+ #endif
+
+-#ifndef NO_cairo_1scale_1font
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1scale_1font)
+- (JNIEnv *env, jclass that, jint arg0, jdouble arg1)
+-{
+- Cairo_NATIVE_ENTER(env, that, cairo_1scale_1font_FUNC);
+- cairo_scale_font((cairo_t *)arg0, arg1);
+- Cairo_NATIVE_EXIT(env, that, cairo_1scale_1font_FUNC);
+-}
+-#endif
+-
+-#ifndef NO_cairo_1select_1font
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1select_1font)
++#ifndef NO_cairo_1select_1font_1face
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1select_1font_1face)
+ (JNIEnv *env, jclass that, jint arg0, jbyteArray arg1, jint arg2, jint arg3)
+ {
+ jbyte *lparg1=NULL;
+- Cairo_NATIVE_ENTER(env, that, cairo_1select_1font_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1select_1font_1face_FUNC);
+ if (arg1) if ((lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL)) == NULL) goto fail;
+- cairo_select_font((cairo_t *)arg0, lparg1, arg2, arg3);
++ cairo_select_font_face((cairo_t *)arg0, lparg1, arg2, arg3);
+ fail:
+ if (arg1 && lparg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1select_1font_FUNC);
++ Cairo_NATIVE_EXIT(env, that, cairo_1select_1font_1face_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1set_1alpha
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1alpha)
+- (JNIEnv *env, jclass that, jint arg0, jdouble arg1)
++#ifndef NO_cairo_1set_1antialias
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1antialias)
++ (JNIEnv *env, jclass that, jint arg0, jint arg1)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1set_1alpha_FUNC);
+- cairo_set_alpha((cairo_t *)arg0, arg1);
+- Cairo_NATIVE_EXIT(env, that, cairo_1set_1alpha_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1set_1antialias_FUNC);
++ cairo_set_antialias((cairo_t *)arg0, arg1);
++ Cairo_NATIVE_EXIT(env, that, cairo_1set_1antialias_FUNC);
+ }
+ #endif
+
+@@ -1042,13 +1177,47 @@
+ }
+ #endif
+
+-#ifndef NO_cairo_1set_1font
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1font)
++#ifndef NO_cairo_1set_1font_1face
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1font_1face)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1set_1font_FUNC);
+- cairo_set_font((cairo_t *)arg0, (cairo_font_t *)arg1);
+- Cairo_NATIVE_EXIT(env, that, cairo_1set_1font_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1set_1font_1face_FUNC);
++ cairo_set_font_face((cairo_t *)arg0, (cairo_font_face_t *)arg1);
++ Cairo_NATIVE_EXIT(env, that, cairo_1set_1font_1face_FUNC);
++}
++#endif
++
++#ifndef NO_cairo_1set_1font_1matrix
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1font_1matrix)
++ (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1)
++{
++ jdouble *lparg1=NULL;
++ Cairo_NATIVE_ENTER(env, that, cairo_1set_1font_1matrix_FUNC);
++ if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
++ cairo_set_font_matrix((cairo_t *)arg0, (cairo_matrix_t *)lparg1);
++fail:
++ if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1set_1font_1matrix_FUNC);
++}
++#endif
++
++#ifndef NO_cairo_1set_1font_1options
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1font_1options)
++ (JNIEnv *env, jclass that, jint arg0, jint arg1)
++{
++ Cairo_NATIVE_ENTER(env, that, cairo_1set_1font_1options_FUNC);
++ cairo_set_font_options((cairo_t *)arg0, (cairo_font_options_t *)arg1);
++ Cairo_NATIVE_EXIT(env, that, cairo_1set_1font_1options_FUNC);
++}
++#endif
++
++#ifndef NO_cairo_1set_1font_1size
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1font_1size)
++ (JNIEnv *env, jclass that, jint arg0, jdouble arg1)
++{
++ Cairo_NATIVE_ENTER(env, that, cairo_1set_1font_1size_FUNC);
++ cairo_set_font_size((cairo_t *)arg0, arg1);
++ Cairo_NATIVE_EXIT(env, that, cairo_1set_1font_1size_FUNC);
+ }
+ #endif
+
+@@ -1084,10 +1253,14 @@
+
+ #ifndef NO_cairo_1set_1matrix
+ JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1matrix)
+- (JNIEnv *env, jclass that, jint arg0, jint arg1)
++ (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1)
+ {
++ jdouble *lparg1=NULL;
+ Cairo_NATIVE_ENTER(env, that, cairo_1set_1matrix_FUNC);
+- cairo_set_matrix((cairo_t *)arg0, (cairo_matrix_t *)arg1);
++ if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
++ cairo_set_matrix((cairo_t *)arg0, (cairo_matrix_t *)lparg1);
++fail:
++ if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
+ Cairo_NATIVE_EXIT(env, that, cairo_1set_1matrix_FUNC);
+ }
+ #endif
+@@ -1112,53 +1285,43 @@
+ }
+ #endif
+
+-#ifndef NO_cairo_1set_1pattern
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1pattern)
++#ifndef NO_cairo_1set_1source
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1source)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1set_1pattern_FUNC);
+- cairo_set_pattern((cairo_t *)arg0, (cairo_pattern_t *)arg1);
+- Cairo_NATIVE_EXIT(env, that, cairo_1set_1pattern_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1set_1source_FUNC);
++ cairo_set_source((cairo_t *)arg0, (cairo_pattern_t *)arg1);
++ Cairo_NATIVE_EXIT(env, that, cairo_1set_1source_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1set_1rgb_1color
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1rgb_1color)
++#ifndef NO_cairo_1set_1source_1rgb
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1source_1rgb)
+ (JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2, jdouble arg3)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1set_1rgb_1color_FUNC);
+- cairo_set_rgb_color((cairo_t *)arg0, arg1, arg2, arg3);
+- Cairo_NATIVE_EXIT(env, that, cairo_1set_1rgb_1color_FUNC);
+-}
+-#endif
+-
+-#ifndef NO_cairo_1set_1target_1drawable
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1target_1drawable)
+- (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)
+-{
+- Cairo_NATIVE_ENTER(env, that, cairo_1set_1target_1drawable_FUNC);
+- cairo_set_target_drawable((cairo_t *)arg0, (Display *)arg1, (Drawable)arg2);
+- Cairo_NATIVE_EXIT(env, that, cairo_1set_1target_1drawable_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1set_1source_1rgb_FUNC);
++ cairo_set_source_rgb((cairo_t *)arg0, arg1, arg2, arg3);
++ Cairo_NATIVE_EXIT(env, that, cairo_1set_1source_1rgb_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1set_1target_1image
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1target_1image)
+- (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5)
++#ifndef NO_cairo_1set_1source_1rgba
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1source_1rgba)
++ (JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2, jdouble arg3, jdouble arg4)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1set_1target_1image_FUNC);
+- cairo_set_target_image((cairo_t *)arg0, (char *)arg1, arg2, arg3, arg4, arg5);
+- Cairo_NATIVE_EXIT(env, that, cairo_1set_1target_1image_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1set_1source_1rgba_FUNC);
++ cairo_set_source_rgba((cairo_t *)arg0, arg1, arg2, arg3, arg4);
++ Cairo_NATIVE_EXIT(env, that, cairo_1set_1source_1rgba_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1set_1target_1surface
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1target_1surface)
+- (JNIEnv *env, jclass that, jint arg0, jint arg1)
++#ifndef NO_cairo_1set_1source_1surface
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1set_1source_1surface)
++ (JNIEnv *env, jclass that, jint arg0, jint arg1, jdouble arg2, jdouble arg3)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1set_1target_1surface_FUNC);
+- cairo_set_target_surface((cairo_t *)arg0, (cairo_surface_t *)arg1);
+- Cairo_NATIVE_EXIT(env, that, cairo_1set_1target_1surface_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1set_1source_1surface_FUNC);
++ cairo_set_source_surface((cairo_t *)arg0, (cairo_surface_t *)arg1, arg2, arg3);
++ Cairo_NATIVE_EXIT(env, that, cairo_1set_1source_1surface_FUNC);
+ }
+ #endif
+
+@@ -1192,16 +1355,6 @@
+ }
+ #endif
+
+-#ifndef NO_cairo_1show_1surface
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1show_1surface)
+- (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)
+-{
+- Cairo_NATIVE_ENTER(env, that, cairo_1show_1surface_FUNC);
+- cairo_show_surface((cairo_t *)arg0, (cairo_surface_t *)arg1, arg2, arg3);
+- Cairo_NATIVE_EXIT(env, that, cairo_1show_1surface_FUNC);
+-}
+-#endif
+-
+ #ifndef NO_cairo_1show_1text
+ JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1show_1text)
+ (JNIEnv *env, jclass that, jint arg0, jbyteArray arg1)
+@@ -1228,14 +1381,14 @@
+ }
+ #endif
+
+-#ifndef NO_cairo_1status_1string
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1status_1string)
++#ifndef NO_cairo_1status_1to_1string
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1status_1to_1string)
+ (JNIEnv *env, jclass that, jint arg0)
+ {
+ jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1status_1string_FUNC);
+- rc = (jint)cairo_status_string((cairo_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1status_1string_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1status_1to_1string_FUNC);
++ rc = (jint)cairo_status_to_string(arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1status_1to_1string_FUNC);
+ return rc;
+ }
+ #endif
+@@ -1273,15 +1426,13 @@
+ }
+ #endif
+
+-#ifndef NO_cairo_1surface_1create_1for_1image
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1surface_1create_1for_1image)
+- (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4)
++#ifndef NO_cairo_1stroke_1preserve
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1stroke_1preserve)
++ (JNIEnv *env, jclass that, jint arg0)
+ {
+- jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1surface_1create_1for_1image_FUNC);
+- rc = (jint)cairo_surface_create_for_image((char *)arg0, arg1, arg2, arg3, arg4);
+- Cairo_NATIVE_EXIT(env, that, cairo_1surface_1create_1for_1image_FUNC);
+- return rc;
++ Cairo_NATIVE_ENTER(env, that, cairo_1stroke_1preserve_FUNC);
++ cairo_stroke_preserve((cairo_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1stroke_1preserve_FUNC);
+ }
+ #endif
+
+@@ -1307,26 +1458,24 @@
+ }
+ #endif
+
+-#ifndef NO_cairo_1surface_1get_1filter
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1surface_1get_1filter)
++#ifndef NO_cairo_1surface_1finish
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1surface_1finish)
+ (JNIEnv *env, jclass that, jint arg0)
+ {
+- jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1surface_1get_1filter_FUNC);
+- rc = (jint)cairo_surface_get_filter((cairo_surface_t *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1surface_1get_1filter_FUNC);
+- return rc;
++ Cairo_NATIVE_ENTER(env, that, cairo_1surface_1finish_FUNC);
++ cairo_surface_finish((cairo_surface_t *)arg0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1surface_1finish_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1surface_1get_1matrix
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1surface_1get_1matrix)
++#ifndef NO_cairo_1surface_1get_1user_1data
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1surface_1get_1user_1data)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1)
+ {
+ jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1surface_1get_1matrix_FUNC);
+- rc = (jint)cairo_surface_get_matrix((cairo_surface_t *)arg0, (cairo_matrix_t *)arg1);
+- Cairo_NATIVE_EXIT(env, that, cairo_1surface_1get_1matrix_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1surface_1get_1user_1data_FUNC);
++ rc = (jint)cairo_surface_get_user_data((cairo_surface_t *)arg0, (cairo_user_data_key_t *)arg1);
++ Cairo_NATIVE_EXIT(env, that, cairo_1surface_1get_1user_1data_FUNC);
+ return rc;
+ }
+ #endif
+@@ -1341,38 +1490,24 @@
+ }
+ #endif
+
+-#ifndef NO_cairo_1surface_1set_1filter
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1surface_1set_1filter)
+- (JNIEnv *env, jclass that, jint arg0, jint arg1)
+-{
+- jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1surface_1set_1filter_FUNC);
+- rc = (jint)cairo_surface_set_filter((cairo_surface_t *)arg0, arg1);
+- Cairo_NATIVE_EXIT(env, that, cairo_1surface_1set_1filter_FUNC);
+- return rc;
+-}
+-#endif
+-
+-#ifndef NO_cairo_1surface_1set_1matrix
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1surface_1set_1matrix)
+- (JNIEnv *env, jclass that, jint arg0, jint arg1)
++#ifndef NO_cairo_1surface_1set_1device_1offset
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1surface_1set_1device_1offset)
++ (JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2)
+ {
+- jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1surface_1set_1matrix_FUNC);
+- rc = (jint)cairo_surface_set_matrix((cairo_surface_t *)arg0, (cairo_matrix_t *)arg1);
+- Cairo_NATIVE_EXIT(env, that, cairo_1surface_1set_1matrix_FUNC);
+- return rc;
++ Cairo_NATIVE_ENTER(env, that, cairo_1surface_1set_1device_1offset_FUNC);
++ cairo_surface_set_device_offset((cairo_surface_t *)arg0, arg1, arg2);
++ Cairo_NATIVE_EXIT(env, that, cairo_1surface_1set_1device_1offset_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1surface_1set_1repeat
+-JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1surface_1set_1repeat)
+- (JNIEnv *env, jclass that, jint arg0, jint arg1)
++#ifndef NO_cairo_1surface_1set_1user_1data
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1surface_1set_1user_1data)
++ (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)
+ {
+ jint rc = 0;
+- Cairo_NATIVE_ENTER(env, that, cairo_1surface_1set_1repeat_FUNC);
+- rc = (jint)cairo_surface_set_repeat((cairo_surface_t *)arg0, arg1);
+- Cairo_NATIVE_EXIT(env, that, cairo_1surface_1set_1repeat_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1surface_1set_1user_1data_FUNC);
++ rc = (jint)cairo_surface_set_user_data((cairo_surface_t *)arg0, (cairo_user_data_key_t *)arg1, (void *)arg2, (cairo_destroy_func_t)arg3);
++ Cairo_NATIVE_EXIT(env, that, cairo_1surface_1set_1user_1data_FUNC);
+ return rc;
+ }
+ #endif
+@@ -1405,57 +1540,61 @@
+ }
+ #endif
+
+-#ifndef NO_cairo_1transform_1distance
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1transform_1distance)
+- (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1, jdoubleArray arg2)
++#ifndef NO_cairo_1transform
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1transform)
++ (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1)
+ {
+ jdouble *lparg1=NULL;
+- jdouble *lparg2=NULL;
+- Cairo_NATIVE_ENTER(env, that, cairo_1transform_1distance_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1transform_FUNC);
+ if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
+- if (arg2) if ((lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL)) == NULL) goto fail;
+- cairo_transform_distance((cairo_t *)arg0, lparg1, lparg2);
++ cairo_transform((cairo_t *)arg0, (cairo_matrix_t *)lparg1);
+ fail:
+- if (arg2 && lparg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);
+ if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1transform_1distance_FUNC);
++ Cairo_NATIVE_EXIT(env, that, cairo_1transform_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1transform_1font
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1transform_1font)
+- (JNIEnv *env, jclass that, jint arg0, jint arg1)
++#ifndef NO_cairo_1translate
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1translate)
++ (JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1transform_1font_FUNC);
+- cairo_transform_font((cairo_t *)arg0, (cairo_matrix_t *)arg1);
+- Cairo_NATIVE_EXIT(env, that, cairo_1transform_1font_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1translate_FUNC);
++ cairo_translate((cairo_t *)arg0, arg1, arg2);
++ Cairo_NATIVE_EXIT(env, that, cairo_1translate_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1transform_1point
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1transform_1point)
++#ifndef NO_cairo_1user_1to_1device
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1user_1to_1device)
+ (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1, jdoubleArray arg2)
+ {
+ jdouble *lparg1=NULL;
+ jdouble *lparg2=NULL;
+- Cairo_NATIVE_ENTER(env, that, cairo_1transform_1point_FUNC);
++ Cairo_NATIVE_ENTER(env, that, cairo_1user_1to_1device_FUNC);
+ if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
+ if (arg2) if ((lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL)) == NULL) goto fail;
+- cairo_transform_point((cairo_t *)arg0, lparg1, lparg2);
++ cairo_user_to_device((cairo_t *)arg0, lparg1, lparg2);
+ fail:
+ if (arg2 && lparg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);
+ if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1transform_1point_FUNC);
++ Cairo_NATIVE_EXIT(env, that, cairo_1user_1to_1device_FUNC);
+ }
+ #endif
+
+-#ifndef NO_cairo_1translate
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1translate)
+- (JNIEnv *env, jclass that, jint arg0, jdouble arg1, jdouble arg2)
++#ifndef NO_cairo_1user_1to_1device_1distance
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1user_1to_1device_1distance)
++ (JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1, jdoubleArray arg2)
+ {
+- Cairo_NATIVE_ENTER(env, that, cairo_1translate_FUNC);
+- cairo_translate((cairo_t *)arg0, arg1, arg2);
+- Cairo_NATIVE_EXIT(env, that, cairo_1translate_FUNC);
++ jdouble *lparg1=NULL;
++ jdouble *lparg2=NULL;
++ Cairo_NATIVE_ENTER(env, that, cairo_1user_1to_1device_1distance_FUNC);
++ if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
++ if (arg2) if ((lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL)) == NULL) goto fail;
++ cairo_user_to_device_distance((cairo_t *)arg0, lparg1, lparg2);
++fail:
++ if (arg2 && lparg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);
++ if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
++ Cairo_NATIVE_EXIT(env, that, cairo_1user_1to_1device_1distance_FUNC);
+ }
+ #endif
+
+@@ -1465,9 +1604,73 @@
+ {
+ jint rc = 0;
+ Cairo_NATIVE_ENTER(env, that, cairo_1xlib_1surface_1create_FUNC);
+- rc = (jint)cairo_xlib_surface_create((Display *)arg0, (Drawable)arg1, (Visual *)arg2, arg3, (Colormap)arg4);
++ rc = (jint)cairo_xlib_surface_create((Display *)arg0, (Drawable)arg1, (Visual *)arg2, arg3, arg4);
+ Cairo_NATIVE_EXIT(env, that, cairo_1xlib_1surface_1create_FUNC);
+ return rc;
++}
++#endif
++
++#ifndef NO_cairo_1xlib_1surface_1create_1for_1bitmap
++JNIEXPORT jint JNICALL Cairo_NATIVE(cairo_1xlib_1surface_1create_1for_1bitmap)
++ (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4)
++{
++ jint rc = 0;
++ Cairo_NATIVE_ENTER(env, that, cairo_1xlib_1surface_1create_1for_1bitmap_FUNC);
++ rc = (jint)cairo_xlib_surface_create_for_bitmap((Display *)arg0, (Pixmap)arg1, (Screen *)arg2, arg3, arg4);
++ Cairo_NATIVE_EXIT(env, that, cairo_1xlib_1surface_1create_1for_1bitmap_FUNC);
++ return rc;
++}
++#endif
++
++#ifndef NO_cairo_1xlib_1surface_1set_1size
++JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1xlib_1surface_1set_1size)
++ (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)
++{
++ Cairo_NATIVE_ENTER(env, that, cairo_1xlib_1surface_1set_1size_FUNC);
++ cairo_xlib_surface_set_size((cairo_surface_t *)arg0, arg1, arg2);
++ Cairo_NATIVE_EXIT(env, that, cairo_1xlib_1surface_1set_1size_FUNC);
++}
++#endif
++
++#ifndef NO_memmove__Lorg_eclipse_swt_internal_cairo_cairo_1path_1data_1t_2II
++JNIEXPORT void JNICALL Cairo_NATIVE(memmove__Lorg_eclipse_swt_internal_cairo_cairo_1path_1data_1t_2II)
++ (JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)
++{
++ cairo_path_data_t _arg0, *lparg0=NULL;
++ Cairo_NATIVE_ENTER(env, that, memmove__Lorg_eclipse_swt_internal_cairo_cairo_1path_1data_1t_2II_FUNC);
++ if (arg0) if ((lparg0 = getcairo_path_data_tFields(env, arg0, &_arg0)) == NULL) goto fail;
++ memmove((void *)lparg0, (const void *)arg1, (size_t)arg2);
++fail:
++ if (arg0 && lparg0) setcairo_path_data_tFields(env, arg0, lparg0);
++ Cairo_NATIVE_EXIT(env, that, memmove__Lorg_eclipse_swt_internal_cairo_cairo_1path_1data_1t_2II_FUNC);
++}
++#endif
++
++#ifndef NO_memmove__Lorg_eclipse_swt_internal_cairo_cairo_1path_1t_2II
++JNIEXPORT void JNICALL Cairo_NATIVE(memmove__Lorg_eclipse_swt_internal_cairo_cairo_1path_1t_2II)
++ (JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)
++{
++ cairo_path_t _arg0, *lparg0=NULL;
++ Cairo_NATIVE_ENTER(env, that, memmove__Lorg_eclipse_swt_internal_cairo_cairo_1path_1t_2II_FUNC);
++ if (arg0) if ((lparg0 = getcairo_path_tFields(env, arg0, &_arg0)) == NULL) goto fail;
++ memmove((void *)lparg0, (const void *)arg1, (size_t)arg2);
++fail:
++ if (arg0 && lparg0) setcairo_path_tFields(env, arg0, lparg0);
++ Cairo_NATIVE_EXIT(env, that, memmove__Lorg_eclipse_swt_internal_cairo_cairo_1path_1t_2II_FUNC);
++}
++#endif
++
++#ifndef NO_memmove___3DII
++JNIEXPORT void JNICALL Cairo_NATIVE(memmove___3DII)
++ (JNIEnv *env, jclass that, jdoubleArray arg0, jint arg1, jint arg2)
++{
++ jdouble *lparg0=NULL;
++ Cairo_NATIVE_ENTER(env, that, memmove___3DII_FUNC);
++ if (arg0) if ((lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL)) == NULL) goto fail;
++ memmove((void *)lparg0, (const void *)arg1, (size_t)arg2);
++fail:
++ if (arg0 && lparg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);
++ Cairo_NATIVE_EXIT(env, that, memmove___3DII_FUNC);
+ }
+ #endif
+
+diff -uN plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library.orig/cairo.h plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo.h
+--- plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library.orig/cairo.h Thu Aug 18 12:34:57 2005
++++ plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo.h Thu Aug 18 12:35:19 2005
+@@ -24,5 +24,6 @@
+
+ #include <cairo.h>
+ #include <cairo-xlib.h>
++#include <string.h>
+
+ #endif /* INC_cairo_H */
+diff -uN plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library.orig/cairo_custom.c plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_custom.c
+--- plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library.orig/cairo_custom.c Thu Aug 18 12:34:57 2005
++++ plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_custom.c Thu Jan 1 01:00:00 1970
+@@ -1,179 +0,0 @@
+-/* ***** BEGIN LICENSE BLOCK *****
+- * Version: MPL 1.1
+- *
+- * The contents of this file are subject to the Mozilla Public License Version
+- * 1.1 (the "License"); you may not use this file except in compliance with
+- * the License. You may obtain a copy of the License at
+- * http://www.mozilla.org/MPL/
+- *
+- * Software distributed under the License is distributed on an "AS IS" basis,
+- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+- * for the specific language governing rights and limitations under the
+- * License.
+- *
+- * Contributor(s):
+- *
+- * IBM
+- * - Binding to permit interfacing between Cairo and SWT
+- * - Copyright (C) 2005 IBM Corp. All Rights Reserved.
+- *
+- * ***** END LICENSE BLOCK ***** */
+-
+-#include "swt.h"
+-#include "cairo_structs.h"
+-#include "cairo_stats.h"
+-
+-#define Cairo_NATIVE(func) Java_org_eclipse_swt_internal_cairo_Cairo_##func
+-
+-#ifndef NO_cairo_1add_1path
+-static void moveTo(cairo_t *cairo, double x, double y) {
+- cairo_move_to(cairo, x, y);
+-}
+-
+-static void lineTo(cairo_t *cairo, double x, double y) {
+- cairo_line_to(cairo, x, y);
+-}
+-
+-static void curveTo(cairo_t *cairo, double x1, double y1, double x2, double y2, double x3, double y3) {
+- cairo_curve_to(cairo, x1, y1, x2, y2, x3, y3);
+-}
+-
+-static void closePath(cairo_t *cairo) {
+- cairo_close_path(cairo);
+-}
+-
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1add_1path)
+- (JNIEnv *env, jclass that, SWT_PTR arg0, SWT_PTR arg1)
+-{
+- Cairo_NATIVE_ENTER(env, that, cairo_1add_1path_FUNC);
+- cairo_new_path((cairo_t *)arg0);
+- cairo_current_path((cairo_t *)arg1, (cairo_move_to_func_t *)moveTo, (cairo_line_to_func_t *)lineTo, (cairo_curve_to_func_t *)curveTo, (cairo_close_path_func_t *)closePath, (void *)arg0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1add_1path_FUNC);
+-}
+-#endif
+-
+-#ifndef NO_cairo_1extents
+-#include <float.h>
+-#define EXTENTS(x, y, extents) \
+- if (x < extents[0]) extents[0] = x; \
+- if (y < extents[1]) extents[1] = y; \
+- if (x > extents[2]) extents[2] = x; \
+- if (y > extents[3]) extents[3] = y;
+-
+-static void extentsMoveTo(jdouble *extents, double x, double y) {
+- EXTENTS(x, y, extents)
+-}
+-
+-static void extentsLineTo(jdouble *extents, double x, double y) {
+- EXTENTS(x, y, extents)
+-}
+-
+-static void extentsCurveTo(jdouble *extents, double x1, double y1, double x2, double y2, double x3, double y3) {
+- EXTENTS(x1, y1, extents)
+- EXTENTS(x2, y2, extents)
+- EXTENTS(x3, y3, extents)
+-}
+-
+-static void extentsClosePath(jdouble *extents) {
+-}
+-
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1extents)
+- (JNIEnv *env, jclass that, SWT_PTR arg0, jdoubleArray arg1)
+-{
+- jdouble *lparg1=NULL;
+- Cairo_NATIVE_ENTER(env, that, cairo_1extents_FUNC);
+- if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
+- lparg1[0] = lparg1[1] = DBL_MAX;
+- lparg1[2] = lparg1[3] = DBL_MIN;
+- cairo_current_path((cairo_t *)arg0, (cairo_move_to_func_t *)extentsMoveTo, (cairo_line_to_func_t *)extentsLineTo, (cairo_curve_to_func_t *)extentsCurveTo, (cairo_close_path_func_t *)extentsClosePath, (void *)lparg1);
+- if (lparg1[0] == lparg1[1] && lparg1[0] == DBL_MAX) lparg1[0] = lparg1[1] = 0;
+- if (lparg1[2] == lparg1[3] && lparg1[2] == DBL_MAX) lparg1[2] = lparg1[3] = 0;
+-fail:
+- if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1extents_FUNC);
+-}
+-#endif
+-
+-#ifndef NO_cairo_1points
+-#define PATH_MOVE_TO 1
+-#define PATH_LINE_TO 2
+-#define PATH_QUAD_TO 3
+-#define PATH_CUBIC_TO 4
+-#define PATH_CLOSE 5
+-typedef struct _points_data {
+- jint *n_types;
+- jint *n_points;
+- jbyte *types;
+- jfloat *points;
+-} points_data;
+-
+-static void pointsMoveTo(points_data *data, double x, double y) {
+- if (data->types != NULL) data->types[data->n_types[0]] = PATH_MOVE_TO;
+- if (data->points != NULL) {
+- int offset = data->n_points[0] * 2;
+- data->points[offset] = x;
+- data->points[offset + 1] = y;
+- }
+- data->n_types[0]++;
+- data->n_points[0]++;
+-}
+-
+-static void pointsLineTo(points_data *data, double x, double y) {
+- if (data->types != NULL) data->types[data->n_types[0]] = PATH_LINE_TO;
+- if (data->points != NULL) {
+- int offset = data->n_points[0] * 2;
+- data->points[offset] = x;
+- data->points[offset + 1] = y;
+- }
+- data->n_types[0]++;
+- data->n_points[0]++;
+-}
+-
+-static void pointsCurveTo(points_data *data, double x1, double y1, double x2, double y2, double x3, double y3) {
+- if (data->types != NULL) data->types[data->n_types[0]] = PATH_CUBIC_TO;
+- if (data->points != NULL) {
+- int offset = data->n_points[0] * 2;
+- data->points[offset] = x1;
+- data->points[offset + 1] = y1;
+- data->points[offset + 2] = x2;
+- data->points[offset + 3] = y2;
+- data->points[offset + 4] = x3;
+- data->points[offset + 5] = y3;
+- }
+- data->n_types[0]++;
+- data->n_points[0] += 3;
+-}
+-
+-static void pointsClosePath(points_data *data) {
+- if (data->types != NULL) data->types[data->n_types[0]] = PATH_CLOSE;
+- data->n_types[0]++;
+-}
+-
+-JNIEXPORT void JNICALL Cairo_NATIVE(cairo_1points)
+- (JNIEnv *env, jclass that, SWT_PTR arg0, jintArray arg1, jintArray arg2, jbyteArray arg3, jfloatArray arg4)
+-{
+- points_data data;
+- jint *lparg1=NULL;
+- jint *lparg2=NULL;
+- jbyte *lparg3=NULL;
+- jfloat *lparg4=NULL;
+- Cairo_NATIVE_ENTER(env, that, cairo_1points_FUNC);
+- if (arg1) if ((lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL)) == NULL) goto fail;
+- if (arg2) if ((lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL)) == NULL) goto fail;
+- if (arg3) if ((lparg3 = (*env)->GetByteArrayElements(env, arg3, NULL)) == NULL) goto fail;
+- if (arg4) if ((lparg4 = (*env)->GetFloatArrayElements(env, arg4, NULL)) == NULL) goto fail;
+- data.n_types = lparg1;
+- data.n_points = lparg2;
+- data.types = lparg3;
+- data.points = lparg4;
+- data.n_types[0] = data.n_points[0] = 0;
+- cairo_current_path((cairo_t *)arg0, (cairo_move_to_func_t *)pointsMoveTo, (cairo_line_to_func_t *)pointsLineTo, (cairo_curve_to_func_t *)pointsCurveTo, (cairo_close_path_func_t *)pointsClosePath, (void *)&data);
+-fail:
+- if (arg4 && lparg4) (*env)->ReleaseFloatArrayElements(env, arg4, lparg4, 0);
+- if (arg3 && lparg3) (*env)->ReleaseByteArrayElements(env, arg3, lparg3, 0);
+- if (arg2 && lparg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);
+- if (arg1 && lparg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);
+- Cairo_NATIVE_EXIT(env, that, cairo_1points_FUNC);
+-}
+-#endif
+-
+diff -uN plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library.orig/cairo_stats.c plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_stats.c
+--- plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library.orig/cairo_stats.c Thu Aug 18 12:34:57 2005
++++ plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_stats.c Thu Aug 18 12:35:19 2005
+@@ -24,71 +24,80 @@
+
+ #ifdef NATIVE_STATS
+
+-int Cairo_nativeFunctionCount = 125;
+-int Cairo_nativeFunctionCallCount[125];
++int Cairo_nativeFunctionCount = 138;
++int Cairo_nativeFunctionCallCount[138];
+ char * Cairo_nativeFunctionNames[] = {
+- "cairo_1add_1path",
++ "cairo_1append_1path",
+ "cairo_1arc",
+ "cairo_1arc_1negative",
+ "cairo_1clip",
++ "cairo_1clip_1preserve",
+ "cairo_1close_1path",
+- "cairo_1concat_1matrix",
+- "cairo_1copy",
+ "cairo_1copy_1page",
++ "cairo_1copy_1path",
++ "cairo_1copy_1path_1flat",
+ "cairo_1create",
+- "cairo_1current_1alpha",
+- "cairo_1current_1fill_1rule",
+- "cairo_1current_1font",
+- "cairo_1current_1font_1extents",
+- "cairo_1current_1line_1cap",
+- "cairo_1current_1line_1join",
+- "cairo_1current_1line_1width",
+- "cairo_1current_1matrix",
+- "cairo_1current_1miter_1limit",
+- "cairo_1current_1operator",
+- "cairo_1current_1path",
+- "cairo_1current_1path_1flat",
+- "cairo_1current_1pattern",
+- "cairo_1current_1point",
+- "cairo_1current_1rgb_1color",
+- "cairo_1current_1target_1surface",
+- "cairo_1current_1tolerance",
+ "cairo_1curve_1to",
+- "cairo_1default_1matrix",
+ "cairo_1destroy",
+- "cairo_1extents",
++ "cairo_1device_1to_1user",
++ "cairo_1device_1to_1user_1distance",
+ "cairo_1fill",
+ "cairo_1fill_1extents",
+- "cairo_1font_1destroy",
++ "cairo_1fill_1preserve",
++ "cairo_1font_1extents",
+ "cairo_1font_1extents_1t_1sizeof",
+- "cairo_1font_1reference",
++ "cairo_1font_1options_1create",
++ "cairo_1font_1options_1destroy",
++ "cairo_1font_1options_1get_1antialias",
++ "cairo_1font_1options_1set_1antialias",
++ "cairo_1get_1antialias",
++ "cairo_1get_1current_1point",
++ "cairo_1get_1fill_1rule",
++ "cairo_1get_1font_1face",
++ "cairo_1get_1font_1matrix",
++ "cairo_1get_1font_1options",
++ "cairo_1get_1line_1cap",
++ "cairo_1get_1line_1join",
++ "cairo_1get_1line_1width",
++ "cairo_1get_1matrix",
++ "cairo_1get_1miter_1limit",
++ "cairo_1get_1operator",
++ "cairo_1get_1source",
++ "cairo_1get_1target",
++ "cairo_1get_1tolerance",
+ "cairo_1glyph_1extents",
+ "cairo_1glyph_1path",
+ "cairo_1identity_1matrix",
+ "cairo_1image_1surface_1create",
+ "cairo_1image_1surface_1create_1for_1data",
++ "cairo_1image_1surface_1get_1height",
++ "cairo_1image_1surface_1get_1width",
+ "cairo_1in_1fill",
+ "cairo_1in_1stroke",
+- "cairo_1init_1clip",
+- "cairo_1inverse_1transform_1distance",
+- "cairo_1inverse_1transform_1point",
+ "cairo_1line_1to",
+- "cairo_1matrix_1copy",
+- "cairo_1matrix_1create",
+- "cairo_1matrix_1destroy",
+- "cairo_1matrix_1get_1affine",
++ "cairo_1mask",
++ "cairo_1mask_1surface",
++ "cairo_1matrix_1init",
++ "cairo_1matrix_1init_1identity",
++ "cairo_1matrix_1init_1rotate",
++ "cairo_1matrix_1init_1scale",
++ "cairo_1matrix_1init_1translate",
+ "cairo_1matrix_1invert",
+ "cairo_1matrix_1multiply",
+ "cairo_1matrix_1rotate",
+ "cairo_1matrix_1scale",
+- "cairo_1matrix_1set_1affine",
+- "cairo_1matrix_1set_1identity",
+ "cairo_1matrix_1transform_1distance",
+ "cairo_1matrix_1transform_1point",
+ "cairo_1matrix_1translate",
+ "cairo_1move_1to",
+ "cairo_1new_1path",
+- "cairo_1pattern_1add_1color_1stop",
++ "cairo_1paint",
++ "cairo_1paint_1with_1alpha",
++ "cairo_1path_1data_1t_1sizeof",
++ "cairo_1path_1destroy",
++ "cairo_1path_1t_1sizeof",
++ "cairo_1pattern_1add_1color_1stop_1rgb",
++ "cairo_1pattern_1add_1color_1stop_1rgba",
+ "cairo_1pattern_1create_1for_1surface",
+ "cairo_1pattern_1create_1linear",
+ "cairo_1pattern_1create_1radial",
+@@ -100,58 +109,62 @@
+ "cairo_1pattern_1set_1extend",
+ "cairo_1pattern_1set_1filter",
+ "cairo_1pattern_1set_1matrix",
+- "cairo_1points",
+ "cairo_1rectangle",
+ "cairo_1reference",
+ "cairo_1rel_1curve_1to",
+ "cairo_1rel_1line_1to",
+ "cairo_1rel_1move_1to",
++ "cairo_1reset_1clip",
+ "cairo_1restore",
+ "cairo_1rotate",
+ "cairo_1save",
+ "cairo_1scale",
+- "cairo_1scale_1font",
+- "cairo_1select_1font",
+- "cairo_1set_1alpha",
++ "cairo_1select_1font_1face",
++ "cairo_1set_1antialias",
+ "cairo_1set_1dash",
+ "cairo_1set_1fill_1rule",
+- "cairo_1set_1font",
++ "cairo_1set_1font_1face",
++ "cairo_1set_1font_1matrix",
++ "cairo_1set_1font_1options",
++ "cairo_1set_1font_1size",
+ "cairo_1set_1line_1cap",
+ "cairo_1set_1line_1join",
+ "cairo_1set_1line_1width",
+ "cairo_1set_1matrix",
+ "cairo_1set_1miter_1limit",
+ "cairo_1set_1operator",
+- "cairo_1set_1pattern",
+- "cairo_1set_1rgb_1color",
+- "cairo_1set_1target_1drawable",
+- "cairo_1set_1target_1image",
+- "cairo_1set_1target_1surface",
++ "cairo_1set_1source",
++ "cairo_1set_1source_1rgb",
++ "cairo_1set_1source_1rgba",
++ "cairo_1set_1source_1surface",
+ "cairo_1set_1tolerance",
+ "cairo_1show_1glyphs",
+ "cairo_1show_1page",
+- "cairo_1show_1surface",
+ "cairo_1show_1text",
+ "cairo_1status",
+- "cairo_1status_1string",
++ "cairo_1status_1to_1string",
+ "cairo_1stroke",
+ "cairo_1stroke_1extents",
+- "cairo_1surface_1create_1for_1image",
++ "cairo_1stroke_1preserve",
+ "cairo_1surface_1create_1similar",
+ "cairo_1surface_1destroy",
+- "cairo_1surface_1get_1filter",
+- "cairo_1surface_1get_1matrix",
++ "cairo_1surface_1finish",
++ "cairo_1surface_1get_1user_1data",
+ "cairo_1surface_1reference",
+- "cairo_1surface_1set_1filter",
+- "cairo_1surface_1set_1matrix",
+- "cairo_1surface_1set_1repeat",
++ "cairo_1surface_1set_1device_1offset",
++ "cairo_1surface_1set_1user_1data",
+ "cairo_1text_1extents",
+ "cairo_1text_1path",
+- "cairo_1transform_1distance",
+- "cairo_1transform_1font",
+- "cairo_1transform_1point",
++ "cairo_1transform",
+ "cairo_1translate",
++ "cairo_1user_1to_1device",
++ "cairo_1user_1to_1device_1distance",
+ "cairo_1xlib_1surface_1create",
++ "cairo_1xlib_1surface_1create_1for_1bitmap",
++ "cairo_1xlib_1surface_1set_1size",
++ "memmove__Lorg_eclipse_swt_internal_cairo_cairo_1path_1data_1t_2II",
++ "memmove__Lorg_eclipse_swt_internal_cairo_cairo_1path_1t_2II",
++ "memmove___3DII",
+ };
+
+ #define STATS_NATIVE(func) Java_org_eclipse_swt_tools_internal_NativeStats_##func
+diff -uN plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library.orig/cairo_stats.h plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_stats.h
+--- plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library.orig/cairo_stats.h Thu Aug 18 12:34:57 2005
++++ plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_stats.h Thu Aug 18 12:35:19 2005
+@@ -31,68 +31,77 @@
+ #endif
+
+ typedef enum {
+- cairo_1add_1path_FUNC,
++ cairo_1append_1path_FUNC,
+ cairo_1arc_FUNC,
+ cairo_1arc_1negative_FUNC,
+ cairo_1clip_FUNC,
++ cairo_1clip_1preserve_FUNC,
+ cairo_1close_1path_FUNC,
+- cairo_1concat_1matrix_FUNC,
+- cairo_1copy_FUNC,
+ cairo_1copy_1page_FUNC,
++ cairo_1copy_1path_FUNC,
++ cairo_1copy_1path_1flat_FUNC,
+ cairo_1create_FUNC,
+- cairo_1current_1alpha_FUNC,
+- cairo_1current_1fill_1rule_FUNC,
+- cairo_1current_1font_FUNC,
+- cairo_1current_1font_1extents_FUNC,
+- cairo_1current_1line_1cap_FUNC,
+- cairo_1current_1line_1join_FUNC,
+- cairo_1current_1line_1width_FUNC,
+- cairo_1current_1matrix_FUNC,
+- cairo_1current_1miter_1limit_FUNC,
+- cairo_1current_1operator_FUNC,
+- cairo_1current_1path_FUNC,
+- cairo_1current_1path_1flat_FUNC,
+- cairo_1current_1pattern_FUNC,
+- cairo_1current_1point_FUNC,
+- cairo_1current_1rgb_1color_FUNC,
+- cairo_1current_1target_1surface_FUNC,
+- cairo_1current_1tolerance_FUNC,
+ cairo_1curve_1to_FUNC,
+- cairo_1default_1matrix_FUNC,
+ cairo_1destroy_FUNC,
+- cairo_1extents_FUNC,
++ cairo_1device_1to_1user_FUNC,
++ cairo_1device_1to_1user_1distance_FUNC,
+ cairo_1fill_FUNC,
+ cairo_1fill_1extents_FUNC,
+- cairo_1font_1destroy_FUNC,
++ cairo_1fill_1preserve_FUNC,
++ cairo_1font_1extents_FUNC,
+ cairo_1font_1extents_1t_1sizeof_FUNC,
+- cairo_1font_1reference_FUNC,
++ cairo_1font_1options_1create_FUNC,
++ cairo_1font_1options_1destroy_FUNC,
++ cairo_1font_1options_1get_1antialias_FUNC,
++ cairo_1font_1options_1set_1antialias_FUNC,
++ cairo_1get_1antialias_FUNC,
++ cairo_1get_1current_1point_FUNC,
++ cairo_1get_1fill_1rule_FUNC,
++ cairo_1get_1font_1face_FUNC,
++ cairo_1get_1font_1matrix_FUNC,
++ cairo_1get_1font_1options_FUNC,
++ cairo_1get_1line_1cap_FUNC,
++ cairo_1get_1line_1join_FUNC,
++ cairo_1get_1line_1width_FUNC,
++ cairo_1get_1matrix_FUNC,
++ cairo_1get_1miter_1limit_FUNC,
++ cairo_1get_1operator_FUNC,
++ cairo_1get_1source_FUNC,
++ cairo_1get_1target_FUNC,
++ cairo_1get_1tolerance_FUNC,
+ cairo_1glyph_1extents_FUNC,
+ cairo_1glyph_1path_FUNC,
+ cairo_1identity_1matrix_FUNC,
+ cairo_1image_1surface_1create_FUNC,
+ cairo_1image_1surface_1create_1for_1data_FUNC,
++ cairo_1image_1surface_1get_1height_FUNC,
++ cairo_1image_1surface_1get_1width_FUNC,
+ cairo_1in_1fill_FUNC,
+ cairo_1in_1stroke_FUNC,
+- cairo_1init_1clip_FUNC,
+- cairo_1inverse_1transform_1distance_FUNC,
+- cairo_1inverse_1transform_1point_FUNC,
+ cairo_1line_1to_FUNC,
+- cairo_1matrix_1copy_FUNC,
+- cairo_1matrix_1create_FUNC,
+- cairo_1matrix_1destroy_FUNC,
+- cairo_1matrix_1get_1affine_FUNC,
++ cairo_1mask_FUNC,
++ cairo_1mask_1surface_FUNC,
++ cairo_1matrix_1init_FUNC,
++ cairo_1matrix_1init_1identity_FUNC,
++ cairo_1matrix_1init_1rotate_FUNC,
++ cairo_1matrix_1init_1scale_FUNC,
++ cairo_1matrix_1init_1translate_FUNC,
+ cairo_1matrix_1invert_FUNC,
+ cairo_1matrix_1multiply_FUNC,
+ cairo_1matrix_1rotate_FUNC,
+ cairo_1matrix_1scale_FUNC,
+- cairo_1matrix_1set_1affine_FUNC,
+- cairo_1matrix_1set_1identity_FUNC,
+ cairo_1matrix_1transform_1distance_FUNC,
+ cairo_1matrix_1transform_1point_FUNC,
+ cairo_1matrix_1translate_FUNC,
+ cairo_1move_1to_FUNC,
+ cairo_1new_1path_FUNC,
+- cairo_1pattern_1add_1color_1stop_FUNC,
++ cairo_1paint_FUNC,
++ cairo_1paint_1with_1alpha_FUNC,
++ cairo_1path_1data_1t_1sizeof_FUNC,
++ cairo_1path_1destroy_FUNC,
++ cairo_1path_1t_1sizeof_FUNC,
++ cairo_1pattern_1add_1color_1stop_1rgb_FUNC,
++ cairo_1pattern_1add_1color_1stop_1rgba_FUNC,
+ cairo_1pattern_1create_1for_1surface_FUNC,
+ cairo_1pattern_1create_1linear_FUNC,
+ cairo_1pattern_1create_1radial_FUNC,
+@@ -104,56 +113,60 @@
+ cairo_1pattern_1set_1extend_FUNC,
+ cairo_1pattern_1set_1filter_FUNC,
+ cairo_1pattern_1set_1matrix_FUNC,
+- cairo_1points_FUNC,
+ cairo_1rectangle_FUNC,
+ cairo_1reference_FUNC,
+ cairo_1rel_1curve_1to_FUNC,
+ cairo_1rel_1line_1to_FUNC,
+ cairo_1rel_1move_1to_FUNC,
++ cairo_1reset_1clip_FUNC,
+ cairo_1restore_FUNC,
+ cairo_1rotate_FUNC,
+ cairo_1save_FUNC,
+ cairo_1scale_FUNC,
+- cairo_1scale_1font_FUNC,
+- cairo_1select_1font_FUNC,
+- cairo_1set_1alpha_FUNC,
++ cairo_1select_1font_1face_FUNC,
++ cairo_1set_1antialias_FUNC,
+ cairo_1set_1dash_FUNC,
+ cairo_1set_1fill_1rule_FUNC,
+- cairo_1set_1font_FUNC,
++ cairo_1set_1font_1face_FUNC,
++ cairo_1set_1font_1matrix_FUNC,
++ cairo_1set_1font_1options_FUNC,
++ cairo_1set_1font_1size_FUNC,
+ cairo_1set_1line_1cap_FUNC,
+ cairo_1set_1line_1join_FUNC,
+ cairo_1set_1line_1width_FUNC,
+ cairo_1set_1matrix_FUNC,
+ cairo_1set_1miter_1limit_FUNC,
+ cairo_1set_1operator_FUNC,
+- cairo_1set_1pattern_FUNC,
+- cairo_1set_1rgb_1color_FUNC,
+- cairo_1set_1target_1drawable_FUNC,
+- cairo_1set_1target_1image_FUNC,
+- cairo_1set_1target_1surface_FUNC,
++ cairo_1set_1source_FUNC,
++ cairo_1set_1source_1rgb_FUNC,
++ cairo_1set_1source_1rgba_FUNC,
++ cairo_1set_1source_1surface_FUNC,
+ cairo_1set_1tolerance_FUNC,
+ cairo_1show_1glyphs_FUNC,
+ cairo_1show_1page_FUNC,
+- cairo_1show_1surface_FUNC,
+ cairo_1show_1text_FUNC,
+ cairo_1status_FUNC,
+- cairo_1status_1string_FUNC,
++ cairo_1status_1to_1string_FUNC,
+ cairo_1stroke_FUNC,
+ cairo_1stroke_1extents_FUNC,
+- cairo_1surface_1create_1for_1image_FUNC,
++ cairo_1stroke_1preserve_FUNC,
+ cairo_1surface_1create_1similar_FUNC,
+ cairo_1surface_1destroy_FUNC,
+- cairo_1surface_1get_1filter_FUNC,
+- cairo_1surface_1get_1matrix_FUNC,
++ cairo_1surface_1finish_FUNC,
++ cairo_1surface_1get_1user_1data_FUNC,
+ cairo_1surface_1reference_FUNC,
+- cairo_1surface_1set_1filter_FUNC,
+- cairo_1surface_1set_1matrix_FUNC,
+- cairo_1surface_1set_1repeat_FUNC,
++ cairo_1surface_1set_1device_1offset_FUNC,
++ cairo_1surface_1set_1user_1data_FUNC,
+ cairo_1text_1extents_FUNC,
+ cairo_1text_1path_FUNC,
+- cairo_1transform_1distance_FUNC,
+- cairo_1transform_1font_FUNC,
+- cairo_1transform_1point_FUNC,
++ cairo_1transform_FUNC,
+ cairo_1translate_FUNC,
++ cairo_1user_1to_1device_FUNC,
++ cairo_1user_1to_1device_1distance_FUNC,
+ cairo_1xlib_1surface_1create_FUNC,
++ cairo_1xlib_1surface_1create_1for_1bitmap_FUNC,
++ cairo_1xlib_1surface_1set_1size_FUNC,
++ memmove__Lorg_eclipse_swt_internal_cairo_cairo_1path_1data_1t_2II_FUNC,
++ memmove__Lorg_eclipse_swt_internal_cairo_cairo_1path_1t_2II_FUNC,
++ memmove___3DII_FUNC,
+ } Cairo_FUNCS;
+diff -uN plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library.orig/cairo_structs.c plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_structs.c
+--- plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library.orig/cairo_structs.c Thu Aug 18 12:34:57 2005
++++ plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_structs.c Thu Aug 18 12:35:19 2005
+@@ -65,3 +65,74 @@
+ }
+ #endif
+
++#ifndef NO_cairo_path_data_t
++typedef struct cairo_path_data_t_FID_CACHE {
++ int cached;
++ jclass clazz;
++ jfieldID type, length;
++} cairo_path_data_t_FID_CACHE;
++
++cairo_path_data_t_FID_CACHE cairo_path_data_tFc;
++
++void cachecairo_path_data_tFields(JNIEnv *env, jobject lpObject)
++{
++ if (cairo_path_data_tFc.cached) return;
++ cairo_path_data_tFc.clazz = (*env)->GetObjectClass(env, lpObject);
++ cairo_path_data_tFc.type = (*env)->GetFieldID(env, cairo_path_data_tFc.clazz, "type", "I");
++ cairo_path_data_tFc.length = (*env)->GetFieldID(env, cairo_path_data_tFc.clazz, "length", "I");
++ cairo_path_data_tFc.cached = 1;
++}
++
++cairo_path_data_t *getcairo_path_data_tFields(JNIEnv *env, jobject lpObject, cairo_path_data_t *lpStruct)
++{
++ if (!cairo_path_data_tFc.cached) cachecairo_path_data_tFields(env, lpObject);
++ lpStruct->header.type = (*env)->GetIntField(env, lpObject, cairo_path_data_tFc.type);
++ lpStruct->header.length = (*env)->GetIntField(env, lpObject, cairo_path_data_tFc.length);
++ return lpStruct;
++}
++
++void setcairo_path_data_tFields(JNIEnv *env, jobject lpObject, cairo_path_data_t *lpStruct)
++{
++ if (!cairo_path_data_tFc.cached) cachecairo_path_data_tFields(env, lpObject);
++ (*env)->SetIntField(env, lpObject, cairo_path_data_tFc.type, (jint)lpStruct->header.type);
++ (*env)->SetIntField(env, lpObject, cairo_path_data_tFc.length, (jint)lpStruct->header.length);
++}
++#endif
++
++#ifndef NO_cairo_path_t
++typedef struct cairo_path_t_FID_CACHE {
++ int cached;
++ jclass clazz;
++ jfieldID status, data, num_data;
++} cairo_path_t_FID_CACHE;
++
++cairo_path_t_FID_CACHE cairo_path_tFc;
++
++void cachecairo_path_tFields(JNIEnv *env, jobject lpObject)
++{
++ if (cairo_path_tFc.cached) return;
++ cairo_path_tFc.clazz = (*env)->GetObjectClass(env, lpObject);
++ cairo_path_tFc.status = (*env)->GetFieldID(env, cairo_path_tFc.clazz, "status", "I");
++ cairo_path_tFc.data = (*env)->GetFieldID(env, cairo_path_tFc.clazz, "data", "I");
++ cairo_path_tFc.num_data = (*env)->GetFieldID(env, cairo_path_tFc.clazz, "num_data", "I");
++ cairo_path_tFc.cached = 1;
++}
++
++cairo_path_t *getcairo_path_tFields(JNIEnv *env, jobject lpObject, cairo_path_t *lpStruct)
++{
++ if (!cairo_path_tFc.cached) cachecairo_path_tFields(env, lpObject);
++ lpStruct->status = (*env)->GetIntField(env, lpObject, cairo_path_tFc.status);
++ lpStruct->data = (cairo_path_data_t *)(*env)->GetIntField(env, lpObject, cairo_path_tFc.data);
++ lpStruct->num_data = (*env)->GetIntField(env, lpObject, cairo_path_tFc.num_data);
++ return lpStruct;
++}
++
++void setcairo_path_tFields(JNIEnv *env, jobject lpObject, cairo_path_t *lpStruct)
++{
++ if (!cairo_path_tFc.cached) cachecairo_path_tFields(env, lpObject);
++ (*env)->SetIntField(env, lpObject, cairo_path_tFc.status, (jint)lpStruct->status);
++ (*env)->SetIntField(env, lpObject, cairo_path_tFc.data, (jint)lpStruct->data);
++ (*env)->SetIntField(env, lpObject, cairo_path_tFc.num_data, (jint)lpStruct->num_data);
++}
++#endif
++
+diff -uN plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library.orig/cairo_structs.h plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_structs.h
+--- plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library.orig/cairo_structs.h Thu Aug 18 12:34:57 2005
++++ plugins/org.eclipse.swt/Eclipse SWT PI/cairo/library/cairo_structs.h Thu Aug 18 12:35:19 2005
+@@ -33,3 +33,27 @@
+ #define cairo_font_extents_t_sizeof() 0
+ #endif
+
++#ifndef NO_cairo_path_data_t
++void cachecairo_path_data_tFields(JNIEnv *env, jobject lpObject);
++cairo_path_data_t *getcairo_path_data_tFields(JNIEnv *env, jobject lpObject, cairo_path_data_t *lpStruct);
++void setcairo_path_data_tFields(JNIEnv *env, jobject lpObject, cairo_path_data_t *lpStruct);
++#define cairo_path_data_t_sizeof() sizeof(cairo_path_data_t)
++#else
++#define cachecairo_path_data_tFields(a,b)
++#define getcairo_path_data_tFields(a,b,c) NULL
++#define setcairo_path_data_tFields(a,b,c)
++#define cairo_path_data_t_sizeof() 0
++#endif
++
++#ifndef NO_cairo_path_t
++void cachecairo_path_tFields(JNIEnv *env, jobject lpObject);
++cairo_path_t *getcairo_path_tFields(JNIEnv *env, jobject lpObject, cairo_path_t *lpStruct);
++void setcairo_path_tFields(JNIEnv *env, jobject lpObject, cairo_path_t *lpStruct);
++#define cairo_path_t_sizeof() sizeof(cairo_path_t)
++#else
++#define cachecairo_path_tFields(a,b)
++#define getcairo_path_tFields(a,b,c) NULL
++#define setcairo_path_tFields(a,b,c)
++#define cairo_path_t_sizeof() 0
++#endif
++
diff --git a/java/eclipse/files/manualpatch-plugins-swt-gtk-build.sh b/java/eclipse/files/manualpatch-plugins-swt-gtk-build.sh
new file mode 100644
index 000000000..f1829709a
--- /dev/null
+++ b/java/eclipse/files/manualpatch-plugins-swt-gtk-build.sh
@@ -0,0 +1,42 @@
+--- plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh.orig Fri May 13 11:37:09 2005
++++ plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh Sat May 14 21:02:00 2005
+@@ -100,6 +100,33 @@
+ ;;
+ esac
+ ;;
++ "FreeBSD")
++ CC=gcc
++ LD=gcc
++ XTEST_LIB_PATH=$X11BASE/lib
++ GECKO_I=`${GECKO_CONFIG} --cflags gtkmozembed`
++ GECKO_INCLUDES="-I${GECKO_I} -I${LOCALBASE}/include/nspr -I${GECKO_I}/xpcom -I${GECKO_I}/string -I${GECKO_I}/embed_base -I${GECKO_I}/embedstring"
++ GECKO_L=`${GECKO_CONFIG} --libs gtkmozembed`
++ GECKO_LIBS="-L${GECKO_L} -L${LOCALBASE}/lib"
++ case $MODEL in
++ "amd64")
++ AWT_LIB_PATH=$JAVA_HOME/jre/lib/amd64
++ SWT_PTR_CFLAGS=-DSWT_PTR_SIZE_64
++ OUTPUT_DIR=../../../org.eclipse.swt.gtk.freebsd.amd64
++ makefile="make_freebsd.mak"
++ echo "Building FreeBSD GTK AMD64 version of SWT"
++ ;;
++ "i386")
++ AWT_LIB_PATH=$JAVA_HOME/jre/lib/i386
++ OUTPUT_DIR=../../../org.eclipse.swt.gtk.freebsd.x86
++ makefile="make_freebsd.mak"
++ echo "Building FreeBSD GTK x86 version of SWT"
++ ;;
++ *)
++ echo "*** Unknown MODEL <${MODEL}>"
++ ;;
++ esac
++ ;;
+ "SunOS")
+ CC=gcc
+ LD=gcc
+@@ -128,4 +155,4 @@
+
+ export CC LD JAVA_HOME AWT_LIB_PATH XTEST_LIB_PATH GECKO_SDK GECKO_INCLUDES GECKO_LIBS SWT_PTR_CFLAGS CDE_HOME OUTPUT_DIR
+
+-make -f $makefile ${1} ${2} ${3} ${4}
++gmake -f $makefile ${1} ${2} ${3} ${4}
diff --git a/java/eclipse/files/manualpatch-plugins-swt-gtk-make_freebsd.mak b/java/eclipse/files/manualpatch-plugins-swt-gtk-make_freebsd.mak
new file mode 100644
index 000000000..e474d7a4b
--- /dev/null
+++ b/java/eclipse/files/manualpatch-plugins-swt-gtk-make_freebsd.mak
@@ -0,0 +1,41 @@
+--- plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_freebsd.mak.orig Sat May 14 19:50:23 2005
++++ plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_freebsd.mak Sat May 14 21:24:34 2005
+@@ -70,7 +70,7 @@
+ SWT_OBJECTS = swt.o callback.o
+ AWT_OBJECTS = swt_awt.o
+ SWTPI_OBJECTS = swt.o os.o os_structs.o os_custom.o os_stats.o
+-CAIRO_OBJECTS = swt.o cairo.o cairo_structs.o cairo_stats.o cairo_custom.o
++CAIRO_OBJECTS = swt.o cairo.o cairo_structs.o cairo_stats.o
+ ATK_OBJECTS = swt.o atk.o atk_structs.o atk_custom.o atk_stats.o
+ GNOME_OBJECTS = swt.o gnome.o gnome_structs.o gnome_stats.o
+ MOZILLA_OBJECTS = swt.o xpcom.o xpcom_custom.o xpcom_structs.o xpcom_stats.o
+@@ -78,15 +78,16 @@
+ CFLAGS = -O -Wall \
+ -DSWT_VERSION=$(SWT_VERSION) \
+ $(NATIVE_STATS) \
+- -DLINUX -DGTK \
++ -DFREEBSD -DGTK \
+ -I$(JAVA_HOME)/include \
+ -I$(JAVA_HOME)/include/freebsd \
+- -fpic \
++ -I$(X11BASE)/include \
++ -fpic -fPIC \
+ ${SWT_PTR_CFLAGS}
+-LIBS = -shared -fpic -s
++LIBS = -shared -fpic -fPIC -s
+
+
+-all: make_swt make_atk make_gnome make_awt
++all: make_swt make_atk $(MAKE_GNOME) make_awt $(MAKE_MOZILLA) $(MAKE_CAIRO)
+
+ #
+ # SWT libs
+@@ -123,8 +124,6 @@
+
+ cairo.o: cairo.c cairo.h swt.h
+ $(CC) $(CFLAGS) $(CAIROCFLAGS) -c cairo.c
+-cairo_custom.o: cairo_custom.c cairo_structs.h cairo.h swt.h
+- $(CC) $(CFLAGS) $(CAIROCFLAGS) -c cairo_custom.c
+ cairo_structs.o: cairo_structs.c cairo_structs.h cairo.h swt.h
+ $(CC) $(CFLAGS) $(CAIROCFLAGS) -c cairo_structs.c
+ cairo_stats.o: cairo_stats.c cairo_structs.h cairo.h cairo_stats.h swt.h
diff --git a/java/eclipse/files/manualpatch-plugins-swt-gtk-os_custom.h b/java/eclipse/files/manualpatch-plugins-swt-gtk-os_custom.h
new file mode 100644
index 000000000..0e47fc2a2
--- /dev/null
+++ b/java/eclipse/files/manualpatch-plugins-swt-gtk-os_custom.h
@@ -0,0 +1,59 @@
+--- plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_custom.h.orig Mon Jun 27 21:54:10 2005
++++ plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_custom.h Thu Jul 14 20:28:19 2005
+@@ -21,31 +21,31 @@
+ #define PTR_sizeof() sizeof(void *)
+
+ /* Libraries for dynamic loaded functions */
+-#define gtk_file_chooser_add_filter_LIB "libgtk-x11-2.0.so.0"
+-#define gtk_file_chooser_dialog_new_LIB "libgtk-x11-2.0.so.0"
+-#define gtk_file_chooser_get_current_folder_LIB "libgtk-x11-2.0.so.0"
+-#define gtk_file_chooser_get_filename_LIB "libgtk-x11-2.0.so.0"
+-#define gtk_file_chooser_get_filenames_LIB "libgtk-x11-2.0.so.0"
+-#define gtk_file_chooser_set_current_folder_LIB "libgtk-x11-2.0.so.0"
+-#define gtk_file_chooser_set_current_name_LIB "libgtk-x11-2.0.so.0"
+-#define gtk_file_chooser_set_extra_widget_LIB "libgtk-x11-2.0.so.0"
+-#define gtk_file_chooser_set_filename_LIB "libgtk-x11-2.0.so.0"
+-#define gtk_file_chooser_set_select_multiple_LIB "libgtk-x11-2.0.so.0"
+-#define gtk_file_filter_add_pattern_LIB "libgtk-x11-2.0.so.0"
+-#define gtk_file_filter_new_LIB "libgtk-x11-2.0.so.0"
+-#define gtk_file_filter_set_name_LIB "libgtk-x11-2.0.so.0"
+-#define gtk_tree_selection_get_selected_rows_LIB "libgtk-x11-2.0.so.0"
+-#define gtk_tree_view_column_cell_get_position_LIB "libgtk-x11-2.0.so.0"
+-#define gtk_entry_set_alignment_LIB "libgtk-x11-2.0.so.0"
+-#define gdk_draw_pixbuf_LIB "libgdk-x11-2.0.so.0"
+-#define gdk_screen_get_default_LIB "libgdk-x11-2.0.so.0"
+-#define gdk_screen_get_monitor_at_window_LIB "libgdk-x11-2.0.so.0"
+-#define gdk_screen_get_monitor_geometry_LIB "libgdk-x11-2.0.so.0"
+-#define gdk_screen_get_n_monitors_LIB "libgdk-x11-2.0.so.0"
+-#define gdk_screen_get_number_LIB "libgdk-x11-2.0.so.0"
+-#define gdk_window_set_keep_above_LIB "libgdk-x11-2.0.so.0"
+-#define gdk_window_set_accept_focus_LIB "libgdk-x11-2.0.so.0"
+-#define gdk_x11_screen_get_window_manager_name_LIB "libgdk-x11-2.0.so.0"
++#define gtk_file_chooser_add_filter_LIB "libgtk-x11-2.0.so"
++#define gtk_file_chooser_dialog_new_LIB "libgtk-x11-2.0.so"
++#define gtk_file_chooser_get_current_folder_LIB "libgtk-x11-2.0.so"
++#define gtk_file_chooser_get_filename_LIB "libgtk-x11-2.0.so"
++#define gtk_file_chooser_get_filenames_LIB "libgtk-x11-2.0.so"
++#define gtk_file_chooser_set_current_folder_LIB "libgtk-x11-2.0.so"
++#define gtk_file_chooser_set_current_name_LIB "libgtk-x11-2.0.so"
++#define gtk_file_chooser_set_extra_widget_LIB "libgtk-x11-2.0.so"
++#define gtk_file_chooser_set_filename_LIB "libgtk-x11-2.0.so"
++#define gtk_file_chooser_set_select_multiple_LIB "libgtk-x11-2.0.so"
++#define gtk_file_filter_add_pattern_LIB "libgtk-x11-2.0.so"
++#define gtk_file_filter_new_LIB "libgtk-x11-2.0.so"
++#define gtk_file_filter_set_name_LIB "libgtk-x11-2.0.so"
++#define gtk_tree_selection_get_selected_rows_LIB "libgtk-x11-2.0.so"
++#define gtk_tree_view_column_cell_get_position_LIB "libgtk-x11-2.0.so"
++#define gtk_entry_set_alignment_LIB "libgtk-x11-2.0.so"
++#define gdk_draw_pixbuf_LIB "libgdk-x11-2.0.so"
++#define gdk_screen_get_default_LIB "libgdk-x11-2.0.so"
++#define gdk_screen_get_monitor_at_window_LIB "libgdk-x11-2.0.so"
++#define gdk_screen_get_monitor_geometry_LIB "libgdk-x11-2.0.so"
++#define gdk_screen_get_n_monitors_LIB "libgdk-x11-2.0.so"
++#define gdk_screen_get_number_LIB "libgdk-x11-2.0.so"
++#define gdk_window_set_keep_above_LIB "libgdk-x11-2.0.so"
++#define gdk_window_set_accept_focus_LIB "libgdk-x11-2.0.so"
++#define gdk_x11_screen_get_window_manager_name_LIB "libgdk-x11-2.0.so"
+
+ /* Field accessors */
+ #define GTK_ACCEL_LABEL_SET_ACCEL_STRING(arg0, arg1) (arg0)->accel_string = arg1
diff --git a/java/eclipse/files/manualpatch-plugins-swt-motif-build.sh b/java/eclipse/files/manualpatch-plugins-swt-motif-build.sh
new file mode 100644
index 000000000..67f3e36be
--- /dev/null
+++ b/java/eclipse/files/manualpatch-plugins-swt-motif-build.sh
@@ -0,0 +1,28 @@
+--- plugins/org.eclipse.swt/Eclipse SWT PI/motif/library/build.sh.orig Fri May 13 11:37:09 2005
++++ plugins/org.eclipse.swt/Eclipse SWT PI/motif/library/build.sh Sat May 14 21:03:05 2005
+@@ -54,6 +54,18 @@
+ echo "Building Linux motif x86 version of SWT"
+ esac
+ ;;
++ "FreeBSD")
++ case $MODEL in
++ i?86)
++ OUTPUT_DIR=../../../org.eclipse.swt.motif.freebsd.x86
++ makefile="make_freebsd.mak"
++ echo "Building FreeBSD motif x86 version of SWT"
++ ;;
++ *)
++ echo "*** Unknown MODEL <${MODEL}>"
++ ;;
++ esac
++ ;;
+ "SunOS")
+ case $MODEL in
+ *)
+@@ -113,4 +125,4 @@
+
+ export JAVA_HOME MOTIF_HOME CDE_HOME OUTPUT_DIR
+
+-make -f $makefile $1 $2 $3 $4
+\ No newline at end of file
++gmake -f $makefile $1 $2 $3 $4
diff --git a/java/eclipse/files/manualpatch-plugins-swt-motif-make_freebsd.mak b/java/eclipse/files/manualpatch-plugins-swt-motif-make_freebsd.mak
new file mode 100644
index 000000000..2470de02e
--- /dev/null
+++ b/java/eclipse/files/manualpatch-plugins-swt-motif-make_freebsd.mak
@@ -0,0 +1,44 @@
+--- plugins/org.eclipse.swt/Eclipse SWT PI/motif/library/make_freebsd.mak.orig Thu Jul 14 20:06:19 2005
++++ plugins/org.eclipse.swt/Eclipse SWT PI/motif/library/make_freebsd.mak Thu Jul 14 20:14:57 2005
+@@ -25,26 +25,26 @@
+ WS_PREFIX = motif
+ SWT_LIB = lib$(SWT_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so
+ SWT_OBJS = swt.o callback.o os.o os_structs.o os_custom.o os_stats.o
+-SWT_LIBS = -L$(MOTIF_HOME)/lib -lXm -L/usr/lib -L/usr/X11R6/lib \
+- -rpath . -x -shared -lX11 -lm -lXext -lXt -lXp -ldl -lXinerama -lXtst
++SWT_LIBS = -L$(MOTIF_HOME)/lib -lXm -L$(PREFIX)/lib -L$(X11BASE)/lib \
++ -rpath . -x -shared -lX11 -lm -lXext -lXt -lXp -lXinerama
+
+ # Uncomment for Native Stats tool
+ #NATIVE_STATS = -DNATIVE_STATS
+
+-CFLAGS = -O -s -Wall -DSWT_VERSION=$(SWT_VERSION) $(NATIVE_STATS) -DLINUX -DMOTIF -fpic \
+- -I$(JAVA_HOME)/include -I$(MOTIF_HOME)/include -I/usr/X11R6/include
++CFLAGS = -O -s -Wall -DSWT_VERSION=$(SWT_VERSION) $(NATIVE_STATS) -DFREEBSD -DMOTIF -fpic -fPIC \
++ -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/freebsd -I$(MOTIF_HOME)/include -I$(X11BASE)/include -I$(PREFIX)/include
+
+ # Do not use pkg-config to get libs because it includes unnecessary dependencies (i.e. pangoxft-1.0)
+ GNOME_PREFIX = swt-gnome
+ GNOME_LIB = lib$(GNOME_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so
+ GNOME_OBJECTS = swt.o gnome.o gnome_structs.o gnome_stats.o
+-GNOME_CFLAGS = -O -Wall -DSWT_VERSION=$(SWT_VERSION) $(NATIVE_STATS) -DLINUX -DGTK -I$(JAVA_HOME)/include `pkg-config --cflags gnome-vfs-module-2.0 libgnome-2.0 libgnomeui-2.0`
++GNOME_CFLAGS = -O -Wall -DSWT_VERSION=$(SWT_VERSION) $(NATIVE_STATS) -DFREEBSD -DGTK -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/freebsd -fpic -fPIC `pkg-config --cflags gnome-vfs-module-2.0 libgnome-2.0 libgnomeui-2.0`
+ GNOME_LIBS = -shared -fpic -fPIC `pkg-config --libs-only-L gnome-vfs-module-2.0 libgnome-2.0 libgnomeui-2.0` -lgnomevfs-2 -lgnome-2 -lgnomeui-2
+
+ AWT_PREFIX = swt-awt
+ AWT_LIB = lib$(AWT_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so
+ AWT_OBJS = swt_awt.o
+-AWT_LIBS = -L$(JAVA_HOME)/jre/bin -ljawt -shared
++AWT_LIBS = -L$(JAVA_HOME)/jre/lib/$(MACHINE_ARCH) -ljawt -shared
+
+ GTK_PREFIX = swt-gtk
+ GTK_LIB = lib$(GTK_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so
+@@ -77,7 +77,7 @@
+ ${SWT_PTR_CFLAGS}
+ MOZILLALIBS = -shared -s -Wl,--version-script=mozilla_exports -Bsymbolic ${GECKO_LIBS}
+
+-all: make_swt make_awt make_gnome make_gtk
++all: make_swt make_awt $(MAKE_GNOME) make_gtk
+
+ make_swt: $(SWT_LIB)
+
diff --git a/java/eclipse/files/patch-assemble b/java/eclipse/files/patch-assemble
new file mode 100644
index 000000000..69143bf43
--- /dev/null
+++ b/java/eclipse/files/patch-assemble
@@ -0,0 +1,39 @@
+--- assemble.org.eclipse.sdk.linux.motif.x86.xml.orig Wed Jul 13 00:36:40 2005
++++ assemble.org.eclipse.sdk.linux.motif.x86.xml Wed Jul 13 00:38:19 2005
+@@ -610,10 +610,5 @@
+ </exec>
+ <move file="${archiveFullPath}" tofile="${assemblyTempDir}/${collectingFolder}/tmp.tar"/>
+ <gzip src="${assemblyTempDir}/${collectingFolder}/tmp.tar" zipfile="${archiveFullPath}"/>
+- <exec executable="rm">
+- <arg line="-rf"/>
+- <arg line="'${assemblyTempDir}'"/>
+- </exec>
+- <delete dir="${assemblyTempDir}"/>
+ </target>
+ </project>
+--- assemble.org.eclipse.sdk.linux.gtk.x86.xml.orig Wed Jul 13 00:40:52 2005
++++ assemble.org.eclipse.sdk.linux.gtk.x86.xml Wed Jul 13 00:40:58 2005
+@@ -610,10 +610,5 @@
+ </exec>
+ <move file="${archiveFullPath}" tofile="${assemblyTempDir}/${collectingFolder}/tmp.tar"/>
+ <gzip src="${assemblyTempDir}/${collectingFolder}/tmp.tar" zipfile="${archiveFullPath}"/>
+- <exec executable="rm">
+- <arg line="-rf"/>
+- <arg line="'${assemblyTempDir}'"/>
+- </exec>
+- <delete dir="${assemblyTempDir}"/>
+ </target>
+ </project>
+--- assemble.org.eclipse.sdk.linux.gtk.x86_64.xml.orig Wed Jul 13 00:43:03 2005
++++ assemble.org.eclipse.sdk.linux.gtk.x86_64.xml Wed Jul 13 00:43:07 2005
+@@ -610,10 +610,5 @@
+ </exec>
+ <move file="${archiveFullPath}" tofile="${assemblyTempDir}/${collectingFolder}/tmp.tar"/>
+ <gzip src="${assemblyTempDir}/${collectingFolder}/tmp.tar" zipfile="${archiveFullPath}"/>
+- <exec executable="rm">
+- <arg line="-rf"/>
+- <arg line="'${assemblyTempDir}'"/>
+- </exec>
+- <delete dir="${assemblyTempDir}"/>
+ </target>
+ </project>
diff --git a/java/eclipse/files/patch-build b/java/eclipse/files/patch-build
new file mode 100644
index 000000000..3dbdaaa59
--- /dev/null
+++ b/java/eclipse/files/patch-build
@@ -0,0 +1,11 @@
+--- build.orig Wed Jul 13 00:45:46 2005
++++ build Wed Jul 13 00:46:02 2005
+@@ -52,7 +52,7 @@
+ exit 1
+ fi
+
+-if [ "$os-$ws-$arch" = "linux-motif-x86" ] || [ "$os-$ws-$arch" = "linux-gtk-x86" ] || [ "$os-$ws-$arch" = "linux-gtk-x86_64" ] || [ "$os-$ws-$arch" = "linux-gtk-ia64" ] || [ "$os-$ws-$arch" = "solaris-motif-sparc" ] || [ "$os-$ws-$arch" = "solaris-gtk-sparc" ] || [ "$os-$ws-$arch" = "aix-motif-ppc" ] || [ "$os-$ws-$arch" = "hpux-motif-PA_RISC" ] || [ "$os-$ws-$arch" = "qnx-photon-x86" ] || [ "$os-$ws-$arch" = "win32-win32-x86" ] || [ "$os-$ws-$arch" = "linux-gtk-ppc" ] || [ "$os-$ws-$arch" = "linux-gtk-ppc64" ] || [ "$os-$ws-$arch" = "macosx-carbon-ppc" ] || [ "$os-$ws-$arch" = "hpux-motif-ia64" ] || [ "$os-$ws-$arch" = "hpux-motif-ia64_32" ]
++if [ "$os-$ws-$arch" = "linux-motif-x86" ] || [ "$os-$ws-$arch" = "linux-gtk-x86" ] || [ "$os-$ws-$arch" = "linux-gtk-x86_64" ] || [ "$os-$ws-$arch" = "linux-gtk-ia64" ] || [ "$os-$ws-$arch" = "solaris-motif-sparc" ] || [ "$os-$ws-$arch" = "solaris-gtk-sparc" ] || [ "$os-$ws-$arch" = "aix-motif-ppc" ] || [ "$os-$ws-$arch" = "hpux-motif-PA_RISC" ] || [ "$os-$ws-$arch" = "qnx-photon-x86" ] || [ "$os-$ws-$arch" = "win32-win32-x86" ] || [ "$os-$ws-$arch" = "linux-gtk-ppc" ] || [ "$os-$ws-$arch" = "linux-gtk-ppc64" ] || [ "$os-$ws-$arch" = "macosx-carbon-ppc" ] || [ "$os-$ws-$arch" = "hpux-motif-ia64" ] || [ "$os-$ws-$arch" = "hpux-motif-ia64_32" ] || [ "$os-$ws-$arch" = "freebsd-gtk-x86" ] || [ "$os-$ws-$arch" = "freebsd-motif-x86" ] || [ "$os-$ws-$arch" = "freebsd-gtk-amd64" ]
+ then
+ ORIGCLASSPATH=$CLASSPATH;export ORIGCLASSPATH
+ ant -q -buildfile jdtcoresrc/compilejdtcorewithjavac.xml
diff --git a/java/eclipse/files/patch-build.bat b/java/eclipse/files/patch-build.bat
new file mode 100644
index 000000000..27006ce8b
--- /dev/null
+++ b/java/eclipse/files/patch-build.bat
@@ -0,0 +1,12 @@
+--- build.bat.orig Mon Jun 27 21:55:26 2005
++++ build.bat Sun Jul 17 18:21:31 2005
+@@ -44,6 +44,9 @@
+ if %os%-%ws%-%arch%==qnx-photon-x86 goto run
+ if %os%-%ws%-%arch%==hpux-motif-ia64_32 goto run
+ if %os%-%ws%-%arch%==macosx-carbon-ppc goto run
++if %os%-%ws%-%arch%==freebsd-motif-x86 goto run
++if %os%-%ws%-%arch%==freebsd-gtk-x86 goto run
++if %os%-%ws%-%arch%==freebsd-gtk-amd64 goto run
+
+ ECHO The ws os arch combination entered is not valid.
+ goto end
diff --git a/java/eclipse/files/patch-build.xml b/java/eclipse/files/patch-build.xml
new file mode 100644
index 000000000..d9b351762
--- /dev/null
+++ b/java/eclipse/files/patch-build.xml
@@ -0,0 +1,30 @@
+--- build.xml.orig Mon Jun 27 21:55:26 2005
++++ build.xml Sun Jul 17 18:50:50 2005
+@@ -63,11 +63,11 @@
+ <!--unzip launcher -->
+ <property name="launcherlibs" value="${buildDirectory}/launchertmp" />
+ <mkdir dir="${launcherlibs}" />
+- <unzip dest="${launcherlibs}">
+- <fileset dir="${buildDirectory}/plugins/org.eclipse.platform.source/src/">
+- <include name="org.eclipse.platform_*/launchersrc.zip" />
++ <copy todir="${launcherlibs}">
++ <fileset dir="${buildDirectory}/features/org.eclipse.platform.launchers">
++ <include name ="**"/>
+ </fileset>
+- </unzip>
++ </copy>
+ <exec dir="${launcherlibs}/library/${installWs}/" executable="sh" failonerror="true">
+ <arg line="build.sh" />
+ </exec>
+@@ -265,7 +265,10 @@
+
+ <!--used to add doc plug-ins to result after initial assembly-->
+ <condition property="archive.format" value="tar">
+- <equals arg1="${installOs}" arg2="linux" />
++ <or>
++ <equals arg1="${installOs}" arg2="linux" />
++ <equals arg1="${installOs}" arg2="freebsd" />
++ </or>
+ </condition>
+ <property name="archive.format" value="zip" />
+ </target>
diff --git a/java/eclipse/files/patch-features-jdt-build.xml b/java/eclipse/files/patch-features-jdt-build.xml
new file mode 100644
index 000000000..05d56b033
--- /dev/null
+++ b/java/eclipse/files/patch-features-jdt-build.xml
@@ -0,0 +1,27 @@
+--- features/org.eclipse.jdt/build.xml.orig Fri May 13 11:34:52 2005
++++ features/org.eclipse.jdt/build.xml Sat May 14 18:42:27 2005
+@@ -164,6 +164,24 @@
+ <fileset dir="${basedir}/rootfiles" includes="**" />
+ </copy>
+ </target>
++ <target name="rootFilesfreebsd_gtk_amd64">
++ <mkdir dir="${feature.base}/freebsd.gtk.amd64/${collectingFolder}"/>
++ <copy todir="${feature.base}/freebsd.gtk.amd64/${collectingFolder}" failonerror="true" overwrite="true">
++ <fileset dir="${basedir}/rootfiles" includes="**" />
++ </copy>
++ </target>
++ <target name="rootFilesfreebsd_gtk_x86">
++ <mkdir dir="${feature.base}/freebsd.gtk.x86/${collectingFolder}"/>
++ <copy todir="${feature.base}/freebsd.gtk.x86/${collectingFolder}" failonerror="true" overwrite="true">
++ <fileset dir="${basedir}/rootfiles" includes="**" />
++ </copy>
++ </target>
++ <target name="rootFilesfreebsd_motif_x86">
++ <mkdir dir="${feature.base}/freebsd.motif.x86/${collectingFolder}"/>
++ <copy todir="${feature.base}/freebsd.motif.x86/${collectingFolder}" failonerror="true" overwrite="true">
++ <fileset dir="${basedir}/rootfiles" includes="**" />
++ </copy>
++ </target>
+ <target name="rootFilessolaris_motif_sparc">
+ <mkdir dir="${feature.base}/solaris.motif.sparc/${collectingFolder}"/>
+ <copy todir="${feature.base}/solaris.motif.sparc/${collectingFolder}" failonerror="true" overwrite="true">
diff --git a/java/eclipse/files/patch-features-jdt-source-build.xml b/java/eclipse/files/patch-features-jdt-source-build.xml
new file mode 100644
index 000000000..28af8014b
--- /dev/null
+++ b/java/eclipse/files/patch-features-jdt-source-build.xml
@@ -0,0 +1,15 @@
+--- features/org.eclipse.jdt.source/build.xml.orig Sat Feb 19 12:09:34 2005
++++ features/org.eclipse.jdt.source/build.xml Sat Mar 26 18:31:36 2005
+@@ -96,6 +96,12 @@
+ </target>
+ <target name="rootFileslinux_motif_x86">
+ </target>
++ <target name="rootFilesfreebsd_motif_x86">
++ </target>
++ <target name="rootFilesfreebsd_gtk_x86">
++ </target>
++ <target name="rootFilesfreebsd_gtk_amd64">
++ </target>
+ <target name="rootFilessolaris_motif_sparc">
+ </target>
+ <target name="rootFilessolaris_gtk_sparc">
diff --git a/java/eclipse/files/patch-features-launchers-gtk-build.sh b/java/eclipse/files/patch-features-launchers-gtk-build.sh
new file mode 100644
index 000000000..a3e68b8f3
--- /dev/null
+++ b/java/eclipse/files/patch-features-launchers-gtk-build.sh
@@ -0,0 +1,41 @@
+--- features/org.eclipse.platform.launchers/library/gtk/build.sh.orig Fri Apr 1 13:57:19 2005
++++ features/org.eclipse.platform.launchers/library/gtk/build.sh Sun Apr 3 11:37:51 2005
+@@ -67,6 +67,23 @@
+ ;;
+ esac
+ ;;
++ "FreeBSD")
++ makefile="make_freebsd.mak"
++ defaultOS="freebsd"
++ case $MODEL in
++ "amd64")
++ defaultOSArch="amd64"
++ OUTPUT_DIR="../../bin/$defaultWS/$defaultOS/$defaultOSArch"
++ ;;
++ "i386")
++ defaultOSArch="x86"
++ OUTPUT_DIR="../../bin/$defaultWS/$defaultOS/$defaultOSArch"
++ ;;
++ *)
++ echo "*** Unknown MODEL <${MODEL}>"
++ ;;
++ esac
++ ;;
+ "SunOS")
+ makefile="make_solaris.mak"
+ defaultOS="solaris"
+@@ -112,11 +129,11 @@
+ # If the OS is supported (a makefile exists)
+ if [ "$makefile" != "" ]; then
+ if [ "$extraArgs" != "" ]; then
+- make -f $makefile $extraArgs
++ gmake -f $makefile $extraArgs
+ else
+ echo "Building $OS launcher. Defaults: -os $DEFAULT_OS -arch $DEFAULT_OS_ARCH -ws $DEFAULT_WS"
+- make -f $makefile clean
+- make -f $makefile all
++ gmake -f $makefile clean
++ gmake -f $makefile all
+ fi
+ else
+ echo "Unknown OS ($OS) -- build aborted"
diff --git a/java/eclipse/files/patch-features-launchers-gtk-make_freebsd.mak b/java/eclipse/files/patch-features-launchers-gtk-make_freebsd.mak
new file mode 100644
index 000000000..8fef6388c
--- /dev/null
+++ b/java/eclipse/files/patch-features-launchers-gtk-make_freebsd.mak
@@ -0,0 +1,11 @@
+--- features/org.eclipse.platform.launchers/library/gtk/make_freebsd.mak.orig Sun Apr 17 20:24:58 2005
++++ features/org.eclipse.platform.launchers/library/gtk/make_freebsd.mak Sun Apr 17 20:25:45 2005
+@@ -26,7 +26,7 @@
+ CC=gcc
+ OBJS = eclipse.o eclipseUtil.o eclipseShm.o eclipseConfig.o eclipseGtk.o
+ EXEC = $(PROGRAM_OUTPUT)
+-LIBS = `pkg-config --libs-only-L gtk+-2.0` -lgtk-x11-2.0 -lgdk_pixbuf-2.0 -lgobject-2.0 -lgdk-x11-2.0
++LIBS = `pkg-config --libs gtk+-2.0`
+ CFLAGS = -O -s \
+ -fpic \
+ -DMOZILLA_FIX \
diff --git a/java/eclipse/files/patch-features-launchers-library-eclipseShm.c b/java/eclipse/files/patch-features-launchers-library-eclipseShm.c
new file mode 100644
index 000000000..f351472d9
--- /dev/null
+++ b/java/eclipse/files/patch-features-launchers-library-eclipseShm.c
@@ -0,0 +1,17 @@
+--- features/org.eclipse.platform.launchers/library/eclipseShm.c.orig Fri Apr 1 13:55:58 2005
++++ features/org.eclipse.platform.launchers/library/eclipseShm.c Sun Apr 3 11:34:02 2005
+@@ -182,11 +182,13 @@
+
+ #else /* Unix like platforms */
+
++#include <machine/param.h>
++#include <sys/types.h>
++#include <sys/ipc.h>
+ #include <sys/shm.h>
+ #include <string.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+-#include <sys/types.h>
+ #include <unistd.h>
+
+ int createSharedData(char** id, int size) {
diff --git a/java/eclipse/files/patch-features-launchers-motif-build.sh b/java/eclipse/files/patch-features-launchers-motif-build.sh
new file mode 100644
index 000000000..3dfeb9174
--- /dev/null
+++ b/java/eclipse/files/patch-features-launchers-motif-build.sh
@@ -0,0 +1,33 @@
+--- features/org.eclipse.platform.launchers/library/motif/build.sh~ Sat Feb 19 12:13:49 2005
++++ features/org.eclipse.platform.launchers/library/motif/build.sh Sun Mar 20 15:27:04 2005
+@@ -55,6 +55,15 @@
+ MOTIF_HOME=/bluebird/teamswt/swt-builddir/motif21
+ OUTPUT_DIR="../../bin/$defaultWS/$defaultOS/$defaultOSArch"
+ ;;
++ "FreeBSD")
++ makefile="make_freebsd.mak"
++ defaultOS="freebsd"
++ defaultOSArch="x86"
++ defaultWS="motif"
++ X11_HOME=$X11BASE
++ MOTIF_HOME=$X11BASE
++ OUTPUT_DIR="../../bin/$defaultWS/$defaultOS/$defaultOSArch"
++ ;;
+ "SunOS")
+ makefile="make_solaris.mak"
+ defaultOS="solaris"
+@@ -122,11 +131,11 @@
+ # If the OS is supported (a makefile exists)
+ if [ "$makefile" != "" ]; then
+ if [ "$extraArgs" != "" ]; then
+- make -f $makefile $extraArgs
++ gmake -f $makefile $extraArgs
+ else
+ echo "Building $OS launcher. Defaults: -os $DEFAULT_OS -arch $DEFAULT_OS_ARCH -ws $DEFAULT_WS"
+- make -f $makefile clean
+- make -f $makefile all
++ gmake -f $makefile clean
++ gmake -f $makefile all
+ fi
+ else
+ echo "Unknown OS ($OS) -- build aborted"
diff --git a/java/eclipse/files/patch-features-pde-build.xml b/java/eclipse/files/patch-features-pde-build.xml
new file mode 100644
index 000000000..9e1878054
--- /dev/null
+++ b/java/eclipse/files/patch-features-pde-build.xml
@@ -0,0 +1,15 @@
+--- features/org.eclipse.pde/build.xml.orig Sat Feb 19 12:09:30 2005
++++ features/org.eclipse.pde/build.xml Sat Mar 26 18:33:49 2005
+@@ -116,6 +116,12 @@
+ </target>
+ <target name="rootFileslinux_motif_x86">
+ </target>
++ <target name="rootFilesfreebsd_gtk_x86">
++ </target>
++ <target name="rootFilesfreebsd_gtk_amd64">
++ </target>
++ <target name="rootFilesfreebsd_motif_x86">
++ </target>
+ <target name="rootFilessolaris_motif_sparc">
+ </target>
+ <target name="rootFilessolaris_gtk_sparc">
diff --git a/java/eclipse/files/patch-features-pde-source-build.xml b/java/eclipse/files/patch-features-pde-source-build.xml
new file mode 100644
index 000000000..7318f68c0
--- /dev/null
+++ b/java/eclipse/files/patch-features-pde-source-build.xml
@@ -0,0 +1,15 @@
+--- features/org.eclipse.pde.source/build.xml.orig Sat Feb 19 12:09:29 2005
++++ features/org.eclipse.pde.source/build.xml Sat Mar 26 18:34:22 2005
+@@ -86,6 +86,12 @@
+ </target>
+ <target name="rootFileslinux_motif_x86">
+ </target>
++ <target name="rootFilesfreebsd_gtk_x86">
++ </target>
++ <target name="rootFilesfreebsd_gtk_amd64">
++ </target>
++ <target name="rootFilesfreebsd_motif_x86">
++ </target>
+ <target name="rootFilessolaris_motif_sparc">
+ </target>
+ <target name="rootFilessolaris_gtk_sparc">
diff --git a/java/eclipse/files/patch-features-platform-build.xml b/java/eclipse/files/patch-features-platform-build.xml
new file mode 100644
index 000000000..538f383d8
--- /dev/null
+++ b/java/eclipse/files/patch-features-platform-build.xml
@@ -0,0 +1,97 @@
+--- features/org.eclipse.platform/build.xml.orig Wed Jan 18 16:09:14 2006
++++ features/org.eclipse.platform/build.xml Sun Jan 29 19:17:52 2006
+@@ -87,6 +87,11 @@
+ <property name="os" value="win32"/>
+ <property name="ws" value="win32"/>
+ </ant>
++ <ant antfile="build.xml" dir="../../plugins/org.eclipse.update.core.freebsd" target="${target}">
++ <property name="arch" value="x86"/>
++ <property name="os" value="freebsd"/>
++ <property name="ws" value="gtk"/>
++ </ant>
+ <ant antfile="build.xml" dir="../../plugins/org.eclipse.core.resources" target="${target}">
+ <property name="arch" value="x86"/>
+ <property name="os" value="win32"/>
+@@ -117,6 +122,11 @@
+ <property name="os" value="hpux"/>
+ <property name="ws" value="motif"/>
+ </ant>
++ <ant antfile="build.xml" dir="../../plugins/org.eclipse.core.resources.freebsd" target="${target}">
++ <property name="arch" value="x86"/>
++ <property name="os" value="freebsd"/>
++ <property name="ws" value="gtk"/>
++ </ant>
+ <ant antfile="build.xml" dir="../../plugins/org.eclipse.core.resources.win32" target="${target}">
+ <property name="arch" value="x86"/>
+ <property name="os" value="win32"/>
+@@ -346,7 +356,7 @@
+ <copy todir="${feature.base}/features/org.eclipse.platform_3.1.2" failonerror="true" overwrite="false">
+ <fileset dir="${basedir}" includes="epl-v10.html,eclipse_update_120.jpg,feature.xml,feature.properties,license.html" />
+ </copy>
+- <eclipse.idReplacer featureFilePath="${feature.base}/features/org.eclipse.platform_3.1.2/feature.xml" selfVersion="3.1.2" featureIds="org.eclipse.rcp,3.1.2," pluginIds="org.apache.ant,1.6.5,org.apache.lucene,1.4.3,org.eclipse.ant.core,3.1.1,org.eclipse.compare,3.1.1,org.eclipse.core.boot,3.1.0,org.eclipse.core.filebuffers,3.1.2,org.eclipse.core.resources,3.1.2,org.eclipse.core.resources.compatibility,3.1.0,org.eclipse.core.runtime.compatibility,3.1.0,org.eclipse.osgi.services,3.1.2,org.eclipse.osgi.util,3.1.1,org.eclipse.core.variables,3.1.0,org.eclipse.debug.core,3.1.2,org.eclipse.debug.ui,3.1.2,org.eclipse.help.webapp,3.1.0,org.eclipse.help.base,3.1.0,org.eclipse.help.ui,3.1.1,org.eclipse.help.appserver,3.1.0,org.eclipse.ltk.core.refactoring,3.1.0,org.eclipse.ltk.ui.refactoring,3.1.1,org.eclipse.platform,3.1.2,org.eclipse.platform.doc.user,3.1.1,org.eclipse.search,3.1.2,org.eclipse.team.core,3.1.1,org.eclipse.team.cvs.core,3.1.1,org.eclipse.team.cvs.ssh,3.1.0,org.eclipse.team.cvs.ssh2,3.1.0,org.eclipse.team.cvs.ui,3.1.1,org.eclipse.team.ui,3.1.1,org.eclipse.tomcat,4.1.30.1,org.eclipse.text,3.1.1,org.eclipse.jface.text,3.1.2,org.eclipse.ui.console,3.1.2,org.eclipse.ui.presentations.r21,3.1.0,org.eclipse.ui.intro,3.1.1,org.eclipse.ui.cheatsheets,3.1.1,org.eclipse.ui.browser,3.1.1,org.eclipse.ui.workbench.texteditor,3.1.2,org.eclipse.ui.views,3.1.1,org.eclipse.ui.editors,3.1.1,org.eclipse.ui.forms,3.1.0,org.eclipse.ui.externaltools,3.1.1,org.eclipse.ui.ide,3.1.1,org.eclipse.update.core,3.1.2,org.eclipse.update.scheduler,3.1.0,org.eclipse.update.ui,3.1.1,org.eclipse.ui.workbench.compatibility,3.1.0,org.eclipse.core.resources.hpux,3.1.0,org.eclipse.core.resources.linux,3.1.0,org.eclipse.core.resources.macosx,3.1.0,org.eclipse.core.resources.qnx,3.1.0,org.eclipse.core.resources.win32,3.1.0,org.eclipse.ui.carbon,3.1.1,org.eclipse.ui.win32,3.1.0,org.eclipse.update.core.linux,3.1.0,org.eclipse.update.core.win32,3.1.0,"/>
++ <eclipse.idReplacer featureFilePath="${feature.base}/features/org.eclipse.platform_3.1.2/feature.xml" selfVersion="3.1.2" featureIds="org.eclipse.rcp,3.1.2," pluginIds="org.apache.ant,1.6.5,org.apache.lucene,1.4.3,org.eclipse.ant.core,3.1.1,org.eclipse.compare,3.1.1,org.eclipse.core.boot,3.1.0,org.eclipse.core.filebuffers,3.1.2,org.eclipse.core.resources,3.1.2,org.eclipse.core.resources.compatibility,3.1.0,org.eclipse.core.runtime.compatibility,3.1.0,org.eclipse.osgi.services,3.1.2,org.eclipse.osgi.util,3.1.1,org.eclipse.core.variables,3.1.0,org.eclipse.debug.core,3.1.2,org.eclipse.debug.ui,3.1.2,org.eclipse.help.webapp,3.1.0,org.eclipse.help.base,3.1.0,org.eclipse.help.ui,3.1.1,org.eclipse.help.appserver,3.1.0,org.eclipse.ltk.core.refactoring,3.1.0,org.eclipse.ltk.ui.refactoring,3.1.1,org.eclipse.platform,3.1.2,org.eclipse.platform.doc.user,3.1.1,org.eclipse.search,3.1.2,org.eclipse.team.core,3.1.1,org.eclipse.team.cvs.core,3.1.1,org.eclipse.team.cvs.ssh,3.1.0,org.eclipse.team.cvs.ssh2,3.1.0,org.eclipse.team.cvs.ui,3.1.1,org.eclipse.team.ui,3.1.1,org.eclipse.tomcat,4.1.30.1,org.eclipse.text,3.1.1,org.eclipse.jface.text,3.1.2,org.eclipse.ui.console,3.1.2,org.eclipse.ui.presentations.r21,3.1.0,org.eclipse.ui.intro,3.1.1,org.eclipse.ui.cheatsheets,3.1.1,org.eclipse.ui.browser,3.1.1,org.eclipse.ui.workbench.texteditor,3.1.2,org.eclipse.ui.views,3.1.1,org.eclipse.ui.editors,3.1.1,org.eclipse.ui.forms,3.1.0,org.eclipse.ui.externaltools,3.1.1,org.eclipse.ui.ide,3.1.1,org.eclipse.update.core,3.1.2,org.eclipse.update.scheduler,3.1.0,org.eclipse.update.ui,3.1.1,org.eclipse.ui.workbench.compatibility,3.1.0,org.eclipse.core.resources.hpux,3.1.0,org.eclipse.core.resources.linux,3.1.0,org.eclipse.core.resources.freebsd,3.1.0,org.eclipse.core.resources.macosx,3.1.0,org.eclipse.core.resources.qnx,3.1.0,org.eclipse.core.resources.win32,3.1.0,org.eclipse.ui.carbon,3.1.1,org.eclipse.ui.win32,3.1.0,org.eclipse.update.core.linux,3.1.0,org.eclipse.update.core.freebsd,3.1.0,org.eclipse.update.core.win32,3.1.0,"/>
+ <antcall target="rootFiles${os}_${ws}_${arch}"/>
+ </target>
+ <target name="rootFileswin32_win32_x86">
+@@ -372,6 +382,19 @@
+ <chmod perm="755" dir="${feature.base}/linux.gtk.x86/${collectingFolder}" includes="eclipse" />
+ <chmod perm="755" dir="${feature.base}/linux.gtk.x86/${collectingFolder}" includes="*.so*" />
+ </target>
++ <target name="rootFilesfreebsd_gtk_x86">
++ <mkdir dir="${feature.base}/freebsd.gtk.x86/${collectingFolder}"/>
++ <copy todir="${feature.base}/freebsd.gtk.x86/${collectingFolder}" failonerror="true" overwrite="true">
++ <fileset dir="${basedir}/about_files/freebsd.gtk.x86" includes="**" />
++ <fileset dir="${basedir}/../../features/org.eclipse.platform.launchers/bin/gtk/freebsd/x86" includes="**" />
++ <fileset dir="${basedir}/gtk" includes="**" />
++ <fileset dir="${basedir}/../../plugins/org.eclipse.swt.gtk.freebsd.x86" includes="libcairo.so.1" />
++ <fileset dir="${basedir}/rootfiles" includes="**" />
++ <fileset dir="${basedir}/../../plugins/org.eclipse.platform" includes="startup.jar" />
++ </copy>
++ <chmod perm="755" dir="${feature.base}/freebsd.gtk.x86/${collectingFolder}" includes="eclipse" />
++ <chmod perm="755" dir="${feature.base}/freebsd.gtk.x86/${collectingFolder}" includes="*.so*" />
++ </target>
+ <target name="rootFileslinux_gtk_ppc">
+ <mkdir dir="${feature.base}/linux.gtk.ppc/${collectingFolder}"/>
+ <copy todir="${feature.base}/linux.gtk.ppc/${collectingFolder}" failonerror="true" overwrite="true">
+@@ -407,6 +430,19 @@
+ <chmod perm="755" dir="${feature.base}/linux.gtk.x86_64/${collectingFolder}" includes="eclipse" />
+ <chmod perm="755" dir="${feature.base}/linux.gtk.x86_64/${collectingFolder}" includes="*.so*" />
+ </target>
++ <target name="rootFilesfreebsd_gtk_amd64">
++ <mkdir dir="${feature.base}/freebsd.gtk.amd64/${collectingFolder}"/>
++ <copy todir="${feature.base}/freebsd.gtk.amd64/${collectingFolder}" failonerror="true" overwrite="true">
++ <fileset dir="${basedir}/about_files/freebsd.gtk.amd64" includes="**" />
++ <fileset dir="${basedir}/../../features/org.eclipse.platform.launchers/bin/gtk/freebsd/amd64" includes="**" />
++ <fileset dir="${basedir}/gtk" includes="**" />
++ <fileset dir="${basedir}/../../plugins/org.eclipse.swt.gtk.freebsd.amd64" includes="libcairo.so.1" />
++ <fileset dir="${basedir}/rootfiles" includes="**" />
++ <fileset dir="${basedir}/../../plugins/org.eclipse.platform" includes="startup.jar" />
++ </copy>
++ <chmod perm="755" dir="${feature.base}/freebsd.gtk.amd64/${collectingFolder}" includes="eclipse" />
++ <chmod perm="755" dir="${feature.base}/freebsd.gtk.amd64/${collectingFolder}" includes="*.so*" />
++ </target>
+ <target name="rootFileslinux_gtk_ia64">
+ <mkdir dir="${feature.base}/linux.gtk.ia64/${collectingFolder}"/>
+ <copy todir="${feature.base}/linux.gtk.ia64/${collectingFolder}" failonerror="true" overwrite="true">
+@@ -431,6 +467,21 @@
+ </copy>
+ <chmod perm="755" dir="${feature.base}/linux.motif.x86/${collectingFolder}" includes="eclipse" />
+ <chmod perm="755" dir="${feature.base}/linux.motif.x86/${collectingFolder}" includes="*.so*" />
++ </target>
++ <target name="rootFilesfreebsd_motif_x86">
++ <mkdir dir="${feature.base}/freebsd.motif.x86/${collectingFolder}"/>
++ <copy todir="${feature.base}/freebsd.motif.x86/${collectingFolder}" failonerror="true" overwrite="true">
++ <fileset dir="${basedir}/about_files/freebsd.motif.x86" includes="**" />
++ <fileset dir="${basedir}/motif" includes="**" />
++ <fileset dir="${basedir}/../../features/org.eclipse.platform.launchers/bin/motif/freebsd/x86" includes="**" />
++ <fileset dir="${basedir}/../../plugins/org.eclipse.swt.motif.freebsd.x86" includes="libXm.so.2" />
++ <fileset dir="${basedir}/motif" includes="**" />
++ <fileset dir="${basedir}/../../plugins/org.eclipse.swt.motif.freebsd.x86" includes="libcairo.so.1" />
++ <fileset dir="${basedir}/rootfiles" includes="**" />
++ <fileset dir="${basedir}/../../plugins/org.eclipse.platform" includes="startup.jar" />
++ </copy>
++ <chmod perm="755" dir="${feature.base}/freebsd.motif.x86/${collectingFolder}" includes="eclipse" />
++ <chmod perm="755" dir="${feature.base}/freebsd.motif.x86/${collectingFolder}" includes="*.so*" />
+ </target>
+ <target name="rootFilessolaris_motif_sparc">
+ <mkdir dir="${feature.base}/solaris.motif.sparc/${collectingFolder}"/>
diff --git a/java/eclipse/files/patch-features-platform-source-build.xml b/java/eclipse/files/patch-features-platform-source-build.xml
new file mode 100644
index 000000000..999ec9f46
--- /dev/null
+++ b/java/eclipse/files/patch-features-platform-source-build.xml
@@ -0,0 +1,46 @@
+--- features/org.eclipse.platform.source/build.xml.orig Wed Jan 18 16:09:14 2006
++++ features/org.eclipse.platform.source/build.xml Sun Jan 29 19:36:36 2006
+@@ -72,6 +72,21 @@
+ <property name="os" value="hpux"/>
+ <property name="ws" value="motif"/>
+ </ant>
++ <ant antfile="build.xml" dir="../../plugins/org.eclipse.platform.source.freebsd.motif.x86" target="${target}">
++ <property name="arch" value="x86"/>
++ <property name="os" value="freebsd"/>
++ <property name="ws" value="motif"/>
++ </ant>
++ <ant antfile="build.xml" dir="../../plugins/org.eclipse.platform.source.freebsd.gtk.x86" target="${target}">
++ <property name="arch" value="x86"/>
++ <property name="os" value="freebsd"/>
++ <property name="ws" value="gtk"/>
++ </ant>
++ <ant antfile="build.xml" dir="../../plugins/org.eclipse.platform.source.freebsd.gtk.amd64" target="${target}">
++ <property name="arch" value="amd64"/>
++ <property name="os" value="freebsd"/>
++ <property name="ws" value="gtk"/>
++ </ant>
+ <ant antfile="build.xml" dir="../../plugins/org.eclipse.platform.doc.isv" target="${target}">
+ <property name="arch" value="x86"/>
+ <property name="os" value="win32"/>
+@@ -136,7 +151,7 @@
+ <copy todir="${feature.base}/features/org.eclipse.platform.source_3.1.2" failonerror="true" overwrite="false">
+ <fileset dir="${basedir}" includes="epl-v10.html,eclipse_update_120.jpg,feature.xml,feature.properties,license.html" />
+ </copy>
+- <eclipse.idReplacer featureFilePath="${feature.base}/features/org.eclipse.platform.source_3.1.2/feature.xml" selfVersion="3.1.2" featureIds="org.eclipse.rcp.source,3.1.2," pluginIds="org.eclipse.platform.doc.isv,3.1.2,org.eclipse.platform.source,3.1.2,org.eclipse.platform.source.linux.gtk.ia64,3.1.2,org.eclipse.platform.source.hpux.motif.ia64_32,3.1.2,org.eclipse.platform.source.qnx.photon.x86,3.1.2,org.eclipse.platform.source.linux.gtk.ppc,3.1.2,org.eclipse.platform.source.hpux.motif.PA_RISC,3.1.2,org.eclipse.platform.source.hpux.motif.ia64,3.1.2,org.eclipse.platform.source.linux.gtk.x86_64,3.1.2,org.eclipse.platform.source.linux.gtk.ppc64,3.1.2,org.eclipse.platform.source.macosx.carbon.ppc,3.1.2,org.eclipse.platform.source.linux.gtk.x86,3.1.2,org.eclipse.platform.source.win32.win32.x86,3.1.2,org.eclipse.platform.source.linux.motif.x86,3.1.2,"/>
++ <eclipse.idReplacer featureFilePath="${feature.base}/features/org.eclipse.platform.source_3.1.2/feature.xml" selfVersion="3.1.2" featureIds="org.eclipse.rcp.source,3.1.2," pluginIds="org.eclipse.platform.doc.isv,3.1.2,org.eclipse.platform.source,3.1.2,org.eclipse.platform.source.linux.gtk.ia64,3.1.2,org.eclipse.platform.source.hpux.motif.ia64_32,3.1.2,org.eclipse.platform.source.qnx.photon.x86,3.1.2,org.eclipse.platform.source.linux.gtk.ppc,3.1.2,org.eclipse.platform.source.hpux.motif.PA_RISC,3.1.2,org.eclipse.platform.source.hpux.motif.ia64,3.1.2,org.eclipse.platform.source.linux.gtk.x86_64,3.1.2,org.eclipse.platform.source.freebsd.gtk.amd64,3.1.2,org.eclipse.platform.source.linux.gtk.ppc64,3.1.2,org.eclipse.platform.source.macosx.carbon.ppc,3.1.2,org.eclipse.platform.source.linux.gtk.x86,3.1.2,org.eclipse.platform.source.freebsd.gtk.x86,3.1.2,org.eclipse.platform.source.win32.win32.x86,3.1.2,org.eclipse.platform.source.linux.motif.x86,3.1.2,org.eclipse.platform.source.freebsd.motif.x86,3.1.2,"/>
+ <antcall target="rootFiles${os}_${ws}_${arch}"/>
+ </target>
+ <target name="rootFileswin32_win32_x86">
+@@ -153,6 +168,12 @@
+ </target>
+ <target name="rootFileslinux_motif_x86">
+ </target>
++ <target name="rootFilesfreebsd_gtk_x86">
++ </target>
++ <target name="rootFilesfreebsd_gtk_amd64">
++ </target>
++ <target name="rootFilesfreebsd_motif_x86">
++ </target>
+ <target name="rootFilessolaris_motif_sparc">
+ </target>
+ <target name="rootFilessolaris_gtk_sparc">
diff --git a/java/eclipse/files/patch-features-platform-source-feature.xml b/java/eclipse/files/patch-features-platform-source-feature.xml
new file mode 100644
index 000000000..0a8377fdd
--- /dev/null
+++ b/java/eclipse/files/patch-features-platform-source-feature.xml
@@ -0,0 +1,10 @@
+--- features/org.eclipse.platform.source/feature.xml.orig Thu Sep 29 15:51:40 2005
++++ features/org.eclipse.platform.source/feature.xml Tue Oct 4 20:34:16 2005
+@@ -25,4 +25,7 @@
+ <plugin ws="gtk" os="linux" fragment="true" arch="x86" download-size="0" install-size="0" id="org.eclipse.platform.source.linux.gtk.x86" version="3.1.1"/>
+ <plugin ws="win32" os="win32" fragment="true" arch="x86" download-size="0" install-size="0" id="org.eclipse.platform.source.win32.win32.x86" version="3.1.1"/>
+ <plugin ws="motif" os="linux" fragment="true" arch="x86" download-size="0" install-size="0" id="org.eclipse.platform.source.linux.motif.x86" version="3.1.1"/>
++ <plugin ws="gtk" os="freebsd" fragment="true" arch="amd64" download-size="0" install-size="0" id="org.eclipse.platform.source.freebsd.gtk.amd64" version="3.1.1"/>
++ <plugin ws="gtk" os="freebsd" fragment="true" arch="x86" download-size="0" install-size="0" id="org.eclipse.platform.source.freebsd.gtk.x86" version="3.1.1"/>
++ <plugin ws="motif" os="freebsd" fragment="true" arch="x86" download-size="0" install-size="0" id="org.eclipse.platform.source.freebsd.motif.x86" version="3.1.1"/>
+ </feature>
diff --git a/java/eclipse/files/patch-features-rcp-build.xml b/java/eclipse/files/patch-features-rcp-build.xml
new file mode 100644
index 000000000..583292602
--- /dev/null
+++ b/java/eclipse/files/patch-features-rcp-build.xml
@@ -0,0 +1,80 @@
+--- features/org.eclipse.rcp/build.xml.orig Wed Jan 18 16:09:14 2006
++++ features/org.eclipse.rcp/build.xml Sun Jan 29 20:51:40 2006
+@@ -127,6 +127,21 @@
+ <property name="os" value="win32"/>
+ <property name="ws" value="win32"/>
+ </ant>
++ <ant antfile="build.xml" dir="../../plugins/org.eclipse.swt.motif.freebsd.x86" target="${target}">
++ <property name="arch" value="x86"/>
++ <property name="os" value="freebsd"/>
++ <property name="ws" value="motif"/>
++ </ant>
++ <ant antfile="build.xml" dir="../../plugins/org.eclipse.swt.gtk.freebsd.x86" target="${target}">
++ <property name="arch" value="x86"/>
++ <property name="os" value="freebsd"/>
++ <property name="ws" value="gtk"/>
++ </ant>
++ <ant antfile="build.xml" dir="../../plugins/org.eclipse.swt.gtk.freebsd.amd64" target="${target}">
++ <property name="arch" value="amd64"/>
++ <property name="os" value="freebsd"/>
++ <property name="ws" value="gtk"/>
++ </ant>
+ </target>
+ <target name="all.features" depends="init">
+ </target>
+@@ -185,7 +200,7 @@
+ <copy todir="${feature.base}/features/org.eclipse.rcp_3.1.2" failonerror="true" overwrite="false">
+ <fileset dir="${basedir}" includes="feature.xml,license.html,epl-v10.html,feature.properties,eclipse_update_120.jpg" />
+ </copy>
+- <eclipse.idReplacer featureFilePath="${feature.base}/features/org.eclipse.rcp_3.1.2/feature.xml" selfVersion="3.1.2" featureIds="" pluginIds="org.eclipse.core.commands,3.1.0,org.eclipse.core.expressions,3.1.0,org.eclipse.core.runtime,3.1.2,org.eclipse.osgi,3.1.2,org.eclipse.help,3.1.0,org.eclipse.swt,3.1.0,org.eclipse.jface,3.1.1,org.eclipse.ui,3.1.2,org.eclipse.ui.workbench,3.1.2,org.eclipse.update.configurator,3.1.0,org.eclipse.swt.win32.win32.x86,3.1.2,org.eclipse.swt.gtk.linux.x86,3.1.1,org.eclipse.swt.gtk.solaris.sparc,3.1.1,org.eclipse.swt.gtk.linux.ppc,3.1.1,org.eclipse.swt.gtk.linux.x86_64,3.1.1,org.eclipse.swt.carbon.macosx.ppc,3.1.1,org.eclipse.swt.motif.aix.ppc,3.1.1,org.eclipse.swt.motif.hpux.PA_RISC,3.1.1,org.eclipse.swt.motif.linux.x86,3.1.1,org.eclipse.swt.gtk.linux.ia64,3.1.1,org.eclipse.swt.motif.solaris.sparc,3.1.1,org.eclipse.swt.photon.qnx.x86,3.1.1,org.eclipse.swt.motif.hpux.ia64_32,3.1.1,org.eclipse.rcp,3.1.0,"/>
++ <eclipse.idReplacer featureFilePath="${feature.base}/features/org.eclipse.rcp_3.1.2/feature.xml" selfVersion="3.1.2" featureIds="" pluginIds="org.eclipse.core.commands,3.1.0,org.eclipse.core.expressions,3.1.0,org.eclipse.core.runtime,3.1.2,org.eclipse.osgi,3.1.2,org.eclipse.help,3.1.0,org.eclipse.swt,3.1.0,org.eclipse.jface,3.1.1,org.eclipse.ui,3.1.2,org.eclipse.ui.workbench,3.1.2,org.eclipse.update.configurator,3.1.0,org.eclipse.swt.win32.win32.x86,3.1.2,org.eclipse.swt.gtk.linux.x86,3.1.1,org.eclipse.swt.gtk.freebsd.x86,3.1.1,org.eclipse.swt.gtk.solaris.sparc,3.1.1,org.eclipse.swt.gtk.linux.ppc,3.1.1,org.eclipse.swt.gtk.linux.x86_64,3.1.1,org.eclipse.swt.gtk.freebsd.amd64,3.1.1,org.eclipse.swt.carbon.macosx.ppc,3.1.1,org.eclipse.swt.motif.aix.ppc,3.1.1,org.eclipse.swt.motif.hpux.PA_RISC,3.1.1,org.eclipse.swt.motif.linux.x86,3.1.1,org.eclipse.swt.motif.freebsd.x86,3.1.1,org.eclipse.swt.gtk.linux.ia64,3.1.1,org.eclipse.swt.motif.solaris.sparc,3.1.1,org.eclipse.swt.photon.qnx.x86,3.1.1,org.eclipse.swt.motif.hpux.ia64_32,3.1.1,org.eclipse.rcp,3.1.0,"/>
+ <antcall target="rootFiles${os}_${ws}_${arch}"/>
+ </target>
+ <target name="rootFileswin32_win32_x86">
+@@ -353,6 +368,46 @@
+ </copy>
+ <chmod perm="755" dir="${feature.base}/qnx.photon.x86/${collectingFolder}" includes="eclipse" />
+ </target>
++ <target name="rootFilesfreebsd_gtk_x86">
++ <mkdir dir="${feature.base}/freebsd.gtk.x86/${collectingFolder}"/>
++ <copy todir="${feature.base}/freebsd.gtk.x86/${collectingFolder}" failonerror="true" overwrite="true">
++ <fileset dir="${basedir}/../../features/org.eclipse.platform/about_files/freebsd.gtk.x86" includes="**" />
++ <fileset dir="${basedir}/../../features/org.eclipse.platform.launchers/bin/gtk/freebsd/x86" includes="**" />
++ <fileset dir="${basedir}/../../plugins/org.eclipse.swt.gtk.freebsd.x86" includes="libcairo.so.1" />
++ <fileset dir="${basedir}/rootfiles" includes="**" />
++ <fileset dir="${basedir}/../org.eclipse.platform/rootfiles" includes="**" />
++ <fileset dir="${basedir}/../../plugins/org.eclipse.platform" includes="startup.jar" />
++ </copy>
++ <chmod perm="755" dir="${feature.base}/freebsd.gtk.x86/${collectingFolder}" includes="eclipse" />
++ <chmod perm="755" dir="${feature.base}/freebsd.gtk.x86/${collectingFolder}" includes="*.so*" />
++ </target>
++ <target name="rootFilesfreebsd_gtk_amd64">
++ <mkdir dir="${feature.base}/freebsd.gtk.amd64/${collectingFolder}"/>
++ <copy todir="${feature.base}/freebsd.gtk.amd64/${collectingFolder}" failonerror="true" overwrite="true">
++ <fileset dir="${basedir}/../../features/org.eclipse.platform/about_files/freebsd.gtk.amd64" includes="**" />
++ <fileset dir="${basedir}/../../features/org.eclipse.platform.launchers/bin/gtk/freebsd/amd64" includes="**" />
++ <fileset dir="${basedir}/../../plugins/org.eclipse.swt.gtk.freebsd.amd64" includes="libcairo.so.1" />
++ <fileset dir="${basedir}/rootfiles" includes="**" />
++ <fileset dir="${basedir}/../org.eclipse.platform/rootfiles" includes="**" />
++ <fileset dir="${basedir}/../../plugins/org.eclipse.platform" includes="startup.jar" />
++ </copy>
++ <chmod perm="755" dir="${feature.base}/freebsd.gtk.amd64/${collectingFolder}" includes="eclipse" />
++ <chmod perm="755" dir="${feature.base}/freebsd.gtk.amd64/${collectingFolder}" includes="*.so*" />
++ </target>
++ <target name="rootFilesfreebsd_motif_x86">
++ <mkdir dir="${feature.base}/freebsd.motif.x86/${collectingFolder}"/>
++ <copy todir="${feature.base}/freebsd.motif.x86/${collectingFolder}" failonerror="true" overwrite="true">
++ <fileset dir="${basedir}/../../features/org.eclipse.platform/about_files/freebsd.motif.x86" includes="**" />
++ <fileset dir="${basedir}/../../features/org.eclipse.platform.launchers/bin/motif/freebsd/x86" includes="**" />
++ <fileset dir="${basedir}/../../plugins/org.eclipse.swt.motif.freebsd.x86" includes="libXm.so.2" />
++ <fileset dir="${basedir}/../../plugins/org.eclipse.swt.motif.freebsd.x86" includes="libcairo.so.1" />
++ <fileset dir="${basedir}/rootfiles" includes="**" />
++ <fileset dir="${basedir}/../org.eclipse.platform/rootfiles" includes="**" />
++ <fileset dir="${basedir}/../../plugins/org.eclipse.platform" includes="startup.jar" />
++ </copy>
++ <chmod perm="755" dir="${feature.base}/freebsd.motif.x86/${collectingFolder}" includes="eclipse" />
++ <chmod perm="755" dir="${feature.base}/freebsd.motif.x86/${collectingFolder}" includes="*.so*" />
++ </target>
+
+ <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.eclipse.rcp.">
+ <delete dir="${feature.temp.folder}"/>
diff --git a/java/eclipse/files/patch-features-rcp-source-build.xml b/java/eclipse/files/patch-features-rcp-source-build.xml
new file mode 100644
index 000000000..c5a229c98
--- /dev/null
+++ b/java/eclipse/files/patch-features-rcp-source-build.xml
@@ -0,0 +1,46 @@
+--- features/org.eclipse.rcp.source/build.xml.orig Wed Jan 18 16:09:14 2006
++++ features/org.eclipse.rcp.source/build.xml Sun Jan 29 20:56:53 2006
+@@ -47,6 +47,21 @@
+ <property name="os" value="linux"/>
+ <property name="ws" value="gtk"/>
+ </ant>
++ <ant antfile="build.xml" dir="../../plugins/org.eclipse.rcp.source.freebsd.gtk.amd64" target="${target}">
++ <property name="arch" value="amd64"/>
++ <property name="os" value="freebsd"/>
++ <property name="ws" value="gtk"/>
++ </ant>
++ <ant antfile="build.xml" dir="../../plugins/org.eclipse.rcp.source.freebsd.motif.x86" target="${target}">
++ <property name="arch" value="x86"/>
++ <property name="os" value="freebsd"/>
++ <property name="ws" value="motif"/>
++ </ant>
++ <ant antfile="build.xml" dir="../../plugins/org.eclipse.rcp.source.freebsd.gtk.x86" target="${target}">
++ <property name="arch" value="x86"/>
++ <property name="os" value="freebsd"/>
++ <property name="ws" value="gtk"/>
++ </ant>
+ <ant antfile="build.xml" dir="../../plugins/org.eclipse.rcp.source.macosx.carbon.ppc" target="${target}">
+ <property name="arch" value="ppc"/>
+ <property name="os" value="macosx"/>
+@@ -135,7 +150,7 @@
+ <copy todir="${feature.base}/features/org.eclipse.rcp.source_3.1.2" failonerror="true" overwrite="false">
+ <fileset dir="${basedir}" includes="epl-v10.html,eclipse_update_120.jpg,feature.xml,feature.properties,license.html" />
+ </copy>
+- <eclipse.idReplacer featureFilePath="${feature.base}/features/org.eclipse.rcp.source_3.1.2/feature.xml" selfVersion="3.1.2" featureIds="" pluginIds="org.eclipse.rcp.source,3.1.2,org.eclipse.rcp.source.hpux.motif.ia64_32,3.1.2,org.eclipse.rcp.source.linux.gtk.ia64,3.1.2,org.eclipse.rcp.source.qnx.photon.x86,3.1.2,org.eclipse.rcp.source.linux.gtk.ppc,3.1.2,org.eclipse.rcp.source.hpux.motif.PA_RISC,3.1.2,org.eclipse.rcp.source.linux.gtk.x86_64,3.1.2,org.eclipse.rcp.source.solaris.gtk.sparc,3.1.2,org.eclipse.rcp.source.macosx.carbon.ppc,3.1.2,org.eclipse.rcp.source.linux.gtk.x86,3.1.2,org.eclipse.rcp.source.aix.motif.ppc,3.1.2,org.eclipse.rcp.source.win32.win32.x86,3.1.2,org.eclipse.rcp.source.solaris.motif.sparc,3.1.2,org.eclipse.rcp.source.linux.motif.x86,3.1.2,"/>
++ <eclipse.idReplacer featureFilePath="${feature.base}/features/org.eclipse.rcp.source_3.1.2/feature.xml" selfVersion="3.1.2" featureIds="" pluginIds="org.eclipse.rcp.source,3.1.2,org.eclipse.rcp.source.hpux.motif.ia64_32,3.1.2,org.eclipse.rcp.source.linux.gtk.ia64,3.1.2,org.eclipse.rcp.source.qnx.photon.x86,3.1.2,org.eclipse.rcp.source.linux.gtk.ppc,3.1.2,org.eclipse.rcp.source.hpux.motif.PA_RISC,3.1.2,org.eclipse.rcp.source.linux.gtk.x86_64,3.1.2,org.eclipse.rcp.source.freebsd.gtk.amd64,3.1.2,org.eclipse.rcp.source.solaris.gtk.sparc,3.1.2,org.eclipse.rcp.source.macosx.carbon.ppc,3.1.2,org.eclipse.rcp.source.linux.gtk.x86,3.1.2,org.eclipse.rcp.source.freebsd.gtk.x86,3.1.2,org.eclipse.rcp.source.aix.motif.ppc,3.1.2,org.eclipse.rcp.source.win32.win32.x86,3.1.2,org.eclipse.rcp.source.solaris.motif.sparc,3.1.2,org.eclipse.rcp.source.linux.motif.x86,3.1.2,org.eclipse.rcp.source.freebsd.motif.x86,3.1.2,"/>
+ <antcall target="rootFiles${os}_${ws}_${arch}"/>
+ </target>
+ <target name="rootFileswin32_win32_x86">
+@@ -168,6 +183,12 @@
+ </target>
+ <target name="rootFilesqnx_photon_x86">
+ </target>
++ <target name="rootFilesfreebsd_gtk_x86">
++ </target>
++ <target name="rootFilesfreebsd_gtk_amd64">
++ </target>
++ <target name="rootFilesfreebsd_motif_x86">
++ </target>
+
+ <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.eclipse.rcp.source.">
+ <delete dir="${feature.temp.folder}"/>
diff --git a/java/eclipse/files/patch-features-sdk-build.xml b/java/eclipse/files/patch-features-sdk-build.xml
new file mode 100644
index 000000000..2217569fe
--- /dev/null
+++ b/java/eclipse/files/patch-features-sdk-build.xml
@@ -0,0 +1,15 @@
+--- features/org.eclipse.sdk/build.xml.orig Sat Feb 19 12:09:35 2005
++++ features/org.eclipse.sdk/build.xml Sat Mar 26 18:40:52 2005
+@@ -90,6 +90,12 @@
+ </target>
+ <target name="rootFileslinux_gtk_x86_64">
+ </target>
++ <target name="rootFilesfreebsd_gtk_amd64">
++ </target>
++ <target name="rootFilesfreebsd_gtk_x86">
++ </target>
++ <target name="rootFilesfreebsd_motif_x86">
++ </target>
+ <target name="rootFileslinux_motif_x86">
+ </target>
+ <target name="rootFilessolaris_motif_sparc">
diff --git a/java/eclipse/files/patch-plugins-core-build.xml b/java/eclipse/files/patch-plugins-core-build.xml
new file mode 100644
index 000000000..42dfac0c7
--- /dev/null
+++ b/java/eclipse/files/patch-plugins-core-build.xml
@@ -0,0 +1,53 @@
+--- plugins/org.eclipse.core.resources.freebsd/build.xml.orig Wed Jul 27 09:39:39 2005
++++ plugins/org.eclipse.core.resources.freebsd/build.xml Wed Jul 27 22:09:53 2005
+@@ -19,6 +19,20 @@
+ </fileset>
+ </path>
+ <property name="bootclasspath" refid="path_bootclasspath"/>
++ <!-- The properties ${eclipse-home} ${jdk-path} should be passed into this script -->
++ <!-- Set a meaningful default value for when it is not. -->
++ <property name="eclipse-home" value="${basedir}/.."/>
++ <property environment="env" />
++ <property name="CC" value="${env.CC}"/>
++ <property name="jdk-path" value="${env.JAVA_HOME}"/>
++ <property name="destination" value="${eclipse-home}/org.eclipse.core.resources.freebsd/os/freebsd/x86/"/>
++ <property name="obj-path" value="${eclipse-home}/org.eclipse.core.resources/src/"/>
++ <property name="src-path" value="${eclipse-home}/org.eclipse.core.resources.freebsd/src/"/>
++
++ <!-- sets the properties -->
++ <property name="library-name" value="libcore_3_1_0"/>
++ <property name="library-platform" value="so"/>
++ <property name="library-file" value="${library-name}.${library-platform}"/>
+
+ <target name="init" depends="properties">
+ <condition property="pluginTemp" value="${buildTempFolder}/plugins">
+@@ -50,6 +64,29 @@
+ </target>
+
+ <target name="build.jars" depends="init" description="Build all the jars for the plug-in: org.eclipse.core.resources.freebsd.">
++ <echo message="Building ${library-file}"/>
++
++ <property name="header-path" value="${jdk-path}/include"/>
++ <property name="header-freebsd-path" value="${header-path}/freebsd" />
++
++ <echo message="${CC} -o ${library-file} -shared -fPIC -I${src-path} -I${header-path} -I${header-freebsd-path} ${library-file} -static -lc"/>
++
++ <apply executable="${CC}" dest="${eclipse-home}/" parallel="false">
++ <arg value="-o"/>
++ <arg value="${library-file}"/>
++ <arg value="-shared"/>
++ <arg value="-fPIC"/>
++ <arg value="-I${src-path}"/>
++ <arg value="-I${header-path}"/>
++ <arg value="-I${header-freebsd-path}"/>
++ <srcfile/>
++ <arg value="-static"/>
++ <arg value="-lc"/>
++ <fileset dir="${src-path}" includes="*.c"/>
++ <mapper type="glob" from="*.c" to="*.o"/>
++ </apply>
++
++ <move file="${library-file}" todir="${destination}"/>
+ </target>
+
+ <target name="build.sources" depends="init">
diff --git a/java/eclipse/files/patch-plugins-update-src-build.xml b/java/eclipse/files/patch-plugins-update-src-build.xml
new file mode 100644
index 000000000..1fa5cb7cc
--- /dev/null
+++ b/java/eclipse/files/patch-plugins-update-src-build.xml
@@ -0,0 +1,31 @@
+--- plugins/org.eclipse.update.core.freebsd/src/build.xml Sat Apr 9 14:03:21 2005
++++ ../files/plugins-update-src-build.xml Tue Feb 15 23:41:47 2005
+@@ -6,7 +6,7 @@
+ <property name="eclipse-home" value="${basedir}/../.."/>
+ <property name="jdk-path" value="${java.home}"/>
+ <property name="destination" value="${eclipse-home}/org.eclipse.update.core.freebsd/os/freebsd/x86/"/>
+- <property name="obj-path" value="${eclipse-home}/org.eclipse.update.core.freebsd/src/"/>
++ <property name="obj-path" value="${eclipse-home}/org.eclipse.update.core/src/"/>
+ <property name="src-path" value="${eclipse-home}/org.eclipse.update.core.freebsd/src/"/>
+
+ <!-- sets the properties -->
+@@ -44,15 +44,16 @@
+ <target name="build">
+ <echo message="Building ${library-file}"/>
+
+- <property name="header-path" value="${jdk-path}/../include"/>
++ <property name="header-path" value="${jdk-path}/include"/>
+ <property name="header-freebsd-path" value="${header-path}/freebsd" />
+
+- <echo message="gcc -o ${library-file} -shared -I${src-path} -I${header-freebsd-path} ${library-file} -static -lc"/>
++ <echo message="${CC} -o ${library-file} -shared -fPIC -I${src-path} -I${header-path} -I${header-freebsd-path} ${library-file} -static -lc"/>
+
+- <apply executable="gcc" dest="${eclipse-home}/" parallel="false">
++ <apply executable="${CC}" dest="${eclipse-home}/" parallel="false">
+ <arg value="-o"/>
+ <arg value="${library-file}"/>
+ <arg value="-shared"/>
++ <arg value="-fPIC"/>
+ <arg value="-I${src-path}"/>
+ <arg value="-I${header-path}"/>
+ <arg value="-I${header-freebsd-path}"/>
diff --git a/java/eclipse/files/patch-plugins-update-src-update.c b/java/eclipse/files/patch-plugins-update-src-update.c
new file mode 100644
index 000000000..6d3991ec7
--- /dev/null
+++ b/java/eclipse/files/patch-plugins-update-src-update.c
@@ -0,0 +1,15 @@
+--- plugins/org.eclipse.update.core.linux/src/update.c.orig Fri May 13 11:37:58 2005
++++ plugins/org.eclipse.update.core.linux/src/update.c Sat May 14 19:01:31 2005
+@@ -12,7 +12,12 @@
+ /* bug 82520 : need to include stdlib.h */
+ # include <stdlib.h>
+ # include <sys/types.h>
++#ifdef __FreeBSD__
++# include <sys/param.h>
++# include <sys/mount.h>
++#else
+ # include <sys/statfs.h>
++#endif
+ # include <update.h>
+
+ /*
diff --git a/java/eclipse/pkg-descr b/java/eclipse/pkg-descr
new file mode 100644
index 000000000..fa504efd8
--- /dev/null
+++ b/java/eclipse/pkg-descr
@@ -0,0 +1,8 @@
+The Eclipse Platform is an open extensible IDE for anything and yet
+nothing in particular. The Eclipse Platform provides building blocks
+and a foundation for constructing and running integrated software-
+development tools. The Eclipse Platform allows tool builders to
+independently develop tools that integrate with other people's tools
+so seamlessly you can't tell where one tool ends and another starts.
+
+WWW: http://www.eclipse.org/
diff --git a/java/eclipse/scripts/pre-patch b/java/eclipse/scripts/pre-patch
new file mode 100644
index 000000000..86f68221e
--- /dev/null
+++ b/java/eclipse/scripts/pre-patch
@@ -0,0 +1,104 @@
+#!/bin/sh
+# $FreeBSD: ports/java/eclipse/scripts/pre-patch,v 1.1 2005/07/31 05:26:15 nork Exp $
+
+copy_file()
+{
+ srcfile="$1"
+ dstfile="$2"
+
+ rm -f $dstfile
+ cat "$srcfile" | sed 's/linux/freebsd/g; s/Linux/FreeBSD/g; s/x86_64/amd64/g' > "$dstfile"
+}
+
+copy_dir()
+{
+ srcdir="$1"
+ dstdir="$2"
+
+ rm -rf "$dstdir"
+ cp -r "$srcdir" "$dstdir" || exit 1
+
+ if [ -d "$dstdir" ]
+ then
+ find "$dstdir" -name \*.so -delete
+ find "$dstdir" -name \*.so.\* -delete
+ find "$dstdir" -type f -print0 | \
+ xargs -0 sed -i '.bak' 's/linux/freebsd/g; s/Linux/FreeBSD/g; s/x86_64/amd64/g'
+ find "$dstdir" -name \*.bak -delete
+ fi
+}
+
+prepare_files()
+{
+ mkdir ${WRKSRC}/features/org.eclipse.platform.launchers/bin/gtk/freebsd
+
+ # Copy the files and rename/change them appropriately
+ for src in $COPY_LIST
+ do
+ dst=`echo $src | sed 's/linux/freebsd/g; s/Linux/FreeBSD/g; s/x86_64/amd64/g'`
+ echo Copying $src into $dst
+ if [ -d ${WRKSRC}/$src ]
+ then
+ copy_dir ${WRKSRC}/$src ${WRKSRC}/$dst
+ else
+ copy_file ${WRKSRC}/$src ${WRKSRC}/$dst
+ fi
+ done
+
+ # Files with spaces in their path...
+ src="${SWTGTK}/make_linux.mak"
+ dst=`echo $src | sed 's/linux/freebsd/g; s/Linux/FreeBSD/g; s/x86_64/amd64/g'`
+ echo Copying $src into $dst
+ copy_file "${WRKSRC}/$src" "${WRKSRC}/$dst"
+
+ src="${SWTMOTIF}/make_linux.mak"
+ dst=`echo $src | sed 's/linux/freebsd/g; s/Linux/FreeBSD/g; s/x86_64/amd64/g'`
+ echo Copying $src into $dst
+ copy_file "${WRKSRC}/$src" "${WRKSRC}/$dst"
+
+ find ${WRKSRC} -name \*.so -delete
+ find ${WRKSRC} -name \*.so.\* -delete
+}
+
+COPY_LIST="
+assemble.org.eclipse.sdk.linux.gtk.x86.xml
+assemble.org.eclipse.sdk.linux.gtk.x86_64.xml
+assemble.org.eclipse.sdk.linux.motif.x86.xml
+features/org.eclipse.platform/about_files/linux.gtk.x86
+features/org.eclipse.platform/about_files/linux.gtk.x86_64
+features/org.eclipse.platform/about_files/linux.motif.x86
+features/org.eclipse.platform.launchers/bin/gtk/linux/x86
+features/org.eclipse.platform.launchers/bin/gtk/linux/x86_64
+features/org.eclipse.platform.launchers/bin/motif/linux
+features/org.eclipse.platform.launchers/library/gtk/make_linux.mak
+features/org.eclipse.platform.launchers/library/motif/make_linux.mak
+plugins/org.eclipse.core.resources.linux
+plugins/org.eclipse.core.resources.linux/os/linux
+plugins/org.eclipse.core.resources.linux/os/linux/x86
+plugins/org.eclipse.core.resources.linux/os/linux/x86_64
+plugins/org.eclipse.jdt.source.linux.gtk.x86
+plugins/org.eclipse.jdt.source.linux.gtk.x86_64
+plugins/org.eclipse.jdt.source.linux.motif.x86
+plugins/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_linux.properties
+plugins/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_linux_gtk.properties
+plugins/org.eclipse.pde.source.linux.gtk.x86
+plugins/org.eclipse.pde.source.linux.gtk.x86_64
+plugins/org.eclipse.pde.source.linux.motif.x86
+plugins/org.eclipse.platform.source.linux.gtk.x86
+plugins/org.eclipse.platform.source.linux.gtk.x86_64
+plugins/org.eclipse.platform.source.linux.motif.x86
+plugins/org.eclipse.rcp.source.linux.gtk.x86
+plugins/org.eclipse.rcp.source.linux.gtk.x86_64
+plugins/org.eclipse.rcp.source.linux.motif.x86
+plugins/org.eclipse.swt.gtk.linux.x86
+plugins/org.eclipse.swt.gtk.linux.x86_64
+plugins/org.eclipse.swt.motif.linux.x86
+plugins/org.eclipse.update.core.linux
+plugins/org.eclipse.update.core.linux/os/linux
+"
+
+SWTGTK="plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library"
+SWTMOTIF="plugins/org.eclipse.swt/Eclipse SWT PI/motif/library"
+
+prepare_files
+exit 0