tlibframe: fix line wrap display glitch (Erik Quanstrom) - 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 5e90ec75ee98d867c7917e4f42a8a66d33f42647
 (DIR) parent 839c052a938f78fde18b9b2431c24c6163e4a7f3
 (HTM) Author: Russ Cox <rsc@swtch.com>
       Date:   Sun,  2 Jan 2011 17:54:48 -0500
       
       libframe: fix line wrap display glitch (Erik Quanstrom)
       
       R=rsc
       http://codereview.appspot.com/3777044
       
       Diffstat:
         M src/libframe/frdelete.c             |      10 +++++++++-
       
       1 file changed, 9 insertions(+), 1 deletion(-)
       ---
 (DIR) diff --git a/src/libframe/frdelete.c b/src/libframe/frdelete.c
       t@@ -9,7 +9,7 @@ frdelete(Frame *f, ulong p0, ulong p1)
        {
                Point pt0, pt1, ppt0;
                Frbox *b;
       -        int n0, n1, n;
       +        int n0, n1, n, w0;
                ulong cn1;
                Rectangle r;
                int nn0;
       t@@ -52,6 +52,7 @@ frdelete(Frame *f, ulong p0, ulong p1)
                        r.max = pt0;
                        r.max.y += f->font->height;
                        if(b->nrune > 0){
       +                        w0 = b->wid;
                                if(n != b->nrune){
                                        _frsplitbox(f, n1, n);
                                        b = &f->box[n1];
       t@@ -59,6 +60,13 @@ frdelete(Frame *f, ulong p0, ulong p1)
                                r.max.x += b->wid;
                                draw(f->b, r, f->b, nil, pt1);
                                cn1 += b->nrune;
       +                        
       +                        /* blank remainder of line */
       +                        r.min.x = r.max.x;
       +                        r.max.x += w0 - b->wid;
       +                        if(r.max.x > f->r.max.x)
       +                                r.max.x = f->r.max.x;
       +                        draw(f->b, r, f->cols[BACK], nil, r.min);
                        }else{
                                r.max.x += _frnewwid0(f, pt0, b);
                                if(r.max.x > f->r.max.x)