aboutsummaryrefslogtreecommitdiffstats
path: root/src/xgselect.c
diff options
context:
space:
mode:
authorStefan Monnier2011-03-21 12:42:16 -0400
committerStefan Monnier2011-03-21 12:42:16 -0400
commitcafdcef32d55cbb44389d7e322e7f973cbb72dfd (patch)
tree7ee0c41ea8a589650ce6f4311fb10e61a63807b9 /src/xgselect.c
parenta08a25d7aaf251aa18f2ef747be53734bc55cae9 (diff)
parent4e05e67e4cd0bc1b0a4ef3176a4d0d91c6b3738e (diff)
downloademacs-cafdcef32d55cbb44389d7e322e7f973cbb72dfd.tar.gz
emacs-cafdcef32d55cbb44389d7e322e7f973cbb72dfd.zip
Merge from trunk
Diffstat (limited to 'src/xgselect.c')
-rw-r--r--src/xgselect.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/xgselect.c b/src/xgselect.c
index 359a8fbc89b..96d763ff088 100644
--- a/src/xgselect.c
+++ b/src/xgselect.c
@@ -38,7 +38,7 @@ xg_select (int max_fds, SELECT_TYPE *rfds, SELECT_TYPE *wfds, SELECT_TYPE *efds,
38 GMainContext *context = g_main_context_default (); 38 GMainContext *context = g_main_context_default ();
39 int have_wfds = wfds != NULL; 39 int have_wfds = wfds != NULL;
40 int n_gfds = 0, our_tmo = 0, retval = 0, our_fds = 0; 40 int n_gfds = 0, our_tmo = 0, retval = 0, our_fds = 0;
41 int prio, i, nfds, tmo_in_millisec; 41 int i, nfds, tmo_in_millisec;
42 42
43 if (rfds) memcpy (&all_rfds, rfds, sizeof (all_rfds)); 43 if (rfds) memcpy (&all_rfds, rfds, sizeof (all_rfds));
44 else FD_ZERO (&all_rfds); 44 else FD_ZERO (&all_rfds);
@@ -49,9 +49,9 @@ xg_select (int max_fds, SELECT_TYPE *rfds, SELECT_TYPE *wfds, SELECT_TYPE *efds,
49 g_main_context_pending (context); 49 g_main_context_pending (context);
50 50
51 do { 51 do {
52 if (n_gfds > gfds_size) 52 if (n_gfds > gfds_size)
53 { 53 {
54 while (n_gfds > gfds_size) 54 while (n_gfds > gfds_size)
55 gfds_size *= 2; 55 gfds_size *= 2;
56 xfree (gfds); 56 xfree (gfds);
57 gfds = xmalloc (sizeof (*gfds) * gfds_size); 57 gfds = xmalloc (sizeof (*gfds) * gfds_size);
@@ -64,7 +64,7 @@ xg_select (int max_fds, SELECT_TYPE *rfds, SELECT_TYPE *wfds, SELECT_TYPE *efds,
64 gfds_size); 64 gfds_size);
65 } while (n_gfds > gfds_size); 65 } while (n_gfds > gfds_size);
66 66
67 for (i = 0; i < n_gfds; ++i) 67 for (i = 0; i < n_gfds; ++i)
68 { 68 {
69 if (gfds[i].events & G_IO_IN) 69 if (gfds[i].events & G_IO_IN)
70 { 70 {
@@ -87,7 +87,7 @@ xg_select (int max_fds, SELECT_TYPE *rfds, SELECT_TYPE *wfds, SELECT_TYPE *efds,
87 else 87 else
88 { 88 {
89 EMACS_TIME difference; 89 EMACS_TIME difference;
90 90
91 EMACS_SUB_TIME (difference, tmo, *timeout); 91 EMACS_SUB_TIME (difference, tmo, *timeout);
92 if (EMACS_TIME_NEG_P (difference)) our_tmo = 1; 92 if (EMACS_TIME_NEG_P (difference)) our_tmo = 1;
93 } 93 }
@@ -100,7 +100,7 @@ xg_select (int max_fds, SELECT_TYPE *rfds, SELECT_TYPE *wfds, SELECT_TYPE *efds,
100 100
101 if (nfds < 0) 101 if (nfds < 0)
102 retval = nfds; 102 retval = nfds;
103 else if (nfds > 0) 103 else if (nfds > 0)
104 { 104 {
105 for (i = 0; i < max_fds+1; ++i) 105 for (i = 0; i < max_fds+1; ++i)
106 { 106 {
@@ -127,7 +127,7 @@ xg_select (int max_fds, SELECT_TYPE *rfds, SELECT_TYPE *wfds, SELECT_TYPE *efds,
127 127
128 if (our_fds > 0 || (nfds == 0 && our_tmo)) 128 if (our_fds > 0 || (nfds == 0 && our_tmo))
129 { 129 {
130 130
131 /* If Gtk+ is in use eventually gtk_main_iteration will be called, 131 /* If Gtk+ is in use eventually gtk_main_iteration will be called,
132 unless retval is zero. */ 132 unless retval is zero. */
133#ifdef USE_GTK 133#ifdef USE_GTK
@@ -137,7 +137,7 @@ xg_select (int max_fds, SELECT_TYPE *rfds, SELECT_TYPE *wfds, SELECT_TYPE *efds,
137 g_main_context_dispatch (context); 137 g_main_context_dispatch (context);
138 138
139 /* To not have to recalculate timeout, return like this. */ 139 /* To not have to recalculate timeout, return like this. */
140 if (retval == 0) 140 if (retval == 0)
141 { 141 {
142 retval = -1; 142 retval = -1;
143 errno = EINTR; 143 errno = EINTR;
@@ -156,4 +156,3 @@ xgselect_initialize (void)
156 gfds = xmalloc (sizeof (*gfds)*gfds_size); 156 gfds = xmalloc (sizeof (*gfds)*gfds_size);
157#endif /* defined (USE_GTK) || defined (HAVE_GCONF) */ 157#endif /* defined (USE_GTK) || defined (HAVE_GCONF) */
158} 158}
159