changeset 26:f589fc20a5f9

work on linux phobos
author Frank Benoit <benoit@tionex.de>
date Sat, 21 Mar 2009 11:22:55 +0100
parents f713da8bc051
children 1bf55a6eb092
files java/src/java/lang/exceptions.d java/src/java/mangoicu/ICU.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/SWT.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/SWTError.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/SWTException.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/accessibility/AccessibleControlEvent.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/accessibility/AccessibleEvent.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/accessibility/AccessibleFactory.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/accessibility/AccessibleObject.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/accessibility/AccessibleTextEvent.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/Download.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/Download_1_8.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/LocationEvent.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/Mozilla.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/ProgressEvent.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/PromptService2.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/StatusTextEvent.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/TitleEvent.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/WindowEvent.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/custom/CCombo.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/custom/StyleRange.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/KeyEvent.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/MenuDetectEvent.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/MouseEvent.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/PaintEvent.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/SelectionEvent.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/ShellEvent.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/TraverseEvent.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/TypedEvent.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/VerifyEvent.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Color.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Cursor.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/DeviceData.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Font.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/FontData.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/FontMetrics.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/GC.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/GlyphMetrics.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Image.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/ImageLoaderEvent.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Path.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Pattern.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Point.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/RGB.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Rectangle.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Region.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/TextLayout.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/TextStyle.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Transform.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/Compatibility.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/Library.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/Lock.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/c/gtk.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/c/gtk_unix_print_2_0.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/cairo/Cairo.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/gtk/OS.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/image/PngChunk.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/image/PngIhdrChunk.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/image/PngPlteChunk.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/layout/FormAttachment.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/printing/PrinterData.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/program/Program.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/widgets/DateTime.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/widgets/Event.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/widgets/Monitor.d
diffstat 65 files changed, 269 insertions(+), 204 deletions(-) [+]
line wrap: on
line diff
--- a/java/src/java/lang/exceptions.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/java/src/java/lang/exceptions.d	Sat Mar 21 11:22:55 2009 +0100
@@ -17,6 +17,12 @@
     static import core.exception;
     public alias core.exception.RangeError ArrayIndexOutOfBoundsException;
 
