applied Jukka's stdinread patch
27ef7350
1 file(s) · +3 −2
| 274 | 274 | eprint("select failed\n"); |
|
| 275 | 275 | } |
|
| 276 | 276 | if(FD_ISSET(STDIN_FILENO, &rd)) { |
|
| 277 | - | switch(r = read(STDIN_FILENO, stext, sizeof(stext))) { |
|
| 277 | + | switch(r = read(STDIN_FILENO, stext, sizeof(stext) - 1)) { |
|
| 278 | 278 | case -1: |
|
| 279 | 279 | strncpy(stext, strerror(errno), sizeof(stext)); |
|
| 280 | + | stext[sizeof(stext) - 1] = '\0'; |
|
| 280 | 281 | readin = False; |
|
| 281 | 282 | break; |
|
| 282 | 283 | case 0: |
|
| 284 | 285 | readin = False; |
|
| 285 | 286 | break; |
|
| 286 | 287 | default: |
|
| 287 | - | stext[r-1] = 0; |
|
| 288 | + | stext[r - (stext[r - 1] == '\n' ? 1 : 0)] = '\0'; |
|
| 288 | 289 | } |
|
| 289 | 290 | drawstatus(); |
|
| 290 | 291 | } |
|