Mercurial > emacs
comparison src/process.c @ 3953:d0c23febc08c
(wait_reading_process_input): Do include the keyboard
in the select, if read_kbd was a cons cell.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Fri, 02 Jul 1993 05:43:43 +0000 |
parents | 55ed7a65746e |
children | 2fe1488b503c |
comparison
equal
deleted
inserted
replaced
3952:f9dfc2872fb0 | 3953:d0c23febc08c |
---|---|
1656 static int waiting_for_user_input_p; | 1656 static int waiting_for_user_input_p; |
1657 | 1657 |
1658 /* Read and dispose of subprocess output while waiting for timeout to | 1658 /* Read and dispose of subprocess output while waiting for timeout to |
1659 elapse and/or keyboard input to be available. | 1659 elapse and/or keyboard input to be available. |
1660 | 1660 |
1661 time_limit is: | 1661 TIME_LIMIT is: |
1662 timeout in seconds, or | 1662 timeout in seconds, or |
1663 zero for no limit, or | 1663 zero for no limit, or |
1664 -1 means gobble data immediately available but don't wait for any. | 1664 -1 means gobble data immediately available but don't wait for any. |
1665 | 1665 |
1666 microsecs is: | 1666 MICROSECS is: |
1667 an additional duration to wait (if time_limit is greater than | 1667 an additional duration to wait, measured in microseconds. |
1668 zero), specified in millisec. | 1668 If this is nonzero and time_limit is 0, then the timeout |
1669 | 1669 consists of MICROSECS only. |
1670 read_kbd is a lisp value: | 1670 |
1671 READ_KBD is a lisp value: | |
1671 0 to ignore keyboard input, or | 1672 0 to ignore keyboard input, or |
1672 1 to return when input is available, or | 1673 1 to return when input is available, or |
1673 -1 meaning caller will actually read the input, so don't throw to | 1674 -1 meaning caller will actually read the input, so don't throw to |
1674 the quit handler, or | 1675 the quit handler, or |
1675 a cons cell, meaning wait wait until its car is non-nil, or | 1676 a cons cell, meaning wait wait until its car is non-nil |
1677 (and gobble terminal input into the buffer if any arrives), or | |
1676 a process object, meaning wait until something arrives from that | 1678 a process object, meaning wait until something arrives from that |
1677 process. The return value is true iff we read some input from | 1679 process. The return value is true iff we read some input from |
1678 that process. | 1680 that process. |
1679 | 1681 |
1680 do_display != 0 means redisplay should be done to show subprocess | 1682 DO_DISPLAY != 0 means redisplay should be done to show subprocess |
1681 output that arrives. | 1683 output that arrives. |
1682 | 1684 |
1683 If read_kbd is a pointer to a struct Lisp_Process, then the | 1685 If READ_KBD is a pointer to a struct Lisp_Process, then the |
1684 function returns true iff we received input from that process | 1686 function returns true iff we received input from that process |
1685 before the timeout elapsed. | 1687 before the timeout elapsed. |
1686 Otherwise, return true iff we received input from any process. */ | 1688 Otherwise, return true iff we received input from any process. */ |
1687 | 1689 |
1688 wait_reading_process_input (time_limit, microsecs, read_kbd, do_display) | 1690 wait_reading_process_input (time_limit, microsecs, read_kbd, do_display) |
1797 } | 1799 } |
1798 | 1800 |
1799 /* Wait till there is something to do */ | 1801 /* Wait till there is something to do */ |
1800 | 1802 |
1801 Available = input_wait_mask; | 1803 Available = input_wait_mask; |
1802 if (! XINT (read_kbd)) | 1804 if (! XINT (read_kbd) && wait_for_cell == 0) |
1803 FD_CLR (0, &Available); | 1805 FD_CLR (0, &Available); |
1804 | 1806 |
1805 /* If frame size has changed or the window is newly mapped, | 1807 /* If frame size has changed or the window is newly mapped, |
1806 redisplay now, before we start to wait. There is a race | 1808 redisplay now, before we start to wait. There is a race |
1807 condition here; if a SIGIO arrives between now and the select | 1809 condition here; if a SIGIO arrives between now and the select |