tacme: copy/cut/paste with ctl+c,x,v - 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 4030a6c905c99c48e7ca714fbe17a9b00fbff6fe
 (DIR) parent 219cf22d6863a21a7378fc5481bb05bbb6edd2dc
 (HTM) Author: Ethan Burns <burns.ethan@gmail.com>
       Date:   Thu, 13 Mar 2014 18:48:41 -0400
       
       acme: copy/cut/paste with ctl+c,x,v
       
       LGTM=rsc
       R=rsc
       CC=plan9port.codebot
       https://codereview.appspot.com/69070045
       
       Diffstat:
         M CONTRIBUTORS                        |       1 +
         M src/cmd/acme/text.c                 |       4 ++++
       
       2 files changed, 5 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/CONTRIBUTORS b/CONTRIBUTORS
       t@@ -21,6 +21,7 @@ David Swasey <david.swasey@gmail.com>
        Enrique Soriano <enrique.soriano@gmail.com>
        Eoghan Sherry <ejsherry@gmail.com>
        Erik Quanstrom <quanstro@quanstro.net>
       +Ethan Burns <burns.ethan@gmail.com>
        Fazlul Shahriar <fshahriar@gmail.com>
        Ingo Dreilich <yngoto@gmail.com>
        Justin Davis <jrcd83@gmail.com>
 (DIR) diff --git a/src/cmd/acme/text.c b/src/cmd/acme/text.c
       t@@ -745,10 +745,12 @@ texttype(Text *t, Rune r)
                                q0++;
                        textshow(t, q0, q0, TRUE);
                        return;
       +        case 3:                /* ^C: copy */
                case Kcmd+'c':        /* %C: copy */
                        typecommit(t);
                        cut(t, t, nil, TRUE, FALSE, nil, 0);
                        return;
       +        case 0x1a:        /* ^Z: undo */
                case Kcmd+'z':        /* %Z: undo */
                         typecommit(t);
                        undo(t, nil, nil, TRUE, 0, nil, 0);
       t@@ -777,6 +779,7 @@ texttype(Text *t, Rune r)
                }
                /* cut/paste must be done after the seq++/filemark */
                switch(r){
       +        case 0x18:        /* ^X: cut */
                case Kcmd+'x':        /* %X: cut */
                        typecommit(t);
                        if(t->what == Body){
       t@@ -787,6 +790,7 @@ texttype(Text *t, Rune r)
                        textshow(t, t->q0, t->q0, 1);
                        t->iq1 = t->q0;
                        return;
       +        case 0x16:        /* ^V: paste */
                case Kcmd+'v':        /* %V: paste */
                        typecommit(t);
                        if(t->what == Body){