guy@auspex.auspex.com (Guy Harris) (10/29/89)
"rofftext" drops core on a Sun-4 for a variety of reasons. The first
reason is that the calls to "environment_Insert" were half-converted to
calls to "environment_InsertStyle" - the name of the function was
changed, but the "stuff it into a 'union environmentcontents' and pass
that union" stuff that "environment_InsertStyle" does wasn't eliminated.
This patch fixes that, and enables it to drop core elsewhere....
(continued on next rock)
*** roffstyl.c.dist Fri Sep 22 07:31:00 1989
--- roffstyl.c Sat Oct 28 15:19:50 1989
***************
*** 57,68 ****
CloseStyle(self);
newid = BeginStyle(self,st);
for(l=self->tempstack->level;l>=0;l--) {
- union environmentcontents data;
-
self->stack++;
self->stack->pos = self->pos;
! data.style = self->tempstack->style;
! self->stack->env = environment_InsertStyle((self->stack-1)->env, self->pos - (self->stack-1)->pos, data, TRUE);
self->stack->level = (self->stack-1)->level+1;
self->stack->ID = self->tempstack->ID;
self->tempstack--;
--- 57,65 ----
CloseStyle(self);
newid = BeginStyle(self,st);
for(l=self->tempstack->level;l>=0;l--) {
self->stack++;
self->stack->pos = self->pos;
! self->stack->env = environment_InsertStyle((self->stack-1)->env, self->pos - (self->stack-1)->pos, self->tempstack->style, TRUE);
self->stack->level = (self->stack-1)->level+1;
self->stack->ID = self->tempstack->ID;
self->tempstack--;
***************
*** 102,108 ****
char *st;
{
struct style *style;
- union environmentcontents data;
if (st == NULL)
return 0;
--- 99,104 ----
***************
*** 115,122 ****
}
self->stack++;
self->stack->pos = self->pos;
! data.style = style;
! self->stack->env = environment_InsertStyle((self->stack-1)->env, self->pos - (self->stack-1)->pos, data, TRUE);
self->stack->level = (self->stack-1)->level+1;
self->stack->ID = self->styleID++;
--- 111,117 ----
}
self->stack++;
self->stack->pos = self->pos;
! self->stack->env = environment_InsertStyle((self->stack-1)->env, self->pos - (self->stack-1)->pos, style, TRUE);
self->stack->level = (self->stack-1)->level+1;
self->stack->ID = self->styleID++;
***************
*** 150,161 ****
}
CloseStyle(self);
for(l=self->tempstack->level;l>=0;l--) {
- union environmentcontents data;
-
self->stack++;
self->stack->pos = self->pos;
! data.style = self->tempstack->style;
! self->stack->env = environment_InsertStyle((self->stack-1)->env, self->pos - (self->stack-1)->pos, data, TRUE);
self->stack->level = (self->stack-1)->level+1;
self->stack->ID = self->tempstack->ID;
self->tempstack--;
--- 145,153 ----
}
CloseStyle(self);
for(l=self->tempstack->level;l>=0;l--) {
self->stack++;
self->stack->pos = self->pos;
! self->stack->env = environment_InsertStyle((self->stack-1)->env, self->pos - (self->stack-1)->pos, self->tempstack->style, TRUE);
self->stack->level = (self->stack-1)->level+1;
self->stack->ID = self->tempstack->ID;
self->tempstack--;