[comp.soft-sys.andrew] "rofftext" drops core on Sun-4 - part 1

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