On Mon, Apr 16, 2007 at 05:01:29PM -0600, Michael L Torrie wrote: > On Tue, 2007-04-17 at 08:22 +1000, Andrew Cowie wrote: > > Return type of gtk_entry_get_text() is (const gchar*), not just > > (gchar*). You discarded the const qualifier when assigning the result to > > str. > > > > Just declare str with const. > > The reason why this is important is because gtk_entry_get_text is > returning you just a pointer to a buffer inside the widget. Therefore > you should never modify it. If you do, you run the risk of crashing the > program. That's why the return type is const and the compiler gives you > a warning. > > If you want to do something to the string you need to copy it with > g_strdup, remembering to free your copy when you are done. > > Michael Then it should be like this? void edit_changed (GtkWidget *widget, gpointer *data) { const gchar *str; gchar *strcopy; str = gtk_entry_get_text (GTK_ENTRY (widget)); strcopy = g_strdup(str); g_print ("Entry changed to %s\n", strcopy); free(strcopy); } I'm no whiz with C itself and have never used strdup. IIUC, the template is as above, replacing the g_print with whatever is to be done with the copied string. Is that correct? If not, what don't I understand here? Thanks, Bill Tallman _______________________________________________ gtk-list mailing list gtk-list@xxxxxxxxx http://mail.gnome.org/mailman/listinfo/gtk-list