+    class PlatformException : Exception {
+        this( String e = null ){
+            super(e);
+        }
+    }
+
     class IllegalArgumentException : Exception {
         this( String e = null ){
             super(e);
--- a/java/src/java/mangoicu/ICU.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/java/src/java/mangoicu/ICU.d	Sat Mar 21 11:22:55 2009 +0100
@@ -419,7 +419,7 @@
 
                         foreach (Bind b; targets)
                         {
-                                char[] name = b.name ~ ICUSig;
+                                char[] name = cast(char[])(b.name ~ ICUSig);
 
                                 *b.fnc = dlsym (lib, name.ptr);
                                 if (*b.fnc)
@@ -427,7 +427,7 @@
                                 else {
                                         // errorInfo = ICU.toArray(dlerror());
                                         // printf("%s", dlerror());
-                                        throw new Exception ("required " ~ name ~ " in library " ~ library);
+                                        throw new Exception (cast(String)("required " ~ name ~ " in library " ~ library));
                                 }
                         }
                         return lib;
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/SWT.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/SWT.d	Sat Mar 21 11:22:55 2009 +0100
@@ -21,7 +21,11 @@
 
 import java.lang.all;
 
-import tango.core.Exception;
+version(Tango){
+    import tango.core.Exception;
+} else { // Phobos
+}
+
 version( build ){
 pragma(link, "gtk-x11-2.0" );
 pragma(link, "gdk-x11-2.0" );
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/SWTError.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/SWTError.d	Sat Mar 21 11:22:55 2009 +0100
@@ -16,7 +16,6 @@
 
 import org.eclipse.swt.SWT;
 
-import tango.core.Exception;
 
 /**
  * This error is thrown whenever an unrecoverable error
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/SWTException.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/SWTException.d	Sat Mar 21 11:22:55 2009 +0100
@@ -16,7 +16,10 @@
 
 import org.eclipse.swt.SWT;
 
-import tango.core.Exception;
+version(Tango){
+    import tango.core.Exception;
+} else { // Phobos
+}
 
 /**
  * This runtime exception is thrown whenever a recoverable error
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/accessibility/AccessibleControlEvent.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/accessibility/AccessibleControlEvent.d	Sat Mar 21 11:22:55 2009 +0100
@@ -17,7 +17,6 @@
 import org.eclipse.swt.accessibility.Accessible;
 
 import org.eclipse.swt.internal.SWTEventObject;
-import tango.text.convert.Format;
 
 /**
  * Instances of this class are sent as a result of
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/accessibility/AccessibleEvent.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/accessibility/AccessibleEvent.d	Sat Mar 21 11:22:55 2009 +0100
@@ -16,7 +16,6 @@
 
 
 import org.eclipse.swt.internal.SWTEventObject;
-import tango.text.convert.Format;
 
 /**
  * Instances of this class are sent as a result of
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/accessibility/AccessibleFactory.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/accessibility/AccessibleFactory.d	Sat Mar 21 11:22:55 2009 +0100
@@ -95,7 +95,7 @@
 
     private this (int /*long*/ widgetType) {
         widgetTypeName = OS.g_type_name (widgetType);
-        String factoryName = FACTORY_TYPENAME ~ fromStringz( widgetTypeName ) ~ \0;
+        String factoryName = FACTORY_TYPENAME ~ fromStringz( widgetTypeName ) ~ '\0';
         if (OS.g_type_from_name (factoryName.ptr) is 0) {
             /* register the factory */
             auto registry = ATK.atk_get_default_registry ();
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/accessibility/AccessibleObject.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/accessibility/AccessibleObject.d	Sat Mar 21 11:22:55 2009 +0100
@@ -106,7 +106,7 @@
         }
         if (event.result is null) return parentResult;
         if (keybindingPtr !is null ) OS.g_free (keybindingPtr.ptr);
-        String name = event.result.dup ~ \0;
+        String name = event.result.dup ~ '\0';
         char* p = cast(char*) OS.g_malloc (name.length);
         keybindingPtr =  p ? p[ 0 .. name.length ] : null;
         return keybindingPtr.ptr;
@@ -139,7 +139,7 @@
         if (event.result is null) return parentResult;
         if (actionNamePtr !is null) OS.g_free (actionNamePtr.ptr);
 
-        String name = event.result.dup ~ \0;
+        String name = event.result.dup ~ '\0';
         auto p = cast(char*)OS.g_malloc (name.length);
         actionNamePtr =  p ? p[ 0 .. name.length ] : null;
         return actionNamePtr.ptr;
@@ -364,7 +364,7 @@
         if (event.result is null) return parentResult;
         if (descriptionPtr !is null) OS.g_free (descriptionPtr.ptr);
 
-        String name = event.result.dup ~ \0;
+        String name = event.result.dup ~ '\0';
         char* p = cast(char*)OS.g_malloc (name.length);
         descriptionPtr =  p ? p[ 0 .. name.length ] : null;
         return descriptionPtr.ptr;  }
@@ -391,7 +391,7 @@
         }
         if (event.result is null) return parentResult;
         if (namePtr !is null) OS.g_free (namePtr.ptr);
-        String name = event.result.dup ~ \0;
+        String name = event.result.dup ~ '\0';
         char* p = cast(char*)OS.g_malloc (name.length);
         namePtr =  p ? p[ 0 .. name.length ] : null;
         return namePtr.ptr;
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/accessibility/AccessibleTextEvent.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/accessibility/AccessibleTextEvent.d	Sat Mar 21 11:22:55 2009 +0100
@@ -16,7 +16,6 @@
 
 
 import org.eclipse.swt.internal.SWTEventObject;
-import tango.text.convert.Format;
 
 /**
  * Instances of this class are sent as a result of
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/Download.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/Download.d	Sat Mar 21 11:22:55 2009 +0100
@@ -13,7 +13,6 @@
 module org.eclipse.swt.browser.Download;
 
 import Util = tango.text.Util;
-import tango.text.convert.Format;
 import java.lang.all;
 
 import org.eclipse.swt.SWT;
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/Download_1_8.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/Download_1_8.d	Sat Mar 21 11:22:55 2009 +0100
@@ -13,7 +13,6 @@
 module org.eclipse.swt.browser.Download_1_8;
 
 import java.lang.all;
-import tango.text.convert.Format;
 
 import org.eclipse.swt.SWT;
 
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/LocationEvent.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/LocationEvent.d	Sat Mar 21 11:22:55 2009 +0100
@@ -12,7 +12,6 @@
  *******************************************************************************/
 module org.eclipse.swt.browser.LocationEvent;
 
-import tango.text.convert.Format;
 
 import org.eclipse.swt.events.TypedEvent;
 import org.eclipse.swt.widgets.Widget;
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/Mozilla.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/Mozilla.d	Sat Mar 21 11:22:55 2009 +0100
@@ -15,7 +15,6 @@
 import java.lang.all;
 
 import tango.text.locale.Core;
-import tango.text.convert.Format;
 import tango.io.Console;
 import tango.sys.Environment;
 import tango.stdc.string;
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/ProgressEvent.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/ProgressEvent.d	Sat Mar 21 11:22:55 2009 +0100
@@ -12,7 +12,6 @@
  *******************************************************************************/
 module org.eclipse.swt.browser.ProgressEvent;
 
-import tango.text.convert.Format;
 
 import java.lang.all;
 
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/PromptService2.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/PromptService2.d	Sat Mar 21 11:22:55 2009 +0100
@@ -13,7 +13,6 @@
 module org.eclipse.swt.browser.PromptService2;
 
 import tango.stdc.stdlib;
-import tango.text.convert.Format;
 
 import java.lang.all;
 
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/StatusTextEvent.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/StatusTextEvent.d	Sat Mar 21 11:22:55 2009 +0100
@@ -12,7 +12,6 @@
  *******************************************************************************/
 module org.eclipse.swt.browser.StatusTextEvent;
 
-import tango.text.convert.Format;
 
 import java.lang.all;
 
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/TitleEvent.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/TitleEvent.d	Sat Mar 21 11:22:55 2009 +0100
@@ -12,7 +12,6 @@
  *******************************************************************************/
 module org.eclipse.swt.browser.TitleEvent;
 
-import tango.text.convert.Format;
 
 import java.lang.all;
 
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/WindowEvent.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/browser/WindowEvent.d	Sat Mar 21 11:22:55 2009 +0100
@@ -12,7 +12,6 @@
  *******************************************************************************/
 module org.eclipse.swt.browser.WindowEvent;
 
-import tango.text.convert.Format;
 
 import java.lang.all;
 
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/custom/CCombo.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/custom/CCombo.d	Sat Mar 21 11:22:55 2009 +0100
@@ -49,7 +49,6 @@
 
 static import tango.text.convert.Utf;
 static import tango.text.Unicode;
-static import tango.text.convert.Format;
 import java.lang.all;
 
 /**
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/custom/StyleRange.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/custom/StyleRange.d	Sat Mar 21 11:22:55 2009 +0100
@@ -123,7 +123,7 @@
  *
  * @see #hashCode()
  */
-public override int opEquals(Object object) {
+public override equals_t opEquals(Object object) {
     if (object is this) return true;
     if (auto style = cast(StyleRange) object ) {
         if (start !is style.start) return false;
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/KeyEvent.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/KeyEvent.d	Sat Mar 21 11:22:55 2009 +0100
@@ -16,7 +16,6 @@
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.events.TypedEvent;
 
-import tango.text.convert.Format;
 import java.lang.all;
 
 /**
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/MenuDetectEvent.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/MenuDetectEvent.d	Sat Mar 21 11:22:55 2009 +0100
@@ -16,7 +16,6 @@
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.events.TypedEvent;
 
-import tango.text.convert.Format;
 import java.lang.all;
 
 /**
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/MouseEvent.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/MouseEvent.d	Sat Mar 21 11:22:55 2009 +0100
@@ -16,7 +16,6 @@
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.events.TypedEvent;
 
-import tango.text.convert.Format;
 import java.lang.all;
 
 /**
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/PaintEvent.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/PaintEvent.d	Sat Mar 21 11:22:55 2009 +0100
@@ -18,7 +18,6 @@
 
 import org.eclipse.swt.events.TypedEvent;
 
-import tango.text.convert.Format;
 import java.lang.all;
 
 /**
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/SelectionEvent.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/SelectionEvent.d	Sat Mar 21 11:22:55 2009 +0100
@@ -17,7 +17,6 @@
 import org.eclipse.swt.widgets.Widget;
 import org.eclipse.swt.events.TypedEvent;
 
-import tango.text.convert.Format;
 import java.lang.all;
 
 /**
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/ShellEvent.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/ShellEvent.d	Sat Mar 21 11:22:55 2009 +0100
@@ -16,7 +16,6 @@
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.events.TypedEvent;
 
-import tango.text.convert.Format;
 import java.lang.all;
 
 /**
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/TraverseEvent.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/TraverseEvent.d	Sat Mar 21 11:22:55 2009 +0100
@@ -16,7 +16,6 @@
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.events.KeyEvent;
 
-import tango.text.convert.Format;
 import java.lang.all;
 
 /**
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/TypedEvent.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/TypedEvent.d	Sat Mar 21 11:22:55 2009 +0100
@@ -18,7 +18,6 @@
 import org.eclipse.swt.widgets.Widget;
 import org.eclipse.swt.internal.SWTEventObject;
 
-import tango.text.convert.Format;
 import tango.text.Util : split;
 import java.lang.all;
 
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/VerifyEvent.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/events/VerifyEvent.d	Sat Mar 21 11:22:55 2009 +0100
@@ -16,7 +16,6 @@
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.events.KeyEvent;
 
-import tango.text.convert.Format;
 import java.lang.all;
 
 /**
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Color.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Color.d	Sat Mar 21 11:22:55 2009 +0100
@@ -21,7 +21,6 @@
 import org.eclipse.swt.graphics.RGB;
 import org.eclipse.swt.graphics.Device;
 
-import tango.text.convert.Format;
 
 
 /**
@@ -141,7 +140,7 @@
  *
  * @see #hashCode
  */
-public override int opEquals(Object object) {
+public override equals_t opEquals(Object object) {
     if (object is this) return true;
     if ( auto color = cast(Color)object ){
         GdkColor* gdkColor = color.handle;
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Cursor.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Cursor.d	Sat Mar 21 11:22:55 2009 +0100
@@ -24,7 +24,6 @@
 
 import org.eclipse.swt.internal.gtk.OS;
 
-import tango.text.convert.Format;
 import tango.stdc.string;
 
 /**
@@ -470,7 +469,7 @@
  *
  * @see #hashCode
  */
-public override int opEquals(Object object) {
+public override equals_t opEquals(Object object) {
     if (object is this) return true;
     if ( auto cursor = cast(Cursor)object ){
         return device is cursor.device && handle is cursor.handle;
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/DeviceData.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/DeviceData.d	Sat Mar 21 11:22:55 2009 +0100
@@ -14,7 +14,10 @@
 
 import java.lang.all;
 
-import tango.core.Exception;
+version(Tango){
+    //import tango.core.Exception;
+} else { // Phobos
+}
 
 public class DeviceData {
     /*
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Font.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Font.d	Sat Mar 21 11:22:55 2009 +0100
@@ -22,7 +22,6 @@
 import org.eclipse.swt.internal.Converter;
 import org.eclipse.swt.internal.gtk.OS;
 
-import tango.text.convert.Format;
 
 /**
  * Instances of this class manage operating system resources that
@@ -168,7 +167,7 @@
  *
  * @see #hashCode
  */
-public override int opEquals(Object object) {
+public override equals_t opEquals(Object object) {
     if (object is this) return true;
     if ( auto font = cast(Font)object ){
        return handle is font.handle;
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/FontData.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/FontData.d	Sat Mar 21 11:22:55 2009 +0100
@@ -12,13 +12,15 @@
  *******************************************************************************/
 module org.eclipse.swt.graphics.FontData;
 
+import java.lang.all;
 
 import org.eclipse.swt.SWT;
 
-import tango.text.convert.Format;
-import tango.text.Util : locate;
-import tango.util.Convert;
-import java.lang.all;
+version(Tango){
+    import tango.util.Convert;
+} else { // Phobos
+    import std.conv;
+}
 
 /**
  * Instances of this class describe operating system fonts.
@@ -128,8 +130,8 @@
 public this(String str) {
     if (str is null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
     int start = 0;
-    int end = locate( str, '|' );
-    if (end is str.length ) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
+    int end = indexOf( str, '|' );
+    if (end is -1 ) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
     String version1 = str[ start .. end ];
     try {
         if (to!(int)(version1) !is 1) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
@@ -138,13 +140,13 @@
     }
 
     start = end + 1;
-    end = locate( str, '|', start );
-    if (end is str.length ) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
+    end = indexOf( str, '|', start );
+    if (end is -1 ) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
     String name = str[start .. end ];
 
     start = end + 1;
-    end = locate( str, '|', start );
-    if (end is str.length ) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
+    end = indexOf( str, '|', start );
+    if (end is -1 ) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
     float height = 0;
     try {
         height = to!(float)(str[start .. end]);
@@ -153,8 +155,8 @@
     }
 
     start = end + 1;
-    end = locate( str, '|', start );
-    if (end is str.length ) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
+    end = indexOf( str, '|', start );
+    if (end is -1 ) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
     int style = 0;
     try {
         style = to!(int)( str[start .. end ]);
@@ -163,16 +165,16 @@
     }
 
     start = end + 1;
-    end = locate( str, '|', start );
+    end = indexOf( str, '|', start );
     setName(name);
     setHeight(height);
     setStyle(style);
-    if (end is str.length) return;
+    if (end is -1) return;
     String platform = str[ start .. end ];
 
     start = end + 1;
-    end = locate( str, '|', start );
-    if (end is str.length) return;
+    end = indexOf( str, '|', start );
+    if (end is -1) return;
     String version2 = str[ start .. end ];
 
     if (platform.equals("GTK") && version2.equals("1")) {
@@ -216,7 +218,7 @@
  *
  * @see #hashCode
  */
-public override int opEquals (Object object) {
+public override equals_t opEquals (Object object) {
     if (object is this) return true;
     if( auto data = cast(FontData)object ){
         return name.equals(data.name) && height is data.height && style is data.style;
@@ -370,12 +372,12 @@
         int length = locale.length;
         int firstSep, secondSep;
 
-        firstSep = locate( locale, sep );
-        if (firstSep is locale.length) {
+        firstSep = indexOf( locale, sep );
+        if (firstSep is -1 ) {
             firstSep = secondSep = length;
         } else {
-            secondSep = locate( locale, sep, firstSep + 1);
-            if (secondSep is locale.length) secondSep = length;
+            secondSep = indexOf( locale, sep, firstSep + 1);
+            if (secondSep is -1 ) secondSep = length;
         }
         if (firstSep > 0) lang = locale[0 .. firstSep];
         if (secondSep > firstSep + 1) country = locale[firstSep + 1 .. secondSep ];
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/FontMetrics.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/FontMetrics.d	Sat Mar 21 11:22:55 2009 +0100
@@ -41,7 +41,7 @@
  *
  * @see #hashCode
  */
-public override int opEquals (Object object) {
+public override equals_t opEquals (Object object) {
     if (object is this) return true;
     if( auto metrics = cast(FontMetrics)object ){
         return ascent is metrics.ascent && descent is metrics.descent &&
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/GC.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/GC.d	Sat Mar 21 11:22:55 2009 +0100
@@ -43,8 +43,11 @@
 import org.eclipse.swt.internal.Compatibility;
 import java.lang.all;
 
-import tango.text.convert.Format;
-import tango.stdc.string;
+version(Tango){
+    import tango.stdc.string;
+} else {
+    import std.c.string;
+}
 
 
 /**
@@ -1711,7 +1714,7 @@
  *
  * @see #hashCode
  */
-public override int opEquals(Object object) {
+public override equals_t opEquals(Object object) {
     if (object is this) return true;
     if ( auto gc = cast(GC)object){
        return handle is gc.handle;
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/GlyphMetrics.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/GlyphMetrics.d	Sat Mar 21 11:22:55 2009 +0100
@@ -15,7 +15,6 @@
 import java.lang.all;
 
 import org.eclipse.swt.SWT;
-import tango.text.convert.Format;
 /**
  * Instances of this class represent glyph metrics.
  * <p>
@@ -84,7 +83,7 @@
  *
  * @see #hashCode()
  */
-public override int opEquals (Object object) {
+public override equals_t opEquals (Object object) {
     if (object is this) return true;
     if (auto metrics = cast(GlyphMetrics)object ){
        return metrics.ascent is ascent && metrics.descent is descent && metrics.width is width;
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Image.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Image.d	Sat Mar 21 11:22:55 2009 +0100
@@ -31,7 +31,6 @@
 import java.io.InputStream;
 import java.lang.all;
 
-import tango.text.convert.Format;
 import tango.stdc.string;
 
 /**
@@ -784,7 +783,7 @@
  *
  * @see #hashCode
  */
-public override int opEquals (Object object) {
+public override equals_t opEquals (Object object) {
     if (object is this) return true;
     if ( auto image = cast(Image)object ){
         return device is image.device && pixmap is image.pixmap;
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/ImageLoaderEvent.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/ImageLoaderEvent.d	Sat Mar 21 11:22:55 2009 +0100
@@ -19,7 +19,6 @@
 public import org.eclipse.swt.graphics.ImageLoader;
 public import org.eclipse.swt.graphics.ImageData;
 
-import tango.text.convert.Format;
 
 /**
  * Instances of this class are sent as a result of the incremental
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Path.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Path.d	Sat Mar 21 11:22:55 2009 +0100
@@ -23,8 +23,11 @@
 import org.eclipse.swt.graphics.PathData;
 import java.lang.all;
 
-import tango.stdc.string;
-import tango.text.convert.Format;
+version(Tango){
+    import tango.stdc.string;
+} else {
+    import std.c.string;
+}
 
 /**
  * Instances of this class represent paths through the two-dimensional
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Pattern.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Pattern.d	Sat Mar 21 11:22:55 2009 +0100
@@ -23,7 +23,6 @@
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.internal.cairo.Cairo;
 
-import tango.text.convert.Format;
 
 /**
  * Instances of this class represent patterns to use while drawing. Patterns
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Point.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Point.d	Sat Mar 21 11:22:55 2009 +0100
@@ -17,7 +17,6 @@
 
 public import org.eclipse.swt.internal.SerializableCompatibility;
 
-import tango.text.convert.Format;
 
 /**
  * Instances of this class represent places on the (x, y)
@@ -79,7 +78,7 @@
  *
  * @see #hashCode()
  */
-public override int opEquals (Object object) {
+public override equals_t opEquals (Object object) {
     if (object is this) return true;
     if ( auto p = cast(Point)object ){
         return (p.x is this.x) && (p.y is this.y);
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/RGB.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/RGB.d	Sat Mar 21 11:22:55 2009 +0100
@@ -17,7 +17,6 @@
 public import org.eclipse.swt.internal.SerializableCompatibility;
 
 import org.eclipse.swt.SWT;
-import tango.text.convert.Format;
 
 /**
  * Instances of this class are descriptions of colors in
@@ -198,7 +197,7 @@
  *
  * @see #hashCode()
  */
-public override int opEquals(Object object) {
+public override equals_t opEquals(Object object) {
     if (object is this) return true;
     if( auto rgb = cast(RGB) object ){
         return (rgb.red is this.red) && (rgb.green is this.green) && (rgb.blue is this.blue);
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Rectangle.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Rectangle.d	Sat Mar 21 11:22:55 2009 +0100
@@ -19,7 +19,6 @@
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.SWTError;
-import tango.text.convert.Format;
 
 /**
  * Instances of this class represent rectangular areas in an
@@ -157,7 +156,7 @@
  *
  * @see #hashCode()
  */
-public override int opEquals (Object object) {
+public override equals_t opEquals (Object object) {
     if (object is this) return true;
     if( auto r = cast(Rectangle) object ){
         return (r.x is this.x) && (r.y is this.y) && (r.width is this.width) && (r.height is this.height);
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Region.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Region.d	Sat Mar 21 11:22:55 2009 +0100
@@ -22,7 +22,6 @@
 import org.eclipse.swt.graphics.Device;
 import org.eclipse.swt.internal.gtk.OS;
 
-import tango.text.convert.Format;
 
 /**
  * Instances of this class represent areas of an x-y coordinate
@@ -246,7 +245,7 @@
  *
  * @see #hashCode
  */
-public override int opEquals(Object object) {
+public override equals_t opEquals(Object object) {
     if (this is object) return true;
     if ( auto region = cast(Region)object ){
         return handle is region.handle;
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/TextLayout.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/TextLayout.d	Sat Mar 21 11:22:55 2009 +0100
@@ -33,9 +33,12 @@
 import org.eclipse.swt.graphics.TextStyle;
 import java.lang.all;
 
-import tango.text.convert.Format;
-import tango.stdc.string;
-import tango.text.convert.Utf;
+version(Tango){
+    import tango.stdc.string : memmove;
+    import tango.text.convert.Utf;
+} else { // Phobos
+    import std.c.string : memmove;
+}
 
 /**
  * <code>TextLayout</code> is a graphic object that represents
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/TextStyle.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/TextStyle.d	Sat Mar 21 11:22:55 2009 +0100
@@ -205,7 +205,7 @@
  *
  * @see #hashCode()
  */
-public override int opEquals(Object object) {
+public override equals_t opEquals(Object object) {
     if (object is this) return true;
     if (object is null) return false;
     if (!(cast(TextStyle)object)) return false;
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Transform.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/graphics/Transform.d	Sat Mar 21 11:22:55 2009 +0100
@@ -20,7 +20,6 @@
 import org.eclipse.swt.graphics.Resource;
 import org.eclipse.swt.graphics.Device;
 
-import tango.text.convert.Format;
 
 /**
  * Instances of this class represent transformation matrices for
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/Compatibility.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/Compatibility.d	Sat Mar 21 11:22:55 2009 +0100
@@ -26,9 +26,11 @@
 
 import org.eclipse.swt.SWT;
 
+version(Tango){
 import Unicode = tango.text.Unicode;
 import tango.sys.Process;
-import tango.text.convert.Format;
+} else { // Phobos
+}
 
 /**
  * This class is a placeholder for utility methods commonly
@@ -225,7 +227,7 @@
  * @return true when the character is a letter
  */
 public static bool isLetter(dchar c) {
-    return Unicode.isLetter(c);
+    return Character.isLetter(c);
 }
 
 /**
@@ -235,7 +237,7 @@
  * @return true when the character is a letter or a digit
  */
 public static bool isLetterOrDigit(dchar c) {
-    return Unicode.isLetterOrDigit(c);
+    return Character.isLetterOrDigit(c);
 }
 
 /**
@@ -245,7 +247,7 @@
  * @return true when the character is a Unicode space character
  */
 public static bool isSpaceChar(dchar c) {
-    return Unicode.isSpace(c);
+    return Character.isSpace(c);
 }
 
 /**
@@ -255,7 +257,7 @@
  * @return true if the character is whitespace
  */
 public static bool isWhitespace(dchar c) {
-    return Unicode.isWhitespace(c);
+    return Character.isWhitespace(c);
 }
 
 /**
@@ -271,8 +273,12 @@
  *  if the program cannot be executed
  */
 public static void exec(String prog) {
-    auto proc = new Process( prog );
-    proc.execute;
+    version(Tango){
+        auto proc = new Process( prog );
+        proc.execute;
+    } else { // Phobos
+        implMissing( __FILE__, __LINE__ );
+    }
 }
 
 /**
@@ -288,8 +294,12 @@
  *  if the program cannot be executed
  */
 public static void exec(String[] progArray) {
-    auto proc = new Process( progArray );
-    proc.execute;
+    version(Tango){
+        auto proc = new Process( progArray );
+        proc.execute;
+    } else { // Phobos
+        implMissing( __FILE__, __LINE__ );
+    }
 }
 
 const ImportData[] SWTMessagesBundleData = [
@@ -404,15 +414,19 @@
  * @return true if the two instances of class String are equal
  */
 public static bool equalsIgnoreCase(String s1, String s2) {
-    String s1b = new char[ s1.length ];
-    String s2b = new char[ s1.length ];
-    scope(exit){
-        delete s1b;
-        delete s2b;
+    version(Tango){
+        String s1b = new char[ s1.length ];
+        String s2b = new char[ s1.length ];
+        scope(exit){
+            delete s1b;
+            delete s2b;
+        }
+        String s1c = Unicode.toFold( s1, s1b );
+        String s2c = Unicode.toFold( s2, s2b );
+        return s1c == s2c;
+    } else { // Phobos
+        return std.string.icmp( s1, s2 ) is 0;
     }
-    String s1c = Unicode.toFold( s1, s1b );
-    String s2c = Unicode.toFold( s2, s2b );
-    return s1c == s2c;
 }
 
 }
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/Library.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/Library.d	Sat Mar 21 11:22:55 2009 +0100
@@ -14,7 +14,11 @@
 
 import java.lang.all;
 
-import tango.util.Convert;
+version(Tango){
+    import tango.util.Convert;
+} else { // Phobos
+    import std.conv;
+}
 
 // do it here, so it can be evaluated at compile time
 // this saves a static ctor.
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/Lock.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/Lock.d	Sat Mar 21 11:22:55 2009 +0100
@@ -13,10 +13,13 @@
 module org.eclipse.swt.internal.Lock;
 
 import java.lang.all;
+import java.lang.Thread;
 
-import tango.core.Thread;
-import tango.core.sync.Mutex;
-import tango.core.sync.Condition;
+version(Tango){
+    import tango.core.sync.Mutex;
+    import tango.core.sync.Condition;
+} else { // Phobos
+}
 
 /**
  * Instance of this represent a recursive monitor.
@@ -24,8 +27,11 @@
 public class Lock {
     int count, waitCount;
     Thread owner;
-    Mutex mutex;
-    Condition cond;
+    version(Tango){
+        Mutex mutex;
+        Condition cond;
+    } else { // Phobos
+    }
 
     public this() {
         mutex = new Mutex;
@@ -39,21 +45,25 @@
  * @return the lock count
  */
 public int lock() {
-    synchronized (mutex) {
-        Thread current = Thread.getThis();
-        if (owner !is current) {
-            waitCount++;
-            while (count > 0) {
-                try {
-                    cond.wait();
-                } catch (SyncException e) {
-                    /* Wait forever, just like synchronized blocks */
+    version(Tango){
+        synchronized (mutex) {
+            Thread current = Thread.currentThread();
+            if (owner !is current) {
+                waitCount++;
+                while (count > 0) {
+                    try {
+                        cond.wait();
+                    } catch (SyncException e) {
+                        /* Wait forever, just like synchronized blocks */
+                    }
                 }
+                --waitCount;
+                owner = current;
             }
-            --waitCount;
-            owner = current;
+            return ++count;
         }
-        return ++count;
+    } else { // Phobos
+        implMissing( __FILE__, __LINE__ );
     }
 }
 
@@ -62,14 +72,18 @@
  * the monitor owner, do nothing.
  */
 public void unlock() {
-    synchronized (mutex) {
-        Thread current = Thread.getThis();
-        if (owner is current) {
-            if (--count is 0) {
-                owner = null;
-                if (waitCount > 0) cond.notifyAll();
+    version(Tango){
+        synchronized (mutex) {
+            Thread current = Thread.getThis();
+            if (owner is current) {
+                if (--count is 0) {
+                    owner = null;
+                    if (waitCount > 0) cond.notifyAll();
+                }
             }
         }
+    } else { // Phobos
+        implMissing( __FILE__, __LINE__ );
     }
 }
 }
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/c/gtk.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/c/gtk.d	Sat Mar 21 11:22:55 2009 +0100
@@ -17,16 +17,20 @@
 version(DYNLINK){
 
 
-extern (C) int gtk_init_check(int *, char * * *);
-extern (C) char * gtk_set_locale();
-extern (C) extern uint gtk_interface_age;
-extern (C) extern uint gtk_binary_age;
-extern (C) extern uint gtk_micro_version;
-extern (C) extern uint gtk_minor_version;
-extern (C) extern uint gtk_major_version;
+    extern (C) int gtk_init_check(int *, char * * *);
+    extern (C) char * gtk_set_locale();
+    extern (C) extern uint gtk_interface_age;
+    extern (C) extern uint gtk_binary_age;
+    extern (C) extern uint gtk_micro_version;
+    extern (C) extern uint gtk_minor_version;
+    extern (C) extern uint gtk_major_version;
 
 
-    import tango.sys.SharedLib : SharedLib;
+    version(Tango){
+        import tango.sys.SharedLib : SharedLib;
+    } else { // Phobos
+    }
+
     struct Symbol{
         String name;
         void** symbol;
@@ -35,30 +39,34 @@
 
 void loadLib(){
     version(DYNLINK){
-        String libname = "libgtk-x11-2.0.so";
+        version(Tango){
+            String libname = "libgtk-x11-2.0.so";
 
-        SharedLib lib = SharedLib.load( libname );
-        if( lib is null ){
-            lib = SharedLib.load( libname ~ ".0" );
-        }
-        int loaded;
-        if ( lib !is null ) {
-            foreach( s; symbols ){
-                try{
-                    *s.symbol = lib.getSymbol( s.name.ptr );
+            SharedLib lib = SharedLib.load( libname );
+            if( lib is null ){
+                lib = SharedLib.load( libname ~ ".0" );
+            }
+            int loaded;
+            if ( lib !is null ) {
+                foreach( s; symbols ){
+                    try{
+                        *s.symbol = lib.getSymbol( s.name.ptr );
+                    }
+                    catch(Exception e){}
+                    if( *s.symbol is null ){
+                        //getDwtLogger().trace( __FILE__, __LINE__,  "{}: Symbol '{}' not found", libname, s.name );
+                    }
+                    else{
+                        loaded++;
+                    }
                 }
-                catch(Exception e){}
-                if( *s.symbol is null ){
-                    //getDwtLogger().trace( __FILE__, __LINE__,  "{}: Symbol '{}' not found", libname, s.name );
-                }
-                else{
-                    loaded++;
-                }
+            } else {
+                getDwtLogger().trace( __FILE__, __LINE__,  "Could not load the library {}", libname );
             }
-        } else {
-            getDwtLogger().trace( __FILE__, __LINE__,  "Could not load the library {}", libname );
+            assert( gtk_check_version !is null );
+        } else { // Phobos
+            implMissing( __FILE__, __LINE__ );
         }
-        assert( gtk_check_version !is null );
     }
 }
 
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/c/gtk_unix_print_2_0.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/c/gtk_unix_print_2_0.d	Sat Mar 21 11:22:55 2009 +0100
@@ -9,7 +9,10 @@
 version=DYNLINK;
 
 version(DYNLINK){
-    import tango.sys.SharedLib : SharedLib;
+    version(Tango){
+        import tango.sys.SharedLib : SharedLib;
+    } else { // Phobos
+    }
     struct Symbol{
         String name;
         void** symbol;
@@ -18,25 +21,29 @@
 
 void loadLib(){
     version(DYNLINK){
-        String libname = "libgtk-x11-2.0.so";
+        version(Tango){
+            String libname = "libgtk-x11-2.0.so";
 
-        SharedLib lib = SharedLib.load( libname );
-        if( lib is null ){
-            lib = SharedLib.load( libname ~ ".0" );
-        }
+            SharedLib lib = SharedLib.load( libname );
+            if( lib is null ){
+                lib = SharedLib.load( libname ~ ".0" );
+            }
 
-        if ( lib !is null ) {
-            foreach( inout s; symbols ){
-                try{
-                    *s.symbol = lib.getSymbol( s.name.ptr );
+            if ( lib !is null ) {
+                foreach( inout s; symbols ){
+                    try{
+                        *s.symbol = lib.getSymbol( s.name.ptr );
+                    }
+                    catch(Exception e){}
+                    if( *s.symbol is null ){
+                        getDwtLogger().trace( __FILE__, __LINE__,  "{}: Symbol '{}' not found", libname, s.name );
+                    }
                 }
-                catch(Exception e){}
-                if( *s.symbol is null ){
-                    getDwtLogger().trace( __FILE__, __LINE__,  "{}: Symbol '{}' not found", libname, s.name );
-                }
+            } else {
+                getDwtLogger().trace( __FILE__, __LINE__,  "Could not load the library {}", libname );
             }
-        } else {
-            getDwtLogger().trace( __FILE__, __LINE__,  "Could not load the library {}", libname );
+        } else { // Phobos
+            implMissing( __FILE__, __LINE__ );
         }
     }
 }
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/cairo/Cairo.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/cairo/Cairo.d	Sat Mar 21 11:22:55 2009 +0100
@@ -32,7 +32,11 @@
 import  org.eclipse.swt.internal.c.Xlib;
 import  org.eclipse.swt.internal.Platform;
 
-import tango.core.Traits;
+version(Tango){
+    import tango.core.Traits;
+} else { // Phobos
+    import std.traits;
+}
 
 public alias org.eclipse.swt.internal.c.cairo.cairo_t cairo_t;
 public alias org.eclipse.swt.internal.c.cairo.cairo_pattern_t cairo_pattern_t;
@@ -74,13 +78,23 @@
 }
 
 template ForwardGtkCairoCFunc( alias cFunc ) {
-    alias ParameterTupleOf!(cFunc) P;
-    alias ReturnTypeOf!(cFunc) R;
-    mixin("public static R " ~ NameOfFunc!(cFunc) ~ "( P p ){
-        lock.lock();
-        scope(exit) lock.unlock();
-        return cFunc(p);
-    }");
+    version(Tango){
+        alias ParameterTupleOf!(cFunc) P;
+        alias ReturnTypeOf!(cFunc) R;
+        mixin("public static R " ~ NameOfFunc!(cFunc) ~ "( P p ){
+                lock.lock();
+                scope(exit) lock.unlock();
+                return cFunc(p);
+                }");
+    } else { // Phobos
+        alias ParameterTypeTuple!(cFunc) P;
+        alias ReturnType!(cFunc) R;
+        mixin("public static R " ~ NameOfFunc!(cFunc) ~ "( P p ){
+                lock.lock();
+                scope(exit) lock.unlock();
+                return cFunc(p);
+                }");
+    }
 }
 
 public class Cairo : Platform {
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/gtk/OS.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/gtk/OS.d	Sat Mar 21 11:22:55 2009 +0100
@@ -20,9 +20,16 @@
 import java.lang.all;
 
 import org.eclipse.swt.internal.Platform;
-import tango.core.Traits;
-import tango.stdc.locale;
-import tango.stdc.posix.stdlib : realpath;
+version(Tango){
+    import tango.core.Traits;
+    import tango.stdc.locale;
+    import tango.stdc.posix.stdlib : realpath;
+    static import tango.stdc.string;
+} else { // Phobos
+    import std.traits;
+    import core.sys.posix.stdlib : realpath;
+    static import std.c.string;
+}
 
 import  org.eclipse.swt.internal.c.gtk,
         org.eclipse.swt.internal.c.gdk,
@@ -37,7 +44,6 @@
         org.eclipse.swt.internal.c.Xrender,
         org.eclipse.swt.internal.c.glib_object;
 
-static import tango.stdc.string;
 //version=GTK_DYN_LINK;
 
 public alias org.eclipse.swt.internal.c.glib_object.GPollFD GPollFD;
@@ -634,13 +640,23 @@
 }
 
 template ForwardGtkOsCFunc( alias cFunc ) {
-    alias ParameterTupleOf!(cFunc) P;
-    alias ReturnTypeOf!(cFunc) R;
-    mixin("public static R " ~ NameOfFunc!(cFunc) ~ "( P p ){
-        lock.lock();
-        scope(exit) lock.unlock();
-        return cFunc(p);
-    }");
+    version(Tango){
+        alias ParameterTupleOf!(cFunc) P;
+        alias ReturnTypeOf!(cFunc) R;
+        mixin("public static R " ~ NameOfFunc!(cFunc) ~ "( P p ){
+                lock.lock();
+                scope(exit) lock.unlock();
+                return cFunc(p);
+                }");
+    } else { // Phobos
+        alias ParameterTypeTuple!(cFunc) P;
+        alias ReturnType!(cFunc) R;
+        mixin("public static R " ~ NameOfFunc!(cFunc) ~ "( P p ){
+                lock.lock();
+                scope(exit) lock.unlock();
+                return cFunc(p);
+                }");
+    }
 }
 /+
 // alternative template implementation, might be more stable
@@ -1027,7 +1043,7 @@
     public static const int PANGO_ATTR_FOREGROUND = 9;
     public static const int PANGO_ATTR_BACKGROUND = 10;
     public static const int PANGO_ATTR_UNDERLINE = 11;
-    public static final int PANGO_ATTR_UNDERLINE_COLOR = 18;
+    public static const int PANGO_ATTR_UNDERLINE_COLOR = 18;
     public static const int PANGO_DIRECTION_LTR = 0;
     public static const int PANGO_DIRECTION_RTL = 1;
     public static const int PANGO_SCALE = 1024;
@@ -1093,7 +1109,7 @@
     public static const char[] move_focus = "move-focus";
     public static const char[] output = "output";
     public static const char[] popup_menu = "popup-menu";
-    public static final char[] populate_popup = "populate-popup";
+    public static const char[] populate_popup = "populate-popup";
     public static const char[] preedit_changed = "preedit-changed";
     public static const char[] realize = "realize";
     public static const char[] row_activated = "row-activated";
@@ -2979,7 +2995,11 @@
     }
 
     static int strlen( char* ptr ){
-        return tango.stdc.string.strlen( ptr );
+        version(Tango){
+            return tango.stdc.string.strlen( ptr );
+        } else { // Phobos
+            return std.c.string.strlen( ptr );
+        }
     }
     //localeconv_decimal_point() localeconv()->decimal_point
 }
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/image/PngChunk.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/image/PngChunk.d	Sat Mar 21 11:22:55 2009 +0100
@@ -24,7 +24,6 @@
 import java.lang.all;
 
 import tango.core.Exception;
-import tango.text.convert.Format;
 
 class PngChunk {
     byte[] reference;
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/image/PngIhdrChunk.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/image/PngIhdrChunk.d	Sat Mar 21 11:22:55 2009 +0100
@@ -21,7 +21,6 @@
 import org.eclipse.swt.internal.image.PngFileReadState;
 import org.eclipse.swt.internal.image.PngIhdrChunk;
 import org.eclipse.swt.internal.image.PngChunk;
-import tango.text.convert.Format;
 
 class PngIhdrChunk : PngChunk {
     static const int IHDR_DATA_LENGTH = 13;
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/image/PngPlteChunk.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/image/PngPlteChunk.d	Sat Mar 21 11:22:55 2009 +0100
@@ -22,7 +22,6 @@
 import org.eclipse.swt.internal.image.PngFileReadState;
 import org.eclipse.swt.internal.image.PngIhdrChunk;
 
-import tango.text.convert.Format;
 
 class PngPlteChunk : PngChunk {
 
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/layout/FormAttachment.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/layout/FormAttachment.d	Sat Mar 21 11:22:55 2009 +0100
@@ -17,7 +17,6 @@
 import org.eclipse.swt.layout.FormLayout;
 import org.eclipse.swt.layout.FormData;
 
-import tango.text.convert.Format;
 import java.lang.all;
 
 /**
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/printing/PrinterData.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/printing/PrinterData.d	Sat Mar 21 11:22:55 2009 +0100
@@ -17,7 +17,6 @@
 
 import org.eclipse.swt.graphics.DeviceData;
 
-import tango.text.convert.Format;
 
 
 /**
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/program/Program.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/program/Program.d	Sat Mar 21 11:22:55 2009 +0100
@@ -26,7 +26,6 @@
 import tango.sys.SharedLib;
 import tango.core.Exception;
 import tango.core.Array;
-import tango.text.convert.Format;
 import tango.io.device.File;
 import tango.io.stream.Lines;
 
@@ -678,7 +677,7 @@
         program.command = buffer;
         program.gnomeExpectUri = application.expects_uris is GNOME.GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS;
 
-        buffer = fromStringz( application.id) ~ \0;
+        buffer = fromStringz( application.id) ~ '\0';
         ValueWrapperInt gnomeIconTheme = cast(ValueWrapperInt)display.getData(ICON_THEME_DATA);
         char* icon_name = GNOME.gnome_icon_lookup( cast(GtkIconTheme*) gnomeIconTheme.value, null, null, buffer.ptr, null, mimeTypeBuffer,
                 GNOME.GNOME_ICON_LOOKUP_FLAGS_NONE, null);
@@ -896,7 +895,7 @@
  *
  * @see #hashCode()
  */
-public override int opEquals(Object other) {
+public override equals_t opEquals(Object other) {
     if (this is other) return true;
     if (!(cast(Program)other)) return false;
     Program program = cast(Program)other;
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/widgets/DateTime.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/widgets/DateTime.d	Sat Mar 21 11:22:55 2009 +0100
@@ -31,7 +31,6 @@
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.swt.widgets.TypedListener;
 
-import tango.text.convert.Format;
 import tango.util.Convert;
 import java.lang.all;
 
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/widgets/Event.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/widgets/Event.d	Sat Mar 21 11:22:55 2009 +0100
@@ -18,7 +18,6 @@
 import org.eclipse.swt.widgets.Widget;
 import org.eclipse.swt.widgets.Display;
 
-import tango.text.convert.Format;
 import java.lang.all;
 
 
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/widgets/Monitor.d	Fri Mar 20 23:03:58 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/widgets/Monitor.d	Sat Mar 21 11:22:55 2009 +0100
@@ -46,7 +46,7 @@
  *
  * @see #hashCode()
  */
-public override int opEquals (Object object) {
+public override equals_t opEquals (Object object) {
     if (object is this) return true;
     if ( auto mon = cast(org.eclipse.swt.widgets.Monitor.Monitor)object ){
        return handle is mon.handle;