rem: if (p->shape[2] != DELETE && p->shape[2] != p->code)
add: if (p->shape[2] != p->code)
context: init_tables (  ){  int i;  int count[5] = { 0, 0, 0, 0, 0 };  if (tables_init)    return;  qsort (con_shape, con_size, sizeof con_shape[0], comp_unichars);  join_c[0] = join_c[1] = 0;  for (i = 0; i < con_size; i++)    count[con_shape[i].num]++;  join_tab[0] =    malloc ((3 * count[4] + 2 * count[2]) * sizeof join_tab[0][0]);  join_tab[1] = malloc (3 * count[4] * sizeof join_tab[1][0]);  for (i = 0; i < con_size; i++)    {      con_shape_type *p = con_shape + i;      if (p->num >= 2)	{	  join_tab[0][join_c[0]].code = p->code;	  join_tab[0][join_c[0]++].ty = -1;	  if (p->shape[1] != DELETE && p->shape[1] != p->code)	    {	      join_tab[0][join_c[0]].code = p->shape[1];	      join_tab[0][join_c[0]++].ty = 1;	    }	  if (p->num == 4)	    {	      if (p->shape[2] != DELETE && p->shape[2] != p->code)		{		  join_tab[1][join_c[1]].code = p->shape[2];		  join_tab[1][join_c[1]++].ty = 1;		}	      if (p->shape[3] != DELETE && p->shape[3] != p->code)		{		  join_tab[0][join_c[0]].code = p->shape[3];		  join_tab[0][join_c[0]++].ty = 1;		  join_tab[1][join_c[1]].code = p->shape[3];		  join_tab[1][join_c[1]++].ty = 1;		}	      join_tab[1][join_c[1]].code = p->code;	      join_tab[1][join_c[1]++].ty = -1;	    }	}    }  for (i = 0; i < 2; i++)    qsort (join_tab[i], join_c[i], sizeof join_tab[i][0], comp_unichars);  tables_init = 1;}