From cse.psu.edu!9fans-outgoing-owner Tue Oct 24 08:09:52 1995
Received: from colossus.cse.psu.edu ([130.203.1.2]) by cannon.ecf.toronto.edu with SMTP id <9858>; Tue, 24 Oct 1995 08:09:45 -0400
Received: by colossus.cse.psu.edu id <78416>; Tue, 24 Oct 1995 07:53:23 -0400
Received: from plan9.cs.su.oz.au ([129.78.96.3]) by colossus.cse.psu.edu with SMTP id <78415>; Tue, 24 Oct 1995 07:52:56 -0400
Date:	Tue, 24 Oct 1995 07:40:01 -0400
From:	dhog@plan9.cs.su.oz.au
To:	9fans@cse.psu.edu
Subject: acme bug fix
Message-Id: <95Oct24.075256edt.78415@colossus.cse.psu.edu>
Sender: owner-9fans@cse.psu.edu
Precedence: bulk
Reply-To: 9fans@cse.psu.edu
Status: RO

I've been having a bit of trouble with acme clobbering
its own temp file.  The following patch (relative to the
version on the CD) should fix it:

diff /sys/src/cmd/acme/rows.l `{yesterday /sys/src/cmd/acme/rows.l}
626c626
< 			sprint(buf, "/tmp/d%d.%.4sacme", getpid(), getuser());
---
> 			sprint(buf, "/tmp/D%d.%.4sacme", getpid(), getuser());

The problem was that Disk.init() and Row.load() were, under certain
circumstances, using the same filename for their temporary files.
This change ensures that it cannot happen.


From cse.psu.edu!9fans-outgoing-owner Sun Oct 29 06:28:35 1995
Received: from psuvax1.cse.psu.edu ([130.203.1.6]) by cannon.ecf.toronto.edu with SMTP id <1083>; Sun, 29 Oct 1995 06:28:31 -0500
Received: by psuvax1.cse.psu.edu id <33963>; Sun, 29 Oct 1995 06:02:09 -0500
Received: from plan9.cs.york.ac.uk ([144.32.33.120]) by psuvax1.cse.psu.edu with SMTP id <33958>; Sun, 29 Oct 1995 06:01:48 -0500
From:	forsyth@plan9.cs.york.ac.uk
To:	9fans@cse.psu.edu
Date:	Sun, 29 Oct 1995 05:57:14 -0500
subject: acme buglet
Message-Id: <95Oct29.060148est.33958@psuvax1.cse.psu.edu>
Sender: owner-9fans@cse.psu.edu
Precedence: bulk
Reply-To: 9fans@cse.psu.edu
Status: RO

a student found this.  you have to coax acme to trigger it:
get an empty New frame, add Put to the tag, and click on it.

vortex% diff $home/cd/cmd/acme/exec.l .
317a318,319
> 			if(t->file->name == nil)
> 				return nil;


From cse.psu.edu!9fans-outgoing-owner Sun Oct 29 14:46:43 1995
Received: from colossus.cse.psu.edu ([130.203.1.2]) by cannon.ecf.toronto.edu with SMTP id <1414>; Sun, 29 Oct 1995 14:46:39 -0500
Received: by colossus.cse.psu.edu id <78511>; Sun, 29 Oct 1995 14:35:59 -0500
Received: from galapagos.cse.psu.edu ([130.203.2.12]) by colossus.cse.psu.edu with SMTP id <78509>; Sun, 29 Oct 1995 14:35:42 -0500
Received: from localhost by galapagos.cse.psu.edu with SMTP id <12686>; Sun, 29 Oct 1995 14:35:11 -0500
To:	9fans@cse.psu.edu
Subject: Re: acme buglet 
In-reply-to: Your message of "Sun, 29 Oct 1995 05:57:14 EST."
             <95Oct29.060148est.33958@psuvax1.cse.psu.edu> 
Date:	Sun, 29 Oct 1995 14:35:04 -0500
From:	Scott Schwartz <schwartz@galapagos.cse.psu.edu>
Message-Id: <95Oct29.143511est.12686@galapagos.cse.psu.edu>
Sender: owner-9fans@cse.psu.edu
Precedence: bulk
Reply-To: 9fans@cse.psu.edu
Status: RO

Rob sent me a different patch for that bug.  Here it is.

fix in util.l:

byte*
runetobyte(Rune *r, int n)
{
	byte *s;

>	if(n == 0)
>		return nil;
	s = malloc(n*UTFmax+1);
	snprint(s, n*UTFmax+1, "%.*S", n, r);
	return s;
}


From 9fans@cse.psu.edu Sun Sep  8 23:20:09 EDT 1996
Article: 1790 of comp.os.plan9
Xref: info.ecf comp.os.plan9:1790
Newsgroups: comp.os.plan9
Path: info.ecf!utnut!cs.utexas.edu!uwm.edu!news-res.gsl.net!news.gsl.net!news.mathworks.com!news.kei.com!newsfeed.internetmci.com!usenet.eel.ufl.edu!warwick!niss!bath.ac.uk!ccsis
From: rob@plan9.BEll-labs.COM (Rob Pike)
Subject: fix to acme
Approved: plan9mod@bath.ac.uk
Reply-To: 9fans@cse.psu.edu
Sender: ccsis@bath.ac.uk (Icarus Sparry)
Organization: Plan 9 mailing list
Message-ID: <199608241938.PAA01766@cse.psu.edu>
Date: Sat, 24 Aug 1996 19:42:46 GMT
Lines: 16
Status: RO

Some time ago, someone posted a way to crash acme by creating
and deleting colums.  The fix is in /sys/src/cmd/acme/rows.l
Change

	if(c == nil){
		c = malloc(sizeof(Column));
		c->init(r);
	}else

to

	if(c == nil){
		c = malloc(sizeof(Column));
		c->init(r);
		reffont.inc();
	}else


