[Top][All Lists]

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

process-send-region does not break up regions as documented

From: Chris Hecker
Subject: process-send-region does not break up regions as documented
Date: Tue, 24 Apr 2001 10:56:31 -0700 (PDT)

This bug report will be sent to the Free Software Foundation,
 not to your local site managers!!
Please write in English, because the Emacs maintainers do not have
translators to read other languages for them.

In GNU Emacs 20.7.1 (i386-*-windows98.1998)
 of Tue Jun 13 2000 on buffy
configured using `configure NT'

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:

The C implementation of process-send-region (and therefor
comint-send-region, which is an alias) does not break up long regions
before sending them to the subprocess.  The docs say that it breaks up
the region every 500 bytes or so, but the source shows that it only
breaks long _lines_, not long regions.  So, if the subprocess isn't
line oriented, you can still deadlock the subprocess and emacs.  I
found this running an intepreter subprocess for a language called
OCaml.  It output a string after every \n it received, so emacs would
try to send it a big region with lots of newlines and would block on
the write, the subprocess would output a bunch of stuff and block on
the write (which emacs wasn't reading), and I'd deadlock.  It seems
that breaking up the region, and not just the lines, is the right fix,
but I haven't tried it.  I don't know why the emacs info docs for
p-s-r say one thing and the C comments say another, so maybe this was
tried and it didn't work?

Recent input:
up up up up up up down down down down down up up up 
C-e C-left C-left C-left left left left ! backspace 
left ! right r C-right C-right right ! right r C-a 
C-f C-s C-c C-t switch-frame up up C-e C-a switch-frame 
down ESC ESC g 3 8 4 4 return up left left ; C-f C-s 
C-c C-t switch-frame down-mouse-1 mouse-1 next next 
C-f 1 next next next next next next prior prior up 
up up down ESC > m a i n ( ) ; ; return ESC x r e p 
SPC o SPC return

Recent messages:
Mark set [2 times]
Mark saved where search started
Mark set [2 times]
Wrote c:/dev/climbing/climbing.ml
Mark set
Wrote c:/dev/climbing/climbing.ml
End of buffer [4 times]
Mark set
Loading emacsbug...
Loading emacsbug...done

reply via email to

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