main.c
changeset 162 a6a31e485fbd
parent 157 93012e947eae
child 164 21071ae1fe68
equal deleted inserted replaced
161:f381e34158d9 162:a6a31e485fbd
   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