aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/acme/rows.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2004-12-27 01:16:26 +0000
committerrsc <devnull@localhost>2004-12-27 01:16:26 +0000
commit6d7fdb243ca2611e31648d57c8b3ac4101407cfa (patch)
treec06f6a7764885fd4b4d15eb776c77fb4fc505b0b /src/cmd/acme/rows.c
parent334cb1e91ceb2d667c1cfd0b71aa9801bef089ec (diff)
downloadplan9port-6d7fdb243ca2611e31648d57c8b3ac4101407cfa.tar.gz
plan9port-6d7fdb243ca2611e31648d57c8b3ac4101407cfa.tar.bz2
plan9port-6d7fdb243ca2611e31648d57c8b3ac4101407cfa.zip
changes from plan 9
Diffstat (limited to 'src/cmd/acme/rows.c')
-rw-r--r--src/cmd/acme/rows.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/cmd/acme/rows.c b/src/cmd/acme/rows.c
index 9fa54248..15e02894 100644
--- a/src/cmd/acme/rows.c
+++ b/src/cmd/acme/rows.c
@@ -476,14 +476,16 @@ rowloadfonts(char *file)
if(l == nil)
goto Return;
l[Blinelen(b)-1] = 0;
- if(*l && strcmp(l, fontnames[i])!=0)
+ if(*l && strcmp(l, fontnames[i])!=0){
+ free(fontnames[i]);
fontnames[i] = estrdup(l);
+ }
}
Return:
Bterm(b);
}
-void
+int
rowload(Row *row, char *file, int initing)
{
int i, j, line, percent, y, nr, nfontr, n, ns, ndumped, dumpid, x, fd;
@@ -526,7 +528,7 @@ rowload(Row *row, char *file, int initing)
goto Rescue2;
l[Blinelen(b)-1] = 0;
if(*l && strcmp(l, fontnames[i])!=0)
- rfget(i, TRUE, i==0 && initing, estrdup(l));
+ rfget(i, TRUE, i==0 && initing, l);
}
if(initing && row->ncol==0)
rowinit(row, screen->clipr);
@@ -697,11 +699,11 @@ rowload(Row *row, char *file, int initing)
winsettag(w);
}else if(dumpid==0 && r[ns+1]!='+' && r[ns+1]!='-')
get(&w->body, nil, nil, FALSE, XXX, nil, 0);
- free(r);
if(fontr){
fontx(&w->body, nil, nil, 0, 0, fontr, nfontr);
free(fontr);
}
+ free(r);
if(q0>w->body.file->b.nc || q1>w->body.file->b.nc || q0>q1)
q0 = q1 = 0;
textshow(&w->body, q0, q1, 1);
@@ -709,14 +711,15 @@ rowload(Row *row, char *file, int initing)
}
Bterm(b);
-Rescue1:
fbuffree(buf);
- return;
+ return TRUE;
Rescue2:
warning(nil, "bad load file %s:%d\n", file, line);
Bterm(b);
- goto Rescue1;
+Rescue1:
+ fbuffree(buf);
+ return FALSE;
}
void