applied Manuels patch (thanks to Manuel!)

master
arg@mig29 2006-11-25 19:26:16 +01:00
parent 44411d2d48
commit 478f6f95f1
2 changed files with 23 additions and 16 deletions

2
dwm.1
View File

@ -22,7 +22,7 @@ dwm contains a small status bar which displays all available tags, the mode,
the title of the focused window, and the text read from standard input. The the title of the focused window, and the text read from standard input. The
selected tags are indicated with a different color. The tags of the focused selected tags are indicated with a different color. The tags of the focused
window are indicated with a small point in the top left corner. The tags which window are indicated with a small point in the top left corner. The tags which
are applied to any client are indicated with a small point in the bottom are applied to one or more clients are indicated with a small point in the bottom
right corner. right corner.
.P .P
dwm draws a 1-pixel border around windows to indicate the focus state. dwm draws a 1-pixel border around windows to indicate the focus state.

29
main.c
View File

@ -267,21 +267,28 @@ main(int argc, char *argv[]) {
if(readin) if(readin)
FD_SET(STDIN_FILENO, &rd); FD_SET(STDIN_FILENO, &rd);
FD_SET(xfd, &rd); FD_SET(xfd, &rd);
r = select(xfd + 1, &rd, NULL, NULL, NULL); if(select(xfd + 1, &rd, NULL, NULL, NULL) == -1) {
if((r == -1) && (errno == EINTR)) if(errno == EINTR)
continue; continue;
if(r > 0) {
if(readin && FD_ISSET(STDIN_FILENO, &rd)) {
readin = NULL != fgets(stext, sizeof(stext), stdin);
if(readin)
stext[strlen(stext) - 1] = 0;
else else
strcpy(stext, "broken pipe"); eprint("select failed\n");
}
if(FD_ISSET(STDIN_FILENO, &rd)) {
switch(r = read(STDIN_FILENO, stext, sizeof(stext))) {
case -1:
strncpy(stext, strerror(errno), sizeof(stext));
readin = False;
break;
case 0:
strncpy(stext, "EOF", sizeof(stext));
readin = False;
break;
default:
stext[r-1] = 0;
}
drawstatus(); drawstatus();
} }
} if(FD_ISSET(xfd, &rd))
else if(r < 0)
eprint("select failed\n");
procevent(); procevent();
} }
cleanup(); cleanup();