Originariamente inviato da oregon
Hai individuato la linea che causa il segmentation fault?
Tra l'altro, manca la free per la malloc ... (non e' la causa del problema ma puo' essere fonte di altri problemi)
penso che sia la scrittura sul file che mi sono accorto di non aver postato e la free l'ho messa stamani
codice:
static void file_ok_sel_s( GtkWidget *w,
GtkFileSelection *fs
)
{
f = fopen((char*)gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)),"w");
g_print("file saved");
gtk_widget_destroy(GTK_WIDGET(fs));
GtkTextBuffer* buff;
buff = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textView));
GtkTextIter *end, *start;
gtk_text_buffer_get_start_iter(buff,start);
gtk_text_buffer_get_end_iter(buff,end);
fprintf(f,"%s",(char*)gtk_text_buffer_get_text(buff,start,end,FALSE));
}
...
static void save_event(GtkWidget *w){
GtkTextBuffer* buff = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textView));
if(f!=NULL){
GtkTextIter *end, *start;
gtk_text_buffer_get_start_iter(buff,start);
gtk_text_buffer_get_end_iter(buff,end);
fprintf(f,"%s",(char*)gtk_text_buffer_get_text(buff,start,end,FALSE));
}else{
GtkWidget *fs;
fs = gtk_file_selection_new ("File selection");
gtk_widget_show (fs);
g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (fs)->ok_button),
"clicked", G_CALLBACK (file_ok_sel_s), (gpointer) fs);
g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (fs)->cancel_button),
"clicked", G_CALLBACK (cancel_option), (gpointer) fs);
}
}