Subject: Re: bug#2148: Re: In shell mode, comint-send-input seems to cut off at 254 characters

From: Alan J Third <[email-masked]>
Date: Sun, 10 Jan 2016 22:34:57 +0000

Chong Yidong <[email-masked]> writes:

>> [in shell mode]
>> /bin/tcsh -f
>> set filec
>> echo [very long line]
>>
>> I get the strange behaviour I described before.
>>
>> So, in /bin/tcsh, one of the things that 'set filec' turns on is to use 
>> control-D to show a list of what matches the prefix of the immediately 
>> preceding word.
>>
>> It appears that 'send_process(proc, buf, len, object)' in process.c will 
>> determine that it should send a maximum of 254 characters and will send 
>> '\004' at each 254 character interval.
>>
>> It still seems strange to me that emacs would have this behaviour.  Is 
>> that really how it should be done?  I wouldn't think that I would be the 
>> only user who would be using /bin/tcsh with 'set filec'.
>
> The ^D is sent in process.c:5781.  If we are splitting a string into
> chunks for sending to the process, Emacs puts in an EOF (C-d) to "force
> it through".
>
> I can't think of any fix, off the top of my head.  Stefan, can you?  If
> not, we could simply document this limitation in PROBLEMS.

I can't replicate this in Emacs 25 (or Emacs 24.5) on OS X, and I can't find the code
described above in the source, or at least in send_process. Can someone
who knows their way around better than me please confirm whether the
offending code has been removed, please?
-- 
Alan Third