* remote-udi.c (udi_wait, case UDIStdinNeeded): Use a loop calling
getchar() (terminated only on '\n') instead of scanf. Send the '\n' which terminates it to the remote system.
This commit is contained in:
parent
fc7ed03957
commit
5c303f64ca
|
@ -473,11 +473,22 @@ udi_wait (status)
|
|||
fwrite (sbuf, 1, CountDone, stderr);
|
||||
fflush(stderr);
|
||||
continue;
|
||||
|
||||
case UDIStdinNeeded:
|
||||
scanf ("%s", sbuf);
|
||||
i = strlen (sbuf);
|
||||
UDIPutStdin (sbuf, (UDISizeT)i, &CountDone);
|
||||
continue;
|
||||
{
|
||||
int ch;
|
||||
i = 0;
|
||||
do
|
||||
{
|
||||
ch = getchar ();
|
||||
if (ch == EOF)
|
||||
break;
|
||||
sbuf[i++] = ch;
|
||||
} while (i < SBUF_MAX && ch != '\n');
|
||||
UDIPutStdin (sbuf, (UDISizeT)i, &CountDone);
|
||||
continue;
|
||||
}
|
||||
|
||||
case UDIRunning:
|
||||
/* In spite of the fact that we told UDIWait to wait forever, it will
|
||||
return spuriously sometimes. */
|
||||
|
|
Loading…
Reference in New Issue