2009-05-31 11 views
5

Utilizzando D1 con PhobosIn D, come passare una stringa vuota? (A gtkD)

Ho un campo di inserimento del testo, istanza di gtk.Entry.Entry,

chiamando setText("") solleva un errore di tempo di esecuzione

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

Perché? Sembra essere un problema con D, ho provato questo:

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

Il programma è terminato come asserzione non riuscita.

Come posso aggirare questo?

risposta

5

Non credo che D distingua realmente tra "stringa vuota" e "stringa nulla". Una soluzione alternativa sarebbe setText ("").

[modifica] Non importa quello. È un bug in gtkD. in trunk/src/glib/Str.d (grazie a wm4 per trovarlo), cambia la riga 147 per tornare ""; (rimuovere il .dup).

1

ho usato "\0" ed è sembrato funzionare,

Non so se qualsiasi carattere invisibile ottenuto nel campo di testo, ma questo si basa sul presupposto che una stringa vuota in C è solo \0

3

Si dovrebbe scrivere assert (vuoto! È null) invece di assert (vuoto! = Null)

Problemi correlati