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--;