[glib] docs: explain inconsistency of _{read,write}_all()
- From: Ryan Lortie <desrt src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] docs: explain inconsistency of _{read,write}_all()
- Date: Tue, 21 Oct 2014 16:11:20 +0000 (UTC)
commit 223b5f757fe07cdec2879315965297a31edc3478
Author: Ryan Lortie <desrt desrt ca>
Date: Mon Sep 29 11:50:05 2014 -0400
docs: explain inconsistency of _{read,write}_all()
These functions are inconsistent with our normal conventions in that
they set an output variable to a specified value, even in the case that
an error is thrown.
Document very clearly that this should be considered exceptional.
https://bugzilla.gnome.org/show_bug.cgi?id=737451
gio/ginputstream.c | 10 ++++++++--
gio/goutputstream.c | 11 +++++++++--
2 files changed, 17 insertions(+), 4 deletions(-)
---
diff --git a/gio/ginputstream.c b/gio/ginputstream.c
index ab8ceb4..a1ba736 100644
--- a/gio/ginputstream.c
+++ b/gio/ginputstream.c
@@ -223,8 +223,14 @@ g_input_stream_read (GInputStream *stream,
* read into @buffer.
*
* If there is an error during the operation %FALSE is returned and @error
- * is set to indicate the error status, @bytes_read is updated to contain
- * the number of bytes read into @buffer before the error occurred.
+ * is set to indicate the error status.
+ *
+ * As a special exception to the normal conventions for functions that
+ * use #GError, if this function returns %FALSE (and sets @error) then
+ * @bytes_read will be set to the number of bytes that were successfully
+ * read before the error was encountered. This functionality is only
+ * available from C. If you need it from another language then you must
+ * write your own loop around g_input_stream_read().
*
* Returns: %TRUE on success, %FALSE if there was an error
**/
diff --git a/gio/goutputstream.c b/gio/goutputstream.c
index dc15ff8..2bec89e 100644
--- a/gio/goutputstream.c
+++ b/gio/goutputstream.c
@@ -246,8 +246,15 @@ g_output_stream_write (GOutputStream *stream,
* is set to @count.
*
* If there is an error during the operation %FALSE is returned and @error
- * is set to indicate the error status, @bytes_written is updated to contain
- * the number of bytes written into the stream before the error occurred.
+ * is set to indicate the error status.
+ *
+ * As a special exception to the normal conventions for functions that
+ * use #GError, if this function returns %FALSE (and sets @error) then
+ * @bytes_written will be set to the number of bytes that were
+ * successfully written before the error was encountered. This
+ * functionality is only available from C. If you need it from another
+ * language then you must write your own loop around
+ * g_output_stream_write().
*
* Returns: %TRUE on success, %FALSE if there was an error
**/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]