summaryrefslogtreecommitdiff
path: root/term
diff options
context:
space:
mode:
Diffstat (limited to 'term')
-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,