Add processor. [jmk] --rw-rw-r-- M 12721 glenda sys 18625 Dec 31 12:04 sys/src/9/pc/devarch.c /n/sourcesdump/2005/1231/plan9/sys/src/9/pc/devarch.c:612,617 - /n/sourcesdump/2006/0101/plan9/sys/src/9/pc/devarch.c:612,618 {5, 4, 23, "Winchip",}, /* guesswork */ {6, 7, 23, "Via C3 Samuel 2 or Ezra",}, {6, 8, 23, "Via C3 Ezra-T",}, + {6, 9, 23, "Via C3 Eden-N",}, { -1, -1, 23, "unknown", }, /* total default */ }; Better fix for patch applied/acmechord. Thanks to Arvindht Tamilmani for pointing out the problem. [rsc] --rw-rw-r-- M 12721 glenda sys 27870 Dec 31 16:27 sys/src/cmd/acme/text.c /n/sourcesdump/2005/1231/plan9/sys/src/cmd/acme/text.c:882,888 - /n/sourcesdump/2006/0101/plan9/sys/src/cmd/acme/text.c:882,888 { uint q0, q1; int b, x, y; - int state, op; + int state; selecttext = t; /* /n/sourcesdump/2005/1231/plan9/sys/src/cmd/acme/text.c:938,949 - /n/sourcesdump/2006/0101/plan9/sys/src/cmd/acme/text.c:938,949 clicktext = nil; textsetselect(t, q0, q1); flushimage(display, 1); - state = op = 0; /* undo when possible; +1 for cut, -1 for paste */ + state = 0; /* undo when possible; +1 for cut, -1 for paste */ 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); } /n/sourcesdump/2005/1231/plan9/sys/src/cmd/acme/text.c:952,960 - /n/sourcesdump/2006/0101/plan9/sys/src/cmd/acme/text.c:952,960 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){ /n/sourcesdump/2005/1231/plan9/sys/src/cmd/acme/text.c:961,969 - /n/sourcesdump/2006/0101/plan9/sys/src/cmd/acme/text.c:961,969 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); [rsc] --rw-rw-r-- M 12721 glenda sys 28267 Dec 31 16:27 sys/src/cmd/acme/exec.c /n/sourcesdump/2005/1231/plan9/sys/src/cmd/acme/exec.c:661,667 - /n/sourcesdump/2006/0101/plan9/sys/src/cmd/acme/exec.c:661,667 Rune *r; /* use current window if snarfing and its selection is non-null */ - if(et!=nil && dosnarf && et->w!=nil){ + if(et!=nil && dosnarf && et->w!=nil && t==nil){ if(et->w->body.q1>et->w->body.q0){ t = &et->w->body; if(docut) [rsc] --rw-rw-r-- M 12721 glenda sys 27870 Dec 31 16:27 sys/src/cmd/acme/text.c Try to avoid nibbling on window borders. [rsc] --rw-rw-r-- M 12721 glenda sys 3366 Dec 31 16:07 sys/src/libframe/frdraw.c /n/sourcesdump/2005/1231/plan9/sys/src/libframe/frdraw.c:125,130 - /n/sourcesdump/2006/0101/plan9/sys/src/libframe/frdraw.c:125,133 return; pt.x--; /* looks best just left of where requested */ r = Rect(pt.x, pt.y, pt.x+FRTICKW, pt.y+f->font->height); + /* can go into left border but not right */ + if(r.max.x > f->r.max.x) + r.max.x = f->r.max.x; if(ticked){ draw(f->tickback, f->tickback->r, f->b, nil, pt); draw(f->b, r, f->tick, nil, ZP); [rsc] --rw-rw-r-- M 12721 glenda sys 3366 Dec 31 16:07 sys/src/libframe/frdraw.c Re-fix i81x cursor. [jmk] --rw-rw-r-- M 12721 glenda sys 12059 Dec 31 19:14 sys/src/cmd/aux/vga/i81x.c /n/sourcesdump/2005/1231/plan9/sys/src/cmd/aux/vga/i81x.c:315,320 - /n/sourcesdump/2006/0101/plan9/sys/src/cmd/aux/vga/i81x.c:315,321 int i; ulong *rp; I81x *i81x; + char *p; i81x = vga->private; /n/sourcesdump/2005/1231/plan9/sys/src/cmd/aux/vga/i81x.c:338,343 - /n/sourcesdump/2006/0101/plan9/sys/src/cmd/aux/vga/i81x.c:339,357 *rp++ = i81x->lcd[i]; /* set cursor, graphic mode */ rp = (ulong*)(i81x->mmio+0x70008); + *rp = i81x->pixconf | (1<<8); + + p = (char*)(i81x->mmio+Pixmask); /* DACMASK */ + *p = 0xff; + p = (char*)(i81x->mmio+PaddrW); /* DACWX */ + *p = 0x04; + p = (char*)(i81x->mmio+Pdata); /* DACDATA */ + *p = 0xff; + *p = 0xff; + *p = 0xff; + *p = 0x00; + *p = 0x00; + *p = 0x00; *rp = i81x->pixconf; ctlr->flag |= Fload;