March 21, 2009
If you want to contribute, please note: http://www.dsource.org/projects/dwt/wiki/Contribution

Get it with Mercurial (hg) Version Control software:
First get:
	hg clone http://hg.dsource.org/projects/dwt2
To get later changes from the server
	hg pull -u

To build you need "Rake", that is the Ruby make tool and is part of a standard Ruby installation. Also DMD needs to be in the path environment variable.

To build with D1+Tango, the dmd.conf/sc.ini must be setup correctly
(version=Tango,Posix, include paths, libs)
You can build all with a simple call to 'rake'. The available target can
be shown with 'rake -T'.

The repository contains the following trees:
Java stuff and helper:
	see "base"
SWT:
	org.eclipse.swt.win32.win32.x86
	org.eclipse.swt.gtk.linux.x86
Additional stuff:
	org.eclipse.*

What I already did and still doing is, i try to make the code compilable for Phobos. I do this by deactivating the tango code by 'version' and put in 'implMissing()' calls for the missing Phobos implementation. If needed i also add dummy code (like the 'return 0;' to make it compile.

public int lastIndexOf(String str, char ch, int formIndex){
    version(Tango){
        int res = tango.text.Util.locatePrior( str, ch, formIndex );
        if( res is str.length ) res = -1;
        return res;
    } else { // Phobos
        implMissing( __FILE__, __LINE__ );
        return 0;
    }
}

Now the code compiles, but it does not work. If a call to implMissing is entered, the application will be terminated.

That is where I need help. Please help me to replace the "implMissing" with the correct implementation. Highest priority has the 'base' tree and within this tree, the places where a tango implementation exists, but none for Phobos. Places where also is no Tango implementation can be ignored.

Code changes can be committed locally (hg ci) and packed into bundle
files (hg bundle). Then the bundle file can be sent to me by email
(keinfarbton@googlemail.com). After reviewing i will add the change to
the global repository and do merges if necessary.

Please reply in this thread or start a new one, if you want to start working with a file(s), so nobody else is starting the same work. On the other hand, please do also tell, if you will pause/stop working on this, so someone else can take over.

For questions and general conversation, please also try to find me in IRC (freenode, #dwt, keinfarbton).