equal
deleted
inserted
replaced
163 main(int argc, char *argv[]) |
163 main(int argc, char *argv[]) |
164 { |
164 { |
165 int i; |
165 int i; |
166 unsigned int mask; |
166 unsigned int mask; |
167 fd_set rd; |
167 fd_set rd; |
168 Bool readin = True; |
|
169 Window w; |
168 Window w; |
170 XEvent ev; |
169 XEvent ev; |
171 XSetWindowAttributes wa; |
170 XSetWindowAttributes wa; |
172 |
171 |
173 if(argc == 2 && !strncmp("-v", argv[1], 3)) { |
172 if(argc == 2 && !strncmp("-v", argv[1], 3)) { |
250 scan(); |
249 scan(); |
251 |
250 |
252 /* main event loop, reads status text from stdin as well */ |
251 /* main event loop, reads status text from stdin as well */ |
253 while(running) { |
252 while(running) { |
254 FD_ZERO(&rd); |
253 FD_ZERO(&rd); |
255 if(readin) |
254 FD_SET(STDIN_FILENO, &rd); |
256 FD_SET(STDIN_FILENO, &rd); |
|
257 FD_SET(ConnectionNumber(dpy), &rd); |
255 FD_SET(ConnectionNumber(dpy), &rd); |
258 |
256 |
259 i = select(ConnectionNumber(dpy) + 1, &rd, 0, 0, 0); |
257 i = select(ConnectionNumber(dpy) + 1, &rd, 0, 0, 0); |
260 if(i == -1 && errno == EINTR) |
258 if(i == -1 && errno == EINTR) |
261 continue; |
259 continue; |
267 XNextEvent(dpy, &ev); |
265 XNextEvent(dpy, &ev); |
268 if(handler[ev.type]) |
266 if(handler[ev.type]) |
269 (handler[ev.type])(&ev); /* call handler */ |
267 (handler[ev.type])(&ev); /* call handler */ |
270 } |
268 } |
271 } |
269 } |
272 if(readin && FD_ISSET(STDIN_FILENO, &rd)) { |
270 if(FD_ISSET(STDIN_FILENO, &rd)) { |
273 readin = NULL != fgets(stext, sizeof(stext), stdin); |
271 if(!fgets(stext, sizeof(stext), stdin)) |
274 if(readin) |
272 break; |
|
273 else |
275 stext[strlen(stext) - 1] = 0; |
274 stext[strlen(stext) - 1] = 0; |
276 else |
|
277 strcpy(stext, "broken pipe"); |
|
278 drawstatus(); |
275 drawstatus(); |
279 } |
276 } |
280 } |
277 } |
281 } |
278 } |
282 |
279 |