It appears that this bug got fixed at some point and the report didn't
get closed. The problem was that dselect would loop forever when it
received an EOF after spitting out an error message. By inspection,
the current code should not suffer from this problem, compare...

original code:
  if (ferror(stderr))
    ohshite(_("write error on standard error"));
  do { c= fgetc(stdin); } while ((c == ERR && errno==EINTR) || (c != '\n'));
  if (c == ERR)
    ohshite(_("error reading acknowledgement of program failure message"));

...to...

current code:
  if (ferror(stderr))
    ohshite(_("write error on standard error"));
  do { c= fgetc(stdin); } while ((c == ERR && errno==EINTR) || ((c != '\n') && 
c != EOF));
  if ((c == ERR) || (c == EOF))
    ohshite(_("error reading acknowledgement of program failure message"));

...clearly, an EOF is now caught and handled.

Since I could not find this construct in any other dselect code, I'll
close this bug in a week if no one shows just how wrong I am.


- Bruce


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to