I'm not sure how much the reversion would revert.  If it was the patch I sent you on 2 August:

Index: LineInput.cc
===================================================================
--- LineInput.cc        (revision 1060)
+++ LineInput.cc        (working copy)
@@ -968,9 +968,10 @@
       {
         if (errno == EINTR)
            {
-             clearerr(stdin);
-             CIN.unsetf(ios_base::unitbuf);
-             goto again;
+            clearerr (stdin);
+            CIN.unsetf( std::ios_base::unitbuf );
+            CERR.unsetf( std::ios_base::unitbuf );
+            return UNI_ASCII_CR;
            }

I think it's still a good idea to catch EINTR just to avoid having nulls returned:


Index: LineInput.cc
===================================================================
--- LineInput.cc        (revision 1061)
+++ LineInput.cc        (working copy)
@@ -969,7 +969,6 @@
         if (errno == EINTR)
            {
              clearerr(stdin);
-             CIN.unsetf(ios_base::unitbuf);
              goto again;
            }


I.e., getting rid of the CIN.unsetf(ios_base::unitbuf), making the code look like:


const int b0 = fgetc(stdin);
   if (b0 == EOF)
      {
        if (errno == EINTR)
           {
             clearerr(stdin);
             goto again;
           }

       if (got_WINCH)



Thanks,

Chris


On 10/08/18 09:11, Juergen Sauermann wrote:
Hi Chris,

does that mean that I can revert the patch that I have put in for edif recently?

Best Regards,
/// Jürgen


On 08/07/2018 07:09 PM, Chris Moller wrote:

Hans-Peter,

If you want to try it again, I'm pretty sure I've fixed that bug in edif2--I just committed the update to https://github.com/ChrisMoller/edif

--Chris


On 02/08/18 07:12, Hans-Peter Sorge wrote:

Hello Chris,

thank you for this master piece. The line editing in GNU APL is a bit cumbersome.

But the apl session gets blocked during editing (edif2).

Currently I have no clue, how to analyze it.

Thank you again.

Hans-Peter





Reply via email to