Revision: 792 http://svn.sourceforge.net/geany/?rev=792&view=rev Author: eht16 Date: 2006-09-05 11:33:48 -0700 (Tue, 05 Sep 2006)
Log Message: ----------- Don't quit when an error occurs while saving changed files.
Modified Paths: -------------- trunk/ChangeLog trunk/src/dialogs.c trunk/src/document.c trunk/src/document.h
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2006-09-05 16:55:40 UTC (rev 791) +++ trunk/ChangeLog 2006-09-05 18:33:48 UTC (rev 792) @@ -2,6 +2,8 @@
* src/templates.c, src/document.c, src/filetypes.c: Added new file template for filetype HTML. + * src/document.c, src/dialogs.c: + Don't quit when an error occurs while saving changed files.
2006-09-05 Nick Treleaven nick.treleaven@btinternet.com
Modified: trunk/src/dialogs.c =================================================================== --- trunk/src/dialogs.c 2006-09-05 16:55:40 UTC (rev 791) +++ trunk/src/dialogs.c 2006-09-05 18:33:48 UTC (rev 792) @@ -313,10 +313,13 @@ case GTK_RESPONSE_YES: { if (doc_list[idx].file_name == NULL) + { dialogs_show_save_as(); + ret = TRUE; + } else - document_save_file(idx, FALSE); - ret = TRUE; + // document_save_file() returns the status if the file could be saved + ret = document_save_file(idx, FALSE); break; } case GTK_RESPONSE_NO: ret = TRUE; break;
Modified: trunk/src/document.c =================================================================== --- trunk/src/document.c 2006-09-05 16:55:40 UTC (rev 791) +++ trunk/src/document.c 2006-09-05 18:33:48 UTC (rev 792) @@ -676,22 +676,23 @@
/* This saves the file. - * When force is set then it is always saved, even if it is unchanged(useful when using Save As) */ -void document_save_file(gint idx, gboolean force) + * When force is set then it is always saved, even if it is unchanged(useful when using Save As) + * It returns whether the file could be saved or not. */ +gboolean document_save_file(gint idx, gboolean force) { gchar *data; FILE *fp; gint bytes_written, len; gchar *locale_filename = NULL;
- if (idx == -1) return; - if (! force && ! doc_list[idx].changed) return; + if (idx == -1) return FALSE; + if (! force && ! doc_list[idx].changed) return FALSE;
if (doc_list[idx].file_name == NULL) { msgwin_status_add(_("Error saving file.")); utils_beep(); - return; + return FALSE; }
// replaces tabs by spaces @@ -739,7 +740,7 @@ geany_debug("encoding error: %s)", conv_error->message); g_error_free(conv_error); g_free(data); - return; + return FALSE; } else { @@ -760,7 +761,7 @@ msgwin_status_add(_("Error saving file (%s)."), strerror(errno)); utils_beep(); g_free(data); - return; + return FALSE; } bytes_written = fwrite(data, sizeof (gchar), len, fp); fclose (fp); @@ -771,7 +772,7 @@ { msgwin_status_add(_("Error saving file.")); utils_beep(); - return; + return FALSE; }
// ignore the following things if we are quitting @@ -803,6 +804,7 @@ #endif
} + return TRUE; }
Modified: trunk/src/document.h =================================================================== --- trunk/src/document.h 2006-09-05 16:55:40 UTC (rev 791) +++ trunk/src/document.h 2006-09-05 18:33:48 UTC (rev 792) @@ -138,8 +138,9 @@
/* This saves the file. - * When force is set then it is always saved, even if it is unchanged(useful when using Save As) */ -void document_save_file(gint, gboolean force); + * When force is set then it is always saved, even if it is unchanged(useful when using Save As) + * It returns whether the file could be saved or not. */ +gboolean document_save_file(gint idx, gboolean force);
/* special search function, used from the find entry in the toolbar */ void document_find_next(gint, const gchar*, gint, gboolean, gboolean);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.