--- /rc/bin/ipso Sun Jul 27 19:59:52 2008 +++ /rc/bin/ipso Fri Mar 29 20:15:06 2013 @@ -131,13 +131,15 @@ # edit the files if(~ $edit yes) $editor `{for(i in $files) basename $i} -if(~ $flush yes ){ - echo flushing old keys - echo delkey > /mnt/factotum/ctl -} -if(~ $load yes){ - echo loading factotum keys - if (~ factotum $files) read -m < factotum > /mnt/factotum/ctl +if(~ factotum $files){ + if(~ $flush yes){ + echo flushing old keys + echo delkey > /mnt/factotum/ctl + } + if(~ $load yes){ + echo loading factotum keys + read -m < factotum > /mnt/factotum/ctl + } } # copy the files back @@ -151,8 +153,6 @@ exit password } echo ''''$i'''' copied to $name - if(~ $i factotum) - read -m < $i > /mnt/factotum/ctl case [xXqQ]* exit case [nN]* * --- /sys/man/3/mouse Fri Jan 8 18:45:52 2010 +++ /sys/man/3/mouse Fri Mar 29 20:04:32 2013 @@ -62,7 +62,7 @@ file. The .B mousein -file, which is exclusive-use and may be opened +file, which may be opened only by the host owner, is intended for controlling devices, such as USB mice, that are managed by user-level software. Each event should consist of --- /sys/src/9/pc/ether82543gc.c Mon Oct 31 19:45:21 2011 +++ /sys/src/9/pc/ether82543gc.c Thu Mar 28 19:03:53 2013 @@ -1275,15 +1275,14 @@ } cls = pcicfgr8(p, PciCLS); switch(cls){ - case 0x00: - case 0xFF: - print("82543gc: unusable cache line size\n"); - continue; - case 0x08: - break; - default: - print("82543gc: cache line size %d, expected 32\n", - cls*4); + default: + print("82543gc: p->cls %#ux, setting to 0x10\n", p->cls); + p->cls = 0x10; + pcicfgw8(p, PciCLS, p->cls); + break; + case 0x08: + case 0x10: + break; } ctlr = malloc(sizeof(Ctlr)); if(ctlr == nil) --- /sys/src/9/pc/etherigbe.c Thu May 24 20:09:37 2012 +++ /sys/src/9/pc/etherigbe.c Thu Mar 28 20:51:20 2013 @@ -12,7 +12,6 @@ * finish autonegotiation code; * integrate fiber stuff back in (this ONLY handles * the CAT5 cards at the moment); - * add checksum-offload; * add tuning control via ctl file; * this driver is little-endian specific. */ @@ -1105,9 +1104,9 @@ csr32w(ctlr, Rxdctl, (8<cls %#ux, setting to 0x10\n", p->cls); + p->cls = 0x10; + pcicfgw8(p, PciCLS, p->cls); + break; + case 0x08: + case 0x10: + break; } ctlr = malloc(sizeof(Ctlr)); if(ctlr == nil) { --- /sys/src/9/pc/pci.c Wed Dec 7 22:37:15 2011 +++ /sys/src/9/pc/pci.c Fri Mar 29 20:07:16 2013 @@ -667,6 +667,7 @@ { 0x8086, 0x3a42, pIIxget, pIIxset }, /* Intel 82801JI */ { 0x8086, 0x3a48, pIIxget, pIIxset }, /* Intel 82801JI */ { 0x8086, 0x2916, pIIxget, pIIxset }, /* Intel 82801? */ + { 0x8086, 0x1c02, pIIxget, pIIxset }, /* Intel 6 Series/C200 */ { 0x1106, 0x0586, viaget, viaset }, /* Viatech 82C586 */ { 0x1106, 0x0596, viaget, viaset }, /* Viatech 82C596 */ { 0x1106, 0x0686, viaget, viaset }, /* Viatech 82C686 */ --- /sys/src/9/port/devmouse.c Tue Oct 16 21:55:55 2007 +++ /sys/src/9/port/devmouse.c Fri Mar 29 20:04:32 2013 @@ -44,7 +44,6 @@ Ref; QLock; int open; - int inopen; int acceleration; int maxacc; Mousestate queue[16]; /* circular buffer of click events */ @@ -202,13 +201,6 @@ case Qmousein: if(!iseve()) error(Eperm); - lock(&mouse); - if(mouse.inopen){ - unlock(&mouse); - error(Einuse); - } - mouse.inopen = 1; - unlock(&mouse); break; default: incref(&mouse); @@ -231,14 +223,11 @@ mouseclose(Chan *c) { if((c->qid.type&QTDIR)==0 && (c->flag&COPEN)){ + if(c->qid.path == Qmousein) + return; lock(&mouse); if(c->qid.path == Qmouse) mouse.open = 0; - else if(c->qid.path == Qmousein){ - mouse.inopen = 0; - unlock(&mouse); - return; - } if(--mouse.ref == 0){ cursoroff(1); curs = arrow; --- /sys/src/9/port/master Tue Apr 17 00:22:01 2012 +++ /sys/src/9/port/master Thu Mar 28 21:10:03 2013 @@ -4,14 +4,11 @@ / root 9 p9am A audio -A uda1341 B bridge C ce D ssl E sdp F flash -F ppcflash -G gs1 I ip K kprof L lpt @@ -33,11 +30,9 @@ k fs l ether m mouse -m penmouse p proc -q qmux +r fakertc r rtc -r µc s srv t uart u usb @@ -45,9 +40,7 @@ v lcd v vga w wd -x xenstore y i82365 -y pcmcia | pipe ¤ cap æ aoe @@ -59,7 +52,6 @@ ⁲ twsi ↔ usbcons ☹ bios -霞 kasumi α local use β local use --- /sys/src/9/teg2/trap.c Fri Jan 25 01:00:25 2013 +++ /sys/src/9/teg2/trap.c Thu Mar 28 21:38:33 2013 @@ -573,7 +573,8 @@ lock(&vctllock); for(vp = &vctl[irq]; v = *vp; vp = &v->next) if (v->f == f && v->a == a && strcmp(v->name, name) == 0){ - print("irqdisable: remove %s\n", name); + if(Debug) + print("irqdisable: remove %s\n", name); *vp = v->next; free(v->name); free(v); @@ -583,7 +584,8 @@ if(v == nil) print("irqdisable: irq %d, name %s not enabled\n", irq, name); if(vctl[irq] == nil){ - print("irqdisable: clear icmr bit %d\n", irq); + if(Debug) + print("irqdisable: clear icmr bit %d\n", irq); intcmask(irq); } unlock(&vctllock); --- /sys/src/cmd/5c/list.c Sat Nov 1 22:05:26 2003 +++ /sys/src/cmd/5c/list.c Thu Mar 28 21:57:13 2013 @@ -28,7 +28,7 @@ if(str[0]) strcat(str, " "); if(var[i].sym == S) { - sprint(ss, "$%ld", var[i].offset); + snprint(ss, sizeof(ss), "$%ld", var[i].offset); s = ss; } else s = var[i].sym->name; @@ -68,26 +68,26 @@ strcat(sc, ".U"); if(a == AMOVM) { if(p->from.type == D_CONST) - sprint(str, " %A%s %R,%D", a, sc, &p->from, &p->to); + snprint(str, sizeof(str), " %A%s %R,%D", a, sc, &p->from, &p->to); else if(p->to.type == D_CONST) - sprint(str, " %A%s %D,%R", a, sc, &p->from, &p->to); + snprint(str, sizeof(str), " %A%s %D,%R", a, sc, &p->from, &p->to); else - sprint(str, " %A%s %D,%D", a, sc, &p->from, &p->to); + snprint(str, sizeof(str), " %A%s %D,%D", a, sc, &p->from, &p->to); } else if(a == ADATA) - sprint(str, " %A %D/%d,%D", a, &p->from, p->reg, &p->to); + snprint(str, sizeof(str), " %A %D/%d,%D", a, &p->from, p->reg, &p->to); else if(p->as == ATEXT) - sprint(str, " %A %D,%d,%D", a, &p->from, p->reg, &p->to); + snprint(str, sizeof(str), " %A %D,%d,%D", a, &p->from, p->reg, &p->to); else if(p->reg == NREG) - sprint(str, " %A%s %D,%D", a, sc, &p->from, &p->to); + snprint(str, sizeof(str), " %A%s %D,%D", a, sc, &p->from, &p->to); else if(p->from.type != D_FREG) - sprint(str, " %A%s %D,R%d,%D", a, sc, &p->from, p->reg, &p->to); + snprint(str, sizeof(str), " %A%s %D,R%d,%D", a, sc, &p->from, p->reg, &p->to); else - sprint(str, " %A%s %D,F%d,%D", a, sc, &p->from, p->reg, &p->to); + snprint(str, sizeof(str), " %A%s %D,F%d,%D", a, sc, &p->from, p->reg, &p->to); return fmtstrcpy(fp, str); } @@ -116,68 +116,68 @@ switch(a->type) { default: - sprint(str, "GOK-type(%d)", a->type); + snprint(str, sizeof(str), "GOK-type(%d)", a->type); break; case D_NONE: str[0] = 0; if(a->name != D_NONE || a->reg != NREG || a->sym != S) - sprint(str, "%N(R%d)(NONE)", a, a->reg); + snprint(str, sizeof(str), "%N(R%d)(NONE)", a, a->reg); break; case D_CONST: if(a->reg != NREG) - sprint(str, "$%N(R%d)", a, a->reg); + snprint(str, sizeof(str), "$%N(R%d)", a, a->reg); else - sprint(str, "$%N", a); + snprint(str, sizeof(str), "$%N", a); break; case D_SHIFT: v = a->offset; op = "<<>>->@>" + (((v>>5) & 3) << 1); if(v & (1<<4)) - sprint(str, "R%d%c%cR%d", v&15, op[0], op[1], (v>>8)&15); + snprint(str, sizeof(str), "R%d%c%cR%d", v&15, op[0], op[1], (v>>8)&15); else - sprint(str, "R%d%c%c%d", v&15, op[0], op[1], (v>>7)&31); + snprint(str, sizeof(str), "R%d%c%c%d", v&15, op[0], op[1], (v>>7)&31); if(a->reg != NREG) sprint(str+strlen(str), "(R%d)", a->reg); break; case D_OREG: if(a->reg != NREG) - sprint(str, "%N(R%d)", a, a->reg); + snprint(str, sizeof(str), "%N(R%d)", a, a->reg); else - sprint(str, "%N", a); + snprint(str, sizeof(str), "%N", a); break; case D_REG: - sprint(str, "R%d", a->reg); + snprint(str, sizeof(str), "R%d", a->reg); if(a->name != D_NONE || a->sym != S) - sprint(str, "%N(R%d)(REG)", a, a->reg); + snprint(str, sizeof(str), "%N(R%d)(REG)", a, a->reg); break; case D_FREG: - sprint(str, "F%d", a->reg); + snprint(str, sizeof(str), "F%d", a->reg); if(a->name != D_NONE || a->sym != S) - sprint(str, "%N(R%d)(REG)", a, a->reg); + snprint(str, sizeof(str), "%N(R%d)(REG)", a, a->reg); break; case D_PSR: - sprint(str, "PSR"); + snprint(str, sizeof(str), "PSR"); if(a->name != D_NONE || a->sym != S) - sprint(str, "%N(PSR)(REG)", a); + snprint(str, sizeof(str), "%N(PSR)(REG)", a); break; case D_BRANCH: - sprint(str, "%ld(PC)", a->offset-pc); + snprint(str, sizeof(str), "%ld(PC)", a->offset-pc); break; case D_FCONST: - sprint(str, "$%.17e", a->dval); + snprint(str, sizeof(str), "$%.17e", a->dval); break; case D_SCONST: - sprint(str, "$\"%S\"", a->sval); + snprint(str, sizeof(str), "$\"%S\"", a->sval); break; } return fmtstrcpy(fp, str); @@ -186,12 +186,12 @@ int Rconv(Fmt *fp) { - char str[STRINGSZ]; + char str[STRINGSZ], *p, *e; Adr *a; int i, v; a = va_arg(fp->args, Adr*); - sprint(str, "GOK-reglist"); + snprint(str, sizeof(str), "GOK-reglist"); switch(a->type) { case D_CONST: if(a->reg != NREG) @@ -199,17 +199,17 @@ if(a->sym != S) break; v = a->offset; - strcpy(str, ""); + p = str; + e = str+sizeof(str); for(i=0; iargs, Adr*); s = a->sym; if(s == S) { - sprint(str, "%ld", a->offset); + snprint(str, sizeof(str), "%ld", a->offset); goto out; } switch(a->name) { default: - sprint(str, "GOK-name(%d)", a->name); + snprint(str, sizeof(str), "GOK-name(%d)", a->name); break; case D_NONE: - sprint(str, "%ld", a->offset); + snprint(str, sizeof(str), "%ld", a->offset); break; case D_EXTERN: - sprint(str, "%s+%ld(SB)", s->name, a->offset); + snprint(str, sizeof(str), "%s+%ld(SB)", s->name, a->offset); break; case D_STATIC: - sprint(str, "%s<>+%ld(SB)", s->name, a->offset); + snprint(str, sizeof(str), "%s<>+%ld(SB)", s->name, a->offset); break; case D_AUTO: - sprint(str, "%s-%ld(SP)", s->name, -a->offset); + snprint(str, sizeof(str), "%s-%ld(SP)", s->name, -a->offset); break; case D_PARAM: - sprint(str, "%s+%ld(FP)", s->name, a->offset); + snprint(str, sizeof(str), "%s+%ld(FP)", s->name, a->offset); break; } out: --- /sys/src/cmd/6l/span.c Mon Dec 17 20:33:06 2012 +++ /sys/src/cmd/6l/span.c Thu Mar 28 18:51:09 2013 @@ -676,9 +676,6 @@ rex &= (0x40 | Rxr); v = a->offset; - if ((vlong)v != a->offset) - print("asmandsz: Trying to emit %#ullx and 32 bits is not sufficient\n", - a->offset); t = a->type; if(a->index != D_NONE) { if(t >= D_INDIR) { --- /sys/src/cmd/html2ms.c Mon Mar 7 21:54:52 2011 +++ /sys/src/cmd/html2ms.c Fri Mar 29 22:42:10 2013 @@ -82,6 +82,7 @@ "dd", g_ignore, g_unexpected, "dfn", g_ignore, g_ignore, "dir", g_list, g_listend, + "div", g_ignore, g_br, "dl", g_indent, g_exdent, "dt", g_dt, g_unexpected, "em", g_ignore, g_ignore, @@ -114,7 +115,9 @@ "plaintext", g_ignore, g_unexpected, "pre", g_pre, g_displayend, "samp", g_ignore, g_ignore, + "script", g_ignore, g_ignore, "select", g_ignore, g_ignore, + "span", g_ignore, g_ignore, "strong", g_ignore, g_ignore, "table", g_table, g_tableend, "textarea", g_ignore, g_ignore, @@ -147,6 +150,7 @@ "aring", L'å', "atilde", L'ã', "auml", L'ä', "ccedil", L'ç', "eacute", L'é', "ecirc", L'ê', "egrave", L'è', "eth", L'ð', "euml", L'ë', "gt", L'>', "iacute", L'í', "icirc", L'î', "igrave", L'ì', "iuml", L'ï', "lt", L'<', +"nbsp", L' ', "ntilde", L'ñ', "oacute", L'ó', "ocirc", L'ô', "ograve", L'ò', "oslash", L'ø', "otilde", L'õ', "ouml", L'ö', "szlig", L'ß', "thorn", L'þ', "uacute", L'ú', "ucirc", L'û', "ugrave", L'ù', "uuml", L'ü', "yacute", L'ý', "yuml", L'ÿ', --- /sys/src/cmd/ms2html.c Tue Feb 3 20:57:44 2009 +++ /sys/src/cmd/ms2html.c Fri Mar 29 22:43:52 2013 @@ -1461,6 +1461,7 @@ void g_IP(int argc, char **argv) { + dohanginghead(); switch(list){ default: closel(); @@ -1603,6 +1604,7 @@ closel(); closefont(); + dohanginghead(); dohangingcenter(); if(argc == 1) level = 0; --- /sys/src/cmd/rc/rc.h Fri Mar 1 23:54:51 2013 +++ /sys/src/cmd/rc/rc.h Thu Mar 28 21:42:37 2013 @@ -1,6 +1,6 @@ /* * Assume plan 9 by default; if Unix is defined, assume unix. - * Please don't litter the code with ifdefs. The six below should be enough. + * Please don't litter the code with ifdefs. The five below should be enough. */ #ifndef Unix --- /sys/src/cmd/usb/kb/kb.c Wed Jan 30 22:05:55 2013 +++ /sys/src/cmd/usb/kb/kb.c Fri Mar 29 20:00:59 2013 @@ -299,9 +299,9 @@ for(i = 0; itempl, KindButtons, i) & 1) << buts[i]; if(c > 3 && hidifcval(&kd->templ, KindWheel, 0) > 0) /* up */ - b |= 0x10; - if(c > 3 && hidifcval(&kd->templ, KindWheel, 0) < 0) /* down */ b |= 0x08; + if(c > 3 && hidifcval(&kd->templ, KindWheel, 0) < 0) /* down */ + b |= 0x10; *px = x; *py = y; --- /sys/src/libc/9sys/cputime.c Sun Dec 12 02:21:52 1999 +++ /sys/src/libc/9sys/cputime.c Thu Mar 28 21:26:37 2013 @@ -7,7 +7,6 @@ cputime(void) { long t[4]; - long times(long*); int i; times(t); --- /sys/src/libc/9sys/pushtls.c Sat Nov 1 21:36:04 2003 +++ /sys/src/libc/9sys/pushtls.c Thu Mar 28 21:26:37 2013 @@ -1,6 +1,5 @@ #include #include -#include #include #include