From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from comoro.yorku.ca ([130.63.236.55]) by hawkwind.utcs.utoronto.ca with SMTP id <24432>; Sat, 3 Aug 1996 02:40:17 -0400 Received: from nexus.yorku.ca (nexus.yorku.ca [130.63.236.20]) by comoro.yorku.ca (8.6.12/8.6.11) with ESMTP id CAA25487 for ; Sat, 3 Aug 1996 02:40:03 -0400 Received: from localhost (localhost.yorku.ca [127.0.0.1]) by nexus.yorku.ca (8.6.11/8.6.11) with SMTP id CAA11455 for ; Sat, 3 Aug 1996 02:40:00 -0400 Message-Id: <199608030640.CAA11455@nexus.yorku.ca> To: sam-fans@hawkwind.utcs.toronto.edu Date: Sat, 3 Aug 1996 02:40:00 -0400 From: "ozan s. yigit" > there are several other bug patches for sam in > the boddle package available by anonymous > ftp at plan9.att.com in plan9/update/cmd/sam/829146783.rc. here is a version that patch understands, so somewhat easier to extract and apply: *** cmd.c.orig Sat Aug 3 02:08:53 1996 --- cmd.c Sat Aug 3 02:09:23 1996 *************** *** 220,223 **** --- 220,226 ---- (ocurfile!=curfile || (!loaded && curfile->state!=Unread))) outTs(Hcurrent, curfile->tag); + /* don't allow type ahead on files that aren't bound */ + if(downloaded && curfile && curfile->rasp == 0) + terminp = termoutp; } } *** mesg.c.orig Sat Aug 3 02:08:52 1996 --- mesg.c Sat Aug 3 02:09:23 1996 *************** *** 257,260 **** --- 257,261 ---- case Tstartfile: + termlocked++; f = whichfile(inshort()); if(!f->rasp) /* this might be a duplicate message */ *************** *** 264,268 **** outTs(Hcurrent, f->tag); journaln(0, f->tag); - termlocked++; if(f->state == Unread) load(f); --- 265,268 ---- *************** *** 447,454 **** c = 0; i = 0; ! rp = malloc((snarfbuf->nrunes)*sizeof(Rune)); if(rp){ ! Bread(snarfbuf, rp, snarfbuf->nrunes, 0); ! c = Strtoc(tmprstr(rp, snarfbuf->nrunes)); free(rp); i = strlen(c); --- 447,459 ---- c = 0; i = 0; ! m = snarfbuf->nrunes; ! if(m > 32000) { /* tmprstr stores len in a short */ ! m = 32000; ! dprint("?warning: snarf buffer truncated\n"); ! } ! rp = malloc(m*sizeof(Rune)); if(rp){ ! Bread(snarfbuf, rp, m, 0); ! c = Strtoc(tmprstr(rp, m)); free(rp); i = strlen(c); *** sam.c.orig Sat Aug 3 02:08:50 1996 --- sam.c Sat Aug 3 02:09:24 1996 *************** *** 304,309 **** if(f==cmd) /* cmd gets done in main() */ continue; ! if(f->deleted) delete(f); if(f->mod==modnum && Fupdate(f, FALSE, downloaded)) anymod++; --- 304,311 ---- if(f==cmd) /* cmd gets done in main() */ continue; ! if(f->deleted) { delete(f); + continue; + } if(f->mod==modnum && Fupdate(f, FALSE, downloaded)) anymod++; *** xec.c.orig Sat Aug 3 02:08:50 1996 --- xec.c Sat Aug 3 02:09:24 1996 *************** *** 28,36 **** load(f); if(f==0 && (cp->addr==0 || cp->addr->type!='"') && ! !utfrune("bBnqUXY!{", cp->cmdc) && cp->cmdc!=('c'|0x100) && !(cp->cmdc=='D' && cp->ctext)) error(Enofile); i = lookup(cp->cmdc); ! if(cmdtab[i].defaddr != aNo){ if((ap=cp->addr)==0 && cp->cmdc!='\n'){ cp->addr = ap = newaddr(); --- 28,36 ---- load(f); if(f==0 && (cp->addr==0 || cp->addr->type!='"') && ! !utfrune("bBnqUXY!", cp->cmdc) && cp->cmdc!=('c'|0x100) && !(cp->cmdc=='D' && cp->ctext)) error(Enofile); i = lookup(cp->cmdc); ! if(i >= 0 && cmdtab[i].defaddr != aNo){ if((ap=cp->addr)==0 && cp->cmdc!='\n'){ cp->addr = ap = newaddr();