summaryrefslogtreecommitdiff
path: root/term/devio.c
diff options
context:
space:
mode:
authorMichael I. Bushnell <mib@gnu.org>1995-12-01 19:51:40 +0000
committerMichael I. Bushnell <mib@gnu.org>1995-12-01 19:51:40 +0000
commit389eeba0672c3ab7b12fec9cbcd6a7298a678c52 (patch)
tree3fe715adeb5057c9e72c686532c3afb151853860 /term/devio.c
parentea4c569162b920483d2aa75140299bc4fc2d6f15 (diff)
(devio_start_output): Restart output if USER_OUTPUT_SUSP flag off and
output_stopped true. (output_stopped): New variable. (devio_suspend_physical_output): New function. (devio_bottom): Add devio_suspend_physical_output.
Diffstat (limited to 'term/devio.c')
-rw-r--r--term/devio.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/term/devio.c b/term/devio.c
index 9bef722d..870f969c 100644
--- a/term/devio.c
+++ b/term/devio.c
@@ -71,6 +71,8 @@ static struct port_info *phys_reply_pi;
static device_t device_master;
+static int output_stopped;
+
/* Forward */
static void devio_desert_dtr ();
@@ -208,6 +210,12 @@ devio_start_output ()
if (!size || output_pending || (termflags & USER_OUTPUT_SUSP))
return;
+ if (output_stopped)
+ {
+ device_set_status (phys_device, TTY_START, 0, 0);
+ output_stopped = 0;
+ }
+
/* Copy characters onto PENDING_OUTPUT, not bothering
those already there. */
@@ -343,6 +351,14 @@ devio_abandon_physical_output ()
output_pending = 0;
}
+static void
+devio_suspend_physical_output ()
+{
+ device_set_status (phys_device, TTY_STOP, 0, 0);
+ output_stopped = 1;
+}
+
+
static int
devio_pending_output_size ()
{
@@ -617,6 +633,7 @@ struct bottomhalf devio_bottom =
devio_set_break,
devio_clear_break,
devio_abandon_physical_output,
+ devio_suspend_physical_output,
devio_pending_output_size,
devio_assert_dtr,
devio_desert_dtr,