plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

commit 8b9a1d4cfefb87cb89835880d528ce8d8b5eecdc
parent 6cb755b60b5bc5410bd90c37f3bf3b50ebcfe789
Author: rsc <devnull@localhost>
Date:   Mon,  6 Feb 2006 23:10:48 +0000

add chord fix from plan 9

Diffstat:
Msrc/cmd/acme/text.c | 12++++++------
Msrc/cmd/acme/wind.c | 5++++-
2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/cmd/acme/text.c b/src/cmd/acme/text.c @@ -1009,8 +1009,8 @@ textselect(Text *t) while(mouse->buttons){ mouse->msec = 0; b = mouse->buttons; - if(b & 6){ - if(state==0 && op==0 && t->what==Body){ + if((b&1) && (b&6)){ + if(state==0 && t->what==Body){ seq++; filemark(t->w->body.file); } @@ -1019,18 +1019,18 @@ textselect(Text *t) winundo(t->w, TRUE); textsetselect(t, q0, t->q0); state = 0; - }else if(state != 1 && op != -1){ + }else if(state != 1){ cut(t, t, nil, TRUE, TRUE, nil, 0); - op = state = 1; + state = 1; } }else{ if(state==1 && t->what==Body){ winundo(t->w, TRUE); textsetselect(t, q0, t->q1); state = 0; - }else if(state != -1 && op != 1){ + }else if(state != -1){ paste(t, t, nil, TRUE, FALSE, nil, 0); - op = state = -1; + state = -1; } } textscrdraw(t); diff --git a/src/cmd/acme/wind.c b/src/cmd/acme/wind.c @@ -115,9 +115,12 @@ wintaglines(Window *w, Rectangle r) /* if tag ends with \n, include empty line at end for typing */ n = w->tag.fr.nlines; - bufread(&w->tag.file->b, w->tag.file->b.nc-1, &rune, 1); + if(w->tag.file->b.nc > 0) + bufread(&w->tag.file->b, w->tag.file->b.nc-1, &rune, 1); if(rune == '\n') n++; + if(n == 0) + n = 1; return n; }