diff mbox

uemacs doesn't clear ixon termios flag?

Message ID jn9ock$htn$1@dough.gmane.org
State Superseded, archived
Headers show

Commit Message

Grant Edwards April 25, 2012, 8:55 p.m. UTC
On 2012-04-25, Grant Edwards <grant.b.edwards@gmail.com> wrote:
> I've enabled the uemacs package. It builds fine, but it doesn't seem
> to work unless you manually clear the termios ixon flag before running
> it.  If you don't do that, the Ctrl-S keystroke isn't seen by uemacs
> -- instead it's intercepted by the tty layer and stops terminal
> output until you hit Ctrl-Q.

This appears to be bug in uemacs that's been known about for several
years.  The fix below is from the busybox mailing list 3 years ago
http://lists.busybox.net/pipermail/busybox/2009-February/068304.html:

  Or you could install this one:
  ftp://ftp.kernel.org/pub/software/editors/uemacs/em-4.0.15-lt.tar.bz2
  but beware that this version also has a problem with ^S/^Q because
  it doesn't clear IXON.  You'll need the following patch before ^S/^Q
  will work at all:



If I submitted a patch and a modified uemacs.mk would it likely be
accepted?

Comments

Peter Korsgaard May 1, 2012, 10:07 p.m. UTC | #1
>>>>> "Grant" == Grant Edwards <grant.b.edwards@gmail.com> writes:

Hi,

 Grant> This appears to be bug in uemacs that's been known about for
 Grant> several years.  The fix below is from the busybox mailing list 3
 Grant> years ago
 Grant> http://lists.busybox.net/pipermail/busybox/2009-February/068304.html:

 Grant>   Or you could install this one:
 Grant>   ftp://ftp.kernel.org/pub/software/editors/uemacs/em-4.0.15-lt.tar.bz2
 Grant>   but beware that this version also has a problem with ^S/^Q because
 Grant>   it doesn't clear IXON.  You'll need the following patch before ^S/^Q
 Grant>   will work at all:

That's afaik the uemacs upstream we're using.

 Grant> --- posix.c     2009/02/01 13:31:09     1.1
 Grant> +++ posix.c     2009/02/01 13:32:12
 Grant> @@ -51,6 +51,7 @@
 Grant>         /* raw CR/NL etc input handling, but keep ISTRIP if we're on a 7-bit line */
 Grant>         ntermios.c_iflag &= ~(IGNBRK | BRKINT | IGNPAR | PARMRK
 Grant>                               | INPCK | INLCR | IGNCR | ICRNL);
 Grant> +       ntermios.c_iflag &= ~IXON;
 
 Grant>         /* raw CR/NR etc output handling */
 Grant>         ntermios.c_oflag &= ~(OPOST | ONLCR | OLCUC | OCRNL | ONOCR | ONLRET);


 Grant> If I submitted a patch and a modified uemacs.mk would it likely be
 Grant> accepted?

Sure! Notice that I recently converted the uemacs package to gentargets,
but it should be functionally equivalent.
Grant Edwards May 1, 2012, 11:51 p.m. UTC | #2
On 2012-05-01, Peter Korsgaard <jacmet@uclibc.org> wrote:
>>>>>> "Grant" == Grant Edwards <grant.b.edwards@gmail.com> writes:
>
> Grant> This appears to be bug in uemacs that's been known about for
> Grant> several years.  The fix below is from the busybox mailing list 3
> Grant> years ago
> Grant> http://lists.busybox.net/pipermail/busybox/2009-February/068304.html:
[...]

> That's afaik the uemacs upstream we're using.

That's what I thought.  I haven't looked into why upstream has been
ignoring the bug fix, but it seemed to be rather widely known.

> Grant> If I submitted a patch and a modified uemacs.mk would it likely be
> Grant> accepted?
>
> Sure! Notice that I recently converted the uemacs package to gentargets,
> but it should be functionally equivalent.

Cool. I submitted the patch a few days ago:

  https://bugs.busybox.net/show_bug.cgi?id=5144

I think the patch should work both pre and post gentargets conversion.
All it does is create a new patch file in the package directory.  It
doesn't touch any existing files.  As long as the gentargets call
applies all of the *.patch files in alphabetical order it should "just
work".
  
I can stumble along with either vi or nano, but it requires too
much concentration...
diff mbox

Patch

--- posix.c     2009/02/01 13:31:09     1.1
+++ posix.c     2009/02/01 13:32:12
@@ -51,6 +51,7 @@ 
        /* raw CR/NL etc input handling, but keep ISTRIP if we're on a 7-bit line */
        ntermios.c_iflag &= ~(IGNBRK | BRKINT | IGNPAR | PARMRK
                              | INPCK | INLCR | IGNCR | ICRNL);
+       ntermios.c_iflag &= ~IXON;
 
        /* raw CR/NR etc output handling */
        ntermios.c_oflag &= ~(OPOST | ONLCR | OLCUC | OCRNL | ONOCR | ONLRET);