rem: assert (o->field >= 0);
context: prjoin (struct line *line1, struct line *line2){  const struct outlist *outlist;  outlist = outlist_head.next;  if (outlist)    {      const struct outlist *o;      o = outlist;      while (1)	{	  int field;	  struct line *line;	  if (o->file == 0)	    {	      if (line1 == &uni_blank)	        {		  line = line2;		  field = join_field_2;		}	      else	        {		  line = line1;		  field = join_field_1;		}	    }	  else	    {	      line = (o->file == 1 ? line1 : line2);	      assert (o->field >= 0);	      field = o->field;	    }	  prfield (field, line);	  o = o->next;	  if (o == NULL)	    break;	  putchar (tab ? tab : ' ');	}      putchar ('\n');    }  else    {      int i;      if (line1 == &uni_blank)	{	  struct line *t;	  t = line1;	  line1 = line2;	  line2 = t;	}      prfield (join_field_1, line1);      for (i = 0; i < join_field_1 && i < line1->nfields; ++i)	{	  putchar (tab ? tab : ' ');	  prfield (i, line1);	}      for (i = join_field_1 + 1; i < line1->nfields; ++i)	{	  putchar (tab ? tab : ' ');	  prfield (i, line1);	}      for (i = 0; i < join_field_2 && i < line2->nfields; ++i)	{	  putchar (tab ? tab : ' ');	  prfield (i, line2);	}      for (i = join_field_2 + 1; i < line2->nfields; ++i)	{	  putchar (tab ? tab : ' ');	  prfield (i, line2);	}      putchar ('\n');    }}