Example #1
0
void
pageclose(Page *p)
{
	Page *c, *nc;

	if(p == selpage)
		selpage = nil;
	pageabort(p);
	closeimages(p);
	urlfree(p->url);
	p->url = nil;
	if(p->doc){
		freedocinfo(p->doc);
		p->doc = nil;
	}
	layfree(p->lay);
	p->lay = nil;
	freeitems(p->items);
	p->items = nil;
	for(c=p->child; c!=nil; c=nc){
		nc = c->next;
		pageclose(c);
		free(c);
	}
	p->child = nil;
	closerunestr(&p->title);
	closerunestr(&p->refresh.rs);
	p->refresh.t = 0;
	p->pos = ZP;
	p->top = ZP;
	p->bot = ZP;
	p->loading = p->aborting = FALSE;
}
Example #2
0
File: urls.c Project: 99years/plan9
void
urlfree(Url *u)
{
	if(u && decref(u)==0){
		closerunestr(&u->src);
		closerunestr(&u->act);
		closerunestr(&u->post);
		closerunestr(&u->ctype);
		free(u);
	}
}
Example #3
0
void
urlfree(Url *u)
{
	if(u==nil || decref(u) > 0)
		return;

	closerunestr(&u->src);
	closerunestr(&u->act);
	closerunestr(&u->post);
	closerunestr(&u->ctype);
	free(u);
}
Example #4
0
static
void
loadchilds(Page *p, Kidinfo *k)
{
	Runestr rs;
	Kidinfo *t;
	Page *c;

	addrefresh(p, "loading frames...");
	p->kidinfo = k;
	for(t=k->kidinfos; t!=nil; t=t->next){
		c = emalloc(sizeof(Page));
		addchild(p, c);
		if(t->isframeset){
			c->url = urldup(p->url);
			loadchilds(c, t);
		}else{
			c->kidinfo = t;
			/* this check shouldn't be necessary, but... */
			if(t->src){
				rs.r = urlcombine(p->url->act.r, t->src);
				rs.nr = runestrlen(rs.r);
				pageload1(c, urlalloc(&rs, nil, HGet), FALSE);
				closerunestr(&rs);
			}
		}
	}
}
Example #5
0
void
copyrunestr(Runestr *a, Runestr *b)
{
    closerunestr(a);
    a->r = runemalloc(b->nr+1);
    runemove(a->r, b->r, b->nr);
    a->r[b->nr] = 0;
    a->nr = b->nr;
}
Example #6
0
void
pagesnarf(Page *p)
{
	Runestr rs;

	memset(&rs, 0, sizeof(Runestr));
	laysnarf(p, p->lay, &rs);
	putsnarf(&rs);
	closerunestr(&rs);
}
Example #7
0
File: main.c Project: 99years/plan9
void
readpage(Column *c, char *s)
{
	Window *w;
	Runestr rs;

	w = coladd(c, nil, nil, -1);
	bytetorunestr(s, &rs);
	pageget(&w->page, &rs, nil, HGet, TRUE);
	closerunestr(&rs);
}
Example #8
0
void
textclose(Text *t)
{
	closerunestr(&t->rs);
	frclear(t, 1);
}