2009-05-31 8 views
5

Usando D1 con phobosEn D, ¿cómo pasar una cadena vacía? (A gtkD)

Tengo un campo de entrada de texto, instancia de gtk.Entry.Entry,

llamando setText("") plantea un error de tiempo de ejecución

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

¿Por qué? Parece ser un problema con D, intenté esto:

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

El programa terminó cuando falló la aserción.

¿Cómo puedo evitar esto?

Respuesta

5

No creo que D realmente diferencie entre "cuerda vacía" y "cuerda nula". Una solución económica sería setText ("").

[editar] No importa eso. Es un error en gtkD. en trunk/src/glib/Str.d (gracias wm4 por encontrarlo), cambie la línea 147 para devolver ""; (eliminar el .dup).

1

que utilizan "\0" y parece que ha funcionado,

No sé si cualquier carácter invisible se metió en el campo de texto, pero esto se basa en la suposición de que una cadena vacía en C es sólo \0

3

Debe escribir assert (¡vacío! Es nulo) en lugar de assert (vacío! = Nulo)

Cuestiones relacionadas