commit 8b9a1d4cfefb87cb89835880d528ce8d8b5eecdc from: rsc date: Mon Feb 06 23:10:48 2006 UTC add chord fix from plan 9 commit - 6cb755b60b5bc5410bd90c37f3bf3b50ebcfe789 commit + 8b9a1d4cfefb87cb89835880d528ce8d8b5eecdc blob - 0e089105cd640a21bd48f3412762d7e8bbf9600c blob + 95ad545ff307a46f36a37a81a896f26589b12650 --- src/cmd/acme/text.c +++ 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); blob - 2b0369dd2b85e4c18a1b2594b57ebcdbe3cd5a2e blob + a2106ed2c40906cc8feba6d26c88cdc015eb6079 --- src/cmd/acme/wind.c +++ 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; }