Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In D, how to pass an empty string? (to gtkD)

Tags:

string

gtk

d

gtkd

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?

like image 593
hasen Avatar asked May 31 '09 05:05

hasen


3 Answers

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).

like image 156
FeepingCreature Avatar answered Sep 23 '22 16:09

FeepingCreature


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

like image 22
stanleyxu2005 Avatar answered Sep 21 '22 16:09

stanleyxu2005


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

like image 35
hasen Avatar answered Sep 22 '22 16:09

hasen