# HG changeset patch # User Frank Benoit # Date 1205056729 -3600 # Node ID 12feeed1818340f06f4bd20f252e69c27963654c # Parent 3cb84407dc3ebbd6756f9def3b30ef8bc10230e7 Allow Label.setText with null argument. diff -r 3cb84407dc3e -r 12feeed18183 dwt/dwthelper/utils.d --- a/dwt/dwthelper/utils.d Sat Mar 08 23:00:05 2008 +0100 +++ b/dwt/dwthelper/utils.d Sun Mar 09 10:58:49 2008 +0100 @@ -320,6 +320,16 @@ return typeid(char[]).getHash(&src); } +public char* toStringzValidPtr( char[] src ){ + if( src ){ + return src.toStringz(); + } + else{ + static const char[] nullPtr = "\0"; + return nullPtr.ptr; + } +} + static char[] toHex(uint value, bool prefix = true, int radix = 8){ return tango.text.convert.Integer.toString( value, diff -r 3cb84407dc3e -r 12feeed18183 dwt/widgets/Label.d --- a/dwt/widgets/Label.d Sat Mar 08 23:00:05 2008 +0100 +++ b/dwt/widgets/Label.d Sun Mar 09 10:58:49 2008 +0100 @@ -21,7 +21,7 @@ import dwt.widgets.Composite; import dwt.widgets.ImageList; -import tango.stdc.stringz; +import dwt.dwthelper.utils; /** * Instances of this class represent a non-selectable @@ -567,11 +567,12 @@ */ public void setText (char[] string) { checkWidget (); - if (string is null) error (DWT.ERROR_NULL_ARGUMENT); + // DWT extension: allow null for zero length string + //if (string is null) error (DWT.ERROR_NULL_ARGUMENT); if ((style & DWT.SEPARATOR) !is 0) return; text = string; char [] chars = fixMnemonic (string); - OS.gtk_label_set_text_with_mnemonic (cast(GtkLabel*)labelHandle, toStringz(chars)); + OS.gtk_label_set_text_with_mnemonic (cast(GtkLabel*)labelHandle, chars.toStringzValidPtr()); OS.gtk_widget_hide (imageHandle); OS.gtk_widget_show (labelHandle); }