Subject: bug#7078: 24.0.50; process-send-string doesn't work with long lines on Solaris

From: Knut Anders Hatlen <[email-masked]>
Date: Tue, 21 Sep 2010 00:18:30 +0200

With Emacs 24 on Solaris, the code below will insert ^G into the current
buffer. With Emacs 23.2, and with Emacs 24 on Linux, it will insert 257
a's into the current buffer, which is the expected behaviour. The
problem is only seen if the string passed to process-send-string
contains lines that exceed 256 characters.

(let ((process (start-process "cat" (current-buffer) "cat")))
  (process-send-string process (format "%s\n" (make-string 257 ?a))))

The bug was introduced with this change:

revno: 99890
committer: Stefan Monnier <[email-masked]>
branch nick: trunk
timestamp: Mon 2010-04-12 22:07:48 -0400
message:
  Try to solve the problem of spurious EOF chars in long lines of text
  sent to interactive subprocesses.
  * sysdep.c (child_setup_tty): Do not enable ICANON any more.
  (system_process_attributes): Remove unused var `ttotal'.
  * process.c (send_process): Don't bother breaking long line with EOF
  chars when talking to ttys any more.
  (wait_reading_process_output): Output a warning when called in such
  a way that it could block without being interruptible.

-- 
Knut Anders