glib r7836 - trunk/gio
- From: ryanl svn gnome org
- To: svn-commits-list gnome org
- Subject: glib r7836 - trunk/gio
- Date: Thu, 29 Jan 2009 15:55:11 +0000 (UTC)
Author: ryanl
Date: Thu Jan 29 15:55:11 2009
New Revision: 7836
URL: http://svn.gnome.org/viewvc/glib?rev=7836&view=rev
Log:
2009-01-29 Ryan Lortie <desrt desrt ca>
* gioerror.c (g_io_error_from_errno): handle all possible cases of
EAGAIN and EWOULDBLOCK being (un)defined and (un)equal.
Modified:
trunk/gio/ChangeLog
trunk/gio/gioerror.c
Modified: trunk/gio/gioerror.c
==============================================================================
--- trunk/gio/gioerror.c (original)
+++ trunk/gio/gioerror.c Thu Jan 29 15:55:11 2009
@@ -162,10 +162,30 @@
break;
#endif
-#ifdef EWOULDBLOCK
+/* some magic to deal with EWOULDBLOCK and EAGAIN.
+ * apparently on HP-UX these are actually defined to different values,
+ * but on Linux, for example, they are the same.
+ */
+#if defined(EWOULDBLOCK) && defined(EAGAIN) && EWOULDBLOCK == EAGAIN
+ /* we have both and they are the same: only emit one case. */
+ case EAGAIN:
+ return G_IO_ERROR_WOULD_BLOCK;
+ break;
+#else
+ /* else: consider each of them separately. this handles both the
+ * case of having only one and the case where they are different values.
+ */
+# ifdef EAGAIN
+ case EAGAIN:
+ return G_IO_ERROR_WOULD_BLOCK;
+ break;
+# endif
+
+# ifdef EWOULDBLOCK
case EWOULDBLOCK:
return G_IO_ERROR_WOULD_BLOCK;
break;
+# endif
#endif
#ifdef EMFILE
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]