twin: local \r cancellation - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 8db40354c5ded13fac5974de4f7cc1b7f0087d67
 (DIR) parent 0d2dfbc84f42317fab5bc247355868d86613f3b0
 (HTM) Author: Russ Cox <rsc@swtch.com>
       Date:   Tue, 10 Nov 2015 10:33:12 -0500
       
       win: local \r cancellation
       
       Change-Id: I4becec052af58c5a52b777004867eb23023b9403
       Reviewed-on: https://plan9port-review.googlesource.com/1391
       Reviewed-by: Russ Cox <rsc@google.com>
       
       Diffstat:
         M src/cmd/9term/win.c                 |      15 ++++++++++++++-
       
       1 file changed, 14 insertions(+), 1 deletion(-)
       ---
 (DIR) diff --git a/src/cmd/9term/win.c b/src/cmd/9term/win.c
       t@@ -483,7 +483,7 @@ int
        dropcr(char *p, int n)
        {
                int i;
       -        char *w, *r;
       +        char *w, *r, *q;
                
                r = p;
                w = p;
       t@@ -494,6 +494,19 @@ dropcr(char *p, int n)
                                        w--;
                                break;
                        case '\r':
       +                        while(i<n-1 && *(r+1) == '\r') {
       +                                r++;
       +                                i++;
       +                        }
       +                        if(i<n && *(r+1) != '\n') {
       +                                q = r;
       +                                while(q>p && *(q-1) != '\n')
       +                                        q--;
       +                                if(q > p) {
       +                                        w = q;
       +                                        break;
       +                                }
       +                        }
                                *w++ = '\n';
                                break;
                        default: