views:

200

answers:

3

Using D1 with phobos

I have a text entry field, instance of gtk.Entry.Entry,

calling setText("") raises a run time error

Gtk-CRITICAL **: gtk_entry_set_text: assertion `text != NULL' failed

Why? It seems to be a problem with D, I tried this:

string empty = "";
assert (empty != null);
my_entry.setText(empty)

The program terminated as the assertion failed.

How can I work around this?

+3  A: 

I don't think D really differentiates between "empty string" and "null string". A cheap workaround would be setText(" ").

[edit] Nevermind that. It's a bug in gtkD. in trunk/src/glib/Str.d (thanks wm4 for finding it), change line 147 to return ""; (remove the .dup).

FeepingCreature
+1  A: 

I used "\0" and it seemed to work,

I don't know if any invisible character got into the text field, but this is based on the assumption that an empty string in C is just \0

hasen j
+2  A: 

You should write assert(empty !is null) instead of assert(empty != null)

stanleyxu2005