changeset 52:fa9548cd8d89

[swt lin]
author Frank Benoit <benoit@tionex.de>
date Fri, 27 Mar 2009 20:14:07 +0100
parents c01d033c633a
children 7e78af7adab5
files org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/FileTransfer.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/HTMLTransfer.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/RTFTransfer.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/TextTransfer.d org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/c/glib_object.d
diffstat 5 files changed, 17 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/FileTransfer.d	Fri Mar 27 19:58:06 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/FileTransfer.d	Fri Mar 27 20:14:07 2009 +0100
@@ -79,7 +79,7 @@
         DND.error(DND.ERROR_INVALID_DATA);
     }
     String[] files = (cast(ArrayWrapperString2)object).array;
-    String buffer;
+    char[] buffer;
     for (int i = 0; i < files.length; i++) {
         String string = files[i];
         if (string.ptr is null) continue;
@@ -90,10 +90,10 @@
         auto uriPtr = OS.g_filename_to_uri(localePtr, null, &error);
         OS.g_free(localePtr);
         if (error !is null || uriPtr is null) continue;
-        String temp = fromStringz( uriPtr ).dup;
+        String temp = fromStringz( uriPtr )._idup();
         OS.g_free(uriPtr);
         int newLength = (i > 0) ? buffer.length+separator.length+temp.length :  temp.length;
-        String newBuffer = new char[newLength];
+        auto newBuffer = new char[newLength];
         int offset = 0;
         if (i > 0) {
             System.arraycopy(buffer, 0, newBuffer, 0, buffer.length);
@@ -126,7 +126,7 @@
  */
 public override Object nativeToJava(TransferData transferData) {
     if ( !isSupportedType(transferData) ||  transferData.pValue is null ||  transferData.length <= 0 ) return null;
-    String temp = transferData.pValue[ 0 .. transferData.length ];
+    auto temp = transferData.pValue[ 0 .. transferData.length ];
     char*[] files;
     int offset = 0;
     for (int i = 0; i < temp.length - 1; i++) {
@@ -155,7 +155,7 @@
         auto utf8Ptr = OS.g_filename_to_utf8(localePtr, -1, null, null, &error);
         OS.g_free(localePtr);
         if (error !is null || utf8Ptr is null) continue;
-        String buffer = fromStringz( utf8Ptr ).dup;
+        String buffer = fromStringz( utf8Ptr )._idup();
         OS.g_free(utf8Ptr);
         String name = buffer;
         String[] newFileNames = new String[]( fileNames.length + 1 );
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/HTMLTransfer.d	Fri Mar 27 19:58:06 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/HTMLTransfer.d	Fri Mar 27 20:14:07 2009 +0100
@@ -77,7 +77,7 @@
     if (!checkHTML(object) || !isSupportedType(transferData)) {
         DND.error(DND.ERROR_INVALID_DATA);
     }
-    String string = (cast(ArrayWrapperString)object).array;
+    String string = stringcast(object);
     char* pValue = cast(char*)OS.g_malloc(string.length);
     if (pValue is null) return;
     pValue[0 .. string.length ] = string;
@@ -102,8 +102,9 @@
     /* Ensure byteCount is a multiple of 2 bytes */
     int size = (transferData.format * transferData.length / 8) / 2 * 2;
     if (size <= 0) return null;
-    String chars = transferData.pValue[ 0 .. size ].dup;
-    return new ArrayWrapperString( chars[ 0 .. tango.text.Util.locate( chars, '\0' ) ] );
+    String chars = transferData.pValue[ 0 .. size ]._idup();
+    int end = string.indexOf('\0');
+    return new ArrayWrapperString( (end is -1 )? chars : chars[ 0 .. end ] );
 }
 protected override int[] getTypeIds() {
     return [TEXT_HTML_ID, TEXT_HTML2_ID];
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/RTFTransfer.d	Fri Mar 27 19:58:06 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/RTFTransfer.d	Fri Mar 27 20:14:07 2009 +0100
@@ -81,7 +81,7 @@
     if (!checkRTF(object) || !isSupportedType(transferData)) {
         DND.error(DND.ERROR_INVALID_DATA);
     }
-    String string = (cast(ArrayWrapperString)object).array;
+    String string = stringcast(object);
     char* pValue = cast(char*)OS.g_malloc(string.length + 1);
     if (pValue is null) return;
     pValue[ 0 .. string.length ] = string;
@@ -107,7 +107,8 @@
     int size = transferData.format * transferData.length / 8;
     if (size is 0) return null;
     char [] chars = transferData.pValue[ 0 .. size];
-    return new ArrayWrapperString( chars[ 0 .. tango.text.Util.locate( chars, '\0' ) ].dup );
+    int end = chars.indexOf( '\0' );
+    return new ArrayWrapperString( (end is -1)? chars.dup : chars[ 0 .. end ].dup );
 }
 
 protected override int[] getTypeIds() {
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/TextTransfer.d	Fri Mar 27 19:58:06 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/dnd/TextTransfer.d	Fri Mar 27 20:14:07 2009 +0100
@@ -77,7 +77,7 @@
     if (!checkText(object) || !isSupportedType(transferData)) {
         DND.error(DND.ERROR_INVALID_DATA);
     }
-    String string = (cast(ArrayWrapperString)object).array;
+    String string = stringcast(object);
     char* utf8 = toStringz(string);
     if  (transferData.type is cast(void*) COMPOUND_TEXT_ID) {
         void* encoding;
@@ -108,7 +108,7 @@
         if (string_target is  null) return;
         transferData.type = cast(void*)STRING_ID;
         transferData.format = 8;
-        transferData.length = tango.stdc.string.strlen(string_target);
+        transferData.length = OS.strlen(string_target);
         transferData.pValue = string_target;
         transferData.result = 1;
     }
@@ -128,7 +128,7 @@
     char** list;
     int count = OS.gdk_text_property_to_utf8_list(transferData.type, transferData.format, transferData.pValue, transferData.length, &list);
     if (count is 0) return null;
-    String utf8 = fromStringz( list[0] ).dup;
+    String utf8 = fromStringz( list[0] )._idup();
     OS.g_strfreev(list);
     return new ArrayWrapperString( utf8 );
 }
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/c/glib_object.d	Fri Mar 27 19:58:06 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/c/glib_object.d	Fri Mar 27 20:14:07 2009 +0100
@@ -2697,7 +2697,7 @@
 extern (C) char * function(char *)g_filename_display_name;
 extern (C) char * function(char *, char *, _GError * *)g_filename_to_uri;
 extern (C) char * function(char *, char * *, _GError * *)g_filename_from_uri;
-extern (C) char * function(char *, int, uint *, uint *, _GError * *)g_filename_from_utf8;
+extern (C) char * function(in char *, int, uint *, uint *, _GError * *)g_filename_from_utf8;
 extern (C) char * function(char *, int, uint *, uint *, _GError * *)g_filename_to_utf8;
 extern (C) char * function(char *, int, uint *, uint *, _GError * *)g_locale_from_utf8;
 extern (C) char * function(char *, int, uint *, uint *, _GError * *)g_locale_to_utf8;
@@ -5523,7 +5523,7 @@
 extern (C) char * g_filename_display_name(char *);
 extern (C) char * g_filename_to_uri(char *, char *, _GError * *);
 extern (C) char * g_filename_from_uri(char *, char * *, _GError * *);
-extern (C) char * g_filename_from_utf8(char *, int, uint *, uint *, _GError * *);
+extern (C) char * g_filename_from_utf8(in char *, int, uint *, uint *, _GError * *);
 extern (C) char * g_filename_to_utf8(char *, int, uint *, uint *, _GError * *);
 extern (C) char * g_locale_from_utf8(char *, int, uint *, uint *, _GError * *);
 extern (C) char * g_locale_to_utf8(char *, int, uint *, uint *, _GError * *);