emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacs-27 d424217: Fix 'send-string-to-terminal' writing very long string


From: Eli Zaretskii
Subject: emacs-27 d424217: Fix 'send-string-to-terminal' writing very long strings
Date: Sat, 7 Nov 2020 04:20:27 -0500 (EST)

branch: emacs-27
commit d4242177daaee9078245570125c5a99e65f55163
Author: Eli Zaretskii <eliz@gnu.org>
Commit: Eli Zaretskii <eliz@gnu.org>

    Fix 'send-string-to-terminal' writing very long strings
    
    * src/dispnew.c (Fsend_string_to_terminal): Prevent partial writes
    by blocking SIGIO while 'fwrite' runs.  (Bug#44320)
---
 src/dispnew.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/dispnew.c b/src/dispnew.c
index 5b6fa51..df55b32 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -5904,8 +5904,12 @@ when TERMINAL is nil.  */)
        }
       out = tty->output;
     }
+  /* STRING might be very long, in which case fwrite could be
+     interrupted by SIGIO.  So we temporarily block SIGIO.  */
+  unrequest_sigio ();
   fwrite (SDATA (string), 1, SBYTES (string), out);
   fflush (out);
+  request_sigio ();
   unblock_input ();
   return Qnil;
 }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]