Subject: bug#7078: closed (Re: bug#6800: 23.1; EOT / ^D inserted into comint input string)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 12 Aug 2016 19:53:02 +0000

Your bug report

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

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
6800: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6800
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#6800: 23.1; EOT / ^D inserted into comint input string
From: David Fox <[email-masked]>
To: Alan Third <[email-masked]>
Cc: [email-masked], Stefan Monnier <[email-masked]>
Date: Fri, 12 Aug 2016 11:40:03 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

On Fri, Aug 12, 2016 at 11:36 AM, Alan Third <[email-masked]> wrote:

> Stefan Monnier <[email-masked]> writes:
>
> >> When an input longer than 255 characters is typed into comint (or
> >> shell) an EOT character (ascii 4, ^D) is inserted into the string.
> >> This can cause an error depending how the sub process handles these
> >> extra characters.  For example, GHC doesn't like it when an EOT
> >> appears inside of a string:
> >
> > I believe this bug is fixed on the Emacs trunk (to become Emacs-24), but
> > the fix may introduce other problems.  Apparently nobody knows how to
> > fix it right and there is about as much as no documentation at all on
> > this part of the behavior of ttys.
>
> IIRC this code is no longer in Emacs. I'll close this bug.
>
> --
> Alan Third
>

I do know that commands longer than 4096 characters are truncated in emacs
24.3.1

Subject: 24.0.50; process-send-string doesn't work with long lines on Solaris
From: Knut Anders Hatlen <[email-masked]>
To: [email-masked]
Date: Tue, 21 Sep 2010 00:18:30 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

